一次超详细oggDDL单项复制配置记录
- OS层面的配置清单
- DATABASE层面配置清单
- SOFT 层面配置清单
-
- 1.1 基于单向的source-target原理介绍
- 1.2 基于单向的source-target实际操作
-
- 1.2.1 数据库方面配置
- 1.2.2 OGG软件层面上的配置
-
- 1 添加指定表的trandata
- 2.配置Mgr及创建一些目录
- 3.Configure inital Extract process in source(可选)
- 4.Configure inital replicat process in target(可选)
- 5.start init load in source(可选)
- 6.config extract Process in Source system
- 7.Define GoldenGate local trail
- 8 start extract progress Eora_1
- 9.Configure pump process in source system
- 10.Add GoldenGate remote trail in Source system
- 11.Configure replicat process in target system
- 12.Create GLOBALS parameter in target system
- 13.Config a base-on_scn's expdp in source system
- 14.Config a base-on_scn's impdp in target system
- 15.Start Replicate procress in targget system
OS层面的配置清单
GG软件支持异构平台软件之间的数据灾备,所以在OS层面上我们最关心的是各自平台与同一版本GG软件之间的兼容性,GG软件的异构灾备主要数据传输依赖于网络TCP/IP协议,所要要确保主机之间的网络通信畅通。
OS层面准备清单
配置大致过程(source与target)
1.1 修改IP地址,hostname,添加hosts信息
|
vi /etc/sysconfig/network |
---|
vi /etc/sysconfig/network-script/ifcfg-eth0 |
source端与target端按照上表信息填写修改。
vi /etc/hosts |
---|
service network restart |
ping <<hostaname |
hosts不仅要写自己的hosts与ip对应,还要写目标主机的
1.2 创建相关的用户,用户组,用户分组,目录分配
chown –R oracle:oinstall /u01 ROOT将目录权限给予oracle和oinstall组
1.3 oracle用户的环境变量~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
ORACLE_BASE=/u01
ORACLE_HOME=$ORACLE_BASE/oracle
ORACLE_SID=prod
PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
NLS_LANG="simplified chinese"_china.AL32UTF8
export NLS_LANG
export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib '
注意ORACLE_SID一项在不同主机上应该指向不同实例名,用以区分SOURCE/TARGET
DATABASE层面配置清单
基本信息
DBCA建库
export DISPLAY=<客户端地址>:0.0
oracle用户来操作,安装前再次确认环境变量信息是否正确
SOFT 层面配置清单
1.1 基于单向的source-target原理介绍
1.1.1 OGG大致体系与进程
source端与target端进程大多是成对出现的,各自都有一个总的进程mgr来统一管理所有抽取、传输、复制进程。
目标端:1.根据源端extract进程的请求,扫描和绑定可用的端口给mgr主进程分配给请求的extract进程;2.接收源端extract抽取trail并写入到目标端的trail文件;之后replicat进程读取并应用数据到目标数据库。(可以和data capture同步或之后执行)后台进程,不可直接交互
trail 文件用来存储源端extract捕获的数据更改,可以用add exttrail ./dirdat ,extract
eora_1添加本体trail文件然后经由pump进程发送通过tcp发送到目标端,由目标端后台进程收取trail存入本地的trail文件队列,再由replicat进程复用。
extract-local trail-pump rmttrail-tcp-collector-local trail-replicat
1.1.2 Progress1:Eini_1(source) – Rini_1(target)
-
初始化装载进程。用于初始化同步俩个表,对于需要表结构与表数据进行校验,如果俩表之间没有差异,可以不同步。
-
对于比较大的表需要gg灾备到另外主机,最好用数据泵进行导入导出,初始化装载会快。
-
同步的表与表之间最好是有主键约束的,没有以表rowid为标识进行数据变更定位,效率受到影响。
1.1.3 Progress2: Eora_1(source)
-
source端数据变更抽取进程。主抽取进程,用于抽取source端表数据的dml 变更,要求数据库要开启附加日志和强制日志功能。
-
抽取完的变更向量,存放在本地队列文件中,等待传输。$OGG_HOME/dirdat队列文件夹,需要add extrail ./dirdat/aa,extract eora_1 创建一个本地trail文件
-
根据业务需求可以同时运行在源端与目标端,抽取捕获系统数据变更。
-
根据业务需求也可以捕获ddl变更,需要额外的配置。
-
初始化进程也是extract的一种业务需求表现形式。
1.1.4 Progress3:Pora_1(source)
- source端的数据泵进程。second extract进程,也叫data pump将数据把数据经TCP/IP网络发送到目标端,这样做的好处是可以保护抽取的数据,防止网络或target trail出现问题。也可设定一定的规则,让GG自动在一定的条件下,清除trailpump进程提高了源端与目标端捕获数据的可用性
- 如果不使用Data Pump,extract进程必须发送抽取捕获的操作数据到目标端trail;
- 如果配置了Data Pump,extract进程抽取捕获数据写入到trail,Data pump读取trail并且通过网络发送trail到目标端trail。需要配置add rmttrail ./dirdat/pa,extract pora_1 远程trail文件
1.1.5 Progress4:Rora_1(target)
- target端复用进程,配置好mgr后,自动启动,获取本地队列文件 $OGG_HOME/dirdat/,
应用源端表数据更改
add REPLICAT RORA_1, EXTTRAIL ./dirdat/pa
- Replicat进程运行在目标端读取tail文件和重构DML、DDL并应用到目标数据库
1.1.6 Progress5:Mgr ( source&target )
- 在灾备此过程中,源端及目标端均有manager process运行,执行对其他进程的启动,检测,重启,分配存储空间,报告错误等
1.1.7 trail文件
- trail文件保存抽取捕获的变更数据信息,trail根据GoldenGate配置可能存在于源系统的磁盘上或者目标系统的磁盘上或者系统内部介质或者相关的系统中
- 使用trail文件存储抽取捕获的数据可以不依赖于extract或replicat进程,你可以有更多的选择处理数据和何时到达目标端,比如你可能配置抽取和保存在同一时刻,然后稍后发送数据到目标端。