项目背景
背景
本方案是搭建部署OGG实施方案。
版本兼容性
部署需求
主机名 | 源库(生产库) | 目标库 |
操作系统 | RedHat 7.6 | RedHa 7.6 |
内存 | 预留至少4G内存给OGG使用 | 预留至少4G内存给OGG使用 |
CPU | ||
IP地址 | 200.200.200.120 | 200.200.200.121 |
数据库版本 | Oracle 11.2.0.3 | Oracle 11.2.0.3 |
实例名 | xxx | xxxogg |
OGG版本 | 12.2.0.1 | 12.2.0.1 |
磁盘 | 为OGG软件及相关队列文件存储划分独立的磁盘空间,大小根据数据库日志量来估算(事务日志大小*日志每天切换次数*保留天数) | |
部署架构
采用本地部署架构
部署方式
采用经典模式
前期准备工作
检查生产库是否开启归档
archive log list; |
生产库开启强制日志
使用OGG需要在源库上开启强制日志模式,操作如下: select NAME,FORCE_LOGGING from v$database; alter database force logging; alter system switch logfile; |
生产库开启附加日志
使用OGG需要在源库上开启附加日志模式,操作如下: select SUPPLEMENTAL_LOG_DATA_MIN from v$database; alter database add supplemental log data; |
创建OGG用户
在源库及目标库上建ogg表空间及ogg用户,并对用户授权:
create tablespace oggtbs datafile '/oracle/oradata/xxx/oggtbs01.dbf' size 5g autoextend off; create user ogg identified by "OracleGoldengate"; alter user ogg default tablespace oggtbs ; grant dba to ogg; |
实施步骤
源库安装OGG
上传软件包
使用sftp上传122011_ fbo_ggs_Linux_x64_shiphome.zip到两台数据库服务器的/ogg/soft上面,并解压。
安装OGG软件
使用oracle用户到/ogg/soft/fbo_ggs_Linux_x64_shiphome/Disk1目录下执行./runInstaller安装OGG。
点击next:
OGG软件安装到 /ogg/app目录下,点击next:
点击Install
点击Close完成安装。
目标库(200.200.200.121)安装方式与源库一样。
配置源端OGG
源端配置检查点与心跳表
EDIT PARAMS ./GLOBALS CHECKPOINTTABLE ogg.checkpoint ggschema ogg dblogin userid ogg,password OracleGoldengate ADD CHECKPOINTTABLE ogg.checkpoint ADD HEARTBEATTABLE |
源端添加表级补充日志
add SCHEMATRANDATA tzw01 add SCHEMATRANDATA tzw02 info SCHEMATRANDATA tzw01 info SCHEMATRANDATA tzw02 |
生成加密密码串
encrypt password OracleGoldengate,ENCRYPTKEY default |
配置源端mgr进程
进入安装目录cd /ogg/app,执行./ggsci:
edit params mgr PORT 7809 DYNAMICPORTLIST 7810-7820 PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS, MINKEEPDAYS 3 PURGEDDLHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 7 PURGEMARKERHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 7 LAGREPORTHOURS 1 LAGINFOMINUTES 30 LAGCRITICALMINUTES 45 ACCESSRULE, PROG *, IPADDR 200.200.200.*, ALLOW |
配置源端抽取进程
cd /ogg/app mkdir -p ./dirdat/etzw01 mkdir -p ./dirrpt/etzw01 mkdir -p ./dirdat/etzw02 mkdir -p ./dirrpt/etzw02 --抽取进程1采用密码明文方式 edit params etzw01 extract etzw01 SETENV(ORACLE_SID="xxx") SETENV (ORACLE_HOME="/oracle/app/oracle/product/11.2.0/db_1") SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8) userid ogg,password "OracleGoldengate" FETCHOPTIONS NOUSESNAPSHOT REPORTCOUNT EVERY 1 MINUTES,RATE WARNLONGTRANS 1h,CHECKINTERVAL 5m EXTTRAIL ./dirdat/etzw01/ex DISCARDFILE ./dirrpt/etzw01/etzw01.dsc, APPEND,MEGABYTES 4000 table tzw01.tzw_yw01; table tzw01.tzw_yw02; table tzw01.tzw_yw03; table tzw01.tzw_tab01; --抽取进程2采用密码加密方式 edit params etzw02 EXTRACT etzw02 SETENV (ORACLE HOME="/oracle/app/oracle/product/11.2.0/db_1") SETENV (ORACLE SID="xxx") SETENV (NLS LANG=AMERICAN AMERICA.AL32UTF8) userid ogg,password AACAAAAAAAAAAAQAPEGFYGFILCVHGAIBBESIDAQCXEUHKJND,encryptkey default DBOPTIONS ALLOWUNUSEDCOLUMN FETCHOPTIONS NOUSESNAPSHOT WARNLONGTRANS 2h,CHECKINTERVAL 5m DISCARDFILE ./dirrpt/etzw02/etzw02.dsc,APPEND,MEGABYTES 1024 DISCARDROLLOVER AT 02:30 REPORTCOUNT EVERY 1 MINUTES, RATE EXTTRAIL ./dirdat/etzw02/ex TABLE tzw02.*; |
添加抽取进程
add extract etzw01 ,tranlog,begin now add exttrail ./dirdat/etzw01/ex ,extract etzw01 MEGABYTES 100 add extract etzw02,tranlog,begin now add exttrail ./dirdat/etzw02/ex, extract etzw02, MEGABYTES 1024 |
注册抽取进程
dblogin userid ogg,password "OracleGoldengate"; register extract etzw02 database register extract etzw01 database |
配置源端投递进程
cd /ogg/app mkdir -p ./dirdat/ptzw01 mkdir -p ./dirrpt/ptzw01 mkdir -p ./dirdat/ptzw02 mkdir -p ./dirrpt/ptzw02 --投递进程1采用密码明文方式 edit params ptzw01 EXTRACT ptzw01 RMTHOST 200.200.200.121, MGRPORT 7809, compress PASSTHRU RMTTRAIL ./dirdat/rtzw01/re DYNAMICRESOLUTION table tzw01.tzw_yw01; table tzw01.tzw_yw02; table tzw01.tzw_yw03; table tzw01.tzw_tab01; --投递进程2采用密码加密方式 edit params ptzw02 EXTRACT ptzw02 SETENV (NLS_LANG="AMERICAN_AMERICA.AL32UTF8") userid ogg,password AACAAAAAAAAAAAQAPEGFYGFILCVHGAIBBESIDAQCXEUHKJND,encryptkey default PASSTHRU RMTHOST 200.200.200.121, MGRPORT 7809 RMTTRAIL ./dirdat/rtzw02/re DISCARDFILE ./dirrpt/ptzw02/ptzw02.dsc, APPEND, MEGABYTES 1024 DISCARDROLLOVER AT 02:30 TABLE tzw02.*; |
添加投递进程
add extract ptzw01 ,exttrailsource ./dirdat/etzw01/ex add rmttrail ./dirdat/rtzw01/re ,extract ptzw01 add extract ptzw02, exttrailsource ./dirdat/etzw02/ex add rmttrail ./dirdat/rtzw02/re,EXTRACT ptzw02,MEGABYTES 1024 |
配置目标端OGG
配置目标端mgr进程
进入安装目录cd /ogg/app,执行./ggsci:
edit params mgr PORT 7809 DYNAMICPORTLIST 7810-7820 PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS, MINKEEPDAYS 3 PURGEDDLHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 7 PURGEMARKERHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 7 LAGREPORTHOURS 1 LAGINFOMINUTES 30 LAGCRITICALMINUTES 45 ACCESSRULE, PROG *, IPADDR 200.200.200.*, ALLOW |
配置目标端复制进程
cd /ogg/app mkdir -p ./dirdat/rtzw01 mkdir -p ./dirrpt/rtzw01 mkdir -p ./dirdat/rtzw02 mkdir -p ./dirrpt/rtzw02 --复制进程1采用密码明文方式 edit params rtzw01 REPLICAT rtzw01 SETENV(ORACLE_SID="xxxogg") SETENV (ORACLE_HOME="/oracle/app/oracle/product/11.2.0/db_1") setenv (NLS_LANG="AMERICAN_AMERICA.AL32UTF8") userid ogg,password "OracleGoldengate"; DISCARDFILE ./dirrpt/rtzw01/rtzw01.dsc, APPEND, MEGABYTES 1000 REPORT AT 01:59 REPORTCOUNT EVERY 30 MINUTES, RATE REPERROR DEFAULT, ABEND GETTRUNCATES ALLOWNOOPUPDATES HANDLECOLLISIONS assumetargetdefs map tzw01.tzw_yw01,target tzw01.tzw_yw01; map tzw01.tzw_yw02,target tzw01.tzw_yw02; map tzw01.tzw_yw03,target tzw01.tzw_yw03; map tzw01.tzw_tab01,target tzw01.tzw_tab01; --复制进程2采用密码加密方式 edit params rtzw02 REPLICAT rtzw02 SETENV(ORACLE_SID="xxxogg") SETENV (ORACLE_HOME="/oracle/app/oracle/product/11.2.0/db_1") setenv (NLS_LANG=AMERICAN_AMERICA.AL32UTF8) userid ogg,password AACAAAAAAAAAAAQAPEGFYGFILCVHGAIBBESIDAQCXEUHKJND,encryptkey default DISCARDFILE ./dirrpt/rtzw02/rtzw02.dsc, APPEND, MEGABYTES 1024 DISCARDROLLOVER AT 02:30 REPERROR DEFAULT, ABEND REPORTCOUNT EVERY 30 MINUTES, RATE DBOPTIONS ENABLE_INSTANTIATION_FILTERING ALLOWNOOPUPDATES assumetargetdefs GETTRUNCATES MAP tzw02.*, TARGET tzw02.*; |
添加目标端复制进程
dblogin userid ogg,password "OracleGoldengate"; ADD CHECKPOINTTABLE ogg.checkpoint ADD HEARTBEATTABLE add replicat rtzw01,exttrail ./dirdat/rtzw01/re ,checkpointtable ogg.checkpoint add replicat rtzw02 exttrail ./dirdat/rtzw02/re,checkpointtable ogg.checkpoint |
初始化数据
启动源库的抽取和投递进程
启动抽取进程:
start etzw01 start etzw02 Info all |
启动投递进程:
start ptzw01 start ptzw02 Info all |
查看最老事务时间
select min(START_TIME) from v$transaction;
select current_scn from v$database ;
导出基量数据
expdp \'/as sysdba\' directory=oracle_base dumpfile=xxx_base.dmp logfile =exp_emp.log schemas=tzw01,tzw02 FLASHBACK_SCN=312784 |
传输基量数据
加载基量数据
impdp \'/as sysdba\' directory= oracle_base dumpfile= xxx_base.dmp logfile =imp_emp.log |
启动目标端复制进程
--源端 --在启动目标端复制进程前,需要先检查源端的抽取进程和投递进程是否启动 info all --目标端再启动复制进程 info all start REPLICAT rtzw01,aftercsn 312784 start REPLICAT rtzw02,aftercsn 312784 |
查看OGG状态
源端
ggsci info all info etzw01 info etzw02 info ptzw01 info ptzw02 |
目标端
info all info rtzw01 info rtzw02 |
至此OGG同步搭建完成。




