Oracle Golden Gate搭建记录

本文详细记录了Oracle GoldenGate的安装配置过程,包括源端和目标端的环境准备,数据库用户的创建与授权,开启归档,安装软件,配置管理进程、捕获进程、投递进程和应用进程,以及数据迁移的操作步骤,适用于数据库实时同步与灾备场景。

Oracle Golden Gate搭建记录

准备工作

  • 准备好两台服务器,安装Oracle单实例,并启动,一个作为源端,一个作为目标端,不要求版本一致
  • 准备好Golden Gate安装包

环境介绍

源端

  • 操作系统:RedHat6.9
  • 主机名:infraliunx
  • 数据库版本:Oracle 11.2.0.4.0
  • IP地址:172.19.1.84
  • 测试库的 schema:LP105
  • 测试库的表:TC_ASSY_LOG_SCAN

目标端

  • 操作系统:Oracle OS 7.6
  • 主机名:infraoracle
  • 数据库版本:Oracle 19.3.0.0.0
  • IP地址:172.19.1.85

Golden Gate软件版本19.1.0.0

注:生产环境中gg尽量使用自己的表空间,这样可以有效的进行维护。

以下正式开始操作,操作系统使用Oracle用户

1.源端和目标端分别创建一个用户,这里取的名字叫gg
$ sqlplus / as sysdba
SQL> create user gg identified by gg;
2.源端和目标端给gg用户授权,如果闲麻烦就直接给DBA权限
SQL> grant connect, resource,unlimited tablespace,select any dictionary, select any table,insert any table,update any table,delete any table,alter any table,flashback any table to gg;
SQL> grant execute on dbms_flashback to gg;
SQL> grant execute on utl_file to gg;
或者
SQL> grant dba to gg;
3.源端和目标端都开启归档
SQL> shutdown immediate;
SQL> start mount;
SQL> alter database archivelog;
SQL> archive log list;
SQL> alter database open;
4. 源端数据库的附加日志打开
SQL> select supplemental_log_data_min from v$database;
SQL> alter database add supplemental log data;
5.源端打开强制日志
SQL> alter database force logging;
6.上传Golden Gate安装包到源端和目标端的/u01/soft目录下,并且解压
$ unzip 191001_fbo_ggs_Linux_x64_shiphome.zip
7.源端和目标端都创建OGG的安装目录
$ mkdir /u01/app/ogg
8.源端和目标端,安装软件
$ cd /u01/soft/fbo_ggs_Linux_x64_shiphome/Disk1
$ ./runInstaller
8.1.根据实际版本选择Oracle版本,然后点Next

在这里插入图片描述

8.2.根据之前创建ogg软件安装目录选择,这边之前创建的是/u01/app/ogg,下面不动,然后点Next

在这里插入图片描述

8.3.点Install

在这里插入图片描述

8.4.安装完毕,点Close

在这里插入图片描述

9.源端和目标端都创建目录,用于存放和接收数据日志,后面有很多配置用到此路径,不能随便填
$ mkdir /u01/app/ogg/dirdat/TESTDB
10.源端和目标端,环境变量中加入LD_LIBRARY_PATH,sqlplus中开启OGG复制功能export
LD_LIBRARY_PATH=$ORACLE_HOME/lib
SQL> alter system set enable_goldengate_replication=true scope=both;
11.源端进入ogg软件,配置mgr管理进程,里面的IP是目标端的IP,可以配置多个
$ cd /u01/app/ogg
$ ./ggsci
GGSCI (infraliunx) 1> edit params mgr
PORT 7809
DYNAMICPORTLIST 7810-7890
ACCESSRULE, PROG *, IPADDR 172.19.1.85, ALLOW
--ACCESSRULE, PROG *, IPADDR 172.17.11.92, ALLOW
AUTOSTART ER *
AUTORESTART EXTRACT *, RETRIES 30, WAITMINUTES 1, RESETMINUTES 120
AUTORESTART REPLICAT *, RETRIES 30, WAITMINUTES 1, RESETMINUTES 120
PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS, MINKEEPDAYS 3
12.源端重启mgr管理进程,红色字体为gg软件的命令行和输入的命令
GGSCI (infraliunx) 3> stop mgr
Manager process is required by other GGS processes.
Are you sure you want to stop it (y/n)?y


