EXPDB和IMPDB是日常维护经常会用到的命令,例如系统迁移和备份等。下面
1. 创建逻辑目录,该命令不会再操作系统创建真正的目录,最好以system等管理员创建
create directory exppath as '/home/oracle';
查看管理员目录:
select * from dba_directories;
删除管理员目录:
drop directory exppath;
给scott用户赋予在指定目录的操作权限
grant read, write on directory exppath to scott;
2. 导出数据
2.1 按用户导出
expdp scott/tiger schemas=scott directory=exppath dumpfile=expdp.dmp logfile=expdp.log
2.2 按表导出
expdp scott/tiger tables=emp,dept directory=exppath dumpfile=expdp.dmp logfile=expdp.log
2.3 按查询条件导出
expdp scott/tiger tables=emp query='where deptno = 20' directory=exppath dumpfile=expdp.dmp logfile=expdp.log
2.4 按表空间导出
expdp system/manager tablespacs=users,temp directory=exppath dumpfile=expdp.dmp logfile=expdp.log
2.5 导出整个数据库
expdp system/manager full=y directory=exppath dumpfile=expdp.dmp logfile=expdp.log
3. 导入数据
3.1 导入到指定用户下
impdp scott/tiger schemas=scott directory=imppath dumpfile=expdp.dmp logfile=impdp.log
3.2 该变表的owner
impdp system/manager tables=scott.dept remap_schema=scott:system directory=imppath dumpfile=expdp.dmp logfile=impdp.log
3.3 导入表空间
impdp system/manager tablespaces=users,temp directory=imppath dumpfile=expdp.dmp logfile=impdp.log
3.4 导入数据库
impdp system/manager full=y directory=imppath dumpfile=expdp.dmp logfile=impdp.log
4. EXPDP/IMPDP的相关参数
下面是比较常用的也比较重要的参数
4.1 CONTENT
该选项用于指定要导出的内容.默认值为ALL
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
当设置CONTENT为ALL 时,将导出对象定义及其所有数据.为DATA_ONLY时,只导出对象数据,为METADATA_ONLY时,只导出对象定义。
expdp scott/tiger tables=emp content=metadata_only directory=expdp dumpfile=expdp.dmp logfile=expdp.log
4.2 FLASHBACK_SCN
指定导出特定SCN时刻的数据,flashback_scn=scn_value
select to_char(current_scn) from v$database; --获取scn
expdp scott/tiger schemas=scott flashback_scn=1813575 directory=expdp dumpfile=expdp.dmp logfile=expdp.log
4.3 FLASHBACK_TIME
指定导出特定时间点的表数据。
4.4 FULL
指定数据库模式导出,默认为N。FULL={Y | N},为Y时,标识执行数据库导出。
4.5 INCLUDE
指定导出时要包含的对象类型及相关对象。INCLUDE = object_type[:name_clause] [,… ]
4.6 TRANSPORT_FULL_CHECK
该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式,默认为N。
当设置为Y时,导出作用会检查表空间直接的完整关联关系,如果表空间所在表空间或其索引所在的表空间只有一个表空间被搬移,将显示错误信息。当设置为N时,导出作用只检查单端依赖,如果搬移索引所在表空间,但未搬移表所在表空间,将显示出错信息,如果搬移表所在表空间,未搬移索引所在表空间,则不会显示错误信息。
4.7 TABLE_EXISTS_ACTION
SKIP:跳过这张表,继续下一个对象。如果CONTENT设置了DATA_ONLY参数,则不能使用SKIP。
APPEND:会加载数据至对象,但不会影响已存在的行。
TRUNCATE:truncate已存在的表,然后加载所有的数据。
REPLACE:drop已存在的表,然后create并加载数据。如果CONTENT设置了DATA_ONLY,则不能使用REPLACE。