goldengate进程源库交换到目标库完整配置

版权声明:今年34岁,正式开始学编程 https://blog.csdn.net/qq_42924709/article/details/85116240

背景:
A库交换到B库。
goldengate简称OGG。
版本12.2.0.1

A库是首次安装OGG。
B库已有正常运行的OGG。

需求:
以下2个表从A库交换到B库
源表 目标表
DB_SJ.T_DWJCXX – DB_JH.T_DWJCXX;
DB_SJ.T_DWTSMX – DB_JH.T_DWTSMX;

-----------------------以下为实施过程-----------------

1-为A库部署OGG建立专用用户
GGT和db_sjjhpt。GGT主要用于OGG的数据交换、db_sjjhpt用于外部的监控和稽核。
– Create the user
create user GGT
identified by “****”
default tablespace TBS_SJJH_OGG
temporary tablespace TEMP_SJJH_OGG;
– Grant/Revoke role privileges
grant connect to GGT;
grant resource to GGT;
grant select_catalog_role to GGT;
grant dba to GGT;
– Grant/Revoke system privileges
grant alter any index to GGT;
grant alter any table to GGT;
grant alter session to GGT;
grant comment any table to GGT;
grant create any index to GGT;
grant create any table to GGT;
grant create database link to GGT;
grant create session to GGT;
grant delete any table to GGT;
grant drop any index to GGT;
grant drop any table to GGT;
grant flashback any table to GGT;
grant insert any table to GGT;
grant select any dictionary to GGT;
grant select any table to GGT;
grant select any transaction to GGT;
grant unlimited tablespace to GGT;
grant update any table to GGT;

– Create the user
create user db_sjjhpt
identified by “****”
default tablespace TBS_SJJH_OGG
temporary tablespace TEMP_SJJH_OGG;
– Grant/Revoke object privileges
grant select on GGT.T_OGG_MN_STATUS to DB_SJJHPT;
– Grant/Revoke role privileges
grant connect to DB_SJJHPT;
grant resource to DB_SJJHPT;
– Grant/Revoke system privileges
grant select any dictionary to DB_SJJHPT;
grant select any table to DB_SJJHPT;
grant unlimited tablespace to DB_SJJHPT;

2、A库(源端数据库)及系统配置

ORACLE用户登录在命令行执行,或使用ggt用户登录数据库

检查源端数据库是否为归档模式,若为非归档模式,将其改为归档模式
SQL>archive log list;
检查源端数据库附加日志是否打开
SQL>select log_mode,supplemental_log_data_min,force_logging from v$database;
将数据库附加日志打开
SQL>alter database add supplemental log data;
开启force logging模式
–SQL>alter database force logging;
切换日志以使附加日志生效:
–SQL>alter system archive log current;

第一次安装OGG,执行命令创建目录。
此命令是OGG特定的函数,用于第一次安装OGG批量新建文件夹。
create subdirs

数据库OGG初始化参数,设置允许OGG数据复制:
–show parameter enable_goldengate_replication;
alter system set enable_goldengate_replication=true;

创建日志目录,此目录视实际环境设置。
–mkdir -p d:/ogg/gglog/dirdat/edgrs001

3、A库OGG进程配置
3.1配置MGR进程

edit param mgr
port 7820 #设置端口
dynamicportlist 7815-8000
autorestart er , retries 5, waitminutes 3
purgeoldextracts d:/ogg/gglog/dirdat/edgrs001/
,usecheckpoints, minkeepdays 3 #设置归档日志保留3天
LAGREPORTHOURS 5
LAGINFOMINUTES 10
LAGCRITICALMINUTES 15

对于OGG12以上版本,初次配置OGG需要设置允许对存放归档日志数据目录读写。
GGSCI (nhhxlwdb02) 2> edit params ./GLOBALS
ALLOWOUTPUTDIR d:/ogg/gglog/dirdat/

stop mgr
start mgr

3.2添加CHECKPOINTTABLE
进入GGSCI命令行,执行

