导出前准备
创建目录对象
CREATE DIRECTORY dump_dir AS '指定路径';
例如:
CREATE DIRECTORY dump_dir AS '/data/goldengate/dump';
2.在操作系统上创建相应的目录。
3.把目录的读写权限给用户:
GRANT READ, WRITE ON DIRECTORY dump_dir TO 用户;
例如:
GRANT READ, WRITE ON DIRECTORY dump_dir TO test003;
在数据库中用命令查出对应的SCN号
SQL>select current_scn from v$database;
源端
源端抽取
expdp 用户/用户密码 directory=dump_dir dumpfile=文件名称.dmp schemas=test001 flashback_scn=SCN号
exp 用户/用户密码 file=文件名称.dmp log=日志.log
抽取单独的某一张表
exp 用户/用户密码 file=文件名称.dmp tables=表名 log=日志.log
例如:
expdp test001/test001 directory=dump_dir dumpfile=test001.dmp schemas=test001 flashback_scn=22870506
源端发送
scp 文件名称.dmp 主机IP:文件指定的路径
例如:
scp test001.dmp 192.168.0.15:/data/goldengate/dump
dumpfile :指定的目的地列表转储文件名称
schemas :出口的模式列表(登录模式)
flashback_scn : SCN号
directory : 目录对象用于转储和日志文件
导出成功
目标端
目标端导入
impdp test001/test001 directory=dump_dir dumpfile=文件名.dmp
imp test001/test001 fromuser=用户名 touser=密码 file=导出的文件.dmp log=日志.log ignore=y
oracle10g之后impdp的table_exists_action选项:
skip 是如果已存在表,则跳过并处理下一个对象;
append是为表增加数据;
truncate是截断表,然后为其增加新数据;
replace是删除已存在表,重新建表并追加数据
导入成功
查看源端和目标端数据是否相同;
启动进程时,目标端进程若出现这种错误
可以在进程中添加 TABLEEXCLUDE TEST002.SYS_EXPORT_SCHEMA_01跳过这个表,进程就可以启动;