在认真学习了GoldenGate企业级运维实战后,重点是对OGG几个进程的理解,结合对原理的理解,在整整实验了近两天,反复配置了四次之后,终于配置成功。本文经过多次配置成功实践整理而成,还有很多的细节需要完善。
目录
================================
一、环境准备并安装GoldenGate
1. 数据库准备情况
2. 下载OGG软件并解压安装
3. 准备OGG环境变量
4. 配置日志模式
5. 创建GoldenGate用户帐号
6. 安装GoldenGate软件
7. 配置源、目标数据库一致
二、 GoldenGate DML同步源端配置
1. 源MGR进程
2. 配置Extract进程组
3. 配置Pump进程组
三、 GoldenGate DML同步目标端配置
1. 目标端MGR进程
2. 添加检查表
3. 配置目标端Peplicat进程组
4. 可以查看checkpoint状态
5. DML配置测试
四、 GoldenGate DDL同步配置
1. 源端支持DDL复制运行脚本
2. 修改源端extract进程的params文件
3. 修改目标端replicat进程的params文件
4. 测试
=======================================
GoldenGate几个重要进程介绍:
1、Manager管理进程在两端开启,监控和重启其他进程;分配数据存储和报告错误及事件;
2、Extract进程从日志中抓取并传输到target端事务数据;
3、Server Collector进程在target(接受)端接受数据并写入trail文件;
4、Replicat进程读取trail文件,并应用到traget数据库;
5、trail文件时gg自己抓捕信息的文件,是一个OS文件,存放在./dirdat/下,以X00000命名,N顺序1,2,3…此文件用完可配置参数自动删除。
一、环境准备并安装GoldenGate
1. 数据库准备情况
1) 源服务器
IP地址:192.168.14.150
数据库:10.2.0.5 64 bit
SID: orcl
操作系统版本:Oracle 5.4 64 bit
ogg版本:fbo_ggs_Linux_x64_ora10g_64bit.tar
说明:前提条件是数据库已经准备方式安装完毕。
2) 目标服务器
IP地址:192.168.14.151
数据库:10.2.0.5 64 bit
SID: slave
操作系统版本:Oracle 5.4 64 bit
ogg版本:fbo_ggs_Linux_x64_ora10g_64bit.tar
说明:前提条件是数据库已经准备方式安装完毕。
2. 下载OGG软件并解压安装
1) 源服务器
mkdir -p /u01/app/oracle/ogg
unzip fbo_ggs_Linux_x64_ora10g_64bit.zip
tar -xvf fbo_ggs_Linux_x64_ora10g_64bit.tar -C /u01/app/oracle/ogg/
chown -R oracle:oinstall /u01/app/oracle/ogg
2) 目标服务器都要配置
mkdir -p /u01/app/oracle/ogg
unzip fbo_ggs_Linux_x64_ora10g_64bit.zip
tar -xvf fbo_ggs_Linux_x64_ora10g_64bit.tar -C /u01/app/oracle/ogg/
chown -R oracle:oinstall /u01/app/oracle/ogg
3. 准备OGG环境变量
#源服务器、与目标服务器都要配置
$ vi /home/oracle/.bash_profile
增加如下一行:
export GGATE=$ORACLE_BASE/ogg
生效环境变量
source /home/oracle/.bash_profile
4. 配置日志模式
# 源服务器,目标服务器不用配置(非双向)
1) 查看规档与日志模式
sqlplus / as sysdba
select log_mode,supplemental_log_data_min,force_logging from v$database;
2) 配置为规档模式
shutdown immediate;
startup mount;
alter database archivelog;
alter database open;
alter system set log_archive_dest_1='location=/u01/archive' scope=both;
3) 配置日志模式(打开强制规档与补充日志模式)
alter database add supplemental log data;
alter database force logging;
4)查看配置结果:
SQL> select log_mode,supplemental_log_data_min,force_logging from v$database;
LOG_MODE SUPPLEME FOR
------------ -------- ---
ARCHIVELOG YES YES
5. 创建GoldenGate用户帐号
1) 源服务器
su - oracle
sqlplus /nolog
conn / as sysdba;
create tablespace tbs_ogg datafile '/u01/app/oracle/oradata/orcl/tbs_ogg.dbf' size 10m autoextend on next 10m;
create user ogg identified by ogg default tablespace tbs_ogg temporary tablespace TEMP quota unlimited on tbs_ogg;
grant connect,resource to ogg;
grant create session,alter session to ogg;
grant select any dictionary,select any table to ogg;
grant alter any table to ogg;
grant flashback any table to ogg;
grant execute on dbms_flashback to ogg;
2) 目标服务器
su - oracle
sqlplus /nolog
conn / as sysdba;
create tablespace tbs_ogg datafile '/u01/app/oracle/oradata/orcl/tbs_ogg.dbf' size 10m autoextend on next 10m;
create user ogg identified by ogg default tablespace tbs_ogg temporary tablespace TEMP quota unlimited on tbs_ogg;
grant connect,resource to ogg;
grant create session,alter session to ogg;
grant select any dictionary,select any table to ogg;
grant alter any table to ogg;
grant flashback any table to ogg;
grant execute on dbms_flashback to ogg;
grant insert any table to ogg;
grant delete any table to ogg;
grant update any table to ogg;
6. 安装GoldenGate软件
(1) 源服务器、与目标服务器都要配置
su - oracle
cd /u01/app/oracle/ogg
./ggsci
GGSCI (test) 1> create subdirs
Creating subdirectories under current directory /u01/app/oracle/ogg
Parameter files /u01/app/oracle/ogg/dirprm: created
Report files /u01/app/oracle/ogg/dirrpt: created
Checkpoint files /u01/app/oracle/ogg/dirchk: created
Process status files /u01/app/oracle/ogg/dirpcs: created
SQL script files /u01/app/oracle/ogg/dirsql: created
Database definitions files /u01/app/oracle/ogg/dirdef: created
Extract data files /u01/app/oracle/ogg/dirdat: created
Temporary files /u01/app/oracle/ogg/dirtmp: created
Veridata files /u01/app/oracle/ogg/dirver: created
GGSCI (test) 2> quit
(2) 目标服务器都要配置
su - oracle
cd /u01/app/oracle/ogg
./ggsci
GGSCI (slave) 1> create subdirs
Creating subdirectories under current directory /u01/app/oracle/ogg
Parameter files /u01/app/oracle/ogg/dirprm: created
Report files /u01/app/oracle/ogg/dirrpt: created
Checkpoint files /u01/app/oracle/ogg/dirchk: created
Process status files /u01/app/oracle/ogg/dirpcs: created
SQL script files /u01/app/oracle/ogg/dirsql: created
Database definitions files /u01/app/oracle/ogg/dirdef: created
Extract data files /u01/app/oracle/ogg/dirdat: created
Temporary files /u01/app/oracle/ogg/dirtmp: created
Veridata files /u01/app/oracle/ogg/dirver: created
GGSCI (slave) 2> quit
注1:ogg_11.1.1.1.2,ogg_11.2.x.x.1显示创建的文件目录列表结构不一样。
上为ogg11.2版本的创建的内容。
7. 配置源、目标数据库一致
配置源与目标数据一致性可以采用很多方法,可以采用oracle的方式来完成。
本方式采用imp方式来实现初始数据表一致。
(1) 源端测试用户:
create user hr identified by hr;
grant connect,resource,select_catalog_role to hr;
conn hr/hr;
create table t1 as select * from dba_objects;
alter table t1 add constraint prikey_t1 primary key(object_id);
commit;
select count(*) from t1;
----------------------------
COUNT(*)
50315
(2) 目标端测试用户:
目标服务器通过exp/imp导入过去,只导入表结构
create user hr identified by hr;
grant connect,resource,select_catalog_role to hr;
conn hr/hr;
imp hr/hr file=hr.dmp rows=n
注: 还可以通过goldengate初始化数据加载的方式来实现数据同步。
二、 GoldenGate DML同步源端配置
配置思路:
1) 先配置DML同步
2) 再配置DDL同步
cd /u01/app/oracle/ogg
./ggsci
1. 源MGR进程
1) 编辑主进程组
edit params mgr
port 7809
dynamicportlist 7800-8000
autorestart extract *,retries 5,waitminutes 2,resetminutes 5
说明:
port 指定mgr进程通信端口
dynamicportlist 表示mgr进程可以为源与目的端动态通信指定端口
autorestart extract 表示自动重启extract进程组,每2分钟尝试重启所有进程,重试5次,每5分钟清零。
配置参数后,重启mgr进程生效
2) 启动主管理进程
start mgr
2. 配置Extract进程组
1) 编辑配置文件
edit params eora
extract eora
dynamicresolution
setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
userid ogg,password ogg
exttrail /u01/app/oracle/ogg/dirdat/et
table hr.*;
说明:
extract eora定义extract进程名字
dynamicresolution
setenv设置环境变量
userid 登录数据库
exttrail指定本地trail文件地址
table 定义同步的表
2) 添加抽取进程
add extract eora, tranlog,begin now
3) 添加本地trail文件
add exttrail /u01/app/oracle/ogg/dirdat/et,extract eora
说明:
创建本地trail文件,主extract进程负责写这部分文件,pump负责把这部分文件传到目标服务器端。
4) 启动服务
start extract eora
3. 配置Pump进程组
1) 编辑配置文件
edit params pump_so
extract pump_so
dynamicresolution
passthru
rmthost 192.168.14.151,mgrport 7809,compress
rmttrail /u01/app/oracle/ogg/dirdat/pt
table hr.*;
2) 添加pump进程
add extract pump_so,exttrailsource /u01/app/oracle/ogg/dirdat/et
3) 添加远程trail文件
add rmttrail /u01/app/oracle/ogg/dirdat/pt,extract pump_so
说明: 指定远程trail文件
4) 启动pump进程
start extract pump_so