0

Windows Server 2008 で Oracle 10g サーバーを実行しているマシンがあります。データベースのバックアップを取りたいと考えています。また、ユーザーが私の Web サイトを使用してアップロードした、Oracle サーバーによってハードディスクに保存されたいくつかのファイルのバックアップを取りたいと考えています。

sql developer と sqlplus を使用して Oracle サーバーに接続できます。サーバー上でSQLクエリを実行できます。

データベースのバックアップを取るには、"exp" コマンドを実行する必要があります (これは、私が知っているデータベースのバックアップを取る唯一の方法です)。他の方法があるかもしれませんが、別の問題があるため、dos コマンドを実行する必要があります。その問題は、ファイルのバックアップを取ることです。これらのファイルは c:\mydir に保存されます。いずれにせよ、フォルダー mydir は Web からアクセスできず、共有フォルダーではありません。

「sql>」プロンプトで、Oracleサーバーに接続した後、sqlplusで「host」を実行しようとしました。コマンドは正常に実行されましたが、Oracle サーバーではなくローカル マシンで実行されました。

編集:「ホスト」コマンドはsqlplusによって提供され、Oracleコマンドではありません。つまり、クエリでは使用できません。リモート マシンに接続されている場合でも、Sqlplus はローカル マシンで「host」コマンドを実行します。

ターゲットは、sqlplus にリモート マシンで「host」コマンドを実行させるか、または pl/sql クエリ内から (sqlplus とは無関係に) dos コマンドを実行させることです。

4

2 に答える 2

1

ジャスティンが書いたものに加えて:

データベースの論理スナップショットを作成する場合は、古い (非推奨の)ツールよりも新しいDataPumpexpツールを使用することをお勧めします。

DataPump はコマンドライン ツール ( expdp) ですが、Oracle のパッケージとプロシージャを介した SQL API も備えています。

Data Pump API (例を含む)
DBMS_DATAPUMP (リファレンス)

ただし、「実際の」バックアップが必要な場合は、RMANを調べる必要があります。

于 2012-09-24T06:32:16.387 に答える
0

Oracle サーバー上でオペレーティング システム コマンドを実行する Java ストアド プロシージャをデータベース サーバー上に作成することができます。しかし、エクスポート ユーティリティを使用してデータベースをバックアップすることは非常にまれです。これは、より適切な物理バックアップではなく、論理バックアップのみを作成します。また、SQL*Plus を介してデータベースに接続し、サーバー オペレーティング システム上でジョブを生成してバックアップを実行することは非常にまれです。実行したいエクスポート コマンドを実行するデータベース サーバーで Windows スケジューラを使用してジョブを作成する方がはるかに理にかなっています。

于 2012-09-24T06:11:49.873 に答える