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