OGG上线步骤
http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html
https://edelivery.oracle.com/osdc/faces/SoftwareDelivery
建议使用安装数据库的用户操作,直接解压到任意目录即可
源库为Oracle安装方法
一般使用静默安装,解压安装文件,编辑解压目录下的xxx/Disk1/response/oggcore.rsp文件
oracle.install.responseFileVersion保持默认
INSTALL_OPTION根据提示进行填写
SOFTWARE_LOCATION软件将要安装的目录
START_MANAGER=false就可以,一般在安装后再配置
MANAGER_PORT不填,一般在安装后再配置
DATABASE_LOCATION不填
INVENTORY_LOCATION一般在安装目录的同级建oggInventory目录
UNIX_GROUP_NAME=oracle
保存后找到runInstaller目录执行静默安装命令:
./runInstaller -silent -responseFile response/oggcore.rsp直到安装完成
LD_LIBRARY_PATH=/home/ogg/ogg:/usr/java/jdk1.7.0_71/jre/lib/amd64/server
值需根据实际情况修改
源库为DB2
确认是否开启归档模式
db2 connect to xxx
db2 get db cfg | grep LOGARCHMETH查看xxx log archive method为LOGRETAIN
表示已开启
如果为NO,请源库管理员开启归档
下面为自行开启归档的办法(部分版本,不行请找度娘):
修改logretiain参数:db2 update db cfg for xxx using LOGRETAIN ON
执行整库备份:
db2 force applications all
db2 BACKUP DATABASE xxx to /dev/null
sqlplus /nolog
SQL>conn /as sysdba;
SQL>select log_mode from v$database;
若不是ARCHIVELOG状态,需设置归档模式(如果允许,执行如下操作设置归档)
SQL>shutdown immediate;
SQL>startup mount;
SQL>select open_mode from v$database;
SQL> alter database archivelog;
SQL>alter database open;
打开force logging
SQL>select force_logging from v$database;
若为NO,需改为yes
SQL>alter database force logging;
添加数据库附加日志
SQL>alter database add supplemental log data(primary key,unique) columns;
切换日志确保附加日志生效
SQL>alter system switch logfile;
数据采集用户赋权
SQL>grant select on sys.props$ to username;
SQL>grant select any dictionary to username;
报WARNING OGG-00706错误的时候设置
SQL>grant execute on sys.DBMS_CAPTURE_ADM to username;
数据库为oracle11.2.0.4,12.1.0.2+需要设置
SQL>alter system set enable_goldengate_replication=true scope=both;
安装目录执行./ggsci
GGSCI >create subdirs
GGSCI >edit param mgr
在编辑界面输如port 7809
其他参数请参考官方文档
保存后执行
GGSCI >start mgr
源库为Oracle
GGSCI >dblogin userid xxx,password xxx
GGSCI >info trandata xxx.xxx
GGSCI >add trandata xxx.xxx,allcols
源库为Db2 (sourcedb:为实例名)
GGSCI >dblogin sourcedb xx,userid xx,password xx
dblogin sourcedb db2inst1,userid db2inst1,password 1
GGSCI >info trandata xxx.xxx
GGSCI >add trandata xxx.xxx
将测试环境的prm采集文件放到安装目录下的dirprm目录下
安装目录执行./ggsci
Oracle使用begin now, db2使用eof
GGSCI >add ext xxx,tranlog begin now
GGSCI >add ext xxx,tranlog eof
直接投递到目标端
GGSCI >add rmttrail ./dirdat/yy,ext xxx,megabytes 200
如果先抽取到本地,再投递
GGSCI >add exttrail ./dirdat/yy,ext xxx, megabytes 200
(如果先抽取本地再投递,需要再配置一个进程)
然后启动抽取进程
GGSCI >start xxx
查看进程信息,如果为running且checkpoint在变化为正常
GGSCI >info xxx
查看进程状态
GGSCI >stats xxx
注:上面红色的xxx必须和prm文件名保持一致,yy和prm里配置的保持一致
复制需要初始化的采集配置prm文件,将其中的配置
Rmttrail ./dirdat/yy部分修改为
rmtfile ./dirdat/i1,maxfiles 999999, megabytes 2000,append
红色部分根据实际情况修改
添加初始化进程
GGSCI >add extract xxx,sourceistable
GGSCI >start xxx
查看进程状态,如果为running且checkpoint在变化为正常
GGSCI >info xxx
如果OGG软件版本低于12.0,需执行本部分操作。其他版本忽略
编辑文件vi def.prm
defsfile ./dirdef/xxx.def
sourcedb xx, userid xx, password xx
table xx.xxxx;
table xx.xxxx;
保存文件到ogg安装目录下dirdef目录中
在ogg安装目录中执行命令:./defgen paramfile dirdef/def.prm
执行完成后,dirdef目录下会生成xxx.def文件,将此文件copy到目标服务器ogg安装目录的dirdef目录下
为保证数据不遗漏,需在开启初始化的时候,记录该checkpoint点。具体步骤为:
如果为新的采集进程,需先添加实时采集进程后再进行初始化操作。初始化完成后,开启实时采集,从之前添加进程的时间开始做增量采集。
如果为已有的进程添加新表,需先配置好新表后重启进程,使新表生效后,停止实时采集,开启初始化。初始化完成后开启实时进程,做增量数据采集。
进入安装目录下dirdat目录,查看源端采集进程对应的数据队列文件是否到达,是否持续增长。如果没有,则可能是源端采集挂了。需检查
如果数据队列正常,进入安装目录下dirprm目录,复制任意一个已经启动的进程文件,将文件内容的进程名修改成文件名一致,将schema修改成源端采集所对应的schema,如果源端OGG版本低于12.0,还需加上表定义文件
SourceDefs ./dirdef/xxx.def
Example:
REPLICAT loanacc
setenv(NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")
TARGETDB LIBFILE libggjava.so SET property=dirprm/rjava.props
REPORTCOUNT EVERY 10 seconds, RATE
GROUPTRANSOPS 10000
SourceDefs ./dirdef/loan.def
MAP sclm.*, TARGET sclm.*;
完成配置文件后,执行
GGSCI >add rep xxx,exttrail ./dirdat/xx
如果需初始化,需再添加一个初始化replicat进程
GGSCI >add rep xxx,exttrail ./dirdat/xx
先启动初始化,待初始化完成后(源端stats xxx数据量和目标rep进程一直表示初始化完成),再启动实时进程。
GGSCI >start xxx
在目标服务器ogg目录下,编辑ogg_restart.cfg,在最后加上新增的复制进程
在目标服务器ogg目录下,编辑rmrpt.sh,在最后加上删除日志的语句
去掉源端和目标的的setenv(nls_lang=xxx)配置
在源端用户修改export TZ=Asia/Shanghai临时环境变量
对于AIX系统,检查用户的:
对于linux系统,检查.bash_profile
确认源端采集的采集字段是否包含所有的主键信息
2018-05-24 15:38:17 ERROR OGG-01668 PROCESS ABENDING.
日志已经被删除,对测试可以重新设置采集点,但生产慎用。
采集端执行:
对DB2数据库命令:alter xxx,tranlog eof
对ORACLE数据库:alter xxx,tranlog begin now
2018-06-22 09:58:22 ERROR OGG-01668 PROCESS ABENDING.
日志已经被删除,对测试可以重新设置采集点,但生产慎用。
采集端执行:
对DB2数据库命令:alter hxh,tranlog eof
对ORACLE数据库:alter xxx,tranlog begin now
采集的表没有def在文件中更新。需要在采集端编辑文件vi def.prm
加入
table SCLM.DEBLACK;
保存文件到ogg安装目录下dirdef目录中
在ogg安装目录中执行命令:./defgen paramfile dirdef/def.prm
执行完成后,dirdef目录下会生成 loan.def文件,将此文件copy到目标服务器ogg安装目录的dirdef目录下
alter xxxx,extseqno 16,然后info,看看是不是到16了
2018-05-31 14:47:16 ERROR OGG-01668 PROCESS ABENDING.
在编译def文件 ./defgen paramfile dirdef/def.prm 时发生错误
原因:def文件中存在多余空格
defsfile ./dirdef/ drst.def
改为
defsfile ./dirdef/drst.def
在配置目标端时可能会报字符集错误
在prm文件中加入
SOURCECHARSET UTF-8 或者 SOURCECHARSET ZHS16GBK 或者 SOURCECHARSET GB18030 根据采集端字符集选择
4.11问题:ERROR OGG-15050 Error loading Java VM runtime library: (2 No such file or directory)
解决办法:需要将Java的libjvm.so 和 libjsig.so库文件所在目录加入LD_LIBRARY_PATH环境变量,
需要注意的是,LD_LIBRARY_PATH环境变量成效后,需要将MGR也重启一下
目标端bigdata:要求必须jdk1.7
export GG_HOME=/data/oggt
export PATH=$PATH:$GG_HOME
export LD_LIBRARY_PATH=$GG_HOME:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.45.x86_64/jre/lib/amd64/server
4.12问题: java.lang.UnsupportedClassVersionError:oracle/goldengate/datasource
/UserExitMain :Unsupported major.minor version 52.0.
原因:OGGforBigData要的1.8 Java版本,我直接配到oracle用户的.bash_profile中
解决办法:
export JAVA_HOME=/keduox/jdk1.8.0_111
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
export LD_LIBRARY_PATH=/lib:/usr/lib:$JAVA_HOME/jre/lib/amd64/server:$JAVA_HOME/jre/lib/amd64; export LD_LIBRARY_PATH
4.13出现这种错误:2013-08-29 10:09:54 WARNING OGG-00769 Oracle GoldenGate Delivery for MySQL, rep1.prm: MySQL Login failed: . SQL error (2002). Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
环境变量:
export MYSQL_UNIX_PORT=/var/lib/mysql/mysql.sock
解决方法:
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
4.14 2018-07-14 21:36:37 ERROR OGG-01044 The trail '/ogg/dirdat/R4' is not assigned to extr act 'P4'. Assign the trail to the extract with the command "ADD EXTTRAIL/RMTTRAIL /ogg/dirdat/R4, EXTRACT P4".
解决办法:
add exttrail /ogg/dirdat/R4, EXTRACT P4
4.15问题:WARNING OGG-01877 Missing explicit accessrule for server collector。
解决办法:在mgr中,添加:ACCESSRULE, PROG SERVER, ALLOW