10G資料泵載入命令expdp/impdp的引數說明

jolly10發表於2008-05-09
10G資料泵載入命令expdp/impdp的引數說明[@more@]

在10.2.0.1版本中預設已建立一些directory。

SQL> select * from v$version;

BANNER
---------------------------------------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production

SQL> select * from dba_directories;

OWNER DIRECTORY_NAME DIRECTORY_PATH
---------- --------------- ------------------------------------------------------------
SYS ADMIN_DIR /ade/aime_10.2_lnx_push/oracle/md/admin
SYS SUBDIR /home/oracle/product/10.2.0/demo/schema/order_entry//2002/Sep
SYS DATA_FILE_DIR /home/oracle/product/10.2.0/demo/schema/sales_history/
SYS WORK_DIR /ade/aime_10.2_lnx_push/oracle/work
SYS LOG_FILE_DIR /home/oracle/product/10.2.0/demo/schema/log/
SYS MEDIA_DIR /home/oracle/product/10.2.0/demo/schema/product_media/
SYS XMLDIR /home/oracle/product/10.2.0/demo/schema/order_entry/
SYS DATA_PUMP_DIR /home/oracle/product/10.2.0/rdbms/log/


8 rows selected.


SQL> create directory data_pump_dir1 as '/home/oracle/datapump1';

Directory created.

SQL> create directory data_pump_dir2 as '/home/oracle/datapump2';

Directory created.

--建立使用者賦予目錄許可權
SQL> grant connect,resource to susan identified by susan;

Grant succeeded.

SQL> grant read,write on directory data_pump_dir1 to susan;

Grant succeeded.

SQL> grant read,write on directory data_pump_dir2 to susan;

Grant succeeded.

--賦予expdp,impdp的許可權
SQL> grant exp_full_database,imp_full_database to susan;

Grant succeeded.


EXPDP

引數說明:
1.與檔案和目錄有關的引數:
包括:DIRECTORY,DUMPIFLE,FILESIZE,PARFILE,LOGIFLE,NOLOGIFLE和COMPRESSION。

DIRECTORY引數用法:
--直接使用DIRECTORY引數,如
expdp susan/susan directory=data_dump_dir1 dumpfile=susan01.dmp

--DIRECTORY:FILE表示法,如
expdp susan/susan dumpfile=data_pump_dir1:test1.dmp,data_pump_dir2:test2.dmp;

expdp susan/susan dumpfile=data_pump_dir1:test1.dmp,data_pump_dir2:test2.dmp logfile=data_pump_dir1:test1.log
--DATA_PUMP_DIR環境變數:
export DATA_PUMP_DIR=DATA_PUMP_DIR1 --這裡我名字必須大寫,就奇怪了,小寫還不行。
expdp susan/susan dumpfile=susan.dmp

DIRECTORY的優先次序:檔案有關的引數(logfile,dumpfile),這種情況下目錄物件與檔名用冒號(:)分開
>
指定的DIRECTORY引數
>
DATA_DUMP_DIR環境變數
>
預設的基於伺服器的目錄物件DATA_DUMP_DIR

DUMPFILE引數的用法:
代替exp的file引數,可以用%U變數擴充套件成多個檔名,用','號也可以提供多個檔案。
FILESIZE引數的用法:
指定轉儲檔案的尺寸,預設以位元組為單位,如轉儲檔案到達此限制,作業將停止
PARFILE引數的用法:
即引數檔案來代替命令列來直接輸入
LOGFILE和NOLOGFILE
不指定logfile會自動建立一個名為export.log的日誌檔案,用nologfile可以禁止日誌產生。
COMMPRESSION引數:
壓縮與否,值為METADATA_ONLY或NONE,沒有辦法來指定壓縮匯出資料本身

2.與匯出方式有關的引數:
包括:FULL,SCHEMAS,TABLES,TABLESPACE,TRANSPORT_TABLESPACE和TRANSPORT_FULL_CHECK
其它引數都好理解,TRANSPORT_FULL_CHECK引數是當匯出作業時將檢查資料的相關性,如值為Y,檢查不透過時匯出也失
敗。
3.匯出過濾引數:
CONTENT:有三個值:ALL,DATA_ONLY和METADATA_ONLY
EXCLUDE和INCLUDE:此兩引數互斥,使用格式為 EXCLUDE/INCLUDE=object_type[:name_clause],如exclude=TABLE:"LIKE 'EMP%'"或

直接exclude=index
expdp susan/susan dumpfile=su.dmp exclude=SCHEMA:"='SAN'" --注意雙引號要用斜槓轉義
QUERY:如QUERY=OE.ORDER:"WHERE ORDER_ID > 1000000"
SAMPLE:允許指定範圍從0.000001到100的一個百分數,格式為[[schema_name.]table_name]sample_percent
4.估算引數:
ESTIMATE:值可為BLOCKS或STATISTICS
BLOCKS是指根據塊的空間估算其匯出作類的空間需求。
STATISTICS是根據每個表計算過的統計資料來估算空間需求,當表剛分析過後,用此引數才會較準。
ESTIMATE_ONLY:值為Y或N,使用此引數可以先估算匯出作業將需要的空間,而不啟動匯出作業。
5.網路連結引數
NETWORK_LINK:可以從伺服器中啟動一個匯出作業,將遠端資料庫的資料匯出到你啟動資料泵取匯出作業的轉儲檔案中。
6.加密引數:
ENCRYPTION_PASSWORD:對轉儲的檔案進行加密
7.與作業有關的引數
JOB_NAME:給匯出作業提供一個明確的名字,否則oracle會分配一個預設名字
STATUS:如執行長時間的匯出作業,此引數可以按照所指定的時間間隔提供更新的狀態。單位是秒,如果想每分鐘顯示匯出狀態就用