encrypt password *** , ENCRYPTKEY DEFAULT ##执行密码加密
–Using Blowfish encryption with DEFAULT key.
–Encrypted password: AACAAAAAAAAAAAMAXBRCXGPAZHAITHKHKINDJDMIDFWFUEOI ##加密结果
–Algorithm used: BLOWFISH

添加CHECKPOINTTABLE
dblogin userid ggt , password AACAAAAAAAAAAAMAXBRCXGPAZHAITHKHKINDJDMIDFWFUEOI , ENCRYPTKEY DEFAULT ##输入加密密码登录
add checkpointtable ggt.ggs_checkpoint

3.3添加抽取进程
进入GGSSCI命令行,执行下面的命令,添加抽取进程

dblogin userid ggt , password AACAAAAAAAAAAAMAXBRCXGPAZHAITHKHKINDJDMIDFWFUEOI , ENCRYPTKEY DEFAULT
add extract edgrs001, tranlog , begin now

add exttrail d:/ogg/gglog/dirdat/edgrs001/ex,extract edgrs001,megabytes 200

3.4.编辑抽取进程的参数文件
进入GGSSCI命令行,执行
edit param edgrs001

编辑进程的参数文件,文件内容如下,需注意的是如果多实例的环境需要根据实际情况增加ORACLE_SID环境变量.
extract edgrs001
SETENV (ORACLE_SID="****") #A库数据库实例名
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
OBEY d:/ogg/software/ggs/dirprm/pwd.obey #存放登录账号密码的文件
REPORT AT 01:59
REPORTROLLOVER AT 02:00
CACHEMGR, CACHESIZE 256MB
–TRANLOGOPTIONS EXCLUDEUSER HX_SJYW
EXTTRAIL d:/ogg/gglog/dirdat/edgrs001/ex
NUMFILES 3000
EOFDELAYCSECS 30
GETTRUNCATES
TRANLOGOPTIONS DBLOGREADER
DYNAMICRESOLUTION
BR BRINTERVAL 2H , BRDIR BR
GETUPDATEBEFORES
NOCOMPRESSDELETES
WARNLONGTRANS 3H, CHECKINTERVAL 300s
TABLEEXCLUDE .MLOG;
TABLEEXCLUDE .DBMS_TABCOMP_TEMP;
table DB_SJ.T_DWJCXX;
table DB_SJ.T_DWTSMX;

3.5.添加表的附加日志
进入GGSSCI命令行,执行
dblogin userid ggt , password AACAAAAAAAAAAAMAXBRCXGPAZHAITHKHKINDJDMIDFWFUEOI , ENCRYPTKEY DEFAULT
add trandata DB_SJ.* #按用户级添加日志文件,也可以指定某个表

3.6添加投递进程
进入GGSSCI命令行,执行下面的命令

add extract prsgx001,exttrailsource d:/ogg/gglog/dirdat/edgrs001/ex
add rmttrail /gglog/dirdat/rdgrs001/re,extract prsgx001,megabytes 200 ##目标库的路径/gglog/dirdat/rdgrs001/re

3.7.编辑投递进程的参数文件
参数文件内容中注意根据实际情况修改ORACLE_SID和RMHOST
执行下面命令,编辑投递进程的参数文件
edit param prsgx001

参数文件内容如下:
extract prsgx001
SETENV (ORACLE_SID="***") #A库数据库实例名
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
OBEY d:/ogg/software/ggs/dirprm/pwd.obey
REPORT AT 01:59
REPORTROLLOVER AT 02:00
CACHEMGR, CACHESIZE 256MB
FLUSHCSECS 30
NUMFILES 3000
EOFDELAYCSECS 30
RMTHOST 150.18.0.0,MGRPORT 7820, TCPBUFSIZE 100000, TCPFLUSHBYTES 300000 ##设置目标库的IP
RMTTRAIL /gglog/dirdat/rdgrs001/re ##目标库的归档日志路径
–GETTRUNCATES
PASSTHRU
DYNAMICRESOLUTION
–GETUPDATEBEFORES
NOCOMPRESSDELETES
TABLEEXCLUDE .MLOG;
TABLEEXCLUDE .DBMS_TABCOMP_TEMP;#排除表
#配置交换的表
table DB_JH.T_DWJCXX , filter (@STRFIND(XH,‘4419’) > 0) ;
#此表有过滤条件XH LIKE ‘4419%’ ,如果是ORACLE 12c数据库,用户前面要加上数据库实例名。SBJHDB.DB_JH.T_DWJCXX
table DB_SJ.T_DWTSMX;

