Data Pump 反映了整個(gè)導(dǎo)出/導(dǎo)入過(guò)程的完全革新。不使用常見(jiàn)的 SQL 命令,而是應(yīng)用專用 API(direct path api etc)
來(lái)以更快得多的速度加載和卸載數(shù)據(jù)。
1.Data Pump 導(dǎo)出 expdp
例子:
sql>create directory
dpdata1 as '/u02/dpdata1';
sql>grant read, write on directory dpdata1 to
ananda;
$expdp ananda/abc123 tables=CASES directory=DPDATA1
dumpfile=expCASES.dmp job_name=CASES_EXPORT
$expdp ananda/abc123
tables=CASES directory=DPDATA1
dumpfile=expCASES_%U.dmp parallel=4
job_name=Cases_Export
include/exclude
例子:
include=table:"in('DB','TS')"
或者include=table:"like
'%E%'"
或者include=function,package,procedure,table:"='EMP'"
或者exclude=SEQUENCE,TABLE:"IN
('EMP','DEPT')"
2.Data Pump 導(dǎo)入 expdp
1)從expdp中獲取數(shù)據(jù)源
exp.dmp
2)復(fù)制某個(gè)數(shù)據(jù)庫(kù)中的一個(gè)schema到另一個(gè)數(shù)據(jù)庫(kù)中。
3)
在同一個(gè)數(shù)據(jù)庫(kù)中把一個(gè)schema中所有的對(duì)象復(fù)制到另一個(gè)schema中。
例子:
1)impdp 的數(shù)據(jù)源是expdp
導(dǎo)出來(lái)的DMP文件
impdp ananda/abc123 directory=dpdata1 dumpfile=expCASES.dmp
job_name=cases_import
2)復(fù)制某個(gè)數(shù)據(jù)庫(kù)中的一個(gè)schema到另一個(gè)數(shù)據(jù)庫(kù)中。
--1.newwork_link為目標(biāo)數(shù)據(jù)庫(kù)建立的database_link,
(用戶test
需要grant exp_full_database to TEST; )
create public database link
TOLINK
connect to TEST identified by oracle
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.20.199)(PORT =
1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)';
--2.impdp在目標(biāo)數(shù)據(jù)庫(kù)服務(wù)器上執(zhí)行 只能低版本向高版本imp
impdp network_link=TOLINK
schemas=test remap_schema=test:link2
3)
在同一個(gè)數(shù)據(jù)庫(kù)中把一個(gè)schema中所有的對(duì)象復(fù)制到另一個(gè)schema中。
--1.創(chuàng)建連接自己的database
link:
create public database link system_self connect to system
identified by "system" using 'orcl';
數(shù)據(jù)庫(kù)鏈接已創(chuàng)建。
--2.復(fù)制hr
schema到test schema:
impdp system/system network_link=system_self
schemas=hr remap_schema=hr:test
一、創(chuàng)建邏輯目錄,該命令不會(huì)在操作系統(tǒng)創(chuàng)建真正的目錄,最好以system等管理員創(chuàng)建。
create directory dpdata1 as
'd:\test\dump';
二、查看管理理員目錄(同時(shí)查看操作系統(tǒng)是否存在,因?yàn)镺racle并不關(guān)心該目錄是否存在,如果不存在,則出錯(cuò))
select
* from dba_directories;
三、給scott用戶賦予在指定目錄的操作權(quán)限,最好以system等管理員賦予。
grant
read,write on directory dpdata1 to scott;
四、導(dǎo)出數(shù)據(jù)
1)按用戶導(dǎo)
expdp
scott/tiger@orcl schemas=scott dumpfile=expdp.dmp
DIRECTORY=dpdata1;
2)并行進(jìn)程parallel
expdp scott/tiger@orcl directory=dpdata1
dumpfile=scott3.dmp parallel=40 job_name=scott3
3)按表名導(dǎo)
expdp
scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp
DIRECTORY=dpdata1;
4)按查詢條件導(dǎo)
expdp scott/tiger@orcl directory=dpdata1
dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
5)按表空間導(dǎo)
expdp
system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp
TABLESPACES=temp,example;
6)導(dǎo)整個(gè)數(shù)據(jù)庫(kù)
expdp system/manager DIRECTORY=dpdata1
DUMPFILE=full.dmp FULL=y;
五、還原數(shù)據(jù)
1)導(dǎo)到指定用戶下
impdp scott/tiger
DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;
2)改變表的owner
impdp
system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept
REMAP_SCHEMA=scott:system;
3)導(dǎo)入表空間
impdp system/manager DIRECTORY=dpdata1
DUMPFILE=tablespace.dmp TABLESPACES=example;
4)導(dǎo)入數(shù)據(jù)庫(kù)
impdb system/manager
DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
5)追加數(shù)據(jù)
impdp system/manager
DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system
TABLE_EXISTS_ACTION=append;
Expdp/Impdp的相關(guān)參數(shù)
EXPDP命令行選項(xiàng)
1.
ATTACH
該選項(xiàng)用于在客戶會(huì)話與已存在導(dǎo)出作用之間建立關(guān)聯(lián).語(yǔ)法如下
ATTACH=[schema_name.]job_name
Schema_name用于指定方案名,job_name用于指定導(dǎo)出作業(yè)名.注意,如果使用ATTACH選項(xiàng),在命令行除了連接字符串和ATTACH選項(xiàng)外,不能指定任何其他選項(xiàng),示例如下:
Expdp
scott/tiger ATTACH=scott.export_job
2.
CONTENT
該選項(xiàng)用于指定要導(dǎo)出的內(nèi)容.默認(rèn)值為ALL
CONTENT={ALL | DATA_ONLY |
METADATA_ONLY}
當(dāng)設(shè)置CONTENT為ALL
時(shí),將導(dǎo)出對(duì)象定義及其所有數(shù)據(jù).為DATA_ONLY時(shí),只導(dǎo)出對(duì)象數(shù)據(jù),為METADATA_ONLY時(shí),只導(dǎo)出對(duì)象定義
Expdp scott/tiger
DIRECTORY=dump DUMPFILE=a.dump
CONTENT=METADATA_ONLY
3.
DIRECTORY
指定轉(zhuǎn)儲(chǔ)文件和日志文件所在的目錄
DIRECTORY=directory_object
Directory_object用于指定目錄對(duì)象名稱.需要注意,目錄對(duì)象是使用CREATE
DIRECTORY語(yǔ)句建立的對(duì)象,而不是OS 目錄
Expdp scott/tiger DIRECTORY=dump
DUMPFILE=a.dump
建立目錄:
CREATE DIRECTORY dump as
‘d:dump’;
查詢創(chuàng)建了那些子目錄:
SELECT * FROM dba_directories;
4.
DUMPFILE
用于指定轉(zhuǎn)儲(chǔ)文件的名稱,默認(rèn)名稱為expdat.dmp
DUMPFILE=[directory_object:]file_name
[,….]
Directory_object用于指定目錄對(duì)象名,file_name用于指定轉(zhuǎn)儲(chǔ)文件名.需要注意,如果不指定directory_object,導(dǎo)出工具會(huì)自動(dòng)使用DIRECTORY選項(xiàng)指定的目錄對(duì)象
Expdp
scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp
5.
ESTIMATE
指定估算被導(dǎo)出表所占用磁盤空間分方法.默認(rèn)值是BLOCKS
EXTIMATE={BLOCKS |
STATISTICS}
設(shè)置為BLOCKS時(shí),oracle會(huì)按照目標(biāo)對(duì)象所占用的數(shù)據(jù)塊個(gè)數(shù)乘以數(shù)據(jù)塊尺寸估算對(duì)象占用的空間,設(shè)置為STATISTICS時(shí),根據(jù)最近統(tǒng)計(jì)值估算對(duì)象占用空間
Expdp
scott/tiger TABLES=emp ESTIMATE=STATISTICS
DIRECTORY=dump
DUMPFILE=a.dump
6.
EXTIMATE_ONLY
指定是否只估算導(dǎo)出作業(yè)所占用的磁盤空間,默認(rèn)值為N
EXTIMATE_ONLY={Y |
N}
設(shè)置為Y時(shí),導(dǎo)出作用只估算對(duì)象所占用的磁盤空間,而不會(huì)執(zhí)行導(dǎo)出作業(yè),為N時(shí),不僅估算對(duì)象所占用的磁盤空間,還會(huì)執(zhí)行導(dǎo)出操作.
Expdp
scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y
7.
EXCLUDE
該選項(xiàng)用于指定執(zhí)行操作時(shí)釋放要排除對(duì)象類型或相關(guān)對(duì)象
EXCLUDE=object_type[:name_clause]
[,….]
Object_type用于指定要排除的對(duì)象類型,name_clause用于指定要排除的具體對(duì)象.EXCLUDE和INCLUDE不能同時(shí)使用
Expdp
scott/tiger DIRECTORY=dump DUMPFILE=a.dup EXCLUDE=VIEW
8.
FILESIZE
指定導(dǎo)出文件的最大尺寸,默認(rèn)為0,(表示文件尺寸沒(méi)有限制)
9.
FLASHBACK_SCN
指定導(dǎo)出特定SCN時(shí)刻的表數(shù)據(jù)
FLASHBACK_SCN=scn_value
Scn_value用于標(biāo)識(shí)SCN值.FLASHBACK_SCN和FLASHBACK_TIME不能同時(shí)使用
Expdp
scott/tiger DIRECTORY=dump DUMPFILE=a.dmp
FLASHBACK_SCN=358523
10.
FLASHBACK_TIME
指定導(dǎo)出特定時(shí)間點(diǎn)的表數(shù)據(jù)
FLASHBACK_TIME=”TO_TIMESTAMP(time_value)”
Expdp
scott/tiger DIRECTORY=dump DUMPFILE=a.dmp
FLASHBACK_TIME=
“TO_TIMESTAMP(’25-08-2004 14:35:00’,’DD-MM-YYYY
HH24:MI:SS’)”
11. FULL
指定數(shù)據(jù)庫(kù)模式導(dǎo)出,默認(rèn)為N
FULL={Y | N}
為Y時(shí),標(biāo)識(shí)執(zhí)行數(shù)據(jù)庫(kù)導(dǎo)出.
12.
HELP
指定是否顯示EXPDP命令行選項(xiàng)的幫助信息,默認(rèn)為N
當(dāng)設(shè)置為Y時(shí),會(huì)顯示導(dǎo)出選項(xiàng)的幫助信息.
Expdp
help=y
13. INCLUDE
指定導(dǎo)出時(shí)要包含的對(duì)象類型及相關(guān)對(duì)象
INCLUDE =
object_type[:name_clause] [,… ]
14.
JOB_NAME
指定要導(dǎo)出作用的名稱,默認(rèn)為SYS_XXX
JOB_NAME=jobname_string
15.
LOGFILE
指定導(dǎo)出日志文件文件的名稱,默認(rèn)名稱為export.log
LOGFILE=[directory_object:]file_name
Directory_object用于指定目錄對(duì)象名稱,file_name用于指定導(dǎo)出日志文件名.如果不指定directory_object.導(dǎo)出作用會(huì)自動(dòng)使用DIRECTORY的相應(yīng)選項(xiàng)值.
Expdp
scott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log
16.
NETWORK_LINK
指定數(shù)據(jù)庫(kù)鏈名,如果要將遠(yuǎn)程數(shù)據(jù)庫(kù)對(duì)象導(dǎo)出到本地例程的轉(zhuǎn)儲(chǔ)文件中,必須設(shè)置該選項(xiàng).
17.
NOLOGFILE
該選項(xiàng)用于指定禁止生成導(dǎo)出日志文件,默認(rèn)值為N.
18.
PARALLEL
指定執(zhí)行導(dǎo)出操作的并行進(jìn)程個(gè)數(shù),默認(rèn)值為1
19.
PARFILE
指定導(dǎo)出參數(shù)文件的名稱
PARFILE=[directory_path] file_name
20.
QUERY
用于指定過(guò)濾導(dǎo)出數(shù)據(jù)的where條件
QUERY=[schema.] [table_name:]
query_clause
Schema
用于指定方案名,table_name用于指定表名,query_clause用于指定條件限制子句.QUERY選項(xiàng)不能與
CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等選項(xiàng)同時(shí)使用.
Expdp
scott/tiger directory=dump dumpfiel=a.dmp
Tables=emp query=’WHERE
deptno=20’
21. SCHEMAS
該方案用于指定執(zhí)行方案模式導(dǎo)出,默認(rèn)為當(dāng)前用戶方案.
22.
STATUS
指定顯示導(dǎo)出作用進(jìn)程的詳細(xì)狀態(tài),默認(rèn)值為0
23.
TABLES
指定表模式導(dǎo)出
TABLES=[schema_name.]table_name[:partition_name][,…]
Schema_name用于指定方案名,table_name用于指定導(dǎo)出的表名,partition_name用于指定要導(dǎo)出的分區(qū)名.
24.
TABLESPACES
指定要導(dǎo)出表空間列表
25.
TRANSPORT_FULL_CHECK
該選項(xiàng)用于指定被搬移表空間和未搬移表空間關(guān)聯(lián)關(guān)系的檢查方式,默認(rèn)為N.
當(dāng)設(shè)置為Y時(shí),導(dǎo)出作用會(huì)檢查表空間直接的完整關(guān)聯(lián)關(guān)系,如果表空間所在表空間或其索引所在的表空間只有一個(gè)表空間被搬移,將顯示錯(cuò)誤信息.當(dāng)設(shè)置為N時(shí),
導(dǎo)出作用只檢查單端依賴,如果搬移索引所在表空間,但未搬移表所在表空間,將顯示出錯(cuò)信息,如果搬移表所在表空間,未搬移索引所在表空間,則不會(huì)顯示錯(cuò)誤信息.
26.
TRANSPORT_TABLESPACES
指定執(zhí)行表空間模式導(dǎo)出
27.
VERSION
指定被導(dǎo)出對(duì)象的數(shù)據(jù)庫(kù)版本,默認(rèn)值為COMPATIBLE.
VERSION={COMPATIBLE | LATEST |
version_string}
為COMPATIBLE時(shí),會(huì)根據(jù)初始化參數(shù)COMPATIBLE生成對(duì)象元數(shù)據(jù);為L(zhǎng)ATEST時(shí),會(huì)根據(jù)數(shù)據(jù)庫(kù)的實(shí)際版本生成對(duì)象元數(shù)據(jù).version_string用于指定數(shù)據(jù)庫(kù)版本字符串.調(diào)用EXPDP
使用EXPDP工具時(shí),其轉(zhuǎn)儲(chǔ)文件只能被存放在DIRECTORY對(duì)象對(duì)應(yīng)的OS目錄中,而不能直接指定轉(zhuǎn)儲(chǔ)文件所在的OS目錄.因此,
使用EXPDP工具時(shí),必須首先建立DIRECTORY對(duì)象.并且需要為數(shù)據(jù)庫(kù)用戶授予使用DIRECTORY對(duì)象權(quán)限.
轉(zhuǎn)自:
http://www.cnblogs.com/wbzhao/archive/2012/04/06/2434702.html
posted on 2013-01-30 16:08
wilsonyq 閱讀(4211)
評(píng)論(0) 編輯 收藏 所屬分類:
DB