源端操作
1、添加附加日志
登陆源端服务器
进入goldengate部署目录
运行下面命令检查附加日志
dblogin userid ogg,password ogg
add trandata test.enmo
info trandata test.enmo -- 检查是否添加成功,显示enabled才正确
2、修改源端抽取进程参数,重启抽取进程
进入goldengate部署目录
./ggsci
edit param e_ext
table test.enmo;(注意末尾的分号)
stop e_ext
start e_ext
3、修改源端投递进程,重启投递进程
edit param p_pump
table test.test;(注意末尾的分号)
stop p_pump
start p_pump
4、登陆源端数据库查询DIRECTORY
select * from dba_directories;
将查询结果保留等待后续expdp命令使用
如果没有创建的话需要手动创建
create directory DPDATA1 as '指定一个路径用于存在dmp文件';
赋予权限
grant read,write on directory DPDATA1 to public;
--创建成功可以查看
SQL> select * from dba_directories;
OWNER DIRECTORY_NAME DIRECTORY_PATH
---------- --------------- --------------------------------------------------
SYS GGS_DDL_TRACE /u01/app/oracle/diag/rdbms/testdb/testdb1/trace
SYS DPDATA1 /min_ogg/
SYS XMLDIR /u01/app/oracle/product/11.2.0.4/db_1/rdbms/xml
SYS ORACLE_OCM_CONF /u01/app/oracle/product/11.2.0.4/db_1/ccr/hosts/ra
IG_DIR c1/state
SYS DATA_PUMP_DIR /u01/app/oracle/product/11.2.0.4/db_1/rdbms/log/
SYS ORACLE_OCM_CONF /u01/app/oracle/product/11.2.0.4/db_1/ccr/state
IG_DIR2
6 rows selected.
5、目的端停止入库进程
该操作需要在导出dmp之前,源端查询scn号之前
stop r_rep
6、源端查看当前scn号,源端导出DMP
SQL> select to_char(current_scn) from v$database;
TO_CHAR(CURRENT_SCN)
3327525
SQL>
按SCN号导出DMP
我这面选择使用了dba账号导出
expdp "'/ as sysdba'" directory=DPDATA1 parallel=1 cluster=n compression=ALL FLASHBACK_SCN=3327525 dumpfile=ogg_a_2_%U.dmp logfile=migrate_ogg_a_2.log tables=test.enmo
如果需要开启并行导入可以添加parallel=4
如果是RAC环境导出需添加CLUSTER=no参数
目的端操作
7、目的端查询DIRECTORY
SELECT * FROM DBA_DIRECTORIES;
将查询结果保留等待后续impdp命令使用
如果没有创建的话需要手动创建
create directory DPDATA1 as '指定一个路径用于存在dmp文件';
赋予权限
grant read,write on directory DPDATA1 to public;
OWNER DIRECTORY_NAME DIRECTORY_PATH
---------- ------------------------------ --------------------------------------------------
SYS ORACLE_OCM_CONFIG_DIR2 /oracle/app/oracle/product/11.2.0.4/db_1/ccr/state
SYS DPDATA1 /dpdata/dump/
SYS XMLDIR /ade/b/2125410156/oracle/rdbms/xml
SYS GGS_DDL_TRACE /oracle/app/oracle/diag/rdbms/orcl/orcl/trace
SYS DATA_PUMP_DIR /oracle/app/oracle/admin/orcl/dpdump/
SYS ORACLE_OCM_CONFIG_DIR /oracle/app/oracle/product/11.2.0.4/db_1/ccr/hosts
/ogg/state
8、待导出完毕后拷贝dmp到目的端服务器上
scp 源端IP:/DIRECTORY目录/expdp_*.dmp 目的端DIRECTORY目录/
导出完毕后删除源端DMP文件
cd DIRECTORY目录/
rm –rf expdp_*.dmp
9、目标端impdp导入
导入dmp到目的端数据库中
impdp "'/ as sysdba'" directory=DPDATA1 parallel=1 cluster=n dumpfile= ogg_a_2_%U.dmp logfile=migrate_ogg_a_2.log tables=test.enmo
如果需要开启并行导入可以添加parallel=4
如果是RAC环境导出需添加CLUSTER=no参数
因为目的端没有要求变更表空间与用户,所以不需要指定
如果用户,表空间不一致,可以参考下面的参数
REMAP_SCHEMA=schema1:schema1--用于指定源端,目的端用户
REMAP_TABLESPACE=tablespace1:tablespace2--用户指定源端,目的端表空间,多个表空间用逗号隔开
10、 导入完毕后修改目的端入库参数
cd goldengate部署目录
./ggsci
edit param r_rep
在map行最上面添加以下记录
map test.enmo,target test.enmo,filter (@GETENV ('transaction','csn') > 3327525); --注意分号
启动目的端入库进程
start r_rep
进程追平后,去掉SCN号,重启入库进程
stop r_rep
edit param r_rep
将添加的行修改为
map test.enmo,target test.enmo;--(注意分号)
11、启动进程
start r_rep
12、核查两边数据量
检查两端数据是否一致,源端进行insert update,delete操作目的端是否能够同步
select count(1) from test.enmo;--源端
select count(1) from test.enmo;--目的端
13、删除dmp
检查数据无问题时,将导入目的端的dmp可以进行删除。
cd DIRECTORY目录/
rm –rf expdp_*.dmp
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




