一、GoldenGate简介
Oracle Golden Gate软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步。Oracle Golden Gate可以在异构的IT基础结构(包括几乎 所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,从而在可以 在应急系统、在线报表、实时数据仓库供应、交易跟踪、数据同步、集中/分发、容灾、数 据库升级和移植、双业务中心等多个场景下应用。同时,Oracle Golden Gate 可以实现一 对一、广播(一对多)、聚合(多对一)、双向、点对点、级联等多种灵活的拓扑结构。
RAC环境下管理OGG-HA http://www.linuxidc.com/Linux/2012-07/65796.htm
RAC环境下配置OGG同步 http://www.linuxidc.com/Linux/2012-07/65794.htm
GoldenGate单向表DML同步 http://www.linuxidc.com/Linux/2013-04/82942.htm
Oracle GoldenGate 系列:Extract 进程的恢复原理 http://www.linuxidc.com/Linux/2013-04/82563.htm
Oracle GoldenGate安装配置 http://www.linuxidc.com/Linux/2013-02/79455.htm
Oracle goldengate的OGG-01004 OGG-1296错误 http://www.linuxidc.com/Linux/2011-08/40951.htm
二、技术结构
和传统的逻辑复制一样,Oracle GoldenGate 实现原理是通过抽取源端 的redo log或者archive log,然后通过TCP/IP投递到目标端,最后解析还原应用到目标端,使目标端实现同源端数同步。以下是OracleGoldenGate的技术架。
三、OGG进程
- Manager进程
Manager进程是GoldenGate的控制进程,运行在源端和目标端上。它主要作用有以下几个方面:启动、监控、重启Goldengate的其他进程, 报告错误及事件,分配数据存储 空间,发布阀值报告等。
- Extract进程
Extract运行在数据库源端,负责从源端数据表或者日志中捕获数据。
- Pump进程
pump进程运行在数据库源端。
其作用是如果源端使用了本地的trail文件, 那么pump 进程就会把trail以数据块的形式通过TCP/IP协议发送到目标端,这通常也是推荐的 方式。pump进程本质是extract进程的一种特殊形式,如果不使用trails文件,那么 就是extract进程在抽取完数据以后,直接投递到目标端。
- Trail文件
为了更有效、更安全的把数据库事务信息从源端投递到目标端。GoldenGate引进 trail文件的概念。前面提到extract抽取完数据以后Goldengate会将抽取的事务信息转化为一种GoldenGate专有格式的文件。然后pump负责把源端的trail文件投递到目标端, 所以源、目标两端都会存在这种文件。trail文件存在的目的旨在防止单点故障,将事务信 息持久化,并且使用checkpoint机制来记录其读写位置,如果故障发生,则数据可以根据 checkpoint记录的位置来重传。
- Replicat进程
Replicat进程,通常我们也把它叫做应用进程。运行在目标端,是数据传递的最后一站,负责读取目标端trail文件中的内容,并将其解析为DML或DDL语句,然后应用到目标数据库中。
- GGSCI
GGSCI是GoldenGate Software Command Interface 的缩写,
它提供了十分丰富的 命令来对Goldengate进行各种操作,如创建、修改、监控GoldenGate进程等等。
四、GoldenGate目录结构
说明 | 后缀名 | 目录路径 |
---|---|---|
Parameter files | .prm | /u01/app/product/ogg_src/dirprm |
Report files | .rpt | /u01/app/product/ogg_src/dirrpt |
Checkpoint files | .cpr | /u01/app/product/ogg_src/dirchk |
Process status files | .pcs | /u01/app/product/ogg_src/dirpcs |
SQL script files | .sql | /u01/app/product/ogg_src/dirsql |
Database definitions files | .def | /u01/app/product/ogg_src/dirdef |
Extract data files | /u01/app/product/ogg_src/dirdat | |
Temporary files | /u01/app/product/ogg_src/dirtmp | |
Credential store files | .crd | /u01/app/product/ogg_src/dircrd |
Masterkey wallet files | .wlt | /u01/app/product/ogg_src/dirwlt |
Dump files | .dmp | /u01/app/product/ogg_src/dirdmp |
五、应用的拓展结构、支持平台和数据库
六、OGG安装
1、Oracle OGG下载:
https://www.oracle.com/middleware/technologies/goldengate-downloads.html
2、OGG安装(RedHat EL6)
系统架构:
Test Environment:
Item | Source System | Target System |
---|---|---|
Platform | Linux x86_64 | Linux x86_64 |
HostName | i-goij3mby | i-mmnf52gp |
DataBase Version | Oracle 19.8.0.0.0 | Oracle 19.8.0.0.0 |
**ORACLE_SID ** | ||
**Listener ** | linstener/1521 | linstener/1521 |
**GoldenGate User ** | ogg | ogg |
3、检测安装环境
[oracle@i-goij3mby ~]$ uname -a
Linux i-goij3mby 3.10.0-957.27.2.el7.x86_64 #1 SMP Mon Jul 29 17:46:05 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
[oracle@i-goij3mby ~]$ arch
x86_64
4、安装OGG软件
# 建立一个OGG的安装目录
[oracle@i-goij3mby ~]$ cd /app/
[oracle@i-goij3mby app]$ ll
total 0
drwxr-xr-x 4 oracle oinstall 28 Nov 12 15:15 oradata
drwxrwxr-x 4 oracle oinstall 33 Nov 5 10:17 u01
[oracle@i-goij3mby app]$ mkdir goldengate
[oracle@i-goij3mby app]$ ll
total 0
drwxr-xr-x 2 oracle oinstall 6 Nov 19 14:48 goldengate
drwxr-xr-x 4 oracle oinstall 28 Nov 12 15:15 oradata
drwxrwxr-x 4 oracle oinstall 33 Nov 5 10:17 u01
# 再随便建一个目录放置OGG压缩包,安装完可删除
[oracle@i-goij3mby ~]$ cd /app/u01/app/oracle/product
[oracle@i-goij3mby product]$ mkdir ogg
[oracle@i-goij3mby product]$ ll
total 0
drwxr-xr-x 3 oracle oinstall 18 Nov 5 10:17 19.3.0
drwxr-xr-x 3 oracle oinstall 160 Nov 19 14:36 ogg
[oracle@i-goij3mby product]$ cd ogg/
[oracle@i-goij3mby ogg]$ ll
total 543540
-rw-r--r-- 1 oracle oinstall 556240981 Nov 19 14:30 191004_fbo_ggs_Linux_x64_shiphome.zip
# 解压
[oracle@i-goij3mby ogg]$ unzip 191004_fbo_ggs_Linux_x64_shiphome.zip
[oracle@i-goij3mby ogg]$ ll
total 543540
-rw-r--r-- 1 oracle oinstall 556240981 Nov 19 14:30 191004_fbo_ggs_Linux_x64_shiphome.zip
drwxr-xr-x 3 oracle oinstall 19 Oct 18 2019 fbo_ggs_Linux_x64_shiphome
-rw-r--r-- 1 oracle oinstall 1413 May 29 2019 OGG-19.1.0.0-README.txt
-rw-r--r-- 1 oracle oinstall 332523 Oct 21 2019 OGG_WinUnix_Rel_Notes_19.1.0.0.4.pdf
# 执行安装
[oracle@i-goij3mby ogg]$ cd fbo_ggs_Linux_x64_shiphome/Disk1/
[oracle@i-goij3mby Disk1]$ ls
install response runInstaller stage
[oracle@i-goij3mby Disk1]$ ./runInstaller
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 120 MB. Actual 31047 MB Passed
Checking swap space: must be greater than 150 MB. Actual 7831 MB Passed
Checking monitor: must be configured to display at least 256 colors
>>> Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set. Failed <<<<
Some requirement checks failed. You must fulfill these requirements before
continuing with the installation,
Continue? (y/n) [n] y
>>> Ignoring required pre-requisite failures. Continuing...
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2020-11-19_02-42-11PM. Please wait ...
上图的software location应该选择一个空目录,这里选的是/app/goldengate
系统架构: