EXPDP和IMPDP使用说明
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EXPDP和IMPDP使用说明相关的知识,希望对你有一定的参考价值。
参考技术AEXPDP命令行选项
ATTACH
expdp scott/tiger ATTACH=scott export_job
EXPORT> start_job stop_job kill_job status
CONTENT
该选项用于指定要导出的内容 默认值为ALL
CONTENT=ALL | DATA_ONLY | METADATA_ONLY
DIRECTORY
指定转储文件和日志文件所在的目录
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a dump
建立目录:
CREATE DIRECTORY dump as e:\\dump ;
授权
grant read write on directory testdump to als_adp;
查询创建了那些子目录:
SELECT * FROM dba_directories;
DUMPFILE
用于指定转储文件的名称 默认名称为expdat dmp
通配符%U
ESTIMATE
指定估算被导出表所占用磁盘空间分方法 默认值是BLOCKS
EXTIMATE=BLOCKS | STATISTICS
EXTIMATE_ONLY
指定是否只估算导出作业所占用的磁盘空间 默认值为N
EXTIMATE_ONLY=Y | N
EXCLUDE
该选项用于指定执行操作时释放要排除对象类型或相关对象
EXCLUDE=object_type[:name_clause] [ … ]
Object_type用于指定要排除的对象类型 name_clause用于指定要排除的具体对象 EXCLUDE和INCLUDE不能同时使用
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a dup EXCLUDE=VIEW
FILESIZE
指定导出文件的最大尺寸 默认为 (表示文件尺寸没有限制)
FLASHBACK_SCN
指定导出特定SCN时刻的表数据
FLASHBACK_SCN=scn_value
Scn_value用于标识SCN值 FLASHBACK_SCN和FLASHBACK_TIME不能同时使用
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a dmp FLASHBACK_SCN=
FLASHBACK_TIME
指定导出特定时间点的表数据
FLASHBACK_TIME= TO_TIMESTAMP(time_value)
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a dmp FLASHBACK_TIME= TO_TIMESTAMP( : : DD MM YYYY HH :MI:SS )
FULL
指定数据库模式导出 默认为N
FULL=Y | N为Y时 标识执行数据库导出
HELP
指定是否显示EXPDP命令行选项的帮助信息 默认为N
当设置为Y时 会显示导出选项的帮助信息
Expdp help=y
INCLUDE
指定导出时要包含的对象类型及相关对象
INCLUDE = object_type[:name_clause] [ … ]
JOB_NAME
指定要导出作用的名称 默认为SYS_XXX
JOB_NAME=jobname_string
LOGFILE
指定导出日志文件文件的名称 默认名称为export log
LOGFILE=[directory_object:]file_name
NEORK_LINK
指定数据库链名 如果要将远程数据库对象导出到本地例程的转储文件中 必须设置该选项
NOLOGFILE
该选项用于指定禁止生成导出日志文件 默认值为N
PARALLEL
指定执行导出操作的并行进程个数 默认值为
PARFILE
指定导出参数文件的名称
PARFILE=[directory_path] file_name
QUERY
用于指定过滤导出数据的where条件
QUERY=[schema ] [table_name:] query_clause
Schema用于指定方案名 table_name用于指定表名 query_clause用于指定条件限制子句 QUERY选项不能与CONNECT=METADATA_ONLY EXTIMATE_ONLY TRANSPORT_TABLESPACES等选项同时使用
Expdp scott/tiger directory=dump dumpfiel=a dmp
Tables=emp query= WHERE deptno=
SCHEMAS
该方案用于指定执行方案模式导出 默认为当前用户方案
STATUS
指定显示导出作用进程的详细状态 默认值为
TABLES
指定表模式导出
TABLES=[schema_name ]table_name[:partition_name][ …]
Schema_name用于指定方案名 table_name用于指定导出的表名 partition_name用于指定要导出的分区名
TABLESPACES
指定要导出表空间列表
TRANSPORT_FULL_CHECK
该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式 默认为N
当设置为Y时 导出作用会检查表空间直接的完整关联关系 如果表空间所在表空间或其索引所在的表空间只有一个表空间被搬移 将显示错误信息 当设置为N时 导出作用只检查单端依赖 如果搬移索引所在表空间 但未搬移表所在表空间 将显示出错信息 如果搬移表所在表空间 未搬移索引所在表空间 则不会显示错误信息
TRANSPORT_TABLESPACES
指定执行表空间模式导出
VERSION
指定被导出对象的数据库版本 默认值为PATIBLE
VERSION=PATIBLE | LATEST | version_string
为PATIBLE时 会根据初始化参数PATIBLE生成对象元数据;为LATEST时 会根据数据库的实际版本生成对象元数据 version_string用于指定数据库版本字符串
IMPDP命令行选项与EXPDP有很多相同的 不同的有:
REMAP_DATAFILE
该选项用于将源数据文件名转变为目标数据文件名 在不同平台之间搬移表空间时可能需要该选项
REMAP_DATAFIEL=source_datafie:target_datafile
REMAP_SCHEMA
该选项用于将源方案的所有对象装载到目标方案中
REMAP_SCHEMA=source_schema:target_schema
REMAP_TABLESPACE
将源表空间的所有对象导入到目标表空间中
REMAP_TABLESPACE=source_tablespace:target:tablespace
REUSE_DATAFILES
该选项指定建立表空间时是否覆盖已存在的数据文件 默认为N
REUSE_DATAFIELS=Y | N
SKIP_UNUSABLE_INDEXES
指定导入是是否跳过不可使用的索引 默认为N
SQLFILE
指定将导入要指定的索引DDL操作写入到SQL脚本中
SQLFILE=[directory_object:]file_name
Impdp scott/tiger DIRECTORY=dump DUMPFILE=tab dmp SQLFILE=a sql
STREAMS_CONFIGURATION
指定是否导入流元数据(Stream Matadata) 默认值为Y
TABLE_EXISTS_ACTION
该选项用于指定当表已经存在时导入作业要执行的操作 默认为SKIP
TABBLE_EXISTS_ACTION=SKIP | APPEND | TRUNCATE | FRPLACE
当设置该选项为SKIP时 导入作业会跳过已存在表处理下一个对象;当设置为APPEND时 会追加数据 为TRUNCATE时 导入作业会截断表 然后为其追加新数据;当设置为REPLACE时 导入作业会删除已存在表 重建表病追加数据 注意 TRUNCATE选项不适用与簇表和NEORK_LINK选项
TRANSFORM
该选项用于指定是否修改建立对象的DDL语句
TRANSFORM=transform_name:value[:object_type]
Transform_name用于指定转换名 其中SEGMENT_ATTRIBUTES用于标识段属性(物理属性 存储属性 表空间 日志等信息) STORAGE用于标识段存储属性 VALUE用于指定是否包含段属性或段存储属性 object_type用于指定对象类型
Impdp scott/tiger directory=dump dumpfile=tab dmp Transform=segment_attributes:n:table
TRANSPORT_DATAFILES
该选项用于指定搬移空间时要被导入到目标数据库的数据文件
TRANSPORT_DATAFILE=datafile_name
Datafile_name用于指定被复制到目标数据库的数据文件
lishixinzhi/Article/program/Oracle/201311/18965
ORACLE使用EXPDP和IMPDP数据泵进行导出导入的方法
Oracle使用EXPDP和IMPDP数据泵进行导出导入的方法
使用expdp和impdp时应该注重的事项:
1、exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
2、expdp和impdp是服务端的工具程序,他们只能在oracle服务端使用,不能在客户端使用。
3、imp只适用于exp导出的文件,不适用于expdp导出文件;impdp只适用于expdp导出的文件,而不适用于exp导出文件。
4、对于10g以上的服务器,使用exp通常不能导出0行数据的空表,而此时必须使用expdp导出。
一、创建逻辑目录,该命令不会在操作系统创建真正的目录(请先创建真正的目录),最好以system等管理员创建逻辑目录。
SQL>conn system/[email protected] as sysdba
SQL>create directory dump_dir as ‘d:\\test\\dump‘;
二、查看管理员目录(同时查看操作系统是否存在,因为oracle并不关心该目录是否存在,假如不存在,则出错)
SQL>select * from dba_directories;
三、给scott用户赋予在指定目录的操作权限,最好以system等管理员赋予。
SQL>grant read,write on directory dump_dir to scott;
四、用expdp导出数据
1)导出用户
expdp scott/[email protected] schemas=scott dumpfile=expdp.dmp directory=dump_dir;
2)导出表
expdp scott/[email protected] tables=emp,dept dumpfile=expdp.dmp directory=dump_dir;
3)按查询条件导
expdp scott/[email protected] directory=dump_dir dumpfile=expdp.dmp tables=empquery=‘where deptno=20‘;
4)按表空间导
expdp system/[email protected] directory=dump_dir dumpfile=tablespace.dmptablespaces=temp,example;
5)导整个数据库
expdp system/[email protected] directory=dump_dir dumpfile=full.dmp full=y;
五、用impdp导入数据
1)导入用户(从用户scott导入到用户scott)
impdp scott/[email protected] directory=dump_dir dumpfile=expdp.dmp schemas=scott;
2)导入表(从scott用户中把表dept和emp导入到system用户中)
impdp system/[email protected] directory=dump_dir dumpfile=expdp.dmptables=scott.dept,scott.emp remap_schema=scott:system;
3)导入表空间
impdp system/[email protected] directory=dump_dir dumpfile=tablespace.dmp tablespaces=example;
4)导入数据库
impdb system/[email protected] directory=dump_dir dumpfile=full.dmp full=y;
5)追加数据
impdp system/[email protected] directory=dump_dir dumpfile=expdp.dmp schemas=systemtable_exists_action
oracle数据泵备份(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:\\APP\\ORADATA\\db_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/[email protected] 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 QUERY
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\\‘T\\" --在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
ORACLE数据泵还原(IMPDP命令)
Oracle数据库还原IMPDP命令是相对于EXPDP命令的,方向是反向的。即对于数据库备份进行还原操作。
一、知晓IMPDP命令
|
二、操作实例
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
3、表模式导入[table]
--还原某个用户下的具体的表
(1)windows版本:
impdp orcldev/oracledirectory=backup_path dumpfile=orcldev_table.dmp tables=‘TAB_TEST‘table_exists_action=replace
(2)unix版本:需要将‘单引号进行转义操作
impdp orcldev/oracledirectory=backup_path dumpfile=orcldev_table.dmp tables=\\‘ius_tran\\‘table_exists_action=replace
4、表空间模式导入[tablespace]
impdp orcldev/oracledirectory=backup_path dumpfile=orcldev_tablespace.dmp tablespace=user,orcldev
5、传输表空间模式导入[Transportable Tablespace]
(1)Oracle_Online
You cannot export transportable tablespacesand then import them into
a database at a lower release level. The targetdatabase must be at the
same or higher release level as the source database.
The TRANSPORT_TABLESPACES is valid only whenthe NETWORK_LINK parameter is also specified.
意思就说,目标库的版本要等于或者高于源数据库的版本,TRANSPORT_TABLESPACES参数选项有效前提条件是NETWORK_LINK参数需被指定。
查询数据库版本号SQL语句:SELECT *FROM v$version;
EG:impdp orcldev/oracleDIRECTORY=dackup_path NETWORK_LINK=db_link_test01TRANSPORT_TABLESPACES=test0001 TRANSPORT_FULL_CHECK=nTRANSPORT_DATAFILES=‘app/oradata/test0001.dbf‘
(2)创建数据库dbLink方法:
语法:
CREATE [PUBLIC] DATABASE LINK LINK_NAME
CONNECT TO Username IDENTIFIED BYPassword
USING ‘ConnectString‘;
注释:
1)创建dblink需要有CREATE DATABASE LINK或CREATE PUBLIC DATABASELINK的系统权限以及用来登录到远程数据库的帐号必须有CREATE SESSION权限。
2)ConnectString指的是在tnsnames.ora文件中配置的监听名称。
3)当GLOBAL_NAME=TRUE时,dblink名必须与远程数据库的全局数据库名GLOBAL_NAME相同;否则,可以任意命名。
(3)查看GLOBAL_NAME参数方法:
SQL> show parametersglobal_name;
NAME TYPE VALUE
---------------------------------------------- ------------------------------
global_names boolean FALSE
6、REMAP_SCHEMA参数
众所周知:IMP工具的FROMUSER和TOUSER参数可以实现将一个用户的的数据迁移到另外一个用户。
(1)impdp数据泵使用REMAP_SCHEMA参数来实现不同用户之间的数据迁移;
语法:
REMAP_SCHEMA=source_schema:target_schema
eg:impdp orcldev/oracleDIRECTORY=backup_path DUMPFILE=oracldev.dmp REMAP_SCHEMA=orcldev:orcltwo
与REMAP_SCHEMA类似的参数选项,如REMAP_TABLESPACE将源表空间的所有对象导入目标表空间。
7、REMAP_TABLE参数
将源表数据映射到不同的目标表中
eg:impdp orcldev/oracle DIRECTORY=backup_pathdumpfile=oracldev.dmp remap_table=TAB_TEST:TEST_TB
数据导入到TEST_TB表中,但是该表的索引等信息并没有相应的创建,需要手工初始化。
8、REMAP_DATAFILE参数
语法:REMAP_DATAFILE=source_datafile:target_datafile
Oracle_Online:
Remapping datafiles is useful when youmove databases between
platforms that have different file naming conventions.The
source_datafile and target_datafile names should be exactly as you
wantthem to appear in the SQL statements where they are referenced.
Oraclerecommends that you enclose datafile names in quotation marks to
eliminateambiguity on platforms for which a colon is a valid file
specificationcharacter.
9、PARALLEL参数
使用PARALLEL参数可以提高
数据泵还原的效率,前提是必须有多个expdp的文件,如expdp01.dmp,expdp02.dmp,expdp03dmp等等,不然会有问题。运行impdp命令时,会先启动一个WOrKER进程将METADATA导入,然后再启动多个WORKER进程将数据以及其他对象导入,所以在前期只会看到一个WOrKER在导入METADATA,而且IMPDP也需要DUMP文件是多个,也可以使用%U来进行导入。
eg: impdp orcldev/oracledirectory=backup_path dumpfile=orcldev_schema_%U.dmp schemas=orcldev parallel=4
备注:
而在11GR2后EXPDP和IMDP的WORKER进程会在多个INSTANCE启动,所以DIRECTORY必须在共享磁盘上,如果没有设置共享磁盘还是指定cluster=no来防止报错。
10、CONTENT参数
CONTENT参数选项有ALL,DATA_ONLY和METADATA_ONLY,默认情况是ALL。可以选择只导入元数据或者是只导入数据。
EG:impdporcldev/oracle directory=backup_path dumpfile=orcldev_schema.dmpschemas=orcldev CONTENT=DATA_ONLY
11、include、exclude、parfile、query和version参数选项与EXPDP命令的参数选项一致。
三、数据泵备份(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
四、参考资料
ORACLE官网
(1)http://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_import.htm#g1025464
以上是关于EXPDP和IMPDP使用说明的主要内容,如果未能解决你的问题,请参考以下文章