暂无图片
暂无图片
6
暂无图片
暂无图片
暂无图片

expdp/impdp表与schema导入导出

原创 杨露瑶 2023-01-16
5832

Table of Contents

expdp的部分参数

CONTENT

该选项用于指定要导出的内容:数据+定义、仅数据、仅定义。默认值为ALL。语法如下:
CONTENT={ALL | DATA_ONLY |METADATA_ONLY}

  • 当设置CONTENT为ALL 时,将导出对象定义及其所有数据;
  • 为DATA_ONLY时,只导出对象数据;
  • 为METADATA_ONLY时,只导出对象定义

DIRECTORY

指定转储文件和日志文件所在的目录,即要将导出的dmp文件放置的位置。语法如下:
DIRECTORY=directory_object
directory_object用于指定目录对象名称.需要注意,目录对象是使用 CREATE DIRECTOR 语句建立的对象,而不是OS 目录

建立目录:

CREATE DIRECTORY dump as 'd:dump';
复制

查询创建了那些子目录:

SELECT * FROM dba_directories;
复制

ESTIMATE_ONLY

指定是否只估算导出作业所占用的磁盘空间,默认值为N.语法如下:

ESTIMATE_ONLY={Y | N}

设置为Y时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为N时,不仅估算对象所占用的磁盘空间,还会执行导出操作

EXCLUDE

该选项用于指定执行操作时要排除的对象类型或相关对象.语法如下:

EXCLUDE=object_type[:name_clause][,….]

object_type用于指定要排除的对象类型
name_clause用于指定要排除的具体对象.
EXCLUDE和INCLUDE不能同时使用

FULL

指定数据库模式导出,默认为N.语法如下:

FULL={Y | N}

为Y时,标识执行数据库导出.

INCLUDE

指定导出时要包含的对象类型及相关对象.语法如下:

INCLUDE=object_type[:name_clause][,… ]

LOGFILE

指定导出日志文件文件的名称,默认名称为export.log.语法如下:

LOGFILE=[directory_object:]file_name

directory_object用于指定目录对象名称,file_name用于指定导出日志文件名.如果不指定directory_object.导出作用会自动使用DIRECTORY的相应选项值

NOLOGFILE

该选项用于指定禁止生成导出日志文件,默认值为N.
LOGFILE={ Y | N }

PARALLEL

指定执行导出操作的并行进程个数,默认值为1
PARALLEL=n

PARFILE

指定导出参数文件的名称.语法如下:

PARFILE=[directory_path:]file_name

举例:
expap.par

userid="/ as sysdba"
DIRECTORY=DATA_PUMP_DIR
dumpfile=expdp_tab_all_%U.dmp
logfile=expdp_tab_all.log
tables=userA.tabA
,userA.tabB
,userA.tabC
,userA.tabD
CONTENT=all   
PARALLEL=10
复制

导出

nohup expdp parfile=exppdp.par &
复制

QUERY

用于指定过滤导出数据的where条件.语法如下:

QUERY=[schema.][table_name:]query_clause

schema 用于指定方案名,table_name用于指定表名,query_clause用于指定条件限制子句.QUERY选项不能 与 CONNECT = METADATA_ONLY, EXTIMATE_ONLY, TRANSPORT_TABLESPACES等选项同时使用

SCHEMAS

该方案用于指定执行方案模式导出,默认为当前用户方案.

TABLES

指定表模式导出.语法如下:

TABLES=[schema_name.]table_name[:partition_name][,…]

schema_name用于指定方案名,table_name用于指定导出的表名,partition_name用于指定要导出的分区名.

TABLESPACES

指定要导出表空间列表

impdp的部分参数

REMAP_DATAFILE

该选项用于将源数据文件名转变为目标数据文件名,在不同平台之间搬移表空间时可能需要该选项.

REMAP_DATAFIEL=source_datafie:target_datafile

REMAP_SCHEMA

该选项用于将源方案的所有对象装载到目标方案中.

REMAP_SCHEMA=source_schema:target_schema