Sending STOP request to MANAGER ...
Request processed.
Manager stopped.

GGSCI (infraliunx) 4> start mgr
Manager started.

GGSCI (infraliunx) 5> info all


Program     Status      Group       Lag at Chkpt  Time Since Chkpt


MANAGER     RUNNING      
13.源端创建一个捕获进程,我这边取名叫EXT_TEST,这个名字可以自定义
GGSCI (infraliunx) 5> add extract EXT_TEST,INTEGRATED TRANLOG,BEGIN NOW

GGSCI (infraliunx) 6> dblogin userid gg,password gg_passwd;

GGSCI (infraliunx) 7> register extract EXT_TEST database
在SQL中可以查看创建情况
select * from dba_capture;
如果创建失败,或者创建错误在前面加un可以删除
GGSCI (infraliunx) 8> unregister extract EXT_TEMP database
14.源端自动记录相应schema下对应的表
GGSCI (infraliunx) 9> add schematrandata LP105
15.源端编辑捕获进程,最后一行表名字不要写错,倒数第四行是存放数据日志的目录,需要与第九步骤对应
GGSCI (infraliunx) 10> edit params EXT_TEST
---------------------------------------------------------------------------
extract ext_test
userid gg,password gg
DBOPTIONS ALLOWUNUSEDCOLUMN
FETCHOPTIONS NOUSESNAPSHOT
FETCHOPTIONS FETCHPKUPDATECOLS
TRANLOGOPTIONS, EXCLUDEUSER gg
WARNLONGTRANS 2h,CHECKINTERVAL 600
REPORTCOUNT EVERY 30 MINUTES, RATE
DISCARDFILE ./dirtmp/ext_test.dsc, APPEND, MEGABYTES 1024
DISCARDROLLOVER AT 15:00
EXTTRAIL ./dirdat/TESTDB/ex
GETTRUNCATES
--IGNOREDELETES
TABLE LP105.TC_ASSY_LOG_SCAN;
---------------------------------------------------------------------------
GGSCI (infraliunx) 11> ADD EXTTRAIL ./dirdat/TESTDB/ex, EXTRACT EXT_TEST
16.源端开启提捕获进程
GGSCI (infraliunx) 12> Start EXT_TEST
17.从源端备份数据,恢复到目标端
17.1.查询当前SCN号
GGSCI (infraliunx) 33> info EXT_TEST


EXTRACT    EXT_TEST  Last Started 2021-03-06 11:24   Status RUNNING
Checkpoint Lag       00:00:09 (updated 00:00:04 ago)
Process ID           28510
Log Read Checkpoint  Oracle Integrated Redo Logs
                     2021-03-06 11:38:15
                     SCN 0.285971 (285971)
17.2.导出源端数据,通过参数指定SCN号
$ expdp "'/ as sysdba'" directory=PUMP_DIR  dumpfile=MES_ANO_RS_DATA.dmp logfile=MES_ANO_RS_DATA_20210322.log FLASHBACK_SCN=36946611870108  TABLES=MES.ANO_RS_DATA EXCLUDE=STATISTICS;
17.3.将备份文件传输到目标端
$ scp LP105.dmp 172.19.1.85:/backup/datapump
17.4.目标端导入数据
$ impdp  "'/ as sysdba'" directory=PUMP_DIR DUMPFILE=MES_ANO_RS_DATA.dmp  LOGFILE= impdp_MES_ANO_RS_DATA_20210326.dmp.log TABLES=MES.ANO_RS_DATA REMAP_SCHEMA=MES:SAJET remap_tablespace=CNCTBS:SYSRT  table_exists_action=replace EXCLUDE=STATISTICS,TRIGGER;
18.源端创建投递进程
GGSCI (infraliunx) 33> add extract PU_TEMP,exttrailsource ./dirdat/TESTDB/ex,begin now

