2

この時点まで、私は Oracle データベースで深刻なことをしたことはありません。MS SQL など、私が扱ってきたものとは異なることはわかっています。

したがって、MS SQL の観点から言えば、データベースをバックアップし、.bak ファイルを別のサーバーにコピーして復元し、データベースの完全なコピーを作成できます。

Oracleで同じことを行う方法がわかりません。バージョンが異なることはほとんどありません。主にコマンドラインで実行されるのを見たので、これを試しました:

$exp owner/owner schemas=tkcsdb directory=dumpdir dumpfile=dBaseName logfile=dBaseLog

そして、SQL Plus は以下を返します。

不明なパラメーター名「スキーマ」。パラメータの処理に失敗しました。エクスポートが正常に終了しませんでした。

それ以来、「スキーマ」を「スキーマ」に置き換えました(同じエラー)。「テーブル」を使用したかったのですが、それがどうなるかはわかりません。「tkcsdb」が探しているデータベースの名前である場合、私は 100% でさえありません。私が持っているすべてのデータベースをリストすることはできませんでした。

私がやりたいこと (MS SQL、MySQL、さらにはすべての IBM DB2 で実行したこと) は、Oracle で複製するのが非常に難しいようです。

タイトルと同様に、「データベース」を Oracle 11g XE からエクスポートして Oracle 10.2 にインポートするにはどうすればよいですか?

私は Windows 7 を使用しています。ターゲット マシンはある種の Linux Fedora です。

4

1 に答える 1

6

EXP と IMP は古いものです - どうしても必要な場合を除き、使用しないでください。新しい Oracle バージョンの一部の機能を処理できません。

最適なツールは、EXPDP と IMPDP (EXP datapump と IMP datapump の略) です。

残念ながら、データベース サーバー上でしか実行できないため、これらの使用は少し複雑です (任意のクライアント コンピューターから実行できる古いスタイルの EXP/IMP とは対照的です)。

したがって、スキーマを 11g ソース DB から 10g ターゲット DB に取得するには、次のことを行う必要があります。

  • 11g DB サーバーでターミナル セッションを開きます
  • バージョンを 10 に設定して expdp を実行します (10g サーバーにインポートできるようにします)。
  • 11gサーバーからのダンプ・ファイルを10gサーバーのdatapumpディレクトリにコピーします(「dpump」というディレクトリを探します)。
  • 10g DB サーバーでターミナル セッションを開きます
  • ダンプファイルで impdp を実行します

例:

expdp scott/tiger@db11g version=10.2 schemas=SCOTT dumpfile=SCOTT.dmp logfile=expdpSCOTT.log

impdp scott/tiger@db10g schemas=SCOTT dumpfile=SCOTT.dmp logfile=impdpSCOTT.log
于 2013-07-29T07:52:38.240 に答える