REMAP_TABLESPACE

将源表空间的所有对象导入到目标表空间中

REMAP_TABLESPACE=source_tablespace:target_tablespace

TABLE_EXISTS_ACTION

该选项用于指定当表已经存在时导入作业要执行的操作,默认为SKIP

TABBLE_EXISTS_ACTION={SKIP | APPEND |TRUNCATE | FRPLACE }

当设置该选项为SKIP时,导入作业会跳过已存在表处理下一个对象;
当设置为APPEND时,会追加数据;
当设置为TRUNCATE时,导入作业会截断表,然后为其追加新数据;
当设置为REPLACE时,导入作业会删除已存在表,重建表病追加数据

注意:TRUNCATE选项不适用与簇表和NETWORK_LINK选项

单/多表导出与导出

ps -ef|grep pmon su - oracle export ORACLE_SID= sqlplus / as sysbda # 设置导出文件夹 --源端 select * from all_directories; create directory DUMP_DIR as '/home/oracle/dumpdir'; # 查看表的大小或者查看导出的数据的大小 --源端 select owner,segment_name,sum(bytes)/1024/1024/1024 sum_G from dba_segments where segment_name='TABLE_NAME' group by owner,segment_name; expdp \'sys/oracle as sysdba\' table=TABLE_NAME estimate_only=y nologfile=y 参数: estimate_only={Y|N} --是否只对需要导出的数据的大小进行评估 # 查看系统空间是否足够 --目标端 df -h # 导出 --源端 expdp \'sys/oracle as sysdba\' table=TABLE_NAME directory=DUMP_DIR dumpfile=TABLE_NAME.dmp logfile=EXP_TABLE_NAME.log cluster=N # 查询表涉及到的用户与表空间 --源端 select distinct owner, segment_name, tablespace_name from dba_segments where segment_name = 'TABLE_NAME'; # 查看表空间对应的文件名 --源端 select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_data_files; # 设置导出文件夹 --目标端 select * from all_directories; create directory DUMP_DIR as '/home/oracle/dumpdir'; # 查看数据文件所在目录 --目标端 select name from dba_data_files; # 创建对应的表空间,表空间已存在则注意表空间的剩余空间 --目标端 create tablespace TABLESPACE_NAME datafile '' size 2G autoextend on next 1024M maxsize unlimited; # 导入 --目标端 impdp \'sys/oracle as sysdba\' directory=DUMP_DIR dumpfile=TABLE_NAME.dmp logfile=IMP_TABLE_NAME.log cluster=N
复制

SCHEMA导出

schemas: FEMS SAFERPT EBILLSNEW RCPMIS BLACK df -h ps -ef | grep pmon su - oracle echo $ORACLE_SID export ORACLE_SID= sqlplus / as sysdba # 设置导出文件夹 --源端 select * from all_directories; create directory DUMP_DIR as '/home/oracle/dumpdir'; # 导出 --源端 expdp \'sys/oracle AS SYSDBA\' schemas=FEMS, SAFERPT, EBILLSNEW, RCPMIS, BLACK directory=DUMP_DIR dumpfile=0116_%U.dmp logfile=exp_0116.log parallel=4 cluster=N; # 查询用户涉及到的表空间 --源端 select distinct tablespace_name from dba_segments where owner in ('FEMS', 'SAFERPT', 'EBILLSNEW', 'RCPMIS', 'BLACK'); # 查看表空间对应的文件名 --源端 select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_data_files; # 查看数据文件所在目录 --目标端 select name from dba_data_files; # 创建对应的表空间 --目标端 create tablespace TABLESPACE_NAME datafile '' size 2G autoextend on next 1024M maxsize unlimited; # 设置导出文件夹 --目标端 select * from all_directories; create directory DUMP_DIR as '/home/oracle/dumpdir'; # 导入 --目标端 impdp \'sys/oracle as sysdba\' directory=DUMP_DIR dumpfile=0116_%U.dmp logfile=imp_0116.log parallel=4
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论