使用Oracle 10g数据泵使用详解Word下载.docx
《使用Oracle 10g数据泵使用详解Word下载.docx》由会员分享,可在线阅读,更多相关《使用Oracle 10g数据泵使用详解Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
在执行过程中,可以拿下Ctrl+C组合键,退出当前交互模式,退出之后,导出操作不会停止,这不同于Oracle以前的EXP。
以前的EXP,如果退出交互式模式,就会出错终止导出任务。
在Oracle10中,由于EXPDP是数据库内部定义的任务,已经与客户端无关。
退出交互之后,会进入export的命令行模式,此时支持status等查看命令:
Export>
status
如果想停止改任务,可以发出stop_job命令
stop_job
接下来可以通过命令行再次连接到这个任务
\expdptest/test@acfattach=expfull
通过start_job命令重新启动导出
start_job
4、EXPDP排出部分对象的导出
在EXPDP的帮助文件中,可以看到存在EXCLUDE和INCLUDE参数
这个两个参数文档中介绍的命令格式存在问题,这个两个参数的正确用法是:
EXCLUDE=OBJECT_TYPE[:
name_clause][,...]
INCLUDE=OBJECT_TYPE[:
name_clause][,...]
示例:
expdp
<
other_parameters>
schema=scottexclude=sequence,table:
"
in('
EMP'
'
DEPT'
)"
impdp
schema=scott
include=function,package,procedure,table:
='
有了这些还不够,由于命令中包含了多个特殊字符,在不同的操作系统下需要通过转义字符才能使上面的命令顺利执行
EXCLUDE=TABLE:
\"
IN('
BIGTALE'
)\"
EXPDP和IMPDP使用说明
OracleDatabase10g引入了最新的数据泵(DataDump)技术,使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个oracle数据库中.
数据泵导出导入(EXPDP和IMPDP)的作用
1、实现逻辑备份和逻辑恢复.
2、在数据库用户之间移动对象.
3、在数据库之间移动对象
4、实现表空间搬移.
数据泵导出导入与传统导出导入的区别:
在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IMPDP时应该注意的事项;
EXP和IMP是客户段工具程序,它们既可以在客户端使用,也可以在服务器段使用.
EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用
IMP只适用于EXP导出文件,不适用于EXPDP导出文件;
IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件.
数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式.
EXPDP命令行选项
1.ATTACH
该选项用于在客户会话与已存在导出作用之间建立关联.语法如下
ATTACH=[schema_name.]job_name
Schema_name用于指定方案名,job_name用于指定导出作业名.注意,如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何其他选项,示例如下:
Expdpscott/tigerATTACH=scott.export_job
2.CONTENT
该选项用于指定要导出的内容.默认值为ALL
CONTENT={ALL|DATA_ONLY|METADATA_ONLY}
当设置CONTENT为ALL时,将导出对象定义及其所有数据.为DATA_ONLY时,只导出对象数据,为METADATA_ONLY时,只导出对象定义
Expdpscott/tigerDIRECTORY=dumpDUMPFILE=a.dump
CONTENT=METADATA_ONLY
3.DIRECTORY
指定转储文件和日志文件所在的目录
DIRECTORY=directory_object
Directory_object用于指定目录对象名称.需要注意,目录对象是使用CREATEDIRECTORY语句建立的对象,而不是OS目录
Expdpscott/tigerDIRECTORY=dumpDUMPFILE=a.dump
建立目录:
CREATEDIRECTORYdumpas‘d:
dump’;
查询创建了那些子目录:
SELECT*FROMdba_directories;
4.DUMPFILE
用于指定转储文件的名称,默认名称为expdat.dmp
DUMPFILE=[directory_object:
]file_name[,….]
Directory_object用于指定目录对象名,file_name用于指定转储文件名.需要注意,如果不指定directory_object,导出工具会自动使用DIRECTORY选项指定的目录对象
Expdpscott/tigerDIRECTORY=dump1DUMPFILE=dump2:
a.dmp
5.ESTIMATE
指定估算被导出表所占用磁盘空间分方法.默认值是BLOCKS
EXTIMATE={BLOCKS|STATISTICS}
设置为BLOCKS时,oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间,设置为STATISTICS时,根据最近统计值估算对象占用空间
Expdpscott/tigerTABLES=empESTIMATE=STATISTICS
DIRECTORY=dumpDUMPFILE=a.dump
6.EXTIMATE_ONLY
指定是否只估算导出作业所占用的磁盘空间,默认值为N
EXTIMATE_ONLY={Y|N}
设置为Y时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为N时,不仅估算对象所占用的磁盘空间,还会执行导出操作.
Expdpscott/tigerESTIMATE_ONLY=yNOLOGFILE=y
7.EXCLUDE
该选项用于指定执行操作时释放要排除对象类型或相关对象
EXCLUDE=object_type[:
name_clause][,….]
Object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象.EXCLUDE和INCLUDE不能同时使用
Expdpscott/tigerDIRECTORY=dumpDUMPFILE=a.dupEXCLUDE=VIEW
8.FILESIZE
指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制)
9.FLASHBACK_SCN
指定导出特定SCN时刻的表数据
FLASHBACK_SCN=scn_value
Scn_value用于标识SCN值.FLASHBACK_SCN和FLASHBACK_TIME不能同时使用
Expdpscott/tigerDIRECTORY=dumpDUMPFILE=a.dmp
FLASHBACK_SCN=358523
10.FLASHBACK_TIME
指定导出特定时间点的表数据
FLASHBACK_TIME=”TO_TIMESTAMP(time_value)”
Expdpscott/tigerDIRECTORY=dumpDUMPFILE=a.dmpFLASHBACK_TIME=
“TO_TIMESTAMP(’25-08-200414:
35:
00’,’DD-MM-YYYYHH24:
MI:
SS’)”
11.FULL
指定数据库模式导出,默认为N
FULL={Y|N}
为Y时,标识执行数据库导出.
12.HELP
指定是否显示EXPDP命令行选项的帮助信息,默认为N
当设置为Y时,会显示导出选项的帮助信息.
Expdphelp=y
13.INCLUDE
指定导出时要包含的对象类型及相关对象
INCLUDE=object_type[:
name_clause][,…]
14.JOB_NAME
指定要导出作用的名称,默认为SYS_XXX
JOB_NAME=jobname_string
15.LOGFILE
指定导出日志文件文件的名称,默认名称为export.log
LOGFILE=[directory_object:
]file_name
Directory_object用于指定目录对象名称,file_name用于指定导出日志文件名.如果不指定directory_object.导出作用会自动使用DIRECTORY的相应选项值.
Expdpscott/tigerDIRECTORY=dumpDUMPFILE=a.dmplogfile=a.log
16.NETWORK_LINK
指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项.
17.NOLOGFILE
该选项用于指定禁止生成导出日志文件,默认值为N.
18.PARALLEL
指定执行导出操作的并行进程个数,默认值为1
19.PARFILE
指定导出参数文件的名称
PARFILE=[directory_path]file_name
20.QUERY
用于指定过滤导出数据的where条件
QUERY=[schema.][table_name:
]query_clause
Schema用于指定方案名,table_name用于指定表名,query_clause用于指定条件限制子句.QUERY选项不能与CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等选项同时使用.
Expdpscott/tigerdirectory=dumpdumpfiel=a.dmp
Tables=empquery=’WHEREdeptno=20’
21.SCHEMAS
该方案用于指定执行方案模式导出,默认为当前用户方案.
22.STATUS
指定显示导出作用进程的详细状态,默认值为0
23.TABLES
指定表模式导出
TABLES=[schema_name.]table_name[:
partition_name][,…]
Schema_name用于指定方案名,table_name用于指定导出的表名,partition_name用于指定要导出的分区名.
24.TABLESPACES
指定要导出表空间列表
25.TRANSPORT_FULL_CHECK
该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式,默认为N.
当设置为Y时,导出作用会检查表空间直接的完整关联关系,如果表空间所在表空间或其索引所在的表空间只有一个表空间被搬移,将显示错误信息.当设置为N时,导出作用只检查单端依赖,如果搬移索引所在表空间,但未搬移表所在表空间,将显示出错信息,如果搬移表所在表空间,未搬移索引所在表空间,则不会显示错误信息.
26.TRANSPORT_TABLESPACES
指定执行表空间模式导出
27.VERSION
指定被导出对象的数据库版本,默认值为COMPATIBLE.
VERSION={COMPATIBLE|LATEST|version_string}
为COMPATIBLE时,会根据初始化参数COMPATIBLE生成对象元数据;
为LATEST时,会根据数据库的实际版本生成对象元数据.version_string用于指定数据库版本字符串.调用EXPDP
使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.因此,使用EXPDP工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.
CREATEDIRECTORYdumpdirAS‘D:
DUMP’;
GRANTREAD,WIRTEONDIRECTORYdump_dirTOscott;
1、导出表
Expdpscott/tigerDIRECTORY=dump_dirDUMPFILE=tab.dmpTABLES=dept,emp
2、导出方案
Expdpscott/tigerDIRECTORY=dump_dirDUMPFILE=schema.dmp
SCHEMAS=system,scott
3、导出表空间
Expdpsystem/managerDIRECTORY=dump_dirDUMPFILE=tablespace.dmp
TABLESPACES=user01,user02
4、导出数据库
Expdpsystem/managerDIRECTORY=dump_dirDUMPFILE=full.dmpFULL=Y
使用IMPDP
IMPDP命令行选项与EXPDP有很多相同的,不同的有:
1、REMAP_DATAFILE
该选项用于将源数据文件名转变为目标数据文件名,在不同平台之间搬移表空间时可能需要该选项.
REMAP_DATAFIEL=source_datafie:
target_datafile
2、REMAP_SCHEMA
该选项用于将源方案的所有对象装载到目标方案中.
REMAP_SCHEMA=source_schema:
target_schema
3、REMAP_TABLESPACE
将源表空间的所有对象导入到目标表空间中
REMAP_TABLESPACE=source_tablespace:
target:
tablespace
4、REUSE_DATAFILES
该选项指定建立表空间时是否覆盖已存在的数据文件.默认为N
REUSE_DATAFIELS={Y|N}
5、SKIP_UNUSABLE_INDEXES
指定导入是是否跳过不可使用的索引,默认为N
6、SQLFILE
指定将导入要指定的索引DDL操作写入到SQL脚本中
SQLFILE=[directory_object:
Impdpscott/tigerDIRECTORY=dumpDUMPFILE=tab.dmpSQLFILE=a.sql
7、STREAMS_CONFIGURATION
指定是否导入流元数据(StreamMatadata),默认值为Y.
8、TABLE_EXISTS_ACTION
该选项用于指定当表已经存在时导入作业要执行的操作,默认为SKIP
TABBLE_EXISTS_ACTION={SKIP|APPEND|TRUNCATE|FRPLACE}
当设置该选项为SKIP时,导入作业会跳过已存在表处理下一个对象;
当设置为APPEND时,会追加数据,为TRUNCATE时,导入作业会截断表,然后为其追加新数据;
当设置为REPLACE时,导入作业会删除已存在表,重建表病追加数据,注意,TRUNCATE选项不适用与簇表和NETWORK_LINK选项
9、TRANSFORM
该选项用于指定是否修改建立对象的DDL语句
TRANSFORM=transform_name:
value[:
object_type]
Transform_name用于指定转换名,其中SEGMENT_ATTRIBUTES用于标识段属性(物理属性,存储属性,表空间,日志等信息),STORAGE用于标识段存储属性,VALUE用于指定是否包含段属性或段存储属性,object_type用于指定对象类型.
Impdpscott/tigerdirectory=dumpdumpfile=tab.dmp
Transform=segment_attributes:
n:
table
10、TRANSPORT_DATAFILES
该选项用于指定搬移空间时要被导入到目标数据库的数据文件
TRANSPORT_DATAFILE=datafile_name
Datafile_name用于指定被复制到目标数据库的数据文件
Impdpsystem/managerDIRECTORY=dumpDUMPFILE=tts.dmp
TRANSPORT_DATAFILES=’/user01/data/tbs1.f’调用IMPDP
1、导入表
Impdpscott/tigerDIRECTORY=dump_dirDUMPFILE=tab.dmpTABLES=dept,emp
Impdpsystem/manageDIRECTORY=dump_dirDUMPFILE=tab.dmpTABLES=scott.dept,scott.emp
REMAP_SCHEMA=SCOTT:
SYSTEM
第一种方法表示将DEPT和EMP表导入到SCOTT方案中,第二种方法表示将DEPT和EMP表导入的SYSTEM
数据泵导入:
指令impdp
一:
数据库所有对象的导入:
impdpsystem/tigerdumpfile=pump_dir:
mydatabase_%.datfilesize=100m
nologfile=y
job_name=zhangfull=y
estimate_only
二:
用户数据的导入:
system/tigerdumpfile=pump_dir:
job_name=zhang
schemas=scott
三:
导入特定的表:
tables=scott.emp,scott.dept
数据泵导出:
指令expdp
数据库所有对象的导出:
expdpsystem/tigerdumpfile=pump_dir:
用户数据的导出:
导出特定的表:
tables=scott.emp,scott.dept
高速的資料匯出/匯入:
OracleDataPump
«
於:
十月23,2007,11:
11:
36下午»
∙資料匯出/匯入工具仍是跨多個平台轉移資料庫的首選實用工具,儘管人們常常抱怨它速度太慢。
因為匯入只是將每條記錄從匯出檔案文件中讀出來,然後使用常見的INSERTINTO命令將其插入到目標表中,因此匯入可能是個很慢的過程,這一點很正常的。
到了OracleDataPump,OracleDatabase10g中的匯出/匯入工具,它被設計來加速這個過程。
DataPump反映了整個匯出/匯入過程的徹底革新。
它不是使用常見的SQL命令,而是應用專用API來以更快得多的速度加載和卸載資料。
測試中,看到匯出性能比在直接模式下提高了10-15倍,匯入過程性能也提高了5倍。
此外,與傳統使用匯出工具不同,它還能夠只取出特定類型的對象(如過程)。
DataPump匯出
這個新的實用工具稱為expdp,以和原來的匯出exp區分開。
在Lab中,我們將用DataPump來匯出一個大TableCASES,大小約為3GB。
我們將使用檔案系統/u02/dpdata1來保存匯出後dumpfile資料文件。
createdirectorydpdata1as'
/u02/dpdata1'
grantread,writeondirectorydpdata1tosteven;
接下來,我們將匯出資料:
expdpsteven/abc123tables=CASESdirectory=DPDATA1
dumpfile=expCASES.dmpjob_name=CASES_EXPORT
與原來的傳統匯出工具exp不