ogg 23ai + 19c 单向同步配置
[TOC]
一、前言
1) 本文是测试ogg 23ai 版本,oracle 19c pdb单向同步测试。
2) 本文是参考ogg23ai 之前版本的微服务配置方式,ogg23ai 安装配置界面变化较多,如有错误,请及时帮忙纠正,共同学习,感谢!
- 支持的OS、Oracle 版本
二、OGG微服务安装
环境介绍:
- 操作系统 redhat Linux 8.9
--1) 创建ogg 用户
/usr/sbin/groupadd -g 1002 dba
/usr/sbin/groupadd -g 1001 oinstall
/usr/sbin/groupadd -g 1003 oper
useradd -u 1001 -g oinstall -G dba,oper oracle
echo "oracle" |passwd oracle --stdin
--2) 创建安装目录
mkdir -p /u01/app/ogg/soft
mkdir -p /u01/app/ogg/ogg23_ma
cd /u01/app/ogg; mkdir ogg23_sm ogg23_deploy1 ogg23_deploy2
chown -R oracle:oinstall /u01/app/ogg
--3) 环境oracle变量配置
export OGG_HOME=/u01/app/ogg/ogg23_ma
export PATH=$OGG_HOME/bin:$PATH
--4) 配置hosts文件
[root@ogg23ai ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.56.8 ogg23ai
复制
- 下载安装包并解压。 https://www.oracle.com/middleware/technologies/goldengate-downloads.html , 选择 Oracle GoldenGate 23.4.0.0.0 Microservices for Oracle on Linux x86-64
上传安装Oracle_GoldenGate_23.4.0.0.0.zip
到/u01/app/ogg/soft
下
[oracle@ogg23ai ~]$ cd /u01/app/ogg/soft [oracle@ogg23ai soft]$ unzip Oracle_GoldenGate_23.4.0.0.0.zip
复制
2.1 GUI安装MA
- 启动runInstaller
[oracle@ogg23ai ~]$ cd /u01/app/ogg/soft/fbo_ggs_Linux_x64_Oracle_services_shiphome/Disk1 [oracle@ogg23ai ~]$ ./runInstaller
复制
基于提示root
用户下执行执行orainstRoot.sh
脚本
[root@ogg23ai ~]# /home/oracle/oraInventory/orainstRoot.sh
Changing permissions of /home/oracle/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /home/oracle/oraInventory to oinstall.
The execution of the script is complete.
复制
安装完成
- 安装完成后查看安装目录
[oracle@ogg23ai ogg]$ ll *
ogg23_deploy1:
total 0
ogg23_deploy2:
total 0
ogg23_ma:
total 24
drwxr-xr-x. 2 oracle oinstall 4096 Sep 18 18:49 bin
drwxr-xr-x. 3 oracle oinstall 17 Sep 18 18:49 cfgtoollogs
drwxr-xr-x. 2 oracle oinstall 26 Sep 18 18:49 deinstall
drwxr-xr-x. 3 oracle oinstall 20 Sep 18 18:49 diagnostics
drwxr-xr-x. 2 oracle oinstall 63 Sep 18 18:49 include
drwxr-xr-x. 3 oracle oinstall 28 Sep 18 18:49 install
drwxr-x---. 13 oracle oinstall 4096 Sep 18 18:49 inventory
drwxr-xr-x. 8 oracle oinstall 115 Sep 18 18:49 jdk
drwxr-xr-x. 2 oracle oinstall 85 Sep 18 18:49 jlib
drwxr-xr-x. 7 oracle oinstall 4096 Sep 18 18:49 lib
drwxr-xr-x. 13 oracle oinstall 4096 Sep 18 18:49 OPatch
-rw-r-----. 1 oracle oinstall 60 Sep 18 18:48 oraInst.loc
drwxr-xr-x. 8 oracle oinstall 4096 Sep 18 18:49 oui
drwxr-xr-x. 3 oracle oinstall 19 Sep 18 18:49 srvm
ogg23_sm:
total 0
复制
2.2 GUI安装SM
- 运行
ogca.sh
[oracle@ogg23ai ~]$ cd /u01/app/ogg/ogg23_ma/bin [oracle@ogg23ai bin]$ ./oggca.sh
复制
开始配置
Register Service Manager 表示在操作系统层面注册成服务,方便管理。
基于提示root
用户下执行执行registryServiceManager.sh
脚本
[root@ogg23ai ~]# /u01/app/ogg/ogg23_deploy1/bin/registerServiceManager.sh Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved. ---------------------------------------------------- Oracle GoldenGate Install As Service Script ---------------------------------------------------- OGG_HOME=/u01/app/ogg/ogg23_ma OGG_CONF_HOME=/u01/app/ogg/ogg23_deploy1/etc/conf OGG_VAR_HOME=/u01/app/ogg/ogg23_deploy1/var OGG_USER=oracle Running OracleGoldenGateInstall.sh... Created symlink /etc/systemd/system/multi-user.target.wants/OracleGoldenGate.service → /etc/systemd/system/OracleGoldenGate.service.
复制
安装完成 。
三、MA版使用
3.1 检查服务
- 系统中注册的
OracleGoldenGate.service
服务进程
[root@ogg23ai ~]# systemctl status OracleGoldenGate.service ● OracleGoldenGate.service - Oracle GoldenGate Service Manager Loaded: loaded (/etc/systemd/system/OracleGoldenGate.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2024-05-22 16:17:10 CST; 33s ago Main PID: 1858 (ServiceManager) CGroup: /docker/32278a6f77bcc2295629a16cc614beaae0e12116dee62e006c604700fdb833d7/system.slice/OracleGoldenGate.service └─1858 /u01/app/ogg/ogg23_ma/bin/ServiceManager --inventory '/home/oracle/ogg23_sm/etc/conf' ‣ 1858 /u01/app/ogg/ogg23_ma/bin/ServiceManager --inventory '/home/oracle/ogg23_sm/etc/conf' ...
复制
- 系统中查看相关进程
[root@ogg23ai ~]# netstat -anlp |grep 7809 tcp6 0 0 :::7809 :::* LISTEN 4341/ServiceManager [root@ogg23ai ~]# [root@ogg23ai ~]# ps -ef|grep ServiceManager oracle 4341 1 0 19:52 ? 00:00:03 /u01/app/ogg/ogg23_ma/bin/ServiceManager --inventory '/u01/app/ogg/ogg23_deploy1/etc/conf' root 4790 2449 0 20:23 pts/0 00:00:00 grep --color=auto ServiceManager [root@ogg23ai ~]# [root@ogg23ai ~]# ps -ef|grep ogg23 avahi 948 1 0 18:43 ? 00:00:00 avahi-daemon: running [ogg23ai.local] oracle 4341 1 0 19:52 ? 00:00:03 /u01/app/ogg/ogg23_ma/bin/ServiceManager --inventory '/u01/app/ogg/ogg23_deploy1/etc/conf' oracle 4417 4341 0 19:52 ? 00:00:03 /u01/app/ogg/ogg23_ma/bin/adminsrvr --config /u01/app/ogg/ogg23_deploy1/var/run/ogg23_deploy2-adminsrvr-config.dat oracle 4419 4341 1 19:52 ? 00:00:22 /u01/app/ogg/ogg23_ma/bin/distsrvr --config /u01/app/ogg/ogg23_deploy1/var/run/ogg23_deploy2-distsrvr-config.dat oracle 4421 4341 0 19:52 ? 00:00:15 /u01/app/ogg/ogg23_ma/bin/pmsrvr --config /u01/app/ogg/ogg23_deploy1/var/run/ogg23_deploy2-pmsrvr-config.dat oracle 4423 4341 0 19:52 ? 00:00:04 /u01/app/ogg/ogg23_ma/bin/recvsrvr --config /u01/app/ogg/ogg23_deploy1/var/run/ogg23_deploy2-recvsrvr-config.dat root 4792 2449 0 20:23 pts/0 00:00:00 grep --color=auto ogg23
复制
3.2 登录ogg 微服务
1)登录URL页面:http://192.168.56.8:7809
2)命令行登录
[oracle@ogg23ai ~]$ cd /u01/app/ogg/ogg23_ma/bin/ [oracle@ogg123 sf_VM]$ ./adminclient .... GG (not connected) 4> connect http://192.168.56.8:7809 deployment ogg23_deploy2 as oggadmin password oggadmin OGG (http://192.168.56.8:7809 ogg23_deploy2) 5> info all Program Status Group Type Lag at Chkpt Time Since Chkpt ADMINSRVR RUNNING DISTSRVR RUNNING PMSRVR RUNNING RECVSRVR RUNNING
复制
3.3 基本操作
- 通过前面配置用户名和密码,登录成功后主界面如下
- 通过页面可以选择停止或启动管理服务、分发服务、性能度量服务和接收方服务。
- 通过systemctl命令停止服务
-- 停止服务
[oracle@ogg23ai bin]$ systemctl stop OracleGoldenGate.service
-- 查看服务
[oracle@ogg23ai bin]$ systemctl status OracleGoldenGate.service
● OracleGoldenGate.service - Oracle GoldenGate Service Manager
Loaded: loaded (/etc/systemd/system/OracleGoldenGate.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2024-05-22 16:17:10 CST; 10min ago
Main PID: 1858 (ServiceManager)
CGroup: /docker/32278a6f77bcc2295629a16cc614beaae0e12116dee62e006c604700fdb833d7/system.slice/OracleGoldenGate.service
└─1858 /u01/app/ogg/ogg23_ma/bin/ServiceManager --inventory '/home/oracle/ogg23_sm/etc/conf'
‣ 1858 /u01/app/ogg/ogg23_ma/bin/ServiceManager --inventory '/home/oracle/ogg23_sm/etc/conf'
复制
四、配置同步链路 (Web方式)
4.1 准备数据库
- 准备两个 Oracle 19c cdb 环境,PDB1 同步到 PDB2 。这里使用的是oracle docker 环境。
主机名 | ip 地址 | 数据库名称(CDB:PDB) | 端口映射 | 宿主机地址 |
---|---|---|---|---|
ora19c | 172.88.0.2 | ORCLCDB:PDB1 | 1521:1521 | 192.168.56.2 |
ora19c_2 | 172.88.0.3 | ORCLCDB:PDB2 | 2521:1521 | 192.168.56.2 |
- 源端、目标端数据库日志及设置
-- 源端设置归档模式、附加日志和启动OGG复制
SQL> archive log list;
SQL> alter database force logging;
SQL> alter database add supplemental log data;
SQL> select force_logging,supplemental_log_data_min from v$database;
-- 源端、目标端
SQL> alter system set enable_goldengate_replication=true;
复制
- 源端、目标端创建ogguser用户及授权
SQL> create user C##OGG identified by ogg;
SQL> exec dbms_goldengate_auth.grant_admin_privilege('C##OGG',container=>'ALL');
SQL> grant DBA to c##ogg CONTAINER=ALL;
复制
4.2 创建测试表
--准备表
alter session set container=PDB1;
SQL> CREATE TABLE sxc.my_table (
id NUMBER PRIMARY KEY,
name VARCHAR2(50),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
SQL> CREATE TABLE sxc.my_table2 (
id NUMBER PRIMARY KEY,
name VARCHAR2(50),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
--构造数据
SQL> BEGIN
FOR i IN 1..10000 LOOP
INSERT INTO sxc.my_table (id, name) VALUES (i, 'Name ' || i);
END LOOP;
COMMIT;
END;
/
SQL> select count(*) from sxc.my_table;
COUNT(*)
----------
10000
复制
4.3 同步准备
-
登录到管理服务,http://192.168.56.8:7810/
-
这里,我们先修改一下GLOBALS参数文件,里面的值默认是配置微服务期间输入的
Replication Schema
值。
1)添加源端数据库
- 点击左上角菜单按钮,点击左边
数据库连接
,点击数据库连接
旁边的 + 建立数据库连接(连接源端、目标端数据库)
用户ID格式为ogguser@<数据库ip地址>/<服务名>
,用户密码,点击“提交”
注意:这里连接的是源端 CDB。
出现如下界面后,点击右侧的连接到数据库连接
按钮 ,能够跳出下面的内容,说明连接正常。
2)添加目标端数据库
- 注意:这里连接的是目标端 PDB
- 测试连接
3)源端添加TRANDATA信息
- ①方式1:针对表单独添加, 源端点击
TRANDATA信息
旁边的 + 添加检查点表trandata设置,此处添加表sxc.my_table
检查:输入pdb1.sxc.my_table
点击 搜索
- ②方式2:针对
schema
级别添加
检查:输入pdb1.sxc
点击 搜索
4)目标端添加检查点
4.4 数据抽取(ext1)
登录管理服务URL页面: http://192.168.56.8:7810/
- 回到主界面,点击
提取
旁边的**+** 添加提取进程
- 选择提取类型,此处选择默认的
集成的抽取
- 设置提取选项,进程名
ext1
;线索名称aa
;别名sourcedb
,注册到pdb1
这里,需要修改一下参数文件:
EXTRACT ext1 USERIDALIAS sourcedb DOMAIN OracleGoldenGate EXTTRAIL aa DDL INCLUDE MAPPED TABLE PDB1.SXC.*;
复制
-
点击
创建并运行
-
回到主界面,点击“查看状态”
通过如下界面可看到 提取进程EXT1
正在运行
4.5 初始化
- 使用expdp ,详细过程略。。。
-- 数据导出:以 FLASHBACK_SCN 为参数,使用 expdp 导出生产库数据
expdp system/oracle@PDB1 directory=DATA_PUMP_DIR dumpfile=expdp_sxc%U.dmp logfile=expdp_sxc.log filesize=30G schemas=sxc flashback_scn=4294128
-- 数据导入:在目标库上使用 impdp 导入数据
impdp system/oracle@PDB2 directory=DATA_PUMP_DIR dumpfile=expdp_sxc%U.dmp logfile=impdp_sxc.log
复制
4.6 复制进程(rep1)
- 回到“概述”界面,点击
复制
旁边的**+** 添加提取进程
- 选择复制类型,此处选择默认的的
并行复制
+非集成
- 设置复制选项,进程名
rep1
;线索名称aa
- 参数文件,如经典模式配置一样添加同步表清单
MAP PDB1.SXC.*, TARGET PDB2.SXC.*;
REPLICAT rep1 USERIDALIAS targetdb DOMAIN OracleGoldenGate DISCARDFILE rep_rf.dsc, append, megabytes 1024 REPERROR DEFAULT, ABEND NUMFILES 5000 GROUPTRANSOPS 2000 MAP PDB1.SXC.*, TARGET PDB2.SXC.*;
复制
- 点击
创建
不要运行
- 手动点击操作
启动
, 概览 中 查看状态
- 数据初始化后,基于afterscn 启动
4.7 实时同步检查
- 测试DDL & DML 测试
-- 1)源端操作
sqlplus sxc/sxc@PDB1
SXC@PDB1> insert into sxc.MY_TABLE2 values (1,'s',sysdate);
1 row created.
SXC@PDB1> commit;
Commit complete.
SXC@PDB1> create table t (id int);
Table created.
SXC@PDB1> insert into t values (1);
1 row created.
SXC@PDB1> commit;
Commit complete.
--2)目标端检查
SXC@PDB2> select * from sxc.MY_TABLE2;
ID NAME CREATED_AT
---------- ---------- ---------------------------------------------------------------------------
1 s 20-SEP-24 06.31.47.000000 PM
SXC@PDB2> select * from t;
ID
--------------------
1
复制
- 查看复制进程
REP1
统计信息
- 查看提取进程
EXT1
统计信息
五、AdminClient使用
- 通过adminclient登录
[oracle@ogg23ai bin]$ ./adminclient OGG (not connected) 1> connect http://192.168.56.8:7809 deployment ogg23_deploy2 as oggadmin password oggadmin
复制
- 使用adminclient中子命令
OGG (not connected) 1> connect http://192.168.56.8:7809 deployment ogg23_deploy2 as oggadmin password oggadmin OGG (http://192.168.56.8:7809 ogg23_deploy2) 2> info all Program Status Group Type Lag at Chkpt Time Since Chkpt ADMINSRVR RUNNING DISTSRVR RUNNING PMSRVR RUNNING RECVSRVR RUNNING EXTRACT RUNNING EXT1 INTEGRATED 00:00:02 00:00:01 REPLICAT RUNNING REP1 PARALLEL NONINT 00:00:00 00:00:03 OGG (http://192.3.125.125:8001 deploy19c) 4> view report ext1 OGG (http://192.3.125.125:8001 deploy19c) 7> view params ext1
复制
- 类似
ggsci
命令登录数据等操作
OGG (http://192.168.56.8:7809 ogg23_deploy2) 4> dblogin USERIDALIAS sourcedb Successfully logged into database CDB$ROOT. OGG (http://192.168.56.8:7809 ogg23_deploy2 as sourcedb@ORCLCDB/CDB$ROOT) 5> info trandata pdb1.sxc.t Logging of supplemental transaction log data is enabled for table PDB1.SXC.T. Columns supplementally logged for table PDB1.SXC.T: - "ID" Prepared CSN for table PDB1.SXC.T: 4305471
复制
最后修改时间:2024-10-14 15:16:43
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
目录