2011-12-06 5 views
4

Oracleデータ・ポンプ・エクスポート・ユーティリティでは、DBサーバーに存在するDIRECTORY(DBA_DIRECTORIES)パラメータが必要です。このディレクトリをローカル・マシンにマップすることは可能ですか、oracleデータベースから複数の表をローカルにエクスポートする方法はありますか?Oracleデータ・ポンプ・エクスポート・ユーティリティを使用してローカル・マシンにダンプ・ファイルを作成する方法は?

答えて

-4

あなたは自分自身に問う必要があります。「なぜ私はデータベースの外部にデータを保存しておきたいん - 私のデータのための最も安全な場所のバックアップ、リストアおよびリカバリが所定の位置にある

あなたがデータを移動しようとしている場合は?。データベースAからデータベースBに、両方のデータベースが共通のファイル領域にアクセスできることを確認して、ディレクトリオブジェクトを介してデータ・ダンプ・ファイルにアクセスし、データ・ポンプを使用できるようにしてください。

データをクライアントあなたは良い古いツールを使用することができますexpのimp

+0

私は各テーブルのエクスポートを行う必要があります。 – nayakam

+1

'exp help = y'は複数のテーブルをエクスポートできることを示します。 '例:EXPスコット/タイガー・グラント= Yテーブル=(EMP、DEPT、MGR)' –

1

いいえ、データ・ポンプはそのようにしますが、Oracleはdbが置かれているのと同じサーバーを使用してより高速なスループットを得ることができます。その他の機能強化もありますが、これはデータポンプの大きな欠点だと私はまだ考えています。この目的のために、古いexp/impまたは第三者ツールを使用してください。

+0

exp。私は各テーブルのエクスポートを行う必要があります。 – nayakam

6

ハックを少しすれば、データポンプで必要な処理を行うことができますが、ローカルマシンにデータベースを用意する必要があります。

ローカルマシン上のデータベースリンクをリモートマシンに作成するだけです。

次に、データパスオプションで、ローカルデータベースにdbリンク所有者としてログインし、作成したデータベースリンク名の名前に 'network_link'オプションを指定します。これにより、ローカルデータベースを介してリモートデータベースからエクスポートし、ローカルインスタンス上にファイルを作成する必要があります。例:

expdp directory=<local_dir_object> network_link=<dblinkname on local instance> dumpfile=.. logfile=.. tables/schema=... 
+0

あなたの提案をありがとう。 – nayakam

6

Data Pumpを使用している場合、ローカル・マシンにダンプ・ファイルを直接格納する方法はありません。それがData Pumpの設計方法です。

しかし、あなたが望むものを達成する方法の1つがあります。サーバー上のダンプファイルを作成します

  1. ランいつものようにexpdp
  2. 使用したい場合は、ローカルマシン(および背面にデータベース・サーバからダンプファイルを転送するocpツール:回避策は、2つのステップがありますに)。

ocpツールは「Oracle Copy」の略で、ダンプ・ファイルをデータベース・サーバーとの間でコピーする目的で作成されています。これは、ここに提供されています:ので、一度ダウンロードして解凍したソースディストリビューションであるhttps://github.com/maxsatula/ocp/releases/download/v0.1/ocp-0.1.tar.gz

./configure && make実行

を(うまくいけば、私はそこにそれをコンパイルしようとしたことがないので、あなたは、クライアント側でのWindowsを持っていない)こと単純な構文を持つシンプルなコマンドラインツールです。たとえば、このコマンドはあなたのためのファイルを引っ張ってくる:

ocp <connection_string> DATA_PUMP_DIR:remote_file_name.dmp local_file_name.dmp

ツールは、データベース接続とデータベース権限の最小セットを使用しています。

更新:

は、最後に私は、ソースコードを調整し、Windowsの32ビットをocpツールを構築することができました:

https://github.com/maxsatula/ocp/releases/download/v0.1/ocp-0.1-win32.zip

コンパイル/ 32ビットのInstant Client 11.2を使用してテスト.0.4ここをクリック:http://www.oracle.com/technetwork/topics/winsoft-085727.html

instantclient-basiclite-nt-11.2.0.4.0.zip(20,258,449バイト)

私は完全なOracleクライアントのインストールでも動作すると信じています(ビット数は32でなければなりません)。

残念ながら、Windowsのocpには、ファイル転送中に進捗状況が表示されません。そのコードには* nix特有のものが多すぎたので、私はそれをカットしなければなりませんでした。

また、GnuWinプロジェクトの一部としてコンパイルされ、32ビットのみで利用可能なpoptおよびzlibライブラリを使用するため、Windows用のocpも32ビットのみです。うまくいけば、64ビットバージョンを持たないことは、あなたにとって重要な任務ではありません。

アップデート2:

警告!サーバからファイルをダウンロードするときは必ずDEDICATEDサーバ接続を使用してください。そうしないと(SHAREDサーバの場合)、ダウンロードしたファイルのコピーがエラーメッセージなしで破損します。

+0

私はちょうどWindowsのバージョンをテストし、うまくいきました。小さな問題(ディレクトリ名に予期しない大文字と小文字の区別があり、MSVCR120.dllが見つからない)があったため、Githubの問題を作成します。これはすばらしいプログラムです。作成してすぐに修正してくれてありがとう! –

+0

@JonHellerディレクトリに環境変数を使用している場合、大文字と小文字が区別されます。 –

関連する問題