4、目标端数据库及系统配置

创建日志目录
mkdir -p /gglog/dirdat/rdgrs001
mkdir -p /gglog/dirrpt/rdgrs001

5、目标库OGG进程配置

5.1.添加mgr进程
进入GGSCI命令行执行
–edit param mgr
编辑MGR的参数文件,文件内容如下:
–port 7820
–dynamicportlist 7815-8000
–autorestart er , retries 5, waitminutes 3
–purgeoldextracts /gglog/dirdat/rdgrs001/
,usecheckpoints, minkeepdays 3
–LAGREPORTHOURS 5
–LAGINFOMINUTES 10
–LAGCRITICALMINUTES 15

5.2.并添加CHECKPOINTTABLE
进入GGSCI命令行,执行

添加CHECKPOINTTABLE
-dblogin userid ggt,PASSWORD AACAAAAAAAAAAAPAZIWEWCKCJHHBUBJBBIBCUASHVCWFIACE, ENCRYPTKEY DEFAULT
-add checkpointtable ggt.ggs_checkpoint

5.3.添加入库进程

dblogin userid ggt@sbjh,PASSWORD AACAAAAAAAAAAAPAZIWEWCKCJHHBUBJBBIBCUASHVCWFIACE, ENCRYPTKEY DEFAULT
add replicat rdgrs001,exttrail /gglog/dirdat/rdgrs001/re, checkpointtable ggt.ggs_checkpoint

5.4.编辑入库进程参数文件

在编辑进程参数文件的时候需要注意修改参数文件中的ORACLE_SID,并检查DISCARDFILE名称是否和进程相对应。
查询库编辑入库进程参数文件
edit param rdgrs001

replicat rdgrs001
–SETENV (ORACLE_SID="")
SETENV (ORACLE_SID="cd
") ##B库目标库实例,此库是oracle 12C数据库,与11g配置不同
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
–OBEY /software/ggs/dirprm/pwd.obey
–userid ggt@SBJHDB, password AACAAAAAAAAAAAPAZIWEWCKCJHHBUBJBBIBCUASHVCWFIACE , ENCRYPTKEY DEFAULT
userid ggt@sbjh, password AACAAAAAAAAAAAPAZIWEWCKCJHHBUBJBBIBCUASHVCWFIACE , ENCRYPTKEY DEFAULT
HANDLECOLLISIONS
REPORT AT 01:59
REPORTROLLOVER AT 02:00
CACHEMGR, CACHESIZE 256MB
REPERROR DEFAULT,ABEND
DISCARDFILE /gglog/dirrpt/rdgrs001/rdgrs001.dsc,APPEND,MEGABYTES 100
DISCARDROLLOVER AT 06:00
–GETTRUNCATES
NUMFILES 3000
EOFDELAYCSECS 30
ASSUMETARGETDEFS
ALLOWNOOPUPDATES
DYNAMICRESOLUTION
–GETUPDATEBEFORES
–NOCOMPRESSDELETES
MAP DB_SJ.T_DWJCXX , TARGET DB_JH.T_DWJCXX;
MAP DB_SJ.T_DWTSMX , TARGET DB_JH.T_DWTSMX;
#如果是ORACLE 12c数据库,用户前面要加上数据库实例名。SBJHDB.DB_JH.T_DWJCXX,或者直接用pdb方式连接数据库

6.源库和目标库都重启所有进程
stop *
start *

猜你喜欢

转载自blog.csdn.net/qq_42924709/article/details/85116240