【Oracle篇】基于OGG 21c全程图形化实现9TB数据从Oracle 11g到19c的不停机迁移(上):微服务架构详解与微服务部署,及同步问题总览(第一篇,总共三篇)

💫《博主主页》:

🔎 CSDN主页: 奈斯DB

🔎 IF Club社区主页: 奈斯、

🔎 微信公众号: 奈斯DB
🔥《擅长领域》:

🗃️ 数据库:阿里云AnalyticDB (云原生分布式数据仓库)、Oracle、MySQL、SQLserver、NoSQL(Redis)

🛠️ 运维平台与工具:Prometheus监控、DataX离线异构同步工具
💖如果觉得文章对你有所帮助,欢迎点赞收藏加关注💖

想要将9TB低版本的Oracle迁移至高版本,或者将某个用户迁移至其他同样版本的Oracle实例中,无非是如下几种迁移办法:

这次的需求是将9TB的数据从Oracle 11g到19c,并且是不能有停机时间的那么用排除法看看这6个迁移方案那个可以满足:

  • 首先是rman ,RMAN 的备份集具有严格的版本兼容性规则,不能直接将低版本数据库的备份恢复到高版本数据库。因此不能满足
  • 然后是DataGuard ,Data Guard也有严格的版本兼容性规则,与RMAN类似但更严格,主备库版本必须相同(在补丁集级别可以有细微差异),与主库必须是相同的主要版本。因此不能满足
  • 接着表空间传输,表空间传输同样受到版本兼容性的限制,源数据库和目标数据库的字节序(Endianness) 必须相同。因此不能满足
  • 来到dbua,dbua是专门用来对数据库软件进行升级的,因此可以将Oracle 11g升级到19c,但是有个问题升级期间数据库不可用,需要较长的时间停机。因此不能满足

那么就只剩下数据泵和GoldenGate,了解数据泵的小伙伴都清楚Data Pump支持从低版本导出,向高版本导入,并且Oracle明确支持11g的expdp导出文件可以被19c的impdp直接导入,那么GoldenGate是一种基于日志的结构化数据复制软件,可以实现异构迁移。那么实现9TB数据从Oracle 11g到19c的不停机迁移,需要使用到数据泵全量+OGG增量来实现。

由于微服务架构和ogg11版本的经典架构有比较大的差别,首先先根据官方文档了解一下微服务架构,然后迁移之前也需要部署ogg21c微服务,整个迁移过程中需要注意的问题也挺多,并且涉及到了最后通过微服务的图形化界面进行数据同步效验,总计快5万字了,因此将分为上、中、下三篇进行整体的介绍,以免文章太长导致阅读疲劳,三篇文章分别如下:

  • 第一篇:基于OGG 21c全程图形化实现9TB数据从Oracle 11g到19c的不停机迁移(上):微服务架构详解与微服务部署,及同步问题总览**(当前篇)**
  • 第二篇:基于OGG 21c全程图形化实现9TB数据从Oracle 11g到19c的不停机迁移(中):源端与目标端配置,及全量和增量同步配置详解
  • 第三篇:基于OGG 21c全程图形化实现9TB数据从Oracle 11g到19c的不停机迁移(下):图形化界面效验数据同步概述

特别说明💥:本篇文章部分理论性知识点均来源于版权归 Oracle 所有的官方公开文档手册,并结合了我个人的解读和部署演示。若需要调整,请联系,会尽快处理😄

官方文档对Oracle GoldenGate 21.3版本的介绍:
Oracle GoldenGate Microservices Architecture


