注册
drs搭建oracle rac同步到dm8
专栏/Database Thinking/ 文章详情 /

drs搭建oracle rac同步到dm8

胡li 2026/09/17 210 0 0
摘要 -

目录


1 前言

1.1 概述

本手册主要介绍源数据库为 Oracle RAC,目的端为DM V8实时主备集群,基于 DFM 图形化界面搭建 DMDRS 服务。实现 Oracle RAC 到达梦的实时数据同步,和达梦到 Oracle 数据回流。

1.2 DMDRS 介绍

达梦数据复制软件(简称 DMDRS)是一种用于同构数据库、异构数据库以及各种数据管理系统之间的数据复制软件。DMDRS 采用模块化的设计,通过灵活配置不同的功能模块,实现多功能的数据复制服务,以满足多种场景下的数据复制业务需求。

DMDRS 是支持异构环境的高性能、高可靠和高可扩展的数据库实时同步系统。通过秒级数据实时同步有效避免传统备份系统导致的无法完全满足企业对于信息系统不中断服务的问题;通过实时的数据同步,构建"双活"的主备系统,解决传统基于数据库自身的主备系统中备机只读而无法对外提供写服务的问题。该产品可广泛应用于应急系统、容灾备份、负载均衡、数据移植、联机维护、订阅分发和多业务中心等业务领域。

📌 DMDRS 的基础实现原理图

image.png

1.2.1 典型场景

  1. 主要场景 — 停机窗口较短的业务系统,使用增量同步数据的方式缩短停机窗口,适用于平滑迁移或升级。
  2. 全量+增量同步 — 支持数据全量和增量实时同步,非介入式捕获增量对源端数据库几乎无影响。
  3. 数据级灾备 — 可实现数据级灾备、业务分流,支持远距离异地容灾。
  4. 低网络要求 — 对网络要求低。
  5. 额外服务器 — 需要额外提供服务器安装部署。

1.3 DMDFM 介绍

为了方便用户更直观地搭建各种复杂数据同步链路,DMDFM 以数据源为中心,采用拖拽式的可视化数据链路设计器,只需配置简单的基本参数即可快速搭建数据同步链路。DMDFM 以工程为单位进行多个同步链路的集中管理、监控和运维,方便用户根据业务情况对同步链路进行分组管理。

1.4 引用文档

序号 文档名称 说明
1 达梦数据实时同步管理员手册 产品手册
2 达梦数据实时同步参考手册 产品手册
3 达梦数据库管理员手册 数据库手册

1.5 示例环境

本文档中的部署示例环境如下,其他环境可类似参考:

源端 — Oracle

项目 信息
数据库 Oracle 11.2.0.4 RAC
操作系统 Kylin Linux Advanced Server release V10 (SP1) /(Tercel)-aarch64-Build20/20210518
DMDRS V4.3.20-Build(2023.09.26-141041trunc)_64_2309_sp2
服务器 IP 1xx.xx.xx.xx
DMDRS 软件目录 /data/dmdrs/bin

目标端 — DM8

项目 信息
数据库 DM8
操作系统 Kylin Linux Advanced Server release V10 (SP1)
DMDRS V4.3.20-Build(2023.09.26-141041trunc)_64_2309_sp2
服务器 IP xxx.xx.xx.53
DMDRS 软件目录 /data/dmdrs/bin

DFM 管理平台

项目 信息
操作系统 Kylin Linux Advanced Server release V10 (SP1)
DFM 软件目录 /data/dmdfm5
版本 dmdfm_rev182024_FTarm_kylin4_64_20250220
服务器 IP xx.xx.xx.54

2 Oracle RAC 源端准备工作

准备 Oracle 客户端依赖包(详见原文档截图)。
image.png

arm 环境可下载以下 Oracle 依赖包:
https://download.dameng.com/eco/adapter/SH/community/instantclient-basic-linux.arm64-19.28.0.0.0dbru.zip

X86 环境可下载以下 Oracle 依赖包:
https://download.dameng.com/eco/adapter/SH/community/instantclient-basic-linux.x64-19.31.0.0.0dbru.zip

📌 Oracle 依赖包列表见原文档截图。

将以上依赖组件拷贝到 drs/bin 目录,或者配置环境变量:

export ORACLE_HOME=/path/to/oracle/client # 填写x86客户端依赖包解压后的目录

使用 SQLPlus 登录到源数据库:

$ sqlplus / as sysdba

