web-dev-qa-db-ja.com

Oracleフルダンプファイルを新規Oracleインストールにインポートする

フルエクスポートオプションを使用して、AIX Oracle 9.2インストールで作成されたOracleダンプフィルを、Windows 2008 R2 x64上のWindows Oracle 10.2.0.4にインポートしています。

ファイルをクリーンなデータベースにインポートしたい。ただし、最初にデータベースを作成しない場合、作成するものはありません。データベースを作成すると、FULL = Yを指定した場合でも、ユーザーとテーブルスペースが不足しているという多くのエラーがスローされます。

このダンプをクリーンなOracleインストールにインポートするにはどうすればよいですか?

エクスポートはシステムの下で実行され、インポートも実行されました。インデックスファイルには、ユーザーとテーブルスペースをインポートするステートメントが含まれていませんが、元のファイルでフルインポートを実行すると、IMPはTABLESPACESを作成しようとします(パスが正しくないため、変更する必要があります)。そして私はそれを知っています)しかし、それはユーザーを作成しようとするのではなく、それらが存在しないと不平を言うだけです。

実際のエクスポートコマンドユーザーは次のとおりです。

exp <a_User>/<a_Password> FULL=Y FILE=/PATHHERE/oradata/Export/expdat.dmp log=exp`date + %d%m%y.%H%M%S`.log consistent=y
7
Alexandre Sousa

最終的に、すべてのユーザーとテーブルスペースをリストする手順を実行し、ターゲットデータベースでそれらを再作成し、インポートを実行するときにDESTROY = Yスイッチを使用しました。これは私の問題を解決しました。

2
Alexandre Sousa

古いimpメソッドを使用している場合は、最初にユーザーとテーブルスペースを作成する必要があります。これには、許可、データベースリンク、および使用している可能性のあるすべてのアドバンストキューが含まれます。サンプルスクリプトは、Windowsでは次のようになります。imp a_DBA_user/apassword LOG = C:\ dump\logs\import.log file = user01.dmp fromuser = user_name touser = user_name

新しいdatapumpメソッドは見事に機能します。ユーザーを作成する必要はありませんが、オリジナルにあるカスタムテーブルスペースを作成します。

サンプルのデータポンプ呼び出しでは、元のデータベースとディレクトリへのデータベースリンクを作成する必要があります。これはディレクトリを作成します

CREATE OR REPLACE DIRECTORY 
DATA_PUMP_DIR AS 
'C:\app\Oracle\product\11.2.0\dbhome_1\rdbms\log\';


GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO EXP_FULL_DATABASE;

GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO auser;

GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO IMP_FULL_DATABASE;

インポートするスクリプトで、これらの変数を設定しますNLS_LANG

Oracle_SID =データベース名

impdp a_user_who_exists/your database name directory = DATA_PUMP_DIR network_link = original database name schemas = user1、user2 LOGFILE = DataPump.log TABLE_EXISTS_ACTION = REPLACE

3
kevinsky

コマンドプロンプトでこれを試してください:

cd \
imp user_name/password file=path+dump name full=y

このような:

imp ccs_status/ccs file=D:\ccs_status.dmp full=y
1
Zaid Ahmad