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
复制