查看数据库归档模式是否开启:

SQL> archive log list

若数据库已经开启归档模式,则跳过以下步骤。

-- 暂停数据库服务 SQL> shutdown immediate -- 以 mount 方式启动 Oracle 数据库服务 SQL> startup mount -- 开启数据库归档,并设置归档文件路径 SQL> alter database archivelog; SQL> alter system set db_recovery_file_dest=''; SQL> alter system set log_archive_dest='/oradata/arch'; -- 重启数据库,使归档路径生效 SQL> shutdown immediate; SQL> startup mount; -- 将数据库切换到正常的工作状态 SQL> alter database open;

查看数据库最小附加日志及全列日志是否开启:

SQL> select supplemental_log_data_min from v$database; SQL> select supplemental_log_data_all from v$database;

若数据库已经开启最小附加日志及全列日志,则跳过以下步骤。

-- 开启数据库最小附加日志及全列日志 SQL> alter database add supplemental log data; SQL> alter database add supplemental log data (ALL) columns;

为了保证源 DMDRS 能正常解析 DDL 日志操作,需关闭源数据库回收站功能,重启数据库生效(非必须):

SQL> alter system set recyclebin=off deferred;

3 DM8 准备工作

在进行数据同步之前,需要对目的端 DM8 数据库进行相应设置以支持数据实时同步,如开启归档、启用附加日志等。

3.1 创建目的端业务用户和表空间

-- 创建业务表空间 USER_DATA create tablespace USER_DATA datafile 'USER_DATA01.dbf' size 500 autoextend on next 256 maxsize 100000; alter tablespace USER_DATA add datafile 'USER_DATA02.dbf' size 500 autoextend on next 256 maxsize 100000; -- 创建业务用户 USER01 create user USER01 identified by "密码" default tablespace USER_DATA default index tablespace USER_DATA; -- 授权 grant RESOURCE, PUBLIC, VTI, SOI to USER01;

3.2 创建同步用户

create user "DMDRS" identified by XXXX; grant dba, "RESOURCE", "PUBLIC", "VTI", "SOI", "SVI" to "DMDRS"; grant CREATE SESSION to "DMDRS";

4 DFM 配置同步链路

4.1 安装 DFM

[dmdba@localhost ~]$ ./dmdfm_rev182024_FTarm_kylin4_64_20250220.bin -i Extract install files......... Please select the installer's language (E/e:English C/c:Chinese)[E/e]:c -----------欢迎使用达梦数据融合管理平台安装工具----------- 输入[exit]可退出安装。 -----------安装目录----------- 指定安装目录[/home/dmdba/dmdfm5]:/data/dmdfm5 -----------许可证文件----------- 1.免费试用达梦数据融合管理平台(必须在试用期范围内使用,反复安装无效,使用时间为3个月) 2.使用许可证文件 指定许可证文件(1,2)[1]: 免费试用许可证文件限制信息如下: 有效日期:2025-05-20 授权顾客名称:DEVELOP USER 项目名称: 许可证编号:dm66n367 版本类型:试用版 代理数:5 -----------配置----------- 达梦数据融合管理平台配置-管理平台端口[8080]: 注意:密码必须至少8个字符,并且满足以下条件中的任意两项:数字、大写字母、小写字母、特殊字符(如!@#$%^&*等)。 达梦数据融合管理平台配置-管理平台密码:(输入网页版登录的密码,admin的密码) 达梦数据融合管理平台配置-管理平台确认密码: 是否使用外置库(0:不使用 1:使用 )[0]: -----------安装小结----------- 安装目录:[/data/dmdfm5] 达梦数据融合管理平台IP:[127.0.0.1] 达梦数据融合管理平台端口:[8080] 内置库信息: 数据库IP:[127.0.0.1] 数据库端口:[15236] 用户名:[SYSDBA] 密码:[******] 所需磁盘空间/可用磁盘空间:[1,316 MB/221,188 MB] 确认安装?[Y/y or N/n]: 输入错误,请重新输入! 确认安装?[Y/y or N/n]:y -----------安装中----------- default start ... default finished. web start ... web finished. doc start ... doc finished. db start ... db finished. 安装成功 ------------解压完成---------- -----------系统服务----------- 内置数据库服务设置 1.注册系统服务 2.不注册系统服务 启动方式(1,2)[2]:1 正在创建内置数据库服务.... 达梦数据融合管理平台服务设置 1.注册系统服务 2.不注册系统服务 启动方式(1,2)[2]:1 正在创建达梦数据融合管理平台服务.... 以下配置脚本需要以"root"用户的身份运行. /data/dmdfm5/scripts/root/root_installer.sh 是否已执行shell脚本?(Y/y or N/n)[Y/y]:y -----------安装总结----------- 达梦数据融合管理平台V5安装完成 地址:http://127.0.0.1:8080 用户名/密码:admin/****** 更多安装信息,请查看安装日志文件:/data/dmdfm5/log/install.log