status=60
FLASHBACK_SCN,FLASHBACK_TIME
PARALLEL:使用多執行緒
ATTACH:將你的資料泵取客戶機會話加入到一個執行的作業中,並使你進行互動方式。此引數只能與使用者名稱/密碼組合一起使用。
8.互動方式下的匯出命令
ADD_FILE:給轉儲檔案集合增加一個轉儲檔案
CONTINUE_CLIENT:如果作業暫停的話重新啟動
EXIT_CLIETN:退出客戶機會話並恢復作業執行
HELP:幫助命令
KILL_JOB:釋放並刪除作業
PARALLEL:改變當前作業的活動工程式的數量
START_JOB:啟動或重新恢復當前的作業
STATUS:設定作業監控的頻率(以秒為單位)
STOP_JOB:關閉作業的執行


IMPDP

引數說明:
1.與檔案和目錄有關的引數:
包括:DIRECTORY,DUMPIFLE,PARFILE,LOGIFLE,NOLOGIFLE和EXPDP相同,另有一個SQLFILE,此引數類似於舊的IMP的INDEXFILE引數,用

在希望從轉儲檔案中提取DDL。
如:impdp susan/susan directory=data_pump_dir2 dumpfile=test2.dmp sqlfile=data_pump_dir1:test2.sql schemas=susan
就是指將屬於 susan模式的所有DDL寫入位於data_pump_dir1的test2.sql檔案中,當然在data_pump_dir2中必須有test2.dmp的轉儲文

件。

另一個重要的與檔案有關的引數是REUSE_DATAFILES,此引數告訴資料泵取在匯入過程中是否應該使用已有的資料檔案來建立表空間,

如果指定為Y,則資料泵取匯入程式將改寫已有的資料檔案。
2.過濾引數:
INCLUDE,EXCLUDE的用法與EXPDP相同
注意,如果使用CONTENT=DATA_ONLY時,則在匯入過程中不用使用EXCLUDE和INCLUDE引數。
IMPDP可以使用QUERY引數在匯入中過濾資料(以前只有在EXP中過濾資料,IMP不行).
可以使用TABLE_EXISTS_ACTINS引數告訴ORACLE當表已經存在時做什麼,提供4個不同的值:
--SKIP(預設),跳過
--APPEND,將值追加到表中
--TRUNCATE,已truncate再重新裝載新值
--REPLACE,重新建立此表,並重新裝載
3.與作業有關的引數:
JOB_NAME,STATUS,PARALLEL引數與EXPDP相同
4.與匯入方式有關的引數
FULL,SCHEMAS,TABLES,TABLESPACE,TRANSPORT_TABLESPACE和TRANSPORT_FULL_CHECK的用法和EXPDP差不多如使用NETWORK_LINK引數,

則TRANSPORT_FULL_CHECK只適合於表空間的傳送。
5.重新對映引數
REMAP_SCHEMA,REMAP_DATEFILE,REMAP_TABLESPACE
儘管在exp/imp中有重新對映的能力(FROMUSER/TOUSER),但是不能重新對映資料檔案和表空間
如:impdp system/manager dumpfile=newdump.dmp remap_schema=hr:oe
6.轉換引數
TRANSFORM,此引數的語法:TRANSFORM = transform_name:value[:object_type]
其中transform_name有四個選項:segment attributes,storage,oid,pctspace
--segment attributes:段屬性包括物理屬性、儲存屬性、表空間和日誌。
--storage:可以使用storage=y(預設)說明只取物件的儲存屬性作為匯入作業的一部分。
--oid:如果指定oid=Y(預設),則在匯入過程中將分配一個新的oid給物件表。
--pctspace:透過提供一個正數作為該轉換的值,可以增加物件的分配尺寸,並且資料檔案尺寸等於pctspace的值(按百分比)
value:transform_name的值,transform_name為segment attributes,storage,oid時值可為Y/N,pctspace為數值
object_type的值可以表、索引、表空間、型別、叢集、約束等物件。
一個例子:
impdp hr/hr tables=hr.employees directory=dpump_dir1 dumpfile=hr_emp.dmp transform=segment_attributes:N:table
表示在匯入時不匯入任何表的已有儲存屬性
7.網路連結引數
NETWORK_LINK,可以透過網路執行匯入而不使用轉儲檔案。
impdp hr/hr tables=employees directory=dpump+dir1 schemas=scott exclude=constraint
8.閃回引數
FLASHBACK_TIME,FLASHBACK_SCN


監控EXPDP/IMPDP作業
可以使用DBA_DATAPUBMP_JOBS和DBA_DATAPUMP_SESSIONS檢視來顯示資料泵取作業的資訊。
select * from DBA_DATAPUBMP_JOBS;
select sid,serial# from v$session s,dba_datapump_sessions d where s.saddr=d.saddr;
另也可以透過v$session_longops檢視來監控長期執行的會話。

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

相關文章