Dmpファイルからデータベースを作成するにはどうすればよいですか?システムに同じ構造の既存のデータベースがないため、ジョブ、イベント、テーブルなどで完全でなければなりません。
E:ドライブにdmpとログファイルを配置しました
インポートユーティリティを試しました
E:/>impdp system/tiger@oratest FILE=WB_PROD_FULL_20MAY11.dmp
しかし、私は
invalid argument value
bad dump file specification
unable to open dump file "E:\app\Vensi\admin\oratest\dpdump\WB_PROD_F
ULL_20MAY11.dmp" for read
unable to open file
unable to open file
(OS 2) The system cannot find the file specified.
Windowsエクスプローラーでdmpファイル(Linuxサーバーから取得)がクラッシュダンプファイルとして表示されている場合
この問題を解決する方法がわかりません。この問題を解決するのを手伝ってください。
私はOracleの完全な初心者です...
データベースはどのようにエクスポートされましたか?
exp
を使用してエクスポートされ、完全なスキーマがエクスポートされた場合、
ユーザーを作成します。
create user <username> identified by <password> default tablespace <tablespacename> quota unlimited on <tablespacename>;
権利を付与します。
grant connect, create session, imp_full_database to <username>;
imp
を使用してインポートを開始します。
imp <username>/<password>@<hostname> file=<filename>.dmp log=<filename>.log full=y;
expdp
を使用してエクスポートされた場合、impdp
を使用してインポートを開始します。
impdp <username>/<password> directory=<directoryname> dumpfile=<filename>.dmp logfile=<filename>.log full=y;
エラーログを見ると、ディレクトリが指定されていないようであるため、Oracleはデフォルトディレクトリ(E:\app\Vensi\admin\oratest\dpdump\
)でdmp
ファイルを見つけようとします。
エクスポートファイルを上記のパスに移動するか、dmp
ファイルが存在するパスを指すディレクトリオブジェクトを作成し、オブジェクト名を上記のimpdp
コマンドに渡します。
このすべてのコードは* .batファイルに入れられ、一度にすべて実行されます。
Oracleでユーザーを作成するための私のコード。 crate_drop_user.sqlファイル
drop user "USER" cascade;
DROP TABLESPACE "USER";
CREATE TABLESPACE USER DATAFILE 'D:\ORA_DATA\ORA10\USER.ORA' SIZE 10M REUSE
AUTOEXTEND
ON NEXT 5M EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO
/
CREATE TEMPORARY TABLESPACE "USER_TEMP" TEMPFILE
'D:\ORA_DATA\ORA10\USER_TEMP.ORA' SIZE 10M REUSE AUTOEXTEND
ON NEXT 5M EXTENT MANAGEMENT LOCAL
UNIFORM SIZE 1M
/
CREATE USER "USER" PROFILE "DEFAULT"
IDENTIFIED BY "user_password" DEFAULT TABLESPACE "USER"
TEMPORARY TABLESPACE "USER_TEMP"
/
alter user USER quota unlimited on "USER";
GRANT CREATE PROCEDURE TO "USER";
GRANT CREATE PUBLIC SYNONYM TO "USER";
GRANT CREATE SEQUENCE TO "USER";
GRANT CREATE SNAPSHOT TO "USER";
GRANT CREATE SYNONYM TO "USER";
GRANT CREATE TABLE TO "USER";
GRANT CREATE TRIGGER TO "USER";
GRANT CREATE VIEW TO "USER";
GRANT "CONNECT" TO "USER";
GRANT SELECT ANY DICTIONARY to "USER";
GRANT CREATE TYPE TO "USER";
ファイルimport.batを作成して、次の行を追加します。
SQLPLUS SYSTEM/systempassword@ORA_alias @"crate_drop_user.SQL"
IMP SYSTEM/systempassword@ORA_alias FILE=user.DMP FROMUSER=user TOUSER=user GRANTS=Y log =user.log
あるユーザーから別のユーザーにインポートする場合は注意してください。たとえば、user1という名前のユーザーがuser2にインポートする場合、すべての権限が失われる可能性があるため、再作成する必要があります。
頑張って、イヴァン
@ sathyajith-bhat応答のimpdpコマンド例を使用している場合:
impdp <username>/<password> directory=<directoryname> dumpfile=<filename>.dmp logfile=<filename>.log full=y;
必須パラメーターdirectoryを使用し、次のように作成して付与する必要があります。
CREATE OR REPLACE DIRECTORY DMP_DIR AS 'c:\Users\USER\Downloads';
GRANT READ, WRITE ON DIRECTORY DMP_DIR TO {USER};
または、定義済みのいずれかを使用します。
select * from DBA_DIRECTORIES;
私のOracle Express 11g R2には、デフォルトの名前付きDATA_PUMP_DIR({inst_dir}\app\Oracle/admin/xe/dpdump /にあります)あなたのユーザーのために。