4.2 配置数据源

数据源是数据库在 DMDFM 平台中的抽象表示。数据同步需要读取源端主机数据库中的数据,并将其写入到目标端备机数据库中。所以需要将数据库的访问地址、访问用户等配置添加到 DMDFM 平台中。

  1. 访问 http://xxx.xx.xx.54:8080,输入用户名 admin,密码 XXXX。

image.png

  1. 在 【首页】 左侧的导航栏中选择 【数据源】 → 【数据源管理】,打开 【数据源管理】 标签。
  2. 单击 【关系数据库】 右侧的图标,点击 【新增数据源】,弹出数据源配置窗口。

image.png

4.2.1 Oracle RAC 源端配置

📌填写好相关信息后,可点击 【识别节点】 获取 RAC 集群所有节点信息。

image.png

image.png

4.2.2 DM8 目的端配置

image.png

4.3 安装 AGENT 代理

AGENT 的启动需要 JDK 1.8。代理服务日志文件位于代理安装目录 agent/log/agent.log,需关注以下检查点:

  • 是否存在连接 Web 服务失败问题 — 如存在需检查代理与 Web 服务之间的网络问题。
  • 检查 DMDFM 平台中管理的代理数是否达到上限,导致新的代理无法注册到 Web 服务(试用 key 代理上限默认 5 个,可以在首页左上角图标查看 DMDFM 平台 key 信息中支持的代理节点数)。

image.png

image.png

image.png

agent3.png

启动代理服务:

在代理服务的部署目录下使用代理服务脚本可以获取代理服务的运行状态以及启动、停止代理服务。代理服务脚本的名称是 DfmAgentService 加上代理的名称。以默认的代理服务脚本名称 DfmAgentService 举例:

# 获取代理的运行状态 ./DfmAgentService status # 若服务未运行可使用如下命令启动服务 ./DfmAgentService start

4.4 安装 DMDRS

环境变量配置:

export LD_LIBRARY_PATH=/home/dmdba/dmdbms/bin

安装 DMDRS 时,填写如下环境变量:

/home/dmdba/dmhs_test/bin:/usr/local/lib:$DM_HOME/lib:$LD_LIBRARY_PATH

📌 DMDRS 安装界面见原文档截图。

4.5 配置同步链路

4.5.1 Oracle → DM

📌 链路配置界面见原文档截图。

源端(Oracle RAC)— 捕获模块(CPT)配置:

<?xml version="1.0" encoding="GB2312" standalone="no"?> <drs> <base> <name>instance3</name> <lang>ch</lang> <mgr_port>5347</mgr_port> <siteid>6</siteid> </base> <cpt> <name>O_T_DM</name> <ddl_mask/> <login> <dbtype>oracle</dbtype> <server>1xx.xx.xx.x6:1521/xxxdb</server> <user>xxxx</user> <pwd>xxxx</pwd> </login> <ddl_mask>TABLE:CREATE:DROP:TRUNCATE:ALTER:INDEX:CHECK</ddl_mask> <io_threads>4</io_threads> <parse_thr>4</parse_thr> <send> <ip>1xx.xx.xx.53</ip> <port>5347</port> <target_name>instance4</target_name> <map> <item type="view">DxxK.*==DxxK.*</item> <item type="procedure">DxxK.*==DxxK.*</item> <item type="function">DxxK.*==DxxK.*</item> <item type="trigger">DxxK.*==DxxK.*</item> <item type="package">DxxK.*==DxxK.*</item> <item type="synonym">DBANK.*==DxxK.*</item> <item type="sequence">DBANK.*==DxxK.*</item> <item type="">DxxK.*==DxK.*</item> <item type="table">DBANK.*==DBANK.*</item> </map> </send> <rac> <rac_type>ASM</rac_type> <nodes>2</nodes> <login> <server>1xx.xx.xx.x6:1xx1/+ASM</server> <user>rdxxm</user> <pwd>XXXXX</pwd> </login> </rac> </cpt> </drs>

