oracle database 10g引入了最新的数据泵(datadump)技术,数据泵导出导入(expdp和impdp)的作用,oracle数据泵,逻辑备份和恢复工具
oracle database 10g引入了最新的数据泵(datadump)技术,数据泵导出导入(expdp和impdp)的作用
1,实现逻辑备份和逻辑恢复
2,,在数据库用户之间移动对象
3,在数据库之间移动对象
4,实现表空间搬移
数据泵使用expdp和impdp时应该注意的事项:
exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
expdp和impdp是服务端的工具程序,他们只能在oracle服务端使用,不能在客户端使用。
imp只适用于exp导出的文件,不适用于expdp导出文件;impdp只适用于expdp导出的文件,而不适用于exp导出文件。
一:可以通过dblink来使用数据泵,这样省掉了导出的步骤,操作简单了。如下所示的例子:
impdp system/manager123 network_link=dblink_to_myself remap_tablespace=dic_data:dictest remap_schema=dictest_zh_cn:dictest_zh_cn tables=td_pay_bank, td_common_content table_exists_action=replace;
二:导出的内容
1)按用户导
expdpscott/tiger@orclschemas=scott dumpfile=expdp.dmp directory=dir logfile=expdp.log
2)并行进程parallel
expdpscott/tiger@orcldirectory=dir dumpfile=scott3.dmp parallel=40 job_name=scott3
3)按表名导
expdpscott/tiger@orcltables=emp,dept dumpfile=expdp.dmp directory=dir;
4)按查询条件导
expdpscott/tiger@orcldirectory=dir dumpfile=expdp.dmp tables=emp query='where deptno=20';
5)按表空间导
expdp system/manager directory=dir dumpfile=tablespace.dmp tablespaces=temp,example;
6)导整个数据库
expdp system/manager directory=dir dumpfile=full.dmp full=y;
三:导出内容:
content该选项用于指定要导出的内容.默认值为all
content={all | data_only | metadata_only}
当设置content为all时,将导出对象定义及其所有数据.为data_only时,只导出对象数据,为metadata_only时,只导出对象定义
例子:只导出表结构
expdp system/manager(*)0202 directory=bak dumpfile=test_nav_zh_cn20150506.dmp schemas=test_nav_zh_tw, test_nav_zh_cn test_nav_en_us, test_nav_ar_sa content=metadata_only
四:directory:
查看已经建好的目录;如果没有使用directory参数那么会使用目录data_pump_dir
sql> select * from dba_directories;
owner directory_name directory_path
----- ---------------------- ----------------------------------------------------------
sys subdir /u01/app/oracle/product/11.2.0/db/demo/schema/order_entry//2002/sep
sys ss_oe_xmldir /u01/app/oracle/product/11.2.0/db/demo/schema/order_entry/
sys log_file_dir /u01/app/oracle/product/11.2.0/db/demo/schema/log/
sys media_dir /u01/app/oracle/product/11.2.0/db/demo/schema/product_media/
sys xmldir /u01/app/oracle/product/11.2.0/db/rdbms/xml
sys data_file_dir /u01/app/oracle/product/11.2.0/db/demo/schema/sales_history/
sys data_pump_dir /u01/app/oracle/admin/tj01/dpdump/
sys oracle_ocm_config_dir /u01/app/oracle/product/11.2.0/db/ccr/state
注意:通过查询我们看到,所有的目录都属于sys用户,而不管是哪个用户创建的,在数据库里已经提前建好了这个目录对象data_pump_dir。如果在使用expdp导出时,不指定目录对象参数,oracle会使用数据库缺省的目录data_pump_dir,不过如果想使用这个目录的话,用户需要具有exp_full_database的权限才行
五:不常用的一些参数;
1.extimate_only
指定是否只估算导出作业所占用的磁盘空间,默认值为n
2.extimate_only={y | n}
设置为y时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为n时,不仅估算对象所占用的磁盘空间,还会执行导出操作.
expdp scott/tiger estimate_only=ynologfile=y
3.exclude
该选项用于指定执行操作时释放要排除对象类型或相关对象
exclude=object_type[:name_clause] [,….]
object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象.exclude和include不能同时使用
expdp scott/tiger directory=dumpdumpfile=a.dup exclude=view
4.filesize
指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制)
5. flashback_scn
指定导出特定scn时刻的表数据
flashback_scn=scn_value
scn_value用于标识scn值.flashback_scn和flashback_time不能同时使用
expdp scott/tiger directory=dumpdumpfile=a.dmp
flashback_scn=358523
10)flashback_time
指定导出特定时间点的表数据
flashback_time=”to_timestamp(time_value)”
expdp scott/tiger directory=dumpdumpfile=a.dmp flashback_time=
“to_timestamp(’25-08-200414:35:00’,’dd-mm-yyyyhh24:mi:ss’)”
六:当用一个schema去覆盖另一个schemas时,如下:
[oracle@rac1 ~]$ impdp system/manager123 network_link=dblink_to_myself remap_tablespace=users:users remap_schema=liuwenhe:liuhe schemas=liuwenhe;
如果liuhe这用户存在,那么该操作完成之后,liuhe这个用户权限,密码什么的不会变化。
如果liuhe这个用户不存在,那么该操作完成之后,就会创建一个liuhe的用户,并且没有任何权限,值得注意的是密码和liuwenhe的密码相同。
七:当导入schemas的时候,会把属于这个用户的所有对象,包括sequence,function,procedure,主键,索引,都一并过去。
[oracle@rac1 ~]$ impdp system/manager123 network_link=dblink_to_myself remap_tablespace=users:users remap_schema=liuwenhe:liuhe tables=liuwenhe.liuwenhe table_exists_action=replace;
liuwenhe.liuwenhe这个表的主键和索引,也会过去。并且名字和liuwenhe.liuwenhe的对应名字一样。
八:该选项用于指定当表已经存在时导入作业要执行的操作,默认为skip
tabble_exists_action={skip | append |truncate | frplace }