本实验是oracle单实例对单实例的ogg同步
一 安装ogg软件
1.1 下载
下载地址:https://edelivery.oracle.com/osdc/faces/SoftwareDelivery
选中后,点击右上角的‘继续’按钮:
点击文件名下载即可。
1.2 安装
在源端和目标端都安装下:
cd /opt
mkdir -p oracle/ogg
chown oracle:dba /opt/oracle/ogg
su – oracle
cd /opt/oracle/ogg
上传安装包
unzip V28941-01.zip
tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar
./ggsci
[oracle@PC ogg]$ ./ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 11.1.1.1.2 OGGCORE_11.1.1.1.2_PLATFORMS_111004.2100
Linux, x64, 64bit (optimized), Oracle 11g on Oct 4 2011 23:49:46
Copyright (C) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
GGSCI (PC) 1> CREATE SUBDIRS
Creating subdirectories under current directory /opt/oracle/ogg
Parameter files /opt/oracle/ogg/dirprm: created
Report files /opt/oracle/ogg/dirrpt: created
Checkpoint files /opt/oracle/ogg/dirchk: created
Process status files /opt/oracle/ogg/dirpcs: created
SQL script files /opt/oracle/ogg/dirsql: created
Database definitions files /opt/oracle/ogg/dirdef: created
Extract data files /opt/oracle/ogg/dirdat: created
Temporary files /opt/oracle/ogg/dirtmp: created
Veridata files /opt/oracle/ogg/dirver: created
Veridata Lock files /opt/oracle/ogg/dirver/lock: created
Veridata Out-Of-Sync files /opt/oracle/ogg/dirver/oos: created
Veridata Out-Of-Sync XML files /opt/oracle/ogg/dirver/oosxml: created
Veridata Parameter files /opt/oracle/ogg/dirver/params: created
Veridata Report files /opt/oracle/ogg/dirver/report: created
Veridata Status files /opt/oracle/ogg/dirver/status: created
Veridata Trace files /opt/oracle/ogg/dirver/trace: created
Stdout files /opt/oracle/ogg/dirout: created
二 设置数据库
- 源数据库、目标数据库端均需创建Oracle GoldenGate用户
create user ogg identified by ogg;
grant dba to ogg;
- 源数据库、目标数据库启用归档模式
shutdown immediate
startup mount
alter database archivelog;
alter database open;
select name,log_mode from v$database;
- 源数据库启用最小附加日志
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
- 源数据库打开强制日志
ALTER DATABASE FORCE LOGGING;
ALTER SYSTEM SWITCH LOGFILE;
通过以下SQL检查
SELECT force_logging FROM v$database;
- 源数据库配置保留归档日志方式
Oracle11.2.0.3以上版本:
exec dbms_goldengate_auth.grant_admin_privilege(‘ogg‘);
三 配置ogg
3.1 配置MANAGER
该步骤在源数据库端及目标数据库均需要执行,请进入Oracle GoldenGate安装目录执行ggsci连接后执行下列步骤:
执行EDIT PARAMS MGR 命令,加入如下参数,并使用vi命令:wq保存退出。
#源数据库配置如下:
PORT 7809
AUTOSTART EXTRACT cap
AUTOSTART EXTRACT PUMPQG
AUTORESTART EXTRACT cap,WAITMINUTES 10,RETRIES 3,RESETMINUTES 60
PURGEOLDEXTRACTS dirdat/lt
#目标端数据库配置如下:
PORT 7809
AUTOSTART REPLICAT *
AUTORESTART REPLICAT *,WAITMINUTES 10,RETRIES 3,RESETMINUTES 60
PURGEOLDEXTRACTS dirdat/lt
DYNAMICPORTLIST 7840-8000
3.2 配置Extract
本步骤在源数据库端执行,请进入Oracle GoldenGate安装目录执行ggsci连接后执行下列步骤:
- 为cap保留归档日志
DBLOGIN USERID ogg ,PASSWORD ogg
REGISTER EXTRACT cap LOGRETENTION
- 创建Extract组cap
组名为8位内字符,不要使用数字结尾(但是可以以数字开头),否则 告文件可能会有问题;也尽量不要用extract、ext、replicat、rep之类的关键字。
ADD EXTRACT cap, TRANLOG, BEGIN now
- 为cap组创建Local Trail
Local Trail名称只能是两位字符,如 lt
ADD EXTTRAIL dirdat/lt, EXTRACT cap
执行EDIT PARAMS cap命令,加入如下参数,并以:wq保存退出。例:
EXTRACT cap
USERID ogg PASSWORD ogg
TRANLOGOPTIONS LOGRETENTION ENABLED
EXTTRAIL dirdat/lt
TABLE scott.t;
参数将保存在dirprm/cap.prm文件中。
如果在10G的10.2.0.5以后或11G的11.2.0.2以后版本中使用ASM,推荐在 cap参数文件中需要加入:
TRANLOGOPTIONS DBLOGREADER
- 为复制表添加附加日志
DBLOGIN USERID ogg, PASSWORD ogg
ADD TRANDATA scott.t
3.3 配置Data Pump
本步骤在源数据库端执行
- 创建用于Pump的第二EXTRACT组,注意数指定据源Local Trail为lt
ADD EXTRACT pumpkw, EXTTRAILSOURCE dirdat/lt, BEGIN now
- 为pump组创建Remote Trail
Remote Trail名称只能是两位字符,如rt
ADD RMTTRAIL dirdat/rt, EXTRACT pumpkw
执行EDIT PARAMS pumpkw命令,加入如下参数,并以:wq保存退出。指定目标数据数据库的GoldGate运行位置。例:
EXTRACT pumpkw
USERID ogg PASSWORD ogg
RMTHOST 192.168.144.207,MGRPORT 7809
RMTTRAIL dirdat/rt
TABLE scott.t;
注:
如果是一个源数据库对多个目标数据库进行复制,则对每个目标数据库都要创建一个Data Pump组及Remote Trail;
如果是多个源数据库对一个目标数据库进行复制,则注意每个源数据库上的Remote Trail命名是要区分开。
而上面的manager和extract只需配置一次即可。
3.4 配置Replicat
本步骤在目标数据库端执行,请进入Oracle GoldenGate安装目录执行ggsci连接后执行下列步骤:
- 创建CheckPoint表
DBLOGIN USERID ogg, PASSWORD ogg
ADD CHECKPOINTTABLE checkpoint
- 创建Replicat组,注意数指定据源Remote Trail为rt,CheckPoint表为CheckPoint表
ADD REPLICAT wrt, EXTTRAIL dirdat/rt, BEGIN now,CHECKPOINTTABLE ogg.checkpoint
- 为wrt组创建Local Trail
执行EDIT PARAMS wrt命令,加入如下参数,并以:wq保存退出。例:
REPLICAT wrt
USERID ogg, PASSWORD ogg
HANDLECOLLISIONS
ASSUMETARGETDEFS
MAP scott.t, TARGET scott.t;
参数将保存在dirprm/wrt.prm文件中
注:
如果是多个源数据库对一个目标数据库进行复制,则目标数据库上针对每个源都要创建一个Replica组。
可以写多个MAP,将一张表的数据同时映射到多个表中去。
ASSUMETARGETDEFS参数有作用域
目标端如果有触发器,级联约束等,需要禁用
/*
–注意:为了测试同步,这里源端和目标端手动创建下测试表scott.t表:
create table t(id int primary key);
–如果是生产环境,想配置某些表的同步,则需要停掉相关程序,确保没数据写入到源端数据库,然后通过expdp将源端数据导出,用impdp将数据导入到目标库
*/
3.5 开启同步
3.5.1 在源端和目标端启动mgr
start mgr
启动mgr会自动启动replicat进程:
GGSCI (PC) 8> info all
Program Status Group Lag Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING WRT 00:00:00 00:00:03
3.5.2 在源端启动pump进程
start PUMPKW
3.6 测试数据同步
#在源端插入一条数据
SQL> insert into scott.t(id) values(1);
1 row created.
SQL> commit;
Commit complete.
#在目标端查询
SQL> select * from t;
ID
———-
1
–数据同步没问题后,可以启动相关程序,允许写入源端数据库。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!