达梦数据库异构逻辑实时复制软件 DMHS DM8到DM8测试
一,概述
达梦数据实时同步软件 (DMHS) 是达梦公司自主研发的并推出的新一代支持异构环境的高性能、高可 靠和高可扩展的数据库实时同步系统。DMHS是基于数据库逻辑层面的数据实时复制软件,所有源端,目标端操作系统平台,数据库都支持交叉异构如下表格:
源端
|
目标端
|
dm 各个版本(dm6,dm7,dm8)
|
dm 各个版本(dm6,dm7,dm8) |
dm数据库(dm6,dm7,dm8)
|
oracle 数据库(10g ~ 19c)
|
oracle 数据库 (10g ~ 19c)
|
dm数据库 (dm6,dm7,dm8)
|
mysql数据库(5.7~8.0)
|
dm数据库(dm6,dm7,dm8)
|
sqserver 数据库 (各个版本)
|
dm数据库(dm6,dm7,dm8)
|
详细平台,数据库支持列表见《DMHS参考手册》
达梦数据实时同步软件 DMHS,可以理解为目前众多 数据库逻辑复制软件 如 oracle ogg, shareplex ,dsg realsync复制软件 等 逻辑数据实时复制软件的一种,该产品可广泛应用于应急系统、容灾备份、负载均衡、 数据移植、联机维护、订阅分发和多业务中心等业务领域,虽然本文以 dm8版本数据库 复制到 dm8版本数据为例,但是dmhs软件完全支持 dm6 到 dm8 类似的跨版本复制,并且软件实施部署 方式与本文差别不大。
二,DMHS软件实现原理
DMHS的实时数据同步复制采用并行处理体系,能够实时读取主机源数据库日志,以较低的资源占用实现大批量的数据实时复制。 传输过程中, DMHS直接通过 TCP/IP进行网络传输,无需依赖于数据库自身的传递方式,通过对传输对数据进行筛选和压缩,还可以进一步降低带宽需求。
三, 实验目标:
完成DMHS部署, 搭建一套DM8至DM8的数据同步链路,验证数据同步,DDL同步效果。通过实验熟悉DMHS产品特性。
环境规划:
序号 | 源端环境 | 目标端环境 | 说明 |
1 | linux 7.6 x86 64 | linux 7.6 x86 64 | 操作系统版本 |
2 | 192.168.252.128 | 192.168.252.129 | 主机ip地址 |
3 | dm8 | dm8 | 数据库版本 |
4 | /dm/dmdbms | /dm/dmdbms | 数据库安装路径 |
5 | /dm/dmhs | /dm/dmhs | DMHS安装路径 |
6 | 必须开启 | 可选 | 数据库归档模式 |
四, 实验操作步骤:
1) 安装dm8数据库软件:(主库,备库都做)(命令输出信息略)
[dmdba@dmhs01 software]$ ./DMInstall.bin -i
请选择安装语言(C/c:中文 E/e:英文) [C/c]:C
.........................................
[INFO] 安装达梦数据库完成。
请以root系统用户执行命令:
/dm/dmdbms/script/root/root_installer.sh
安装结束
2) 初始化数据库:(主库,备库都做)(命令输出信息略)
--初始化实例 主节点 db_name=dmhsdb1 ./dminit path=/dmdata db_name=dmhsdb1 instance_name=dmhsdb1 port_num=5236 --初始化实例 备节点 db_name=dmhsdb2 ./dminit path=/dmdata db_name=dmhsdb2 instance_name=dmhsdb1 port_num=5236
3) 修改数据库相关参数
说明:开启数据库归档模式 (主库做,备库可选)
SQL> ALTER DATABASE MOUNT; SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST = /dmdata/archivelog , TYPE = local,FILE_SIZE = 1024'; SQL> ALTER DATABASE ARCHIVELOG; SQL> alter system set 'ARCH_INI'=1 both; SQL> select arch_mode from v$database; SQL> ALTER DATABASE OPEN;
4)主库 修改 参数 开启附加日志 (主库做,备库不做)
PARA_VALUE结果大于0,则说明该功能已开启。如果取值为0,需要启用该参数功能。
调用系统过程开启该参数或者手动更改dm.ini配置文件中的‘RLOG_APPEND_LOGIC’参数值。目前该参数支持动态修改,具体可参考管理员手册说明。 (1) 该参数取值说明如下: 取值为1:如果有主键列,记录UPDATE和DELETE操作时只包含主键列信息;若没有主键列则包含所有列信息; 取值为2:不论是否有主键列,记录UPDATE和DELETE操作时都包含所有列的信息; 取值为3::记录UPDATE时包含更新列的信息以及ROWID,记录DELETE时只有ROWID。 在Kafka执行端,对于主键表,如果在更新和删除时需要显示全列信息,则需要设置该值为2,保证源端日志中记录有全列信息,否则无法显示全列。 (2)启用该参数后,源端DM8的归档日志量比不启用该参数会有所增加,需要知悉。 SQL> SELECT PARA_VALUE FROM V$DM_INI WHERE PARA_NAME='RLOG_APPEND_LOGIC'; 行号 PARA_VALUE ---------- ---------- 1 0 已用时间: 79.114(毫秒). 执行号:900. SQL> call sp_set_para_value(1, 'RLOG_APPEND_LOGIC', 2); DMSQL 过程已成功完成 已用时间: 5.198(毫秒). 执行号:901. SQL> SELECT PARA_VALUE FROM V$DM_INI WHERE PARA_NAME='RLOG_APPEND_LOGIC'; 行号 PARA_VALUE ---------- ---------- 1 2 已用时间: 4.646(毫秒). 执行号:902.
5)创建DMHS数据库用户 (主库,备库都要做)
create user DMHS identified by DMHS_1234; grant PUBLIC to dmhs; grant select on SYS.V$rlog to dmhs; grant select on SYS.V$DM_INI to dmhs; grant select on SYS.V$RLOGFILE to dmhs; grant select on SYS.V$DM_ARCH_INI to dmhs; grant select on SYS.V$VERSION to dmhs; grant select on SYS.V$ARCH_FILE to dmhs; grant select any table to dmhs; grant select any dictionary to dmhs; grant create table to dmhs; grant create session to dmhs; grant create trigger to dmhs;
6) 安装DMHS 同步软件 (主库,备库都要做)
图形安装截图如下
7) 配置DMHS软件 (主库操作步骤)
说明:开启DDL 需要执行相关脚本(主库做)
同步脚本位于DMHS安装目录的scripts子目录下,命名为:ddl_sql_dm8.sql 脚本执行命令: cd /dm/dmdbms/bin ./disql SYSDBA/SYSDBA start /dm/dmhs/scripts/ddl_sql_dm8.sql
说明:在/dm/dmhs/scripts/ 目录下 存在很多脚本 不通版本 或者 异构数据库需要执行不通的脚本
如 dm8版本 需要执行 ddl_sql_dm8.sql脚本, dm7执行 ddl_sql_dm7.sql 脚本 ,oracle需要执行 ddl_sql_ora.sql,pg数据库需要执行 ddl_sql_pg.sql等 。
-rwxr-xr-x. 1 dmdba dinstall 4109 Oct 11 19:17 ddl_sql_ora.sql -rwxr-xr-x. 1 dmdba dinstall 33113 Oct 11 19:17 ddl_sql_dm8.sql -rwxr-xr-x. 1 dmdba dinstall 2184 Oct 11 19:17 readme.txt -rwxr-xr-x. 1 dmdba dinstall 965 Oct 11 19:17 dmhs_grant.sql -rwxr-xr-x. 1 dmdba dinstall 11551 Oct 11 19:17 ddl_sql_pg.sql -rwxr-xr-x. 1 dmdba dinstall 30747 Oct 11 19:17 ddl_sql_dm7.sql -rwxr-xr-x. 1 dmdba dinstall 19456 Oct 11 19:17 ddl_sql_dm6_v3.sql -rwxr-xr-x. 1 dmdba dinstall 16510 Oct 11 19:17 ddl_sql_dm6_v2.sql -rwxr-xr-x. 1 dmdba dinstall 1688 Oct 11 19:17 ddl_sql_db2.sql
创建需要测试的 用户,赋予权限
create user DMHSTEST identified by DMHSTEST123456 ; grant resource,public to DMHSTEST; conn DMHSTEST/DMHSTEST123456 create table test01 as select * from sysobjects; create table test02 as select * from sysobjects;
配置 dmhs.hs参数文件 此参数文件要放在 /dm/dmhs/bin下 (主库参数文件内容)
[dmdba@dmhs01 bin]$ cat dmhs.hs <?xml version="1.0" encoding="utf-8"?> <dmhs> <base> <lang>ch</lang> <mgr_port>5345</mgr_port> <chk_interval>2</chk_interval> <ckpt_interval>60</ckpt_interval> <siteid>1</siteid> <version>2.0</version> </base> <cpt> <db_type>DM8</db_type> ######需要改的 地方 数据库版本 <db_server>127.0.0.1</db_server> ######需要改的 地方 源端Ip 127.0.1.1 即可 <db_user>SYSDBA</db_user> ######需要改的 地方 源端 数据库用户名 <db_pwd>SYSDBA</db_pwd> ######需要改的 地方 源端 数据库密码 <db_port>5236</db_port> ######需要改的 地方 源端 服务端口 <parse_thr>1</parse_thr> <idle_time>3000</idle_time> <ddl_mask>OBJ:OP</ddl_mask> <dict_dir>/dm/dmhs/dmhs_dict</dict_dir> ###### 复制数据表的 数据字典所谓在位置 一定要存在的目录 <arch> <clear_interval>43200</clear_interval> <clear_flag>0</clear_flag> </arch> <send> <ip>192.168.115.133</ip> ######需要改的 地方 目标端 IP <mgr_port>5345</mgr_port> <data_port>5346</data_port> <level>0</level> <trigger>1</trigger> <constraint>1</constraint> <identity>1</identity> <net_turns>1</net_turns> <timeout>60</timeout> <parse_policy>8</parse_policy> <filter> <enable> <item>DMHSTEST.*</item> ######复制的 可以按照模式 如果 一个模式下所有内容就为 * 我这里测试的模式 是 DMHSTEST 所以 就是 DMHSTEST.* </enable> <disable> </disable> </filter> <map> </map> </send> </cpt> </dmhs>
把DMHS软件注册为系统服务,使用服务脚本直接注册服务(主库操作):
cd /dm/dmhs/scripts/root ./dmhs_service_installer.sh -t dmhs_server -p DMHS_DM -x /dm/dmhs/bin/dmhs.hs -d /dm/dmhs/bin systemctl start DmhsServiceDMHS_DM systemctl status DmhsServiceDMHS_DM
8) 配置DMHS软件 (备库步骤)
配置 dmhs.hs参数文件 此参数文件要放在 /dm/dmhs/bin下 (备库参数文件内容)
[dmdba@dmhs02 bin]$ cat dmhs.hs <?xml version="1.0" encoding="utf-8"?> <dmhs> <base> <lang>ch</lang> <mgr_port>5345</mgr_port> <chk_interval>2</chk_interval> <ckpt_interval>60</ckpt_interval> <siteid>11</siteid> <version>2.0</version> </base> <exec> <recv> <data_port>5346</data_port> </recv> <db_type>DM8</db_type> <db_server>127.0.0.1</db_server> <db_user>SYSDBA</db_user> <db_pwd>SYSDBA</db_pwd> <db_port>5236</db_port> <level>0</level> <exec_mode>1</exec_mode> <exec_thr>32</exec_thr> <exec_sql>1024</exec_sql> <exec_trx>5000</exec_trx> <exec_rows>1000</exec_rows> <case_sensitive>1</case_sensitive> <exec_policy>0</exec_policy> <toggle_case>0</toggle_case> <commit_policy>1</commit_policy> <enable_merge>1</enable_merge> <check_key>1</check_key> <check_index>0</check_index> </exec> </dmhs>
把DMHS软件注册为系统服务,使用服务脚本直接注册服务(备库操作):
cd /dm/dmhs/scripts/root ./dmhs_service_installer.sh -t dmhs_server -p DMHS_DM -x /dm/dmhs/bin/dmhs.hs -d /dm/dmhs/bin systemctl start DmhsServiceDMHS_DM systemctl status DmhsServiceDMHS_DM
五, 测试与验证:
1) 启动exec 模块 (数据加载模块)(备库操作步骤)
[dmdba@dbserver bin]$ ./dmhs_console DMHS console tool: V4.2.90-Build(2022.06.28-110804trunc)_sp3_64_2206 Copyright (c) 2020, DMHS. All rights reserved. Type ? or "help" for help, type "quit" to quit console. 连接到DMHS:127.0.0.1:5345 执行成功 Dameng HS Server V4.2.90-Build(2022.06.28-110804trunc)_sp3_64_2206 DMHS> start 执行成功
查看源端表中的数据和DMTEST用户下表的数量(源端库查询)
[dmdba@dbserver bin]$ disql DMHSTEST/DMHSTEST123456 Server[LOCALHOST:5236]:mode is normal, state is open login used time : 3.193(ms) disql V8 SQL> SQL> SQL> select count(*) from test01; LINEID COUNT(*) ---------- -------------------- 1 889 used time: 2.341(ms). Execute id is 2400. SQL> select count(*) from test02; LINEID COUNT(*) ---------- -------------------- 1 891 used time: 0.768(ms). Execute id is 2401. SQL> SQL> SQL> select table_name from user_tables; LINEID TABLE_NAME ---------- ---------- 1 TEST01 2 TEST02 used time: 246.552(ms). Execute id is 2402.
查看目标 数据库中的表结构和数据(目标库查询)
[dmdba@dbserver bin]$ disql DMHSTEST/DMHSTEST123456 Server[LOCALHOST:5236]:mode is normal, state is open login used time : 3.566(ms) disql V8 SQL> SQL> select table_name from user_tables; no rows used time: 122.418(ms). Execute id is 1200. SQL>
2) 启动首次初始化数据和装载数据字典(主库操作步骤)
命令解释说明如下:
1,./dmhs_console ##登录控制台 2, CLEAR EXEC LSN ###重置DMHS的 分析起始点的LSN 3, COPY 0 "SCH.NAME='DMHSTEST'" DICT|CREATE|INSERT #### 首次初始化DMHSTEST用户下所有表的数据和装载数据字典
执行命令如下:(源端库执行)
[dmdba@dbserver bin]$ ./dmhs_console DMHS console tool: V4.2.90-Build(2022.06.28-110804trunc)_sp3_64_2206 Copyright (c) 2020, DMHS. All rights reserved. Type ? or "help" for help, type "quit" to quit console. 连接到DMHS:127.0.0.1:5345 执行成功 Dameng HS Server V4.2.90-Build(2022.06.28-110804trunc)_sp3_64_2206 DMHS> connect 执行成功 DMHS> CLEAR EXEC LSN 执行成功 DMHS> COPY 0 "SCH.NAME='DMHSTEST'" DICT|CREATE|INSERT copy mask is : |CREATE|INSERT|TABLE|DICT|PARTITION|OBJID|REP 执行完成,请查看执行模块日志,检查数据装载是否成功 DMHS>
查询目标端数据库 验证数据是否过来,经过验证 数据已经初始化过来了(目标库执行)
SQL> select count(*) from TEST01; LINEID COUNT(*) ---------- -------------------- 1 889 used time: 1.362(ms). Execute id is 1202. SQL> select count(*) from TEST02; LINEID COUNT(*) ---------- -------------------- 1 891 used time: 0.802(ms). Execute id is 1203.
3) 登录源端 dmhs控制台,启动分析模块 cpt ,测试 DDL (CREATE TABLE AS )(源端操作)
说明:启动cpt模块后,dmhs软件就开始进行在线日志分析。
[dmdba@dbserver bin]$ ./dmhs_console DMHS console tool: V4.2.90-Build(2022.06.28-110804trunc)_sp3_64_2206 Copyright (c) 2020, DMHS. All rights reserved. Type ? or "help" for help, type "quit" to quit console. 连接到DMHS:127.0.0.1:5345 执行成功 Dameng HS Server V4.2.90-Build(2022.06.28-110804trunc)_sp3_64_2206 DMHS> connect 执行成功 DMHS> start 执行成功 DMHS> state MGR: Capture TYPE VID SITEID EXEC/CPT IP PORT DBNAME ------- --- ------ --------------- ---- ------ Capture 0 1 192.168.252.129 5345 执行成功
cpt模块开启之后, dmhs软件开始捕获源端数据库日志的实时变化量,所有DMHSTEST用户下的 数据变化都被捕获并传输到目标端数据库加载。
下面我们开始测试:源端dmhstest 用户新建表 test03 测试 DDL语句 (源端库执行)
[dmdba@dbserver bin]$ disql DMHSTEST/DMHSTEST123456 Server[LOCALHOST:5236]:mode is normal, state is open login used time : 3.174(ms) disql V8 SQL> create table test03 as select * from test01; executed successfully used time: 19.230(ms). Execute id is 3700. SQL>
在目标端验证 新建的TEST03表 是否已经同步过来,经过验证TEST03表结构和数据都已经同步过来。(目标库执行)
SQL> select table_name from user_tables; LINEID TABLE_NAME ---------- ---------- 1 TEST01 2 TEST02 3 TEST03 used time: 72.365(ms). Execute id is 1204. SQL> select count(*) from TEST03; LINEID COUNT(*) ---------- -------------------- 1 889 used time: 0.964(ms). Execute id is 1205.
4) 测试 DML (INSERT)(源端执行)
SQL> insert into test03 select * from test03; affect rows 889 used time: 4.104(ms). Execute id is 3701. SQL> / affect rows 1778 used time: 5.361(ms). Execute id is 3702. SQL> / affect rows 3556 used time: 9.849(ms). Execute id is 3703. SQL> / affect rows 7112 used time: 36.609(ms). Execute id is 3704. SQL> / affect rows 14224 used time: 39.621(ms). Execute id is 3705. SQL> / affect rows 28448 used time: 126.093(ms). Execute id is 3706. SQL> / affect rows 56896 used time: 335.388(ms). Execute id is 3707. SQL> / affect rows 113792 used time: 735.542(ms). Execute id is 3708. SQL> commit; executed successfully used time: 1.000(ms). Execute id is 3709. SQL> SQL> select count(*) from test03; LINEID COUNT(*) ---------- -------------------- 1 227584 used time: 4.404(ms). Execute id is 3710.
在目标端验证 新建的TEST03表 数据是否同步过来,经过验证 TEST03数据已经同步过来 (目标库执行)
SQL> select count(*) from test03; LINEID COUNT(*) ---------- -------------------- 1 227584 used time: 0.890(ms). Execute id is 1206.
五, DMHS软件的监控:
1)源端监控 cpt 数据捕获(分析)模块 (源端执行)
说明: state命令输出下的 VID编号就是cpt模块的编号,源端可以存在多个VID编号 N ,可以使用 cpt N 查看 不同cpt模块状态,状态 :diel 说明 cpt模块状态是空闲状态 没有分析任务这种状态属于正常,如果状态持续显示:定位LSN 等 异常状态,需要进一步查看日志,另外需要特别关注 日志捕获模块的 日志时间 和 日志发送模块的 日志时间 是否是当前的时间,如果和当前时间差距很大需要特别注意 DMHS运行状态是否有异常($DMHS_HOME/bin/log/dmhs_YYYYMM.log)。。
[dmdba@dbserver bin]$ ./dmhs_console DMHS console tool: V4.2.90-Build(2022.06.28-110804trunc)_sp3_64_2206 Copyright (c) 2020, DMHS. All rights reserved. Type ? or "help" for help, type "quit" to quit console. 连接到DMHS:127.0.0.1:5345 执行成功 Dameng HS Server V4.2.90-Build(2022.06.28-110804trunc)_sp3_64_2206 DMHS> connect 执行成功 DMHS> state MGR: Capture TYPE VID SITEID EXEC/CPT IP PORT DBNAME ------- --- ------ --------------- ---- ------ Capture 0 1 192.168.252.129 5345 执行成功 DMHS> cpt 0 日志捕获模块信息 日志执行模块信息 ------------------------------------------------------------------ -------------------------- 状态 : idle 状态 : idle 库名 : 127.0.0.1 数据库状态 : 异常 站点ID : 1 活动事务 : 0 日志模式 : 归档 等待执行 : 0 分析队列数 : 0 执行次数 : 0 (0 times/s) 投递队列数 : 0 提交事务 : 0 (0 times/s) 日志页序号 : 8288 回滚事务 : 0 (0 times/s) 待分析日志 : 0 影响行数 : 0 (0 rows/s) 待投递日志 : 1 缓存大字段 : 0 日志页数 : 313721 (0 pages/s) 检查点时间 : 投递次数 : 227636 (0 times/s) CVT状态 : idle 文件IO次数 : 989 (0 times/s) CVT事务数 : 0 日志总量 : 59131173 B (0 B/s) 日志目录 : /dm/dmdbms/archlog 日志文件 : ARCHIVE_LOCAL1_0x4B5A6C5E_EP0_2022-10-12_03-45-26.log 日志时间 : 2022-10-12 04:45:25 --------------------------------------------------------------------------------------------- 日志发送模块信息 日志接收模块信息 ------------------------------------------------------------------ -------------------------- 状态 : waiting for log 状态 : no init 过滤个数 : 0 总日志数 : 0 发送队列 : 0 (0.00 percent) 接收次数 : 0 times 总日志数 : 227646 日志LSN : 0 发送次数 : 509 times 消息序号 : 0 日志LSN : 287549 起始LSN : 0 消息序号 : 509 消息流量 : 0 B (0 B/s) 起始LSN : 50870 消息流量 : 11915079 B (0 B/s) 日志时间 : 2022-10-12 04:45:25 推送状态 : 未接收推送 执行成功
2)目标端监控 exec 数据执行(加载)模块 (目标端执行)
说明: state命令输出下的 SITEID 编号就是exec模块的编号,源端可以存在多个SITEID编号 N ,可以使用 exec N 查看 不同exec模块状态,需要特别监控 日志执行模块的 检查点时间 是不是当前的时间,如果不是当前或者近期的时间 说明日志执行模块异常,进一步查看DMHS运行日志($DMHS_HOME/bin/log/dmhs_YYYYMM.log)。
[dmdba@dbserver bin]$ ./dmhs_console DMHS console tool: V4.2.90-Build(2022.06.28-110804trunc)_sp3_64_2206 Copyright (c) 2020, DMHS. All rights reserved. Type ? or "help" for help, type "quit" to quit console. 连接到DMHS:127.0.0.1:5345 执行成功 Dameng HS Server V4.2.90-Build(2022.06.28-110804trunc)_sp3_64_2206 DMHS> connect 执行成功 DMHS> state MGR: Execute TYPE VID SITEID EXEC/CPT IP PORT DBNAME ------- --- ------ --------------- ---- ------ Execute 0 1 192.168.252.128 5345 执行成功 DMHS> exec 1 日志捕获模块信息 日志执行模块信息 ------------------------------------------------------------------ -------------------------------- 状态 : idle 状态 : idle 库名 : 127.0.0.1 数据库状态 : 正常 站点ID : 1 活动事务 : 0 日志模式 : 归档 等待执行 : 0 分析队列数 : 0 执行次数 : 236 (0 times/s) 投递队列数 : 0 提交事务 : 18 (0 times/s) 日志页序号 : 8385 回滚事务 : 0 (0 times/s) 待分析日志 : 0 影响行数 : 229364 (0 rows/s) 待投递日志 : 1 缓存大字段 : 0 日志页数 : 363482 (0 pages/s) 检查点时间 : 2022-10-12 04:45:07 投递次数 : 227645 (0 times/s) CVT状态 : idle 文件IO次数 : 1183 (0 times/s) CVT事务数 : 0 日志总量 : 59134083 B (0 B/s) 日志目录 : /dm/dmdbms/archlog 日志文件 : ARCHIVE_LOCAL1_0x4B5A6C5E_EP0_2022-10-12_03-45-26.log 日志时间 : 2022-10-12 04:45:25 --------------------------------------------------------------------------------------------------- 日志发送模块信息 日志接收模块信息 ------------------------------------------------------------------ -------------------------------- 状态 : waiting for log 状态 : waiting recieve log 过滤个数 : 0 总日志数 : 227676 发送队列 : 0 (0.00 percent) 接收次数 : 533 times 总日志数 : 227655 日志LSN : 287639 发送次数 : 518 times 消息序号 : 518 日志LSN : 287639 起始LSN : 50870 消息序号 : 518 消息流量 : 12014569 B (0 B/s) 起始LSN : 50870 消息流量 : 11917383 B (0 B/s) 日志时间 : 2022-10-12 04:45:25 推送状态 : 未接收推送 执行成功
六, DMHS 测试总结:
通过以上测试 已经验证 DMHS 软件实现如下功能:
1) 实现了不同达梦数据库之间的 数据迁移(首次全同步)。
2) 支持表的DDL 以及 DML 操作的数据实时同步。
3)部署简单快捷,大部分操作都使用图形化操作。
适合场景:
1)数据大集中,多个数据库不同用户下,不同表 复制到一个数据库单个用户。
2)数据分发 ,一个数据库多个用户下的多表,分发到多个数据库 多用户下 多表。
3)跨dm数据库版本数据迁移,最大优点停机时间短,数据迁移过程中,实时数据追评 就完成数据迁移。
4) 达梦替换其他类型的数据库如(oracle)后,初期使用DMHS同步软件实时同步达梦数据库的数据到替换前的数据库(如oracle),紧急或必要的情况可以进行回切到oracle,等应用方觉得达梦数据库完全可靠后可以拆除DMHS同步,完全使用达梦数据库作为生产。
七, 测试中遇到的问题:
1) DMHS软件的运行日志文件存放在 $DMHS_HOME/bin/log目录下,所有DMHS软件模块的运行状态或者报错信息都会在 $DMHS_HOME/bin/log目录下下的dmhs_YYYYMM(时间戳).log文件中记录。
2) 在搭建测试的过程中发现DMHS软件cpt模块启动不报错,卡死,最终排查发现是DMHS自带的 libdmoci.so文件版本不对,把DMDB数据库的$DM_HOME/bin目录下 libdmoci.so 文件拷贝到$DMHS_HOME/bin目录下 问题得以解决, 并且如果发现还DMHS启动过程中还缺失其他的 .so文件 ,可以到 DM数据库的 $DM_HOME/bin目录里查找 并把这些文件拷贝到 $DMHS_HOME/bin目录下并重新启动DMHS软件尝试。
达梦社区地址:https://eco.dameng.com
状态 : idle
ddl_sql_pg.sql
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了