整理前一篇测试记录的内容,去掉一些坑,我这不是两个服务器使用不同版本的ogg。

提醒:在虚拟机上测试的话,尽量多打快照,以防出现问题找不到解决方式导致无法继续下一步。

一、ogg(Oracle GoldenGate )基础

1、ogg基本原理


Oracle GoldenGate 数据复制过程如下:

  1. 利用抽取进程(Extract Process)在源端数据库中读取Online Redo Log或者Archive Log,然后进行解析,只提取其中数据的变化信息,比如DML操作——增、删、改操作
  2. 将抽取的信息转换为GoldenGate自定义的中间格式存放在队列文件(trail file)中
  3. 再利用传输进程将队列文件(trail file)通过TCP/IP传送到目标系统。
  4. 目标端有一个进程叫Server Collector,这个进程接受了从源端传输过来的数据变化信息
  5. 把信息缓存到GoldenGate 队列文件(trail file)当中,等待目标端的复制进程读取数据。
  6. GoldenGate 复制进程(replicat process)从队列文件(trail file)中读取数据变化信息,并创建对应的SQL语句,通过数据库的本地接口执行,提交到目标端数据库,提交成功后更新自己的检查点,记录已经完成复制的位置,数据的复制过程最终完成。

2.基本架构

组件 说明
Manager 不管是源端还是目标端必须并且只能有一个Manager进程,可以启动、关闭、监控其他进程的健康状态,报告错误事件、分配数据存储空间,发布阀值报告等,其作用:
1:监控与启动 GoldenGate 的其它进程
2:管理 trail 文件及 Reporting
Extract

Extract 进程运行在数据库源端上,它是Golden Gate的捕获机制,可以配置Extract 进程来做如下工作:
1:初始数据装载:对于初始数据装载,Extract 进程直接从源对象中提取数据
2:同步变化捕获:保持源数据与其它数据集的同步。初始数据同步完成后,Extract 进程捕获源数据的变化;如DML变化、 DDL变化等。

Replicat

Replicat 进程是运行在目标端系统的一个进程,负责读取 Extract 进程提取到的数据(变更的事务或 DDL 变化)并应用到目标数据库,就像 Extract 进程一样,也可以配置 Replicat 进程来完成如下工作:
1:初始化数据装载:对于初始化数据装载,Replicat 进程应用数据到目标对象或者路由它们到一个高速的 Bulk-load 工具上;
2:数据同步,将 Extract 进程捕获到的提交了的事务应用到目标数据库中;

Collector Collector 是运行在目标端的一个后台进程,接收从 TCP/IP 网络传输过来的数据库变化,并写到 Trail 文件里
Trails 为了持续地提取与复制数据库变化,GoldenGate 将捕获到的数据变化临时存放在磁盘上的一系列文件中,这些文件就叫做 Trail 文件
Data Pumps

二、ogg安装、配置

虚拟机和数据库说明
ip ogg说明 ogg版本 库说明 操作系统 sid 数据库名
80.128 —— —— 生产库 centOS7.9 p19c p19c
80.129 源端 21.3 DG库 centOS7.9 p19cstd p19cstd
80.130 目标端 12.3 中间库 centOS7.9 ogg ogg

1、数据库环境配置

1.1源端打开归档日志

切换oracle用户,在sqlplus登录sysdba

[root@p19cstd ~]# su - oracle
Last login: Thu Sep 12 16:20:14 CST 2024 on pts/0
[oracle@p19cstd ~]$ sqlplus / as sysdba

先验证数据库是否开启自动归档
执行归档查询命令

SQL>archive log list

Automatic archival是Disabled状态,因为Oracle默认是不开启自动归档的【我这边是显示的中文】

如果是禁用或disabled状态,按照下面的开启归档。

关闭数据库,执行命令:
SQL>shutdown immediate
#启动并装载数据库,但没有打开数据文件,该命令常用来修改数据库运行模式或恢复数据库。
#执行命令:
SQL>startup mount
#执行开启归档命令:
SQL>alter database archivelog;
#执行打开数据库命令:
SQL>alter database open;
#执行自动归档命令:
SQL>alter system archive log start;
#验证是否开启自动归档成功
#再执行归档查询命令:
SQL>archive log list

1.2 Oracle开启辅助日志和补充日志

  • 验证数据库是否开启辅助日志和补充日志
    执行SQL语句验证:
​SQL>select force_logging,supplemental_log_data_min from v$database;

