作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)
公众号:老苏畅谈运维
欢迎关注本人公众号,更多精彩与您分享。
上一篇文章(Oracle adg进行switchover主备切换后,ogg如何恢复?)是针对switchover切换,那如果adg是进行failover切换,则又该如何进行恢复OGG呢?
环境说明
主机名 | IP地址 | 实例名 | 数据库角色 | OGG角色 | 数据库版本 | OGG版本 |
---|---|---|---|---|---|---|
ora11g | 10.10.10.160 | ora11g | 主库 | 源端 | 11.2.0.4 | 19.1.0.0.4 |
ora11gdg | 10.10.10.41 | dgora11g | 备库 | / | 11.2.0.4 | / |
11gbbed | 10.10.10.44 | dbbbed | / | 目标端 | 11.2.0.4 | 19.1.0.0.4 |
说明:10.10.10.160为主库,当前为OGG源端,10.10.10.41是10.10.10.160的备库,10.10.10.44为OGG的目标端。
failover切换对OGG影响
主备发生failover切换,通常是由于主库已经无法访问,如数据库损坏、系统损坏、存储或者服务器损坏等,导致主库已经无法正常访问,这时候只能进行failover切换,ogg只能在failover之后的新主库上进行抽取。
恢复方式1
如果原主库的OGG安装目录还能访问,则可以直接将OGG安装目录下所有文件拷贝到failover后的新主库上,然后进行OGG的同步恢复。
–failover后,10.10.10.41为新主库,当前测试表信息
sys@dgora11g> select sysdate,max(C_DATE) from szr.test_job;
SYSDATE MAX(C_DATE)
------------------- -------------------
2024-08-20 00:09:33 2024-08-20 00:09:25
–将OGG安装目录下所有文件拷贝到新主库
--拷贝到相同路径下
[oracle@ora11g:/ogg]$ scp -r * 10.10.10.41:/ogg
PS:注意属主,权限
–新主库添加环境变量
$ vi .bash_profile
###OGG_HOME
export OGG_HOME=/ogg
export PATH=$ORACLE_HOME/bin:$PATH:$ORACLE_HOME/OPatch:$OGG_HOME
–如果两边的数据库安装目录,实例名配置不一样,则修改配置文件里面的配置ORACLE_HOME,ORACLE_SID
–启动进程
GGSCI (ora11gdg) 1> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER STOPPED
EXTRACT STOPPED DPCS 00:00:00 00:01:08
EXTRACT STOPPED EXTCS 00:00:00 00:01:07
GGSCI (ora11gdg) 2> start mgr
Manager started.
GGSCI (ora11gdg) 3> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT STOPPED DPCS 00:00:00 00:01:20
EXTRACT STOPPED EXTCS 00:00:00 00:01:18
GGSCI (ora11gdg) 4> start dpcs
修改extcs的scn:
--修改extract的捕获scn为failover后的的scn(v$database视图中的STANDBY_BECAME_PRIMARY_SCN),否则抽取进程不会抽取数据
--查看备库failover成为主库时的scn(v$database视图中的STANDBY_BECAME_PRIMARY_SCN)
SQL> select STANDBY_BECAME_PRIMARY_SCN from v$database;
STANDBY_BECAME_PRIMARY_SCN
--------------------------
3854023
GGSCI (ora11gdg) 19> ALTER EXTRACT extcs scn 3854023;
EXTRACT altered.
GGSCI (ora11gdg) 20> start extcs
Sending START request to MANAGER ...
EXTRACT EXTCS starting
GGSCI (ora11gdg) 21> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING DPCS 00:00:00 00:00:03
EXTRACT RUNNING EXTCS 00:00:00 00:00:08
抽取进程启动正常后,看一下复制进程和测试表的数据变化
GGSCI (11gbbed) 7> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REPCS 00:00:00 00:00:04
SQL> select sysdate,max(C_DATE) from szr.test_job;
SYSDATE MAX(C_DATE)
------------------- -------------------
2024-08-20 00:18:54 2024-08-20 00:18:38
可以看到,数据同步正常。

