ORACLE使用EXPDP和IMPDP数据泵进行导出导入的方法
使用expdp和impdp时应该注重的事项:
四、用expdp导出数据
Oracle备份方式主要分为数据泵导出备份、热备份与冷备份三种,今天首先 来实践一下数据泵备份与还原。数据泵导出/导入属于逻辑备份,热备份与冷备份都属于物理备份。oracle10g开始推出了数据泵(expdp /impdp),可以使用并行参数选项,因此,相对于传统的exp命令来说,执行效率更高。
一、知晓expdp命令
二、准备工作
1、查询路径信息
查看已经创建的路径信息:
SELECT * FROMdba_directories;
2、创建路径
创建路径需要sys权限,需要有create any directory权限才可以创建路径。
选项:DIRECTORY=directory_object
Directory_object用于指定目录对象名称。需要注意,目录对象是使用CREATE DIRECTORY语句建立的对象,而不是OS目录。
eg: CREATE OR REPLACEdirectory backup_path AS 'D:APPORADATAdb_backup'; --创建路径名为dackup_path的路径,并指向硬盘的指定位置
对新创建的路径进行授权操作:
eg:grant read,write on directory backup_path to orcldev; --将对路径的读写权限分配各orcldev用户。
三、操作实例
执行expdp和impdp命令需要拥有exp_full_database和imp_full_database权限,授权语句如下:
eg:grant exp_full_database,imp_full_database to orcldev;
1、导出orcldev这个schema的所用对象[schemas or full]
eg:expdp orcldev/oracle@orcldev directory=backup_pathdumpfile=orcldev_schema.dmp logfile=orcldev_schema_2013.log schemas=orcldev
2、导出orcldev这个用户下的某些表[tables]
eg:C:>expdp orcldev/oracle directory=dackup_pathdumpfile=orcldev_table.dmp logfile=orcldev_table_2013.logtables=('TAB_TEST','TAB_A')
3、只导出orcldev这个用户的数据[content]
eg:C:>expdp orcldev/oracle directory=dackup_pathdumpfile=orcldev_meta.dmp logfile=orcldev_meta_2013.log
SCHEMAS=orcldevCONTENT=METADATA_ONLY
4、只导出orcldev这个用户50%的抽样数据[sample]
eg:C:>expdp orcldev/oracle directory=dackup_pathdumpfile=orcldev_samp.dmp logfile=orcldev_samp_2013.log schemas=orcldevsample=50
5、采用并行方式备份整库[parallel]
parallel参数只有在oracle10g之后的版本(包含10g)有效。
oracle_online:you can use the DUMPFILE parameter during export operations tospecify multiple dump files, by using a substitution variable (%U) in thefilename. This is called a dump file template. The new dump files are createdas they are needed, beginning with 01 for %U, then using 02,03,and so on.
eg:C:>expdporcldev/oracle directory=dackup_path dumpfile=orcldev_parallel_%U.dmplogfile=orcldev_parallel_2013.log parallel=4
"%U"表示自动生成递增的序列号。
6、导出orcldev这个方案对象,但不包含索引[exclude]
eg: --可以剔除的对象有:VIEW,PACKAGE,FUNCTION,index,constraints,table,schema,user等等
1) C:>expdp orcldev/oracle directory=dackup_pathdumpfile=orcldev_exclude.dmp logfile=orcldev_exclude.log SCHEMAS=orcldevEXCLUDE=index
2) C:>expdp orcldev/oracle directory=dackup_pathdumpfile=orcldev_exclude.dmp logfile=orcldev_exclude.log SCHEMAS=orcldevEXCLUDE=INDEX:"LIKE 'TEST%'" --导出这个orcldev方案,剔除以TEST开头的索引
3) C:>expdp orcldev/oracle directory=dackup_pathdumpfile=orcldev_exclude.dmp logfile=orcldev_exclude.logEXCLUDE=SCHEMA:"='SCOTT'"
C:>expdp orcldev/oracle directory=dackup_pathdumpfile=orcldev_exclude.dmp logfile=orcldev_exclude.logEXCLUDE=USER:"='SCOTT'"
--备份整库但剔除SCOTT这个用户的对象。
注意:include与exclude不能同时使用。
7、PARFILE选项
expdp命令可以调用parfile文件,在parfile里可以写备份脚本,可以使用query选项。
Oracle highly recommends that you place specifications in a parameter file; otherwise, you might have to useoperating system-specific escape characters on the command line before eachquotation mark.
如expdp.txt内容如下:
USERID=orcldev/oracledirectory=dackup_path dumpfile=orcldev_parfile.dmp logfile=orcldev_parfile.logTABLES='TAB_TEST' QUERY="WHERETRAN_DATE=TO_DATE('2013-08-31','YYYY-MM-DD')"
执行方法:expdp parfile=expdp.txt 即可执行备份
使用parfile好处是使用query选项是不用使用转义字符,如果将query参数放到外边的话,需要将""进行转义。
eg:
UNIX写法:
expdp orcldev/oracle directory=backup_path dumpfile=2013.dmp logfile=2013.log schemas=orcldev INCLUDE=TABLE:"IN" --在Unix系统执行是需要将单引号进行转义操作,否则会报错。
WINDOWS写法:
expdp orcldev/oracle directory=backup_path dumpfile=2013.dmp logfile=2013.log schemas=orcldev INCLUDE=TABLE:"IN ('TEST_A','TEST_B')"
8、TABLESPACE导出表空间
eg:expdp orcldev/oracle directory=backup_path dumpfile=2013.dmplogfile =2013.log tablespaces=user,orcldev
9、Version选项
VERSION选项默认值是COMPATIBLE,即兼容模式。在我们备份的时候,可以指定版本号。
eg:expdp orcldev/oracle directory=backup_path dumpfile=2013.dmplogfile =2013.log full=Y VERSION=10.2.0.4
10、FLASHBACK_TIME选项
指定导出特定时间点的表数据,可以联系一下FLASHBACK功能。
eg:C:>expdp orcldev/oracle directory=dackup_path dumpfile=orcldev_flash.dmplogfile=orcldev_flash.log SCHEMAS=orcldev FLASHBACK_TIME="TO_TIMESTAMP('2013-09-28 14:30:00','DD-MM-YYYYHH24:MI:SS')"
四、参考
http://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_export.htm#i1007829
二、操作实例
1、全库模式导入[full]
impdp orcldev/oracle directory=backup_pathdumpfile=orcldev_schema.dmp full=Y table_exists_action=replace --如果表已经存在则进行替换操作。
一般来说,在还原数据库操作的时候,首先要删除这个用户,然后在进行impdp还原操作。
eg:
(1)SQL>DROP USER orcldev CASCADE;
(2)impdp orcldev/oracledirectory=backup_path dumpfile=orcldev_2013.dmp full=Y
2、Schema模式导入[schema]
--还原orcldev这个方案(用户)
impdp orcldev/oracle directory=backup_pathdumpfile=orcldev_schema.dmp schemas=orcldev table_exists_action=replace
EG:impdp orcldev/oracleDIRECTORY=dackup_path NETWORK_LINK=db_link_test01TRANSPORT_TABLESPACES=test0001 TRANSPORT_FULL_CHECK=nTRANSPORT_DATAFILES='app/oradata/test0001.dbf'
备注:
而在11GR2后EXPDP和IMDP的WORKER进程会在多个INSTANCE启动,所以DIRECTORY必须在共享磁盘上,如果没有设置共享磁盘还是指定cluster=no来防止报错。
三、数据泵备份(EXPDP命令)
(1)http://www.cnblogs.com/oracle-dba/p/3344230.html
(2)http://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_export.htm#i1007829
今天的文章 impdp参数详解exclude(impdp table)分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/39738.html