可以看出,我这边是已经开启了强制日志,还需要开启补充日志。

  • 开启数据库的辅助日志和补充日志
#开启强制日志后数据库会记录除临时表空间或临时回滚段外所有的操作,命令:
SQL>alter database force logging;
#开启辅助日志命令:
SQL>alter database add supplemental log data;
#开启主键附加日志命令:
SQL>alter database add supplemental log data (primary key) columns;
#开启全列附加日志命令:
SQL>alter database add supplemental log data (all) columns; 
#检查数据库是否成功开启辅助日志和补充日志
#执行SQL语句验证:
SQL>select force_logging,supplemental_log_data_min from v$database;

1.3补充enable_goldengate_replication参数设置(源端+目标端)

如果不设置这个参数,在启动ogg的mgr进程的时候会报错,不信的话,可以先不配置,报错了再回来配置

##在sqlplus执行
查询:
SQL>SELECT name, value FROM v$system_parameter WHERE name = 'enable_goldengate_replication';

###源端--设置为true
SQL> ALTER SYSTEM SET enable_goldengate_replication = TRUE SCOPE=BOTH;

2、安装ogg

2.1源端

ogg12.3不兼容oracle19c,所以我安装了高版本ogg21.3.

要特别注意版本选择,最好是源端、目标端用一样的版本。

创建OGG源端的目录,使用root用户创建

###创建ogg目录  源端+目标端
mkdir /u01/app/ogg

chown -R oracle:oinstall /u01/app/ogg


###实操:
[root@ogg ~]# mkdir /u01/app/ogg
[root@ogg ~]# chown -R oracle:oinstall /u01/app/ogg

切换oracle用户,配置环境变量。

添加OGG源端的目录到oracle用户的环境变量中(需要切换到oracle用户操作)

su - oracle

[oracle@p19c ~]$ vim ~/.bash_profile

# .bash_profile
 
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
 
# User specific environment and startup programs
 
PATH=$PATH:$HOME/.local/bin:$HOME/bin
 
export PATH
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.3.0
'''
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
 
###ogg添加---源端
export OGG_HOME=/u01/app/ogg
##21版本以后需要加入了TNS_ADMIN。12版本不需要下一行下面这个参数就是解决我之前登录ogg报错问题
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=$PATH:$OGG_HOME
export LD_LIBRARY_PATH=$OGG_HOME:$LD_LIBRARY_PATH
alias ggsci='cd $OGG_HOME;ggsci'


 
###使配置生效,源端和目标端一样的命令
[oracle@p19c ~]$ source ~/.bash_profile

root用户下解压ogg安装包到指定目录/opt/ogg/,

不是解压到/u01/app/ogg,这个目录在安装的时候要是空目录,注意不同版本文件夹名可能不一样

解压命令和配置静默安装文件:

#解压
源端:
[root@p19cstd opt]# unzip 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip -d /opt/ogg/

#进入安装文件目录
[oracle@p19cstd opt]$ cd /opt/ogg/fbo_ggs_Linux_x64_Oracle_shiphome/Disk1



#配置安装配置文件,修改前三个配置--参考

[root@p19c Disk1]# cd response
[root@p19c response]# vim oggcore.rsp


#INSTALL_OPTION=ORA12c --安装选项,如果是oracle11g选择ORA11g--与安装的数据库版本要匹配
#SOFTWARE_LOCATION=/home/oracle/ogg/ggs12_2 --OGG的安装目录,一定要是一个空目录
#START_MANAGER=false --是否自动启动mgr管理进程
#DATABASE_LOCATION=/u01/app/oracle/product/19.3.0  --也可以加上数据库路径
[oracle@p19cstd Disk1]$ vim response/oggcore.rsp

#查看修改后内容(去掉注释,源端19c)
[oracle@p19cstd Disk1]$ cat response/oggcore.rsp | grep -Ev "^#|^$"
oracle.install.responseFileVersion=/oracle/install/rspfmt_ogginstall_response_schema_v12_1_2
INSTALL_OPTION=ORA19c
SOFTWARE_LOCATION=/u01/app/ogg
START_MANAGER=false
MANAGER_PORT=
DATABASE_LOCATION=/u01/app/oracle/product/19.3.0
INVENTORY_LOCATION=
UNIX_GROUP_NAME=
[oracle@p19cstd Disk1]$
        

#静默安装,进入oracle用户

#su  oracle
#ogg12.3一直在源端装不上,在目标端装成功了,所以在源端换了高版本ogg,比如21.3,则成功安装了
./runInstaller -silent -responseFile /opt/ogg/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore.rsp

#21.3解压方式和12.3类似,要注意区分文件名
#下面是21.3的安装命令
[oracle@p19cstd Disk1]$ ./runInstaller -silent -responseFile /opt/ogg/fbo_ggs_Linux_x64_Oracle_shiphome/Disk1/response/oggcore.rsp
截图

2.2目标端

同样的配置环境变量,创建ogg目录,解压ogg安装包到/opt/ogg,修改安装文件,然后安装到/u01/app/ogg

环境变量配置

su - oracle
#oracle环境变量配置文件
[oracle@ogg Disk1]$ vim ~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/12.2.0
export PATH=$PATH:$ORACLE_HOME/bin:/usr/local/bin
'''
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"