恢复方式2
如果原主库的OGG安装目录已经无法读取,则需要在新主库上重新安装OGG软件,并进行配置抽取和投递进程了。
OGG安装
环境变量配置
vi .bash_profile
##原有配置不变,增加ogg相关路径
export OGG_HOME=/ogg
export PATH=$ORACLE_HOME/bin:$PATH:$ORACLE_HOME/OPatch:$OGG_HOME
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
使环境变量生效
source .bash_profile
创建相关目录
–源端和目标端都需创建
mkdir /ogg
chown oracle.oinstall /ogg
静默安装
–上传安装包并解压,使用静默安装。
$ unzip -q 191004_fbo_ggs_Linux_x64_shiphome.zip
$ cd fbo_ggs_Linux_x64_shiphome/Disk1/
$ cp response/oggcore.rsp .
$ vi oggcore.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_ogginstall_response_schema_v19_1_0
INSTALL_OPTION=ORA11g
SOFTWARE_LOCATION=/ogg
START_MANAGER=
MANAGER_PORT=
DATABASE_LOCATION=
INVENTORY_LOCATION=/ogg/oraInventory
UNIX_GROUP_NAME=oinstall
$ ./runInstaller -silent -showProgress -responseFile /home/share/fbo_ggs_Linux_x64_shiphome/Disk1/oggcore.rsp
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 120 MB. Actual 4517 MB Passed
Checking swap space: must be greater than 150 MB. Actual 7359 MB Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2024-08-14_11-11-07AM. Please wait ...You have new mail in /var/spool/mail/oracle
$ You can find the log of this install session at:
/u01/app/oraInventory/logs/installActions2024-08-14_11-11-07AM.log
Prepare in progress.
.................................................. 10% Done.
Prepare successful.
Copy files in progress.
.................................................. 36% Done.
.................................................. 54% Done.
.................................................. 77% Done.
.................................................. 82% Done.
.................................................. 88% Done.
....................
Copy files successful.
Link binaries in progress.
..........
Link binaries successful.
Setup files in progress.
.................................................. 93% Done.
.................................................. 95% Done.
.................................................. 96% Done.
.................................................. 98% Done.
.................................................. 99% Done.
Setup files successful.
Setup Inventory in progress.
Setup Inventory successful.
.................................................. 95% Done.
Successfully Setup Software.
.................................................. 100% Done.
Finish Setup successful.
The installation of Oracle GoldenGate Core was successful.
配置mgr进程
–编辑参数
edit param mgr
PORT 7809
DYNAMICPORTLIST 7810-7899
AUTORESTART ER *,RETRIES 5,WAITMINUTES 3
PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 7
PURGEDDLHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10
PURGEMARKERHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
ACCESSRULE,PROG *,IPADDR 10.10.*.*,ALLOW
–启动mgr进程
GGSCI (ora11gdg) 7> start mgr
Manager started.
GGSCI (ora11gdg) 8> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
配置抽取进程
edit param extcs
EXTRACT extcs
userid ggadmin,password ggadmin123
TRANLOGOPTIONS dblogreader
LOGALLSUPCOLS
UPDATERECORDFORMAT compact
GETTRUNCATES
GETUPDATEBEFORES
NOCOMPRESSDELETES
NOCOMPRESSUPDATES
DBOPTIONS ALLOWUNUSEDCOLUMN
TRANLOGOPTIONS EXCLUDEUSER ggadmin
FETCHOPTIONS NOUSESNAPSHOT
EXTTRAIL ./dirdat/cs
DISCARDFILE ./dirrpt/extcs.dsc, APPEND, MEGABYTES 1024
discardrollover at 3:00
warnlongtrans 1h,checkinterval 5m
CACHEMGR CACHESIZE 1024MB, CACHEDIRECTORY ./dirtmp
REPORTCOUNT EVERY 60 SECONDS, RATE
DDL INCLUDE MAPPED
DDLOPTIONS ADDTRANDATA
DDLOPTIONS REPORT
TABLE SZR.*;
–重新添加extract
add exttrail ./dirdat/cs, extract extcs, MEGABYTES 1024
–修改scn为STANDBY_BECAME_PRIMARY_SCN
GGSCI> alter extract extcs scn 3854023
配置投递进程
edit param dpcs
EXTRACT dpcs
DISCARDFILE ./dirrpt/dpcs.dsc, APPEND, MEGABYTES 1024
RMTHOST 10.10.10.44, MGRPORT 7809, COMPRESS
RMTTRAIL /ogg/dirdat/rt
PASSTHRU
table szr.*;
–重新添加pump
add extract dpcs EXTTRAILSOURCE ./dirdat/cs
add rmttrail /ogg/dirdat/rt extract dpcs MEGABYTES 1024
启动进程
–启动extract,pump进程
start extcs
start dpcs
查看同步情况
抽取进程启动正常后,看一下复制进程和测试表的数据变化
GGSCI (11gbbed) 7> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REPCS 00:00:00 00:00:04
关注我,学习更多的数据库知识!