目的端(DM8)— 执行模块(EXEC)配置:

<?xml version="1.0" encoding="GB2312" standalone="no"?> <drs> <base> <name>instance4</name> <lang>ch</lang> <mgr_port>5347</mgr_port> <siteid>7</siteid> </base> <exec> <name>instance4</name> <login> <dbtype>dm8</dbtype> <server>1xx.xx.xx.72</server> <user>SYSDBA</user> <pwd>XXXX</pwd> <port>5236</port> </login> <group> <item> <id>0</id> <exec_policy>1</exec_policy> <merge_policy>2</merge_policy> <level>1</level> <max_thrs>4</max_thrs> <desc/> </item> </group> </exec> </drs>

4.5.2 DM → Oracle

📌 回流链路配置界面见原文档截图。

目的端(Oracle)— 执行模块(EXEC)配置:

<?xml version="1.0" encoding="GB2312" standalone="no"?> <drs> <base> <name>oracle</name> <lang>ch</lang> <mgr_port>5345</mgr_port> <siteid>2</siteid> </base> <exec> <name>oracle</name> <login> <dbtype>oracle</dbtype> <server>1xx.x2.xx.xx:1521/dxxadg</server> <user>SYSTEM</user> <pwd>xxxxx</pwd> </login> <group> <item> <id>0</id> <exec_policy>1</exec_policy> <merge_policy>2</merge_policy> <error_policy>1</error_policy> <level>0</level> <max_thrs>4</max_thrs> <seq_sync_mode>1</seq_sync_mode> <desc/> </item> </group> </exec> </drs>

源端(DM8)— 捕获模块(CPT)配置:

<?xml version="1.0" encoding="GB2312" standalone="no"?> <drs> <base> <name>dm</<lang>ch</lang> <mgr_port>5345</mgr_port> <siteid>1</siteid> </base> <cpt> <name>hl_eqz</name> <ddl_mask/> <login> <dbtype>dm8</dbtype> <server>1xx.xx.x.xx</server> <user>SYSDBA</user> <pwd>XXXXXX</pwd> <port>5236</port> </login> <send> <ip>100.xx.xx.xx</ip> <port>5345</port> <target_name>oracle</target_name> <map> <item type="view">DxxK.*==DxxK.*</item> <item type="procedure">DxxK.*==DxxK.*</item> <item type="function">DxxK.*==DxxK.*</item> <item type="trigger">DxxK.*==DxxK.*</item> <item type="package">DxxK.*==DxxK.*</item> <item type="synonym">DxxK.*==DxxK.*</item> <item type="sequence">DxxK.*==DxxK.*</item> <item type="">DxxK.*==DxxK.*</item> <item type="table">DxxK.*==DxxK.*</item> </map> </send> </cpt> </drs>

4.6 配置 DVS 对比

环境变量需要配置源端和目的端的。

📌 DVS 对比配置界面见原文档截图。

4.7 DFM 启动/关闭服务

4.7.1 启动 DFM

在 DMDFM 安装目录 /data/dmdfm5/web 下使用如下命令查看 DMDFM 服务的运行状态:

su - dmdba cd /data/dmdfm5/web ./DfmWebService status

若服务未运行可使用如下命令启动服务:

./DfmWebService start

使用浏览器访问指定主机和端口验证服务是否启动成功。

⚠️ 如果 Web 服务启动失败,需分析 Web 服务的日志,在 DMDFM 安装目录 web/log 目录下查看 dmdfm.log 日志,看是否存在报错日志,然后根据报错日志进一步分析。

4.7.2 关闭 DFM

su - dmdba cd /data/dmdfm5/web ./DfmWebService stop

4.8 启动/关闭内置库

内置库服务,默认数据库服务脚本在 DMDFM 安装目录 db/bin 下。

4.8.1 启动内置库

su - dmdba cd /data/dmdfm5/db/bin ./DmServiceDFDB status # 若服务未运行可使用如下命令启动服务 ./DmServiceDFDB start

4.8.2 关闭内置库

su - dmdba cd /data/dmdfm5/db/bin ./DmServiceDFDB stop

说明: 本 Markdown 文档由原 .doc 文件提取整理而成。原文档中包含大量操作截图与配置界面图,因文本提取限制无法在本文档中展示,相关位置已用 📌 标记。如需查看完整图文内容,请参阅原始 Word 文档。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服