###ogg添加--目标端
export OGG_HOME=/u01/app/ogg
export PATH=$PATH:$OGG_HOME
export LD_LIBRARY_PATH=$OGG_HOME:$LD_LIBRARY_PATH
alias ggsci='cd $OGG_HOME;ggsci'


###使配置生效,源端和目标端一样的命令
[oracle@p19c ~]$ source ~/.bash_profile
 

解压安装包、配置静默安装文件、安装

[oracle@ogg Disk1]$

###解压安装包,参照前一步
目标端:
[root@p19cstd opt]# unzip fbo_ggs_Linux_x64_shiphome-12.3.0.1.4.zip -d /opt/ogg/
#进入安装文件目录
[oracle@p19cstd opt]$ cd /opt/ogg/fbo_ggs_Linux_x64_shiphome/Disk1


#查看修改安装响应文件--
##目标端
[oracle@ogg Disk1]$ vim response/oggcore.rsp
[oracle@ogg Disk1]$ cat response/oggcore.rsp | grep -Ev "^#|^$"
oracle.install.responseFileVersion=/oracle/install/rspfmt_ogginstall_response_schema_v12_1_2
INSTALL_OPTION=ORA12c
SOFTWARE_LOCATION=/u01/app/ogg
START_MANAGER=false
MANAGER_PORT=
DATABASE_LOCATION=/u01/app/oracle/product/12.2.0
INVENTORY_LOCATION=
UNIX_GROUP_NAME=

#安装
[oracle@ogg Disk1]$ ./runInstaller -silent -responseFile /opt/ogg/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore.rsp


截图

3、创建OGG表空间、用户、权限

3.1创建ogg用户、表空间和分配权限(源端和目标端)

创建表空间:

可以选择新建目录创建表空间,也可以选择和原来的库共用一个目录。


#如果选择ogg表空间单独一个目录的话,需按下列语句先创建目录(需要到root用户操作)
mkdir -p /u01/app/oracle/oggdata/orcl/
chown -R oracle:oinstall /u01/app/oracle/oggdata/orcl

#然后在oracle用户下用sysdba登录sqlplus
su - oracle
sqlplus / as sysdba

#创建表空间(ogg单独目录的)
SQL>create tablespace oggtbs datafile '/u01/app/oracle/oggdata/orcl/oggtbs.dbf' size 100M autoextend on;


#创建表空间(ogg共用目录的)-源端--我采用的是这种
SQL> create tablespace oggtbs datafile '/u01/app/oracle/oradata/P19CSTD/oggtbs.dbf' size 100M autoextend on;

###当源端为主机时
SQL> create tablespace oggtbs datafile '/u01/app/oracle/oradata/P19C/oggtbs.dbf' size 100M autoextend on;

#创建表空间(ogg共用目录的)-目标端
SQL> create tablespace oggtbs datafile '/u01/app/oracle/oradata/ogg/oggtbs.dbf' size 100M autoextend on;

补充-出现的问题

我的源端是oracle19的standby备库(备份库),不能修改数据,异常了

问题解决方案:

百度出来两种方式,我这边试了B方案,

A.临时更改数据库模式(如果必要)
如果确实需要在standby库上创建表空间,并且了解相关风险,可以临时将standby库更改为读写模式。请注意,这通常仅用于临时任务(如测试或开发),并且应该在完成后立即将数据库改回只读模式。
ALTER DATABASE OPEN READ WRITE;
执行此操作后,你应该能够创建表空间。但是,请记住,在standby库上进行写操作可能会违反Data Guard的最佳实践。

