整体部署流程如下:
源端-单机 目标端-单机
部署ogg流程
软件安装的都是ogg11.1.1.2版本的
操作如下:
++++++++++++++++++++++++++
4.1源端安装OGG
4.1.1 创建软件安装目录并赋权
mkdir -p /ogg
mkdir -p /arch
mkdir -p /backup
chown -R oracle:oinstall /arch --存放归档
chown -R oracle:oinstall /ogg --存放ogg
chown -R oracle:oinstall /backup --存放备份
4.1.2 配置oracle用户环境变量
如果是集群每个节点都要配置
vi .bash_profile
设置Library 路径
假设OGG的安装目录是/ogg,那么在/home/oracle/.bash_profile文件里添加如下内容:
export OGG_HOME=/ogg
export PATH=$ORACLE_HOME/bin:$PATH:$OGG_HOME
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$OGG_HOME:/lib:/usr/lib
–source 使修改生效:
source .bash_profile
4.1.3 安装ogg
注:如果是集群在一个节点安装即可。
su - oracle
我这里安装的是ogg11.1.1.2版本,ogg12版本以后出现图形界面安装模式,最后达到的目的是一样的。
把ogg软件包上传到源端和目标端的数据库服务器上。(scp,或者ftp)
unzip V28941-01.zip
[oracle@target soft]$ unzip V28941-01.zip
Archive: V28941-01.zip
inflating: fbo_ggs_Linux_x64_ora11g_64bit.tar
inflating: OGG_WinUnix_Rel_Notes_11.1.1.1.2.pdf
inflating: Oracle_GoldenGate_11.1.1.1_README.txt
tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar
4.1.4 运行ogg并创建目录
注意:一定要cd到ogg的目录下去执行
GoldenGate的日志位于目录下的ggserr.log中,在配置过程中出现问题时可以通过日志排查问题。
su - oracle
cd $OGG_HOME
./ggsci --(GoldenGate software command interface)
[oracle@source 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 © 1995, 2011, Oracle and/or its affiliates. All rights reserved.
GGSCI (source) 1> create subdirs
Creating subdirectories under current directory /ogg
Parameter files /ogg/dirprm: created
Report files /ogg/dirrpt: created
Checkpoint files /ogg/dirchk: created
Process status files /ogg/dirpcs: created
SQL script files /ogg/dirsql: created
Database definitions files /ogg/dirdef: created
Extract data files /ogg/dirdat: created
Temporary files /ogg/dirtmp: created
Veridata files /ogg/dirver: created
Veridata Lock files /ogg/dirver/lock: created
Veridata Out-Of-Sync files /ogg/dirver/oos: created
Veridata Out-Of-Sync XML files /ogg/dirver/oosxml: created
Veridata Parameter files /ogg/dirver/params: created
Veridata Report files /ogg/dirver/report: created
Veridata Status files /ogg/dirver/status: created
Veridata Trace files /ogg/dirver/trace: created
Stdout files /ogg/dirout: created
GGSCI (source) 2>
在oracle11g及之前的版本中,安装完OGG,还需要使用ggsci工具执行create subdirs 创建OGG对应的目录,到了12c及以后的版本安装完成OGG后目录自动创建好了,不需要手动执行create subdirs。
dirchk 用于存放各个进程检查点
dirdat 存放数据队列本地trail文件
dirprm 存放各个进程的参数文件
dirrpt 存放正在运行进程的进程信息
dirpcs 存放正在运行的运行信息
defgen 工具生成的源或目标定义数据文件
(由于 Oracle 和 SQL Server 中的数据类型不同。所以您必须建立数据类型转换。GoldenGate 提供了一个名为 DEFGEN 的专用工具。用于生成数据定义,当源表和目标表中的定义不同一时候,Oracle GoldenGate 进程将引用该专用工具。在执行 DEFGEN 之前,须要为其创建一个參数文件,指定该工具应检查哪些表以及在检查表之后存放类型定义文件的位置。)
Dirsql 运放sql脚本文件
dirtmp:当事物所需要的内存超过已分配内存时,缺省存储在这个目录
4.2目标端安装OGG
4.2.1创建软件安装目录并赋权
mkdir -p /ogg
chown -R oracle:oinstall /ogg
4.2.2配置oracle用户变量
如果是集群每个节点都要配置
vi .bash_profile
设置Library 路径
假设OGG的安装目录是/ogg,那么在/home/oracle/.bash_profile文件里添加如下内容:
export OGG_HOME=/ogg
export PATH=$ORACLE_HOME/bin:$PATH:$OGG_HOME
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$OGG_HOME:/lib:/usr/lib
–source 使修改生效:
Source .bash_profile
4.2.3解压ogg文件
unzip V28941-01.zip
[oracle@target soft]$ unzip V28941-01.zip
Archive: V28941-01.zip
inflating: fbo_ggs_Linux_x64_ora11g_64bit.tar
inflating: OGG_WinUnix_Rel_Notes_11.1.1.1.2.pdf
inflating: Oracle_GoldenGate_11.1.1.1_README.txt
tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar
4.2.4 运行ogg并创建目录
Cd $OGG_HOME
[oracle@target 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 © 1995, 2011, Oracle and/or its affiliates. All rights reserved.
GGSCI (target) 1> create subdirs
Creating subdirectories under current directory /ogg
Parameter files /ogg/dirprm: created
Report files /ogg/dirrpt: created
Checkpoint files /ogg/dirchk: created
Process status files /ogg/dirpcs: created
SQL script files /ogg/dirsql: created
Database definitions files /ogg/dirdef: created
Extract data files /ogg/dirdat: created
Temporary files /ogg/dirtmp: created
Veridata files /ogg/dirver: created
Veridata Lock files /ogg/dirver/lock: created
Veridata Out-Of-Sync files /ogg/dirver/oos: created
Veridata Out-Of-Sync XML files /ogg/dirver/oosxml: created
Veridata Parameter files /ogg/dirver/params: created
Veridata Report files /ogg/dirver/report: created
Veridata Status files /ogg/dirver/status: created
Veridata Trace files /ogg/dirver/trace: created
Stdout files /ogg/dirout: created
下面就不介绍各个文件用途,请看4.4.1
5.GoldenGate配置
5.1OGG源端配置
5.1.1配置mgr进程
edit param mgr
port 7809
DYNAMICPORTLIST 7840-7870
userid ogg, password ogg
purgeoldextracts ./dirdat/*, usecheckpoints, minkeepdays 2
autorestart extract *, retries 5, waitminutes 3
参数说明:
Port 7809 通信端口。生产端和容灾端需要保持一致。
DYNAMICPORTLIST 7840-7870
可以定制最大256个可用端口的动态列表,动态端口列表的范围从7840-7914。当定制端口被占用或者出现通信故障,管理进程将会从列表中选择下一个端口尝试连接,避免通信端口的单点故障。
Userid 用户 password 密码
Purgeoldxtracts ./dirdat/*,usercheckpoints,minkeepdays 2
定期清理dirdat路径下的本地队列(local trail)。保留期限2天,如果空间足够大,时间可以修改,过期后自动删除。从而控制队列文件的目录不会增长过大。
Autorestart extract *,retries 5, waitminutes 3
当提取进程中断后尝试自动启动,每隔3分钟尝试启动一次,尝试5次。
还有其他参数:
Lagreporthours 1
每隔一小时检查一次传输延迟情况
Laginfominutes 30
传输延时超过30分钟将写入错误日志
Lagcriticalminutes 45
传输延时超过45分钟将写入警告日志
通常在一些海量数据的分区表中容易出现阐述延时的现象。建议在容灾备端启动多个复制进程(replicat),为这些大表单独的开启专用通道。
–查看7809端口是否启用
在ggsci里操作
Sh netstat -ntlp |grep 7809
Sh ps -ef|grep mgr
5.1.2添加表级trandata
Dblogin userid ogg,password ogg
–查看是否已添加
Info trandata test.test
–添加某用户下的某表
Add trandata test.test
–添加某用户下所有表
Add trandata test.*
–查看状态
Info trandata test.*
注意:为了方便这里直接添加整个用户下表级transdata,如果只是同步部分表的,请批量
执行add trandata test.tablename
成功添加表级TRANDATA后,可以通过INFO命令查看哪些表被添加了
5.1.3配置extract抽取进程
Dblogin userid ogg,password ogg
#源端数据库创建一个extract进程
Add extract e_tt,tranlog,begin now --单节点执行此语句
Add extract e_tt,tranlog,begin now,threads 2 --集群执行此语句
#添加extract进程的trail文件配置
Add exttrail ./dirdat/tt,extract e_tt
#配置extract进程
Edit params e_tt
extract e_dz
setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )
userid ggs, password AACAAAAAAAAAAAIAQCRIEBIIFFHHPDSC,ENCRYPTKEY default
tranlogoptions dblogreader
THREADOPTIONS MAXCOMMITPROPAGATIONDELAY 3000 IOLATENCY 3000
gettruncates
warnlongtrans 2h, checkinterval 3m
–DDL INCLUDE MAPPED, EXCLUDE OBJNAME “SYS.AQ$KUPC$DATAPUMP_QUETAB_1”, EXCLUDE OBJNAME “SYS.*”, EXCL
UDE OBJTYPE ‘VIEW’
exttrail ./dirdat/tt
discardfile ./dirrpt/e_tt.dsc,append, megabytes 50
dynamicresolution
table test.test;
参数解释:
Extract e_tt
抽取进程名
setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK ) --字符集
setenv ( ORACLE_HOME=’/home/u01/app/oracle/product/11.2 ) --数据库路径
setenv ( ORACLE_SID=’ora’ ) -多个实例必须配置此项,如果是单实例可以省略
Oracle 环境变量
tranlogoptions dblogreader
关于参数DBLOGREADER的说明,文档中写到:
(Oracle)Valid for Extract in classic
capture mode. Causes Extract to use a newer ASM API that is
available as of Oracle 10.2.0.5 and later10gR2 versions and Oracle
11.2.0.2 and later 11gR2 versions(but not in Oracle 11gR1
versions). This API uses the database server to access the redo log
and archive logs, instead of connecting directly to the Oracle ASM
instance.The database must contain the libraries that contain the
API modules and must be running
To use this feature,the Extract database
user must have SELECT ANY TRANSACTION privilege.
Gettruncates
捕获source db truncate table的操作
warnlongtrans 2h, checkinterval 3m
每隔3分钟检查一下大事务,超过2小时还没结束的就行报告
–DDL INCLUDE MAPPED, EXCLUDE OBJNAME “SYS.AQ$KUPC$DATAPUMP_QUETAB_1”, EXCLUDE OBJNAME “SYS.*”, EXCLUDE OBJTYPE ‘VIEW’
exttrail ./dirdat/tt
队列文件路径
discardfile ./dirrpt/e_tt.dsc,append, megabytes 50
将执行失败的记录保存在dircard file中,该文件位于当前目录下 ./dirrpt/e_tt.dsc,大小为50M。文件中已经包含记录的话,再后面继续追加,不删除之前的记录
Dynamicresolution
有时候开启OGG进程的时候较慢,可能因为需要同步的表太多,OGG在开启进程之前会将需要同步的表建立一个记录并存入到磁盘中,这样就需要耗费大量的时间。使用该参数来解决此问题。
table test.*;
抽取的用户和表
5.1.4配置pump传输进程
Add extract p_tt,exttrailsource ./dirdat/tt,begin now
Add rmttrail ./dirdat/tt,etxract p_tt
Edit param p_tt
extract p_tt
dynamicresolution
Userid ogg,password ogg
setenv( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )
rmthost 192.168.88.81,mgrport 7809,compress
rmttrail ./dirdat/tt
passthru
dynamicrsolution
Table test.*;
参数说明:
extract p_tt
投递进程名称
setenv( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )
Oracle环境变量
Dynamicresolution
动态解析表名,此参数在12.2中start进程时会提示已经deprecated(废弃)
PASSTHRU
采用pass-through模式处理表
rmthost 192.168.88.81,mgrport 7809,compress
Target db主机 ip,管理进程端口号,投递前压缩队列文件
rmttrail ./dirdat/tt
Target db 保存队列文件的目录
5.2OGG目标端配置
5.2.1添加GLOBALS参数文件,创新检查点表
备注:在配置捕获ddl语句的时候才需要对其进程配置
Edit param ./GLOBALS
GGSCHEMA ogg
Dblogin userid ogg,password ogg
Add checkpointtable ogg.checkpoint
5.2.2配置mgr进程
Edit param mgr
port 7809
DYNAMICPORTLIST 7840-7940
purgeoldextracts ./dirdat/*, usecheckpoints, minkeepfiles 2
autorestart extract *, retries 5, waitminutes 3
userid ogg, password ogg
5.2.3配置replicat复制进程
Dblogin userid ogg,password ogg
Add replicat r_tt,exttrail ./dirdat/tt,checkpointtable ogg.checkpoint
配置参数r_tt
Edit param r_tt
replicat r_tt
setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )
userid ogg, password ogg
sqlexec “Alter session set constraints=deferred”
–DBOPTIONS DEFERREFCONST
discardrollover on friday
reperror default,abend
discardfile ./dirrpt/r_tt.dsc,append, megabytes 10
assumetargetdefs
allownoopupdates
dynamicresolution
gettruncates
DDLERROR 955 IGNORE
Map test.test target test.test
++++++++++++++++++++++++++
初始化数据,利用expdp、impdp操作,根据scn号
1.查询当前的SCN
select to_char(to_number(CURRENT_SCN)) from V$DATABASE;
1020594
说明:选择SCN时应遵循事务一致性,需考虑到事务的SCN。若当前实例无事务运行,则选择curren_scn 。需要注意的是,选择事务SCN时,检查一下归档是否存在,因为事务的start_scn 可能会存在长事务,即开始时间会较长,归档可能由于备份策略给移走。
2.在源端执行以下语句导出需要数据
(1)创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。
Create directory dir as ‘/dump’;
(2)给test用户赋予在指定目录的操作权限,最好以system等管理员赋予。
Grant read,write on directory dir to test;
expdp ‘/ as sysdba’ directory=dir dumpfile=test.dmp logfile=test.log tables=test.test flashback_scn=1020594;
6.2目标端初始化复制配置
Impdp导入方式
impdp ‘/ as sysdba’ directory=dir dumpfile=test.dmp logfile=test.log tables=test.test remap_schema=test:test remap_tablespace=ogg_data:ogg_data content=DATA_ONLY;
–目标端进程添加以下内容
map test.test, target test.test, filter ( @GETENV (‘TRANSACTION’, ‘CSN’) >= 1020594);
源端和目标端的进程都是正常的,但是源端的ggserr.log 有报错:如下:
2021-07-23 12:50:56 INFO OGG-00993 Oracle GoldenGate Capture for Oracle, p_tt.prm: EXTRACT P_TT started.
2021-07-23 12:51:01 INFO OGG-01226 Oracle GoldenGate Capture for Oracle, p_tt.prm: Socket buffer size set to 27985 (flush size 27985).
2021-07-23 12:51:01 INFO OGG-01052 Oracle GoldenGate Capture for Oracle, p_tt.prm: No recovery is required for target file ./dirdat/tt000000, at RBA 0 (file not opened).
2021-07-23 12:51:01 INFO OGG-01478 Oracle GoldenGate Capture for Oracle, p_tt.prm: Output file ./dirdat/tt is using format RELEASE 10.4/11.1.
目标端的ggserr.log无报错
进程状态展示:


以上信息,希望遇到过类似的方面的问题大佬 帮忙给看看
墨值悬赏

评论

