資料庫泵(expdp/impdp)匯入匯出流程

zhangsharp20發表於2014-08-26

一、 資料庫的匯出(expdp

1. 建立預設匯出目錄

SQL>create directory [dirname] as ‘[dirpath]’;

2. 賦予指定使用者在此目錄的讀寫許可權

SQL>GRANT READ, WRITE ON DIRECTORY [dirname] to [dbuser];

3. 使用expdp匯出資料庫

匯出完整schema

> expdp [username/passwd] DUMPFILE=[dmpname].dmp DIRECTORY=[DIRECTORY_NAME] SCHEMAS=[schema_name]

匯出除表以外的部分資料物件

可透過exclude引數排除無需匯出的資料物件,如:

>expdp [username/passwd] DUMPFILE=[dmpname].dmp DIRECTORY=[DIRECTORY_NAME] logfile=[logname.log] exclude=[object_type]:”in (‘name_clause’,’ name_clause’,…)”, [object_type],…

example:

>expdp scott/tiger directory=dump_dir dumpfile=exc1.dmp logfile=exc1.log exclude=table:\”in \(\‘EMP\’,\’DEPT\’\)\”,view

其中單引號中的內容必須用大寫才能生效

其他資料物件以此類推

匯出若干張表和若干張資料物件

>expdp [username/passwd] DUMPFILE=[dmpname].dmp DIRECTORY=[DIRECTORY_NAME] logfile=[logname.log] include=[object_type]:”in (‘name_clause’,’name_clause’,…)”,[object_type],…

example:
>expdp scott/tiger directory=dump_dir dumpfile=exc1.dmp logfile=exc1.log include=table:\ “in (\‘EMP\’,\’DEPT\’\)\”,view:\”in \(\‘V\_EMP\’\)\”,procedure

二、將匯出的檔案透過SCP傳到需要匯入的伺服器上

example: 


>scp * oracle@192.168.1.52:/data/dpdump


三、 將dmp檔案匯入到指定庫中

1. 建立預設匯出目錄

SQL>create directory [dirname] as ‘[dirpath]’;

2. 賦予指定使用者在此目錄的讀寫許可權

SQL>GRANT READ, WRITE ON DIRECTORY [dirname] to [dbuser];

3. 使用impdp工具匯入

匯入完整schema

DBA許可權登陸,指定schema進行全庫匯入

>impdp [dba_user/passwd] directory=[DIRECTORY_NAME]dumpfile=[dumpfile_name].dmp logfile=[logfile_name].log schemas=[schema_name]

如果想要更新已經存在的表則可以進行如下操作

> impdp [dba_user/passwd] directory=[DIRECTORY_NAME]dumpfile=[dumpfile_name].dmp logfile=[logfile_name].log schemas=[schema_name] table_exists_action=replace[truncate/append/skip]

匯入除表以外的部分資料物件

>impdp [dba_user/passwd] directory=[DIRECTORY_NAME]dumpfile=[dumpfile_name].dmp logfile=[logfile_name].log schemas=[schema_name] exclude=table, [object_type]:”in (‘name_clause’),(‘name_clause’),…”,…

 

example

>impdp system/oracle directory= dump_dir dumpfile=fulldb.dmp logfile=full_imp.log schemas=scott exclude =table,view:\”in \(\‘V\_BONUS\’\)\”

匯入若干張表和若張資料物件

>impdp [dba_user/passwd] directory=[DIRECTORY_NAME]dumpfile=[dumpfile_name].dmp logfile=[logfile_name].log schemas=[schema_name] include=[object_type]:”in (‘name_clause’),(‘name_clause’),…”, [object_type]:”in (‘name_clause’),(‘name_clause’),…”,…

 

example

> impdp system/oracle directory=dump_dir dumpfile=fulldb.dmp logfile=full_imp.log schemas=scott include=table:\"in \(\'EMP\',\'DEPT\'\)\",view:\"in \(\'V\_EMP\',\'V\_DEPT\'\)\"

四、注意事項

1. 如果匯出的是指定模式下所有的資料對像,則想獲得指定的資料物件時需在impdp中進行引數指定。

2. 如果匯出的是指定模式下的指定的資料物件,則impdp時無需指定可選引數。

 

 補充:

1. 僅匯出資料庫結構

impdp system/oracle directory=dump_dir dumpfile=fulldb.dmp logfile=full_imp.log schemas=scott content=metadata_only

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29802484/viewspace-1257986/,如需轉載,請註明出處,否則將追究法律責任。

相關文章