GGSCI (infraliunx) 33> info PU_TEMP
18.1.时间设置为源端备份前的时间
GGSCI (infraliunx) 33> alter extract PU_TEMP, begin 2021-03-22 10:30:00
18.2.编辑投递进程,密码参照第一步骤,IP为目标端,目录参照第九步骤,表名设置传输表
GGSCI (infraliunx) 33> edit params PU_TEMP
--------------------------------------------------
EXTRACT PU_TEMP
USERID gg,password gg
RMTHOST 172.19.1.85, MGRPORT 7809, COMPRESS
RMTTRAIL ./dirdat/TESTDB/re
PASSTHRU
TABLE LP105.TC_ASSY_LOG_SCAN;
--------------------------------------------------
GGSCI (infraliunx) 33> ADD RMTTRAIL ./dirdat/TESTDB/re,EXTRACT PU_TEMP

GGSCI (infraliunx) 33> start PU_TEMP
19.目标端编辑mgr管理进程
GGSCI (infraliunx) 33> edit params mgr
--------------------------------------------------------------
PORT 7809
DYNAMICPORTLIST 7810-7890
ACCESSRULE, PROG *, IPADDR 172.19.1.84, ALLOW
AUTOSTART ER *
AUTORESTART EXTRACT *, RETRIES 30, WAITMINUTES 1, RESETMINUTES 120
AUTORESTART REPLICAT *, RETRIES 30, WAITMINUTES 1, RESETMINUTES 120
PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS, MINKEEPDAYS 3
并且重启mgr,IP为源端IP
GGSCI (infraliunx) 33> stop mgr

GGSCI (infraliunx) 33> start mgr
20.目标端创建应用进程,并且编辑
GGSCI (infraliunx) 33> add replicat RETWTRAC,exttrail ./dirdat/TESTDB/re,nodbcheckpoint

GGSCI (infraliunx) 33> edit params RETWTRAC
---------------------------------------------------------------------------------------------
replicat RETWTRAC
userid gg,password gg
DBOPTIONS DEFERREFCONST
--DBOPTIONS SUPPRESSTRIGGERS
STATOPTIONS RESETREPORTSTATS
ASSUMETARGETDEFS
ALLOWNOOPUPDATES
--SHOWSYNTAX
--NODYNSQL
--NOBINARYCHARS
--HANDLECOLLISIONS
--RESTARTCOLLISIONS
REPERROR DEFAULT, DISCARD
--REPERROR DEFAULT, ABEND
DISCARDFILE ./dirtmp/RETWTRAC.dsc, APPEND, MEGABYTES 1024
DISCARDROLLOVER AT 23:59
REPORT AT 00:10
REPORTCOUNT EVERY 10 MINUTES, RATE
REPORTROLLOVER AT 00:10
REPERROR (-1, ignore)

MAP  LP105.TC_ASSY_LOG_SCAN , TARGET LP105.TC_ASSY_LOG_SCAN;
21.目标端启动应用进程,后面的数字是SCN号,参照第十七步骤
GGSCI (infraliunx) 33> start RETWTRAC aftercsn 285971
22.常用维护命令整理
22.1.查看运行状态,也可以单独查看某个进程的名字
GGSCI (infraliunx) 33> info all
22.2.启动和关闭进程,mgr进程,捕获进程,投递进程,应用进程
GGSCI (infraliunx) 33> start 名称

GGSCI (infraliunx) 33> stop 名称
22.3.编辑进程配置
GGSCI (infraliunx) 33> edit params 进程名字
22.4.查看状态
GGSCI (infraliunx) 33> stats 进程名
22.5.查看报告
GGSCI (infraliunx) 33> view report EXT_TEST(进程名称)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘望天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值