目录

    • 一、微服务架构和经典架构在进程以及架构上的差别:
      • [1.1 简介:](#1.1 简介:)
      • [1.2 在经典架构中,主要通过几个核心进程协同工作来完成数据同步:](#1.2 在经典架构中,主要通过几个核心进程协同工作来完成数据同步:)
      • [1.3 微服务架构中,进程模型发生了显著变化,这与经典架构有很大不同:](#1.3 微服务架构中,进程模型发生了显著变化,这与经典架构有很大不同:)
      • [1.4 经典架构和微服务架构的部署要求:](#1.4 经典架构和微服务架构的部署要求:)
    • 二、ogg微服务部署(采用中心枢纽(Hub)部署)
      • [2.1 下载OGG 21c for Oracle](#2.1 下载OGG 21c for Oracle)
      • [2,2 ogg组件安装](#2,2 ogg组件安装)
      • [2.3 MA(Microservices Architecture)微服务使用和登录网页](#2.3 MA(Microservices Architecture)微服务使用和登录网页)
    • [三、ogg21c微服务抽取和复制oracle 11g解决的OGG问题总汇:](#三、ogg21c微服务抽取和复制oracle 11g解决的OGG问题总汇:)

OGG 21c for Oracle微服务版安装和Oracle到Oracle之间的数据实时同步实现:

数据库版本 ogg微服务版本 IP地址 主机名 SID OS
源生产库 DB 11g 110.120.100.17 oracle11g liudbywc Linux7.6
ogg库 DB 19c 110.120.100.25 oracle19c liudbywc Linux7.6
ogg微服务服务器 OGG 21c 110.120.100.20 ogg21c ogg21c Linux7.6

一、微服务架构和经典架构在进程以及架构上的差别:

1.1 简介:

OGG的微服务架构采用了一系列服务来管理数据复制,并提供了基于Web的用户界面进行操作,这大大简化了管理和监控工作。支持Oracle GoldenGate(OGG)微服务架构(Microservices Architecture,MA)的首个具体版本是12.3版本(该版本所属的12.3系列中还有12.3.0.1.4等更新版本如下图在 软件交付云(Go to the Software Delivery Cloud) 中可以看到,支持Oracle GoldenGate(OGG)微服务架构(Microservices Architecture,MA)的首个具体版本是12.3版本) ,该版本同时保留了传统的经典架构。

后续的多个版本也持续支持并增强和优化了微服务架构,比如18.1.0.0.0、19.1.0.0.4、21.3.0.0.0等版本,这些版本为微服务架构配备了现代化新界面等优化特性。

微服务架构以及组件:

Oracle GoldenGate 微服务架构(MA)支持通过 RESTful 服务在同构或异构数据库环境中配置和管理数据复制。这些微服务可通过多种接口进行访问,包括网页界面、命令行界面、REST API 或其他任何支持基于 REST 微服务访问的服务。

下图展示了在安全(HTTPS)或非安全(HTTP)环境中的复制流程周期。

Oracle GoldenGate 微服务支持通过多种客户端或服务接口进行访问。您可以通过这些服务接口连接或登录微服务,并执行以下操作:配置数据复制任务、利用统计数据管理与监控进程、优化性能、设置安全选项及其他相关任务。

Oracle GoldenGate 微服务架构内置以下服务接口:

  • 管理客户端(Admin Client): 通过命令行访问微服务。管理客户端是一款命令行工具(类似经典GGSCI工具),可通过其执行全系列配置、控制与监控Oracle GoldenGate的命令;该客户端可替代MA网页界面进行进程的创建、修改与删除。管理客户端程序位于 O G G H O M E / b i n 目录( OGG_HOME/bin目录( OGGHOME/bin目录(OGG_HOME为Oracle GoldenGate主目录)。
  • 基于浏览器的图形化用户界面: 微服务架构包含基于HTML5的Web界面,用于部署环境的管理、监控与安全防护。可以通过各微服务及服务管理器的专属URL访问此Web界面。该界面包含服务管理器、管理服务、分发服务、接收服务及性能监控服务。通过这些Web界面访问点,可以创建并运行所有抽取(Extract)、复制(Replicat)及分发路径(Distribution path)进程。此外,还能配置数据库凭证、为定义角色后的用户添加部署访问权限,并监控进程运行性能。
  • REST API 服务端点: Oracle GoldenGate的REST API提供标准化服务端点,支持直接通过接口执行各类数据复制任务。这是除Web界面和命令行之外配置数据复制流程的替代方案。REST API内容详情参考官方文档:https://docs.oracle.com/en/middleware/goldengate/core/21.3/oggra/

下图展示了用于访问和管理部署、微服务及所有其他Oracle GoldenGate进程的多种客户端(包括Oracle产品、命令行界面、浏览器及编程式REST API接口)。

Oracle Goldengate MA微服务架构的组成部分,有五个主要组成部分:

  1. 服务管理器(Service Manager): SM充当用于MicroServices架构的其他服务的看门狗。服务管理器允许您在本地主机上管理一个或多个Oracle Goldengate部署。服务管理器可选可以作为系统服务运行,并维护有关部署的库存和配置信息,并允许您维护多个本地部署。使用Service Manager,您可以启动和停止实例和查询部署和其他服务。

  2. 管理服务器(Administration Service): AS在Oracle Goldengate部署中监督管理,管理和监视进程。管理服务器作为中央控制实体运行,用于管理Oracle Goldengate部署中的复制组件。您可以使用它来创建和管理本地提取和投递过程,而无需访问安装Oracle Goldengate的服务器。管理服务器的关键特征是可以从任何HTTP或HTTPS客户端访问的REST API服务接口,此外AdminClient可用于使REST API调用与管理服务器直接通信。同时管理服务器负责协调和协调提取,投递和trail,以支持更大的自动化和操作管理。

    管理服务内置网页应用程序,无需安装客户端即可通过浏览器直接访问。通过管理服务可创建和管理:

    • 抽取与复制进程(增删改、注册注销、启停操作)
    • 查看进程信息、统计报告、状态(含延迟与检查点)
    • 获取报告文件与废弃文件
    • 配置(参数)文件
    • 检查点、跟踪表及心跳表
    • 过程复制、模式与表的补充日志
    • 自定义与标准任务(如自动重启、清理轨迹文件)
    • 凭证存储
    • 加密密钥(MASTERKEY)
    • 用户添加与角色分配
  3. 接收器服务器(Receiver Service): RS是处理所有传入跟踪文件的中央控制服务。它与分发服务器互操作,并提供与远程经典部署的经典架构pump的兼容性。

  4. 分发服务器(Distribution Service): DS是一种用作网络数据分发代理,以支持分布式部署中的传送和处理数据和命令的服务。它是一种高性能应用程序,能够同时处理来自多个源TRAIL文件的多个命令和数据流。

  5. 性能指标服务器(Performance Metrics Service): PMS使用指标服务来收集和存储实例部署性能结果。可以使用其他嵌入式Web应用程序监视性能指标,并使用数据调整的部署以进行最大性能。

    通过性能监控服务:

    • 查询各类指标并获取JSON格式或经典XML格式响应
    • 集成第三方指标工具
    • 查看错误日志
    • 查看活动进程状态
    • 监控系统资源利用率

OGG的微服务架构包含上述5个组件,此外还有一个Admin Client。Admin Client类似于ggsci的命令行使用程序。可以用它来发出配置,控制和监视Oracle Goldengate的完整命令范围。比如可以用于创建,修改和删除进程等等。

1.2 在经典架构中,主要通过几个核心进程协同工作来完成数据同步:

以OGG 11.2版本(经典架构)为例:

进程名称 运行位置 核心功能
Manager(mgr) 源端 & 目标端 GoldenGate的总控进程,负责启动、监控、重启其他GoldenGate进程,管理端口和报告事件。
Extract 源端 数据捕获:从源端数据库表或事务日志中捕获数据变化,并写入本地Trail文件。
Pump 源端 数据投递:将本地的Trail文件通过网络发送到目标端。这是Extract进程的一种特殊形式。
Replicat 目标端 数据应用:读取目标端的Trail文件,将其解析为SQL语句,并应用到目标数据库。
Collector 目标端 数据接收:运行在目标端,自动接收并组装来自源端(Extract或Pump进程)的数据,生成目标端的Trail文件。此进程通常无需手动配置。
在配置和管理OGG 11.2进程时,需要注意以下几点: ·Manager进程是前提: 在启动Extract或Replicat进程前,必须先启动Manager进程。 ·Pump进程非必需但推荐: 虽然不配置Pump进程,Extract也可以直接发送数据到目标端,但强烈建议配置Pump进程 。这样可以在网络或目标端故障时,将数据暂存在本地Trail文件,避免Extract进程因内存耗尽而异常终止,提高可靠性。 ·理解Trail文件: Trail文件是OGG专用的二进制格式文件 ,用于持久化存储捕获的数据变更。它采用检查点(Checkpoint)机制 记录进程的读写位置,确保故障恢复后能从断点继续,保障数据完整性。 ·Collector进程自动管理: Collector进程在目标端自动运行,通常无需手动配置。

1.3 微服务架构中,进程模型发生了显著变化,这与经典架构有很大不同:

以OGG 11.2版本 (经典架构)和OGG 21.3版本(微服务架构)为例:

类别 OGG 11.2 (经典架构) OGG 21.3 (微服务架构)
控制/管理 Manager进程 Service Manager
核心数据同步 Extract, Pump, Replicat Extract, Replicat (功能保留,配置方式变)
网络传输 Collector进程 Receiver Server, Distribution Server
配置与监控 GGSCI命令行 Administration Server, Performance Metrics Server, AdminClient
在21.3的微服务架构中,传统的进程被服务代替,并通过Web界面进行管理: ·Service Manager: 这是整个OGG微服务架构的守护进程和总管家。它负责管理、监控和启动/停止其他所有服务,提供了一个统一的服务总览页面。 ·Administration Server: 这个服务取代了经典架构中通过GGSCI命令行进行的绝大部分配置和管理工作。通过它的Web界面,你可以配置数据库连接凭证、管理跟踪数据、添加检查点表,以及创建和监控Extract和Replicat进程。 ·Distribution Server & Receiver Server: 这两个服务共同承担了经典架构中Pump进程和Collector进程的网络传输职责。 1.Distribution Server 负责将源端的Trail文件数据投递到目标端。 2.Receiver Server 负责在目标端接收来自源端的数据。 ·Performance Metrics Server: 这是一个强大的实时监控平台。它通过丰富的图表和仪表盘,让你能够深入查看各个进程和服务的性能指标,例如吞吐量、延迟和资源使用情况。 ·AdminClient: 这是一个命令行工具,作为GGSCI的替代品,用于在无法使用Web界面时执行管理操作。它通过REST API与微服务组件交互。 在OGG 21.3微服务架构中,可以不显式配置经典的Pump进程,因为其功能已被Distribution Service替代:

1.4 经典架构和微服务架构的部署要求:

以OGG 11.2(经典架构)和OGG 21.3(微服务架构)为例:

  • OGG 11.2(经典架构):通常需要在源端和目标端都部署完整的OGG环境。
  • OGG 21.3(微服务架构):支持传统的两端部署,也引入了更灵活的中心枢纽(Hub)部署模式,可以将OGG部署在独立于源端和目标端的第三方服务器上。
对比维度 OGG 11.2 (经典架构) OGG 21.3 (微服务架构)
部署模式 两端部署 两端部署 + 中心枢纽(Hub)部署
组件安装 两端部署: 源端和目标端均需安装完整OGG 两端部署: 仍可以像11.2版本一样,在源端和目标端分别部署OGG微服务组件。 中心枢纽(Hub)部署模式: 这是一个重要的改进,可以将OGG微服务部署在独立于源端和目标端数据库的第三方服务器上。
进程运行位置 两端部署: Manager、Extract/Pump在源端 Manager、Replicat在目标端 两端部署: 同OGG 11.2 (经典架构) 中心枢纽(Hub)部署模式: 所有核心进程(如Extract、Replicat)都运行在这个独立于源端和目标端数据库的第三方服务器上。
数据库连接 两端部署: 通过本地数据库客户端 两端部署: 同OGG 11.2 (经典架构) 中心枢纽(Hub)部署模式: OGG 21.3集成了轻量级客户端工具Instant Client,支持远程捕获和投递数据,无需在与数据库同主机上部署。
网络要求 两端部署: 需开通OGG进程间通信端口 两端部署: 同OGG 11.2 (经典架构) 中心枢纽(Hub)部署模式: 通过配置数据库连接串(例如在tnsnames.ora文件中),OGG可以连接到源端和目标端数据库进行操作。

二、ogg微服务部署(采用中心枢纽(Hub)部署)

中心枢纽(Hub)部署模式: 这是一个重要的改进,可以将OGG微服务部署在独立于源端和目标端数据库的第三方服务器上。

2.1 下载OGG 21c for Oracle

进入到软件交付云(Go to the Software Delivery Cloud)

搜索需要下载Oracle GoldenGate 21.3.0.0.0

选择在linux上部署的微服务的软件包:Oracle GoldenGate 21.3.0.0.0 Microservices for Oracle on Linux x86-64

运行这个下载器,选择的软件包都会在这个下载器中下载

2,2 ogg组件安装

2.2.1 关闭防火墙(数据库都是在内网,如果开启防火墙每次连接都要判断):

sql 复制代码
systemctl stop firewalld.service 
systemctl disable firewalld.service 
systemctl status firewalld.service

2.2.2 添加组和用户:

  • dba: 数据库管理员(OSDBA)组 | 真实应用集群管理(OSRACDBA)组(rac组)
  • oper: 数据库操作系统(OSOPER)组(操作系统级别,也可以管理数据库)
sql 复制代码
groupadd -g 50001 oinstall
groupadd -g 50002 dba 
groupadd -g 50003 oper 
useradd -g oinstall -G dba,oper oracle 
id oracle

passwd oracle

2.2.3 准备ogg安装目录

sql 复制代码
mkdir -p /liu_data/ogg21c/ogg213_ma        ###ogg213_ma下安装微服务软件
mkdir -p /liu_data/ogg21c/ogg213_sm        ###ogg213_sm下存放服务管理器配置
mkdir -p /liu_data/ogg21c/ogg213_deploy    ###ogg213_deploy下为部署相关配置和数据目录
mkdir -p /liu_data/ogg21c/oraInventory     ###oraInventory路径

chown -R oracle:oinstall /liu_data/ogg21c

2.2.4 设置ogg_home变量

sql 复制代码
su - oracle

vi .bash_profile

export OGG_HOME=/liu_data/ogg21c/ogg213_ma     
export PATH=$OGG_HOME/bin:$PATH

source .bash_profile

2.2.5 图形化安装微服务软件(MA,Microservices Architecture)

sql 复制代码
unzip V1011471-01.zip
sql 复制代码
chown -R oracle:oinstall fbo_ggs_Linux_x64_Oracle_services_shiphome

su - oracle
cd fbo_ggs_Linux_x64_Oracle_services_shiphome/
ls -l Disk1/
sql 复制代码
cd Disk1/

使用sourceCRT远程操作linux并调出图形化界面,首先打开Xmanager-Passive

sql 复制代码
export DISPLAY=ip:0.0    设置display变量,设置的为安装Xmanager的客户端ip(希望在那台主机上显示图形化,然后授权显示图形化,环境变量DISPLAY用来设置将图形显示到何处)。例:[root@localhost ]# export DISPLAY=192.168.2.1:0.0
xhost  +                 授权显示图形化界面
sql 复制代码
./runInstaller 
  • ①指定软件安装目录
  • ②指定oraInventory路径
  • ③执行orainstRoot.sh脚本,完成安装


2.2.6 图形化安装服务管理器(SM,Service Manager)

sql 复制代码
oggca.sh
  • ①服务管理器选项
    1. 这里的服务管理器相当于经典架构中的mgr管理,mgr常用的端口为7809
    2. 指定服务管理器(Service Manager)的目录:/liu_data/ogg21c/ogg213_sm
    3. 选择"register servier manager as a system servier/daemon(将服务管理器注册为系统服务程序/守护进程)"
    4. 设置监听端口为7809
  • ②部署详情设置
    指定"deployment name(部署名称)":deploy_ogg21c
  • ③指定部署目录
    指定"deployment home(部署目录)":/liu_data/ogg21c/ogg213_deploy
  • ④指定环境变量
    TNS_ADMIN变量设置成了/liu_data/ogg21c/ogg213_ma/srvm/admin,正常应该设置成数据库软件的TNS_ADMIN,但上面没有部署数据库软件。所以就找了微服务软件下有admin这个目录的充当
  • ⑤设置OGG微服务架构的管理账号
    用户名:ogguser
    密码:自定义
  • ⑥指定安全选项
    无需设置SSL安全认证
  • ⑦指定微服务架构中其他组件的端口号
    Oracle Goldengate MA微服务架构的组成部分,有五个主要组成部分:
    1.服务管理器(Service Manager):7809
    2.管理服务器(Administration Service):8001
    3.分发服务器(Distribution Service):8002
    4.接收器服务器(Receiver Service):8003
    5.性能指标服务器(Performance Metrics Service):8004---8005
  • ⑧指定OGG复制设置
    Deafult schema指定为OGG微服务架构的管理账号:ogguser
  • ⑨执行registerServiceManager.sh脚本,完成安装

2.3 MA(Microservices Architecture)微服务使用和登录网页

服务启动项中注册了OracleGoldenGate.service服务进程,那么后续可以通过systemctl启动和管理微服务

sql 复制代码
[root@ogg21c ~]# systemctl status OracleGoldenGate.service

系统中查看相关进程

sql 复制代码
[root@ogg21c ~]# netstat -anlp |grep 7809
[root@ogg21c ~]# ps -ef|grep ServiceManager
[root@ogg21c ~]# ps -ef|grep ogg213

登录URL页面:<服务器IP地址>:7809

通过页面可以选择停止或启动管理服务(Administration Service,端口8001)、分发服务(Distribution Service,端口8002)、性能度量服务(Performance Metrics Service,端口8004---8005)和接收方服务(Receiver Service,端口8003)。还可以停止或重启部署服务,此处主要是deploy_ogg21c和ServiceManager(相当于经典架构中的mgr管理,mgr常用的端口为7809)



三、ogg21c微服务抽取和复制oracle 11g解决的OGG问题总汇:

问题一: ogg21c版本抽取和复制oracle11g需要打Patch 20448066补丁,不然报错"OGG-12064 | The authorization information for 'POST /services/v2/extracts/EXT1_LIU' is missing, invalid or not properly formed.",并且Patch 20448066补丁是有前置条件的,需要打上DB补丁才行,不一定是11.2.0.4.190115 (28729262)这个DB补丁,其他DB补丁也是可以的,参考mos账号的依赖关系。


问题二: ogg21c版本启动抽取进程报错"OGG-02912 Patch 17030189 is required on your Oracle mining database for trail format RELEASE 12.2 or later.",在 MOS 中,文档 Doc ID 2304095.1 对这个错误的描述,在 OGG 家目录下存在"prvtlmpg.plb"脚本,可以在源oracle11g库执行此脚本解决。版本 12.2 或更高版本的 Oracle 挖掘数据库需要补丁17030189。

不打相关补丁,执行prvtlmpg.plb脚本解决问题。

sql 复制代码
SQL> @prvtlmpg.plb      ###针对ogg用户执行扩展脚本

问题三: 抽取进程状态正常,并且源库也有数据变动,但抽取进程中的"统计信息"却一直为0。这个是因为源库和ogg微服务上的时间不一致导致的,因此都需要确保为北京时间。同理ogg库上的时间也需要确保为北京时间。


呼,已经接近2万字了,关于微服务架构详解与微服务部署,及同步问题的介绍就到这里,下篇开始使用数据泵对9TB的实例进行导入导出,并配置ogg一系列配置。

相关推荐
沉舟侧畔千帆过_2 小时前
一个DBA的真心话:搞定Oracle+PG双库,我就靠这招
数据库·oracle·dba
醉风塘2 小时前
【终极解决方案】Oracle ORA-01795错误:IN列表1000条限制的全面突破指南
数据库·oracle
信创天地2 小时前
从 Oracle 到国产数据库:迁移后成本直降 60%、性能反超 30% 的实战秘籍
数据库·oracle
沉舟侧畔千帆过_2 小时前
能源核心系统国产化攻坚:智能电网调度系统从 Oracle 到金仓 KES 迁移实录
数据库·oracle·能源·kingbase·金仓数据库
chengrise2 小时前
Oracle EBS 成本异常排查全指南:差异分摊、成本回滚场景与解决方案
运维·数据库·oracle·erp·ebs
wxc0902 小时前
Oracle 性能分析系列:tkprof 工具详解 —— 解码 10046 Trace 的利器
数据库·oracle
Hernon2 小时前
微服务架构设计 - 架构取舍决策CAP
微服务·云原生·架构
洁辉2 小时前
Oracle 数据库中将某个字段的值根据逗号(,)分隔符拆分成多行显示
数据库·oracle
LINgZone22 小时前
领域驱动设计(DDD)在架构中的应用
架构