使用OGG,两个Oracle库之间单向同步数据
配置:源数据库100.100.100.21 实例名dbsid2
目标数据库100.100.100.41 实例名db1
实验目标:源数据库中的 scott用户 emp表同步到目标数据库 scott中的test表
安装包为文件ogg112101_fbo_ggs_Linux_x64_ora10g_64bit.zip
解压之后,然后再tar解压tar -xvf fbo_ggs_Linux_x64_ora10g_64bit.tar -C /oracle/ogg/
1. 源数据库(dbsid2)配置:
(1) 用户权限:grant dba to scott
(2) 打开归档模式
(3)附加日志:
alter database add supplemental log data;
alter database force logging;
(4)将目标数据库db1信息添加到 tnsnames.ora中
2. 目标数据库(db1)配置:
(1) scott用户建立空表test,表结构和emp相同
(2) 打开归档模式
(3) 附加日志:
alter database add supplemental log data;
alter database force logging;
(4) 将源数据库(dbsid2)的信息添加到 tnsnames.ora中
3. 源数据库服务器 goldengate安装
(1) 解压到/oracle/ogg目标下面
(2) 运行./ggsci
(3) 新建子目录: GGSCI (host2) 1> create subdirs
Creating subdirectories under current directory /oracle/ogg
Parameter files /oracle/ogg/dirprm: already exists
Report files /oracle/ogg/dirrpt: created
Checkpoint files /oracle/ogg/dirchk: created
Process status files /oracle/ogg/dirpcs: created
SQL script files /oracle/ogg/dirsql: created
Database definitions files /oracle/ogg/dirdef: created
Extract data files /oracle/ogg/dirdat: created
(4) 配置字符管理的Port参数
GGSCI (host2) 6> edit params mgr
输入: PORT 7809 然后保存
检查输入情况:
GGSCI (host2) 7> view params mgr
PORT 7809
(5) 启动Start mgr:
GGSCI (host2) 8> start mgr
MGR is already running.
GGSCI (host2) 9> info mgr
Manager is running (IP port host2.7809).
4. 目标数据库服务器 goldengate安装(和源目标服务器相同)
(1) 解压到/oracle/ogg目标下面
(2) 运行./ggsci
(3) 新建子目录: GGSCI (host2) 1> create subdirs
Creating subdirectories under current directory /oracle/ogg
Parameter files /oracle/ogg/dirprm: already exists
Report files /oracle/ogg/dirrpt: created
Checkpoint files /oracle/ogg/dirchk: created
Process status files /oracle/ogg/dirpcs: created
SQL script files /oracle/ogg/dirsql: created
Database definitions files /oracle/ogg/dirdef: created
Extract data files /oracle/ogg/dirdat: created
(4) 配置字符管理的Port参数
GGSCI (host2) 6> edit params mgr
输入: PORT 7809 然后保存
检查输入情况:
GGSCI (host2) 7> view params mgr
PORT 7809
(4) 启动Start mgr:
GGSCI (host2) 8> start mgr
MGR is already running.
GGSCI (host2) 9> info mgr
Manager is running (IP port host2.7809).
5. 配置源数据库服务器(dbsid2)传输进程extract
(1)添加名字为source1的进程
GGSCI (host2) 19> add extract source1,sourceistable
EXTRACT added.
(3) 修改source1参数
GGSCI (host2) 20> edit params source1
添加如下,并且保存
extract source1
setenv (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
userid scott,password tiger
rmthost 100.100.100.41,mgrport 7809
rmttask replicat,group target1
table scott.emp;
注:1、需要复制表的用户名为scott,密码tiger
2、目标数据库(db1)的IP为100.100.100.41,端口为7809
3. 目标数据库(db1)的接收进程名字为 target1
4. 需要复制的table为: scott.emp表。
查看修改的参数
GGSCI (host2) 21> view params source1
6. 配置目标数据库db1 replicat接收进程
(1) 添加replicat进程,名字为source1
GGSCI (host2) 9> add replicat target1,specialrun
REPLICAT added.
(2) 添加修改参数:GGSCI (host2) 13> edit params target1
replicat target1
setenv (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
assumetargetdefs
userid scott,password tiger
discardfile ./dirrpt/target1.dsc,purge
map scott.emp,target scott.test;
注:1. 目标数据库账号为scott,tiger
2. 将源数据库的表scott.emp同步到scott.test表中
查看修改之后
GGSCI (host2) 1> view params target1
7. 源数据库(dbsid2)开始同步
(1) 开始同步
GGSCI (host2) 11> start extract source1
Sending START request to MANAGER ...
EXTRACT SOURCE1 starting
(2) 监控同步过程
GGSCI (host2) 12> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
(3) 源数据库查看同步日志
GGSCI (host2) 13> view report source1
8. 目标数据库(db1)查看同步情况
SQL> select * from test;