EXPDP示例解析Word格式.docx
《EXPDP示例解析Word格式.docx》由会员分享,可在线阅读,更多相关《EXPDP示例解析Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
![EXPDP示例解析Word格式.docx](https://file1.bdocx.com/fileroot1/2022-11/16/7926852a-1507-4a22-afa9-e736ee0db6aa/7926852a-1507-4a22-afa9-e736ee0db6aa1.gif)
createdirectorybackupas'
/u01/backup'
;
Directorycreated.
(3)注意事项:
我这里是使用sys用户来进行操作的。
如果是其他用户,那么就需要对这个用户进行赋权。
grantcreateanydirectorytosystem;
Grantsucceeded.
select*fromdba_sys_privswheregrantee='
SYSTEM'
granteeprivilegeadm
----------------------------------------------------------------------
systemcreateanydirectoryno
systemglobalqueryrewriteno
systemcreatematerializedviewno
systemcreatetableno
systemunlimitedtablespaceyes
systemselectanytableno
如果是其他用户使用sys创建的目录,也需要进行赋权,如:
grantread,writeondirectorybackuptoSYSTEM;
2.创建测试数据
我们需要演示expdp/impdp的一些功能,所以需要创建2个用户和对应的表空间,并且创建一些测试的数据。
SQL代码如下:
createtablespacedavedatafile'
/u01/app/oracle/oradata/dave/dave01.dbf'
size50m;
createtablespacebldatafile'
/u01/app/oracle/oradata/dave/bl01.dbf'
createuserdaveidentifiedbydavedefaulttablespacedavetemporarytablespacetemp;
createuserblidentifiedbybldefaulttablespacebltemporarytablespacetemp;
grantread,writeondirectorybackuptodave,bl;
grantconnect,resourcetodave,bl;
conndave/dave;
Connected.
createtabledave(idnumber,namevarchar2(10));
Tablecreated.
begin
2foriin1..10loop
3insertintodavevalues(i,'
dave'
);
4endloop;
5end;
6/
PL/SQLproceduresuccessfullycompleted.
commit;
Commitcomplete.
select*fromdave;
IDNAME
--------------------
1dave
2dave
3dave
4dave
5dave
6dave
7dave
8dave
9dave
10dave
10rowsselected.
connbl/bl;
createtablebl(idnumber,namevarchar2(10));
2foriin10..20loop
3insertintoblvalues(i,'
bl'
5commit;
6end;
7/
select*frombl;
10bl
11bl
12bl
13bl
14bl
15bl
16bl
17bl
18bl
19bl
20bl
11rowsselected.
3.开始测试
3.1FULL=Y全库导出
(1)不指定Job_name
[oracle@qs-dmm-rh2~]$expdp/'
/assysdba/'
directory=backupfull=ydumpfile=fullexp.dmplogfile=fullexp.logparallel=2;
--注意使用sys的格式,还有full=y导出的是非sys和system用户的对象。
Export:
Release10.2.0.4.0-ProductiononFriday,18March,201115:
05:
54
Copyright(c)2003,2007,Oracle.Allrightsreserved.
Connectedto:
OracleDatabase10gEnterpriseEditionRelease10.2.0.4.0-Production
WiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptions
Starting"
SYS"
."
SYS_EXPORT_FULL_02"
:
'
/********ASSYSDBA'
directory=backupfull=ydumpfile=fullexp.dmplogfile=fullexp.logparallel=2
EstimateinprogressusingBLOCKSmethod...
ProcessingobjecttypeDATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
TotalestimationusingBLOCKSmethod:
18.68MB
……
Mastertable"
successfullyloaded/unloaded
******************************************************************************
DumpfilesetforSYS.SYS_EXPORT_FULL_02is:
/u01/backup/fullexp.dmp
Job"
successfullycompletedat15:
07:
27
expdp/impd是Job形式的,会调用DBMS_DATAPUMPPL/SQL包,这个API提供高速的导出导入功能;
还有DBMS_METADATAPL/SQL包,这个包是将metadata(对象定义)存储在XML里。
所有的进程都能load和unload这些metadata。
在备份期间,会自动的生成一张与Job_name相同名称的表,该表在备份期间保存metadata数据。
当备份技术后,自动删除该表。
我们可以使用SQL:
SQL>
select*FROMdba_datapump_jobs
查看Job的信息。
如果意外情况导致备份Job失败,那么对应保存metadata的表,还是会存在。
这个时候,如果查询dba_datapump_jobs,会显示该Job为notrunning。
这时候,我们只需要drop掉对应的表,在查询dba_datapump_jobs。
就没有记录了。
这个也是一种处理方法。
在开始我就说了,这里没有指定Jobname。
所以系统自动给我们生成了一个:
SYS_EXPORT_FULL_02。
默认是从SYS_EXPORT_FULL_01开始,因为我之前有一个没有运行的Job,所以这里从2开始了。
(2)指定Job_name
directory=backupfull=ydumpfile=fullexp3.dmplogfile=fullexp3.logparallel=2job_name=daveJob;
--在这里我指定了Job_name
29:
56
DAVEJOB"
directory=backupfull=ydumpfile=fullexp3.dmplogfile=fullexp3.logparallel=2job_na