B. 在主库上创建表空间
通常,建议在主库上创建OGG表空间,然后通过Data Guard的同步机制将其复制到standby库。这样可以确保主库和standby库之间的一致性,并符合Data Guard的设计。

创建用户、分配权限

#创建ogg用户(用户名和密码都是ogg)
SQL>create user ogg identified by ogg default tablespace oggtbs;

赋予ogg用户dba权限
SQL>grant dba to ogg;

额外权限(源端+目标端):

#给OGG添加角色和一些能力 (单项复制的话在源端做 双向复制的话源端/目标端一起做)

#在数据库上执行GoldenGate脚本(开启DDL)
###注意:一定要cd到ogg的目录下去执行,而且oracle用户的bash_profile里需要有export LD_LIBRARY_PATH=$ORACLE_HOME/lib

#正式命令
cd $OGG_HOME --这句话的意思是告诉你去ogg家目录下执行
或者 cd /u01/app/ogg
sqlplus / as sysdba


SQL>@sequence.sql --支持序列--有很多error

SQL>GRANT EXECUTE ON ogg.updateSequence TO ogg;

SQL>ALTER TABLE sys.seq$ ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
#安装ddl支持,需要输入创建的ogg用户名
SQL>@marker_setup.sql    --源端提示打不开文件


#需要输入创建的ogg用户名
SQL>@ddl_setup.sql   --源端提示打不开文件

#添加角色,需要输入创建的ogg用户名
SQL>@role_setup.sql

SQL>GRANT GGS_GGSUSER_ROLE TO ogg;

SQL>@ddl_enable.sql --源端提示打不开文件

SQL>@marker_status.sql  --源端有异常,

问题:

源端很多无法成功执行设置,只处理了目标端。

继续往下

注,这个配置有的博客没有说明,不配置应该也行

3.2 创建一个测试表(源端+目标端)

4、ogg配置

注意:一定要cd到ogg的目录下去执行

GoldenGate的日志位于其安装目录下的ggserr.log中,在配置过程中出现错误的时候可以通过日志排查问题。

4.1 设置全局变量(源端+目标端)

cd $OGG_HOME

[oracle@p19cstd ogg]$ cd /u01/app/ogg

[oracle@p19cstd ogg]$ ./ggsci   --如果正确配置环境变量,直接输 ggsci回车就行

GGSCI (p19cstd) 1>EDIT PARAMS ./GLOBALS

GGSCHEMA ogg

4.2 ogg初始化(源端+目标端):

#使用oracle用户登录源端OGG的命令行中

su – oracle
cd $OGG_HOME
./ggsci

#初始化源端OGG目录
#注意:如果不在OGG_HOME下,初始化OGG目录时会报错

GGSCI (p19cstd) 1> create subdirs

#退出OGG命令行客户端:
exit

检查源端OGG初始化后的目录
初始化完成后,可以查询在$OGG_HOME下是否存在dirchk、dirdat、dirdef、dirjar、dirout、dirpcs、dirprm、dirrpt、dirsql、dirtmp共11个目录。

#配置和启动两台数据库服务器的goldengate 的manager进程

参数参考说明

###参考
GGSCI (localhost.localdomain) 1> edit params mgr
 
PORT 7809
 
--DYNAMICPORTLIST 7840-7939
-- AUTOSTART E *
--AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3
--PURGEOLDEXTRACTS /ogg/app/dirdat/*,usecheckpoints, minkeepdays 3
--LAGREPORTHOURS 1
--LAGINFOMINUTES 30
--LAGCRITICALMINUTES 45
 
参数说明:
PORT:指定服务监听端口,默认端口为7809
DYNAMICPORTLIST:动态端口:可以制定最大256个可用端口的动态列表,当指定的端口不可用时,管理进程将会从列表中选择一个可用的端口,源端和目标段的Collector、Replicat、GGSCI进程通信也会使用这些端口;
COMMENT:注释行,也可以用--来代替;
AUTOSTART:指定在管理进程启动时自动启动哪些进程;E代表extract进程,R代表replicat进程
AUTORESTART:自动重启参数设置:本处设置表示每3分钟尝试重新启动所有EXTRACT进程,共尝试5次;
PURGEOLDEXTRACTS:定期清理trail文件设置:本处设置表示对于超过3天的trail文件进行删除。
LAGREPORT、LAGINFO、LAGCRITICAL:定义数据延迟的预警机制:本处设置表示MGR进程每隔1小时检查EXTRACT的延迟情况,如果超过了30分钟就把延迟作为信息记录到错误日志中,如果延迟超过了45分钟,则把它作为警告写到错误日志中。



我的配置

###我的配置--参考项目上原有配置来的---源端
GGSCI (p19cstd) 5> edit params mgr
#配置内容
PORT 7809
DYNAMICPORTLIST 7810-7832
AUTOSTART EXTRACT *
AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3
PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 7
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
ACCESSRULE,prog *,IPADDR *, ALLOW,pri 1


GGSCI (p19cstd) 6> start mgr
Manager started.

GGSCI (p19cstd) 7> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING

GGSCI (p19cstd) 8>



####我的配置 目标端
PORT 7809
DYNAMICPORTLIST 7810-7832
AUTORESTART ER *,RETRIES 5,WAITMINUTES 3
PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 15
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
ACCESSRULE,prog *,IPADDR *, ALLOW;

4.3 源端extract+data pump进程配置

[oracle@p19c ogg]$ ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 21.3.0.0.0 OGGCORE_21.3.0.0.0_PLATFORMS_210728.1047_FBO
Oracle Linux 7, x64, 64bit (optimized), Oracle Database 21c and lower supported versions on Jul 29 2021 03:59:23
Operating system character set identified as UTF-8.

Copyright (C) 1995, 2021, Oracle and/or its affiliates. All rights reserved.


##ogg19版本之后登录用户需要加监听名或者换成ip
GGSCI (p19c) 1> dblogin userid ogg@p19c,password ogg
Successfully logged into database.

##添加标级补充日志
GGSCI (p19c as ogg@p19c) 3> add trandata hisa.dept_new

2024-10-07 15:31:28  INFO    OGG-15131  Logging of supplemental redo log data is already enabled for table HISA.DEPT_NEW.

2024-10-07 15:31:28  INFO    OGG-15135  TRANDATA for instantiation CSN has been added on table HISA.DEPT_NEW.

2024-10-07 15:31:28  INFO    OGG-10471  ***** Oracle Goldengate support information on table HISA.DEPT_NEW *****
Oracle Goldengate support native capture on table HISA.DEPT_NEW.
Oracle Goldengate marked following column as key columns on table HISA.DEPT_NEW: DEPT_ID.
##注册服务
GGSCI (p19c as ogg@p19c) 4> register extract exths database

2024-10-07 15:47:35  INFO    OGG-02003  Extract group EXTHS successfully registered with database at SCN 7152375.

##新增extract进程
GGSCI (p19c as ogg@p19c) 5> add extract exths, integrated tranlog, begin now
Integrated Extract added.

##添加extract进程的trail文件配置
##其中megabytes表示队列大小,本处为10M
GGSCI (p19c as ogg@p19c) 6> add exttrail /u01/app/ogg/dirdat/hs,extract exths,megabytes 10
EXTTRAIL added.

##编辑exths内容
GGSCI (p19c as ogg@p19c) 7> edit param exths


##查看刚刚编辑的内容
GGSCI (p19c as ogg@p19c) 8> view params exths

EXTRACT exths
dynamicresolution
userid ogg@p19c,password ogg
setenv(ORACLE_SID=P19C)
exttrail /u01/app/ogg/dirdat/hs,format release 12.3
--SOURCECATALOG ORCLPDB
table HISA.DEPT_NEW;

##新增应该pump进程
GGSCI (p19c as ogg@p19c) 9> add extract dphs, exttrailsource /u01/app/ogg/dirdat/hs, begin now
Extract added.


GGSCI (p19c as ogg@p19c) 10> ADD RMTTRAIL /u01/app/ogg/dirdat/hs, EXTRACT dphs
RMTTRAIL added.
##编辑pump
GGSCI (p19c as ogg@p19c) 11> edit param dphs
##查看pump
GGSCI (p19c as ogg@p19c) 20> view params dphs

EXTRACT dphs
PASSTHRU
RMTHOST 192.168.80.130, MGRPORT 7809
RMTTRAIL /u01/app/ogg/dirdat/hs
TABLE HISA.DEPT_NEW;


GGSCI (p19c as ogg@p19c) 21>


GGSCI (p19c as ogg@p19c) 12> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     STOPPED     DPHS        00:00:00      00:01:22
EXTRACT     STOPPED     EXTHS       00:00:00      00:04:56
EXTRACT     RUNNING     MYEXT       00:00:00      00:00:02

##启动ext
GGSCI (p19c as ogg@p19c) 13> start exths

Sending START request to Manager ...
Extract group EXTHS starting.


GGSCI (p19c as ogg@p19c) 14> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     STOPPED     DPHS        00:00:00      00:01:44
EXTRACT     RUNNING     EXTHS       00:05:16      00:00:02
EXTRACT     RUNNING     MYEXT       00:00:03      00:00:03

##启动pump
GGSCI (p19c as ogg@p19c) 15> start dphs

Sending START request to Manager ...
Extract group DPHS starting.


GGSCI (p19c as ogg@p19c) 16> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     RUNNING     DPHS        00:00:00      00:02:00
EXTRACT     RUNNING     EXTHS       00:00:00      00:00:08
EXTRACT     RUNNING     MYEXT       00:00:00      00:00:08


GGSCI (p19c as ogg@p19c) 18>
补充说明:

添加补充日志,也可以在数据库用下面的命令执行

##这个可以在plsql或sqlplus执行
alter table gzserver.pha_com_base_extend add supplemental log data(all) columns;

4.4 目标端replicat进程配置

[oracle@ogg ogg]$ ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 12.3.0.1.4 OGGCORE_12.3.0.1.0_PLATFORMS_180415.0359_FBO
Linux, x64, 64bit (optimized), Oracle 12c on Apr 16 2018 00:53:30
Operating system character set identified as UTF-8.

Copyright (C) 1995, 2018, Oracle and/or its affiliates. All rights reserved.



GGSCI (ogg) 1> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
REPLICAT    RUNNING     MYREP       00:00:00      00:00:05


GGSCI (ogg) 2> view params ./GLOBALS

GGSCHEMA ogg
CHECKPOINTTABLE ogg.checkpoint

##低版本登录ogg用户方式
GGSCI (ogg) 3> dblogin userid ogg,password ogg
Successfully logged into database.

###下面这个之前4.4测试的时候已配置,可以不用执行
GGSCI (ogg as ogg@ogg) 4> add checkpointtable ogg.checkpoint  
ERROR: Failed creating checkpoint table ogg.checkpoint.

OCI Error ORA (status = 955-ORA-00955: 名称已由现有对象使用
).

GGSCI (ogg as ogg@ogg) 5> add replicat rephs, exttrail /u01/app/ogg/dirdat/hs,begin now, checkpointtable ogg.checkpoint
REPLICAT added.


GGSCI (ogg as ogg@ogg) 6> edit params rephs


GGSCI (ogg as ogg@ogg) 11> view params rephs

REPLICAT rephs
--SETENV(ORACLE_SID=OGG)
USERID ogg,password ogg
ALLOWNOOPUPDATES
--ASSUMETARGETDEFS
MAP HISA.DEPT_NEW, TARGET HISA.DEPT_NEW;


GGSCI (ogg as ogg@ogg) 12>


GGSCI (ogg as ogg@ogg) 7> start rephs

Sending START request to MANAGER ...
REPLICAT REPHS starting


GGSCI (ogg as ogg@ogg) 8> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
REPLICAT    RUNNING     MYREP       00:00:00      00:00:05
REPLICAT    STOPPED     REPHS       00:00:00      00:01:14


GGSCI (ogg as ogg@ogg) 9>

5 验证测试

1、表数据的增删改操作

源端:

在源端分别做增、删、改操作;

新增106,病理科,删除103检验科,修改影像科为1楼

目标端结果:

在源端修改的数据,能同步到目标端

2、源端表结构变更

新增一个字段memo-备注,并修改一条数据

目标端的rephs进程,在没有新数据变化的时候,状态是running,

增加一个字段memo,并修改数据的时候,rephs进程没有异常,数据没有同步变化,通常状态是会异常的。

下面修改目标端表结构试试

修改目标端表结构后,之前的数据变化不会自动同步,源端做了新的数据变化才能同步到目标端

3、新加同步表,但目标端未建表情况测试

源端新加表,并且三个进程都配置上后,rephs进程这个参数启动还是不能同步表结构

ASSUMETARGETDEF

异常如下:

在目标端加上表结构后,重新启动rep进程,数据能同步过去。

以上就是本次ogg学习过程了,完成从oracle19同步数据到oracle12c,但是还存在些问题。

参考博客:

Oracle GoldenGate(OGG)- 超级详细_oracle ogg-CSDN博客

ORACLE12C OGG安装、配置、使用_oracle12c适应的ogg版本-CSDN博客

OGG实现跨版本的同步_ogg高版本向低版本同步-CSDN博客

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