本次模拟DM8DW集群及DMHS主备到单机节点的DMHS部署及验证,实现主备集群可以实时同步到单机库。
数据库: dm8_20230418_x86_rh6_64.iso
DMHS: dmhs_V4.3.08_dm8_rev127399_rh6_64_veri_20230407_sp8.bin
操作系统:DMHS源端:CentOS Linux release 7.4.1708 (Core)
DMHS目的端:Linux version 4.19.90-24.4.v2101.ky10.x86_6
IP 数据库 端口
主机:172.26.8.111 5236
备机:172.26.8.112 5237
单机:172.26.8.89 5236
监视器:172.26.8.89
[root@dm8-dxfl-8.111 /]$systemctl stop firewalld
[root@dm8-dxfl-8.111 /]$systemctl disable firewalld
[root@dm8-dxfl-8.111 /]$systemctl status firewalld
确保提前准备主备集群状态正常,确认监视器资源正常;确保单机节点数据库状态正常;具体进程和端口状态如下:
主机:172.26.8.111
[root@dm8-dxfl-8.111 /]$ip add|grep ens33|grep inet
inet 172.26.8.111/24 brd 172.26.8.255 scope global ens33
[root@dm8-dxfl-8.111 /]$ps -ef|grep dms
dmdba 4167 1 0 21:51 pts/1 00:00:06 /home/dmdba/dm/dmdbms/bin/dmserver path=/dbdata/dmdata/DAMENG/dm.ini –noconsole mount
[root@dm8-dxfl-8.111 /]$ps -ef|grep dmw
dmdba 4285 1 0 21:52 pts/1 00:00:04 /home/dmdba/dm/dmdbms/bin/dmwatcher path=/dbdata/dmdata/DAMENG/dmwatcher.ini –noconsole
备机:172.26.8.112
[root@dm8-dxfl-8.112 /]$ip add|grep ens33|grep inet
inet 172.26.8.112/24 brd 172.26.8.255 scope global ens33
[root@dm8-dxfl-8.112 /]$ps -ef|grep dms
dmdba 3933 1 0 21:50 pts/1 00:00:10 /home/dmdba/dm/dmdbms/bin/dmserver path=/dbdata/dmdata/DAMENG/dm.ini - noconsole mount
[root@dm8-dxfl-8.112 /]$ps -ef|grep dmw
dmdba 4083 1 0 21:54 pts/1 00:00:05 /home/dmdba/dm/dmdbms/bin/dmwatcher path=/dbdata/dmdata/DAMENG/dmwatcher.ini -noconsole
单机:172.26.8.89
[root@klv10test /]# ip add|grep ens33|grep inet
inet 172.26.8.89/24 brd 172.26.8.255 scope global ens33
[root@klv10test /]# ps -ef|grep dms
dmdba 1296 1 0 20:09 ? 00:00:15 /dm8/bin/dmserver path=/dm8/data/PRCD/dm.ini –noconsole
监视器:
[root@klv10test ~]# ip add|grep ens33|grep inet
inet 172.26.8.89/24 brd 172.26.8.255 scope global ens33
[root@klv10test ~]# ps -ef|grep dmmo
dmdba 2646 2565 0 23:02 pts/1 00:00:00 ./dmmonitor /home/dmdba/dm/RWW_dmmonitor_manual.ini
如下为DM8主备集群状态:
修改开启在主、备RLOG_APPEND_LOGIC逻辑追加日志参数,0为关闭,1为开启,注意参数PARA_TYPE为SYS类型可动态修改;其它参数类型详见管理员手册。如下为参数查询及修改:
SQL> SELECT PARA_NAME,PARA_VALUE,DEFAULT_VALUE,SESS_VALUE,FILE_VALUE,PARA_TYPE FROM V$DM_INI WHERE PARA_NAME LIKE 'RLOG_APPEND_LOGIC';
行号 PARA_NAME PARA_VALUE DEFAULT_VALUE SESS_VALUE FILE_VALUE PARA_TYPE
---------- ----------------- ---------- ------------- ---------- ---------- ---------
1 RLOG_APPEND_LOGIC 0 0 0 0 SYS
已用时间: 2.485(毫秒). 执行号:105.
SQL> call sp_set_para_value(1,'RLOG_APPEND_LOGIC',1);
DMSQL 过程已成功完成
已用时间: 5.146(毫秒). 执行号:106.
SQL> SELECT PARA_NAME,PARA_VALUE,DEFAULT_VALUE,SESS_VALUE,FILE_VALUE,PARA_TYPE FROM V$DM_INI WHERE PARA_NAME LIKE 'RLOG_APPEND_LOGIC';
行号 PARA_NAME PARA_VALUE DEFAULT_VALUE SESS_VALUE FILE_VALUE PARA_TYPE
---------- ----------------- ---------- ------------- ---------- ---------- ---------
1 RLOG_APPEND_LOGIC 1 0 1 1 SYS
已用时间: 2.523(毫秒). 执行号:107.
如果要求 DDL 同步,那么需要创建 DDL 触发器和辅助表。创建的脚本参见 DMHS 安装目录下 scripts 子目录中“ddl_sql_dm8.sql”。注意创建时需要使用 SYSDBA 用户在主库创建。检查创建的触发器和辅助表是否有效,如下检查辅助表的语句:
SQL> select owner, table_name from dba_tables where owner = 'SYSDBA' and table_name like 'DMHS%' and status ='VALID';
行号 OWNER TABLE_NAME
---------- ------ ----------------
1 SYSDBA DMHS_DDL_COL
2 SYSDBA DMHS_DDL_SQL
3 SYSDBA DMHS_DDL_CONS
4 SYSDBA DMHS_DDL_IDX
5 SYSDBA DMHS_DDL_RENAME
6 SYSDBA DMHS_DDL_SEQ
7 SYSDBA DMHS_DDL_PART
8 SYSDBA DMHS_DDL_COMMENT
9 SYSDBA DMHS_DDL_LOG
9 rows got
SQL> select mode$ from v$instance;
行号 MODE$
---------- -------
1 PRIMARY
已用时间: 1.278(毫秒). 执行号:1402.
确认备库自动同步:
SQL> select mode$ from v$instance;
行号 MODE$
---------- -------
1 STANDBY
已用时间: 1.369(毫秒). 执行号:501.
SQL> select owner, table_name from dba_tables where owner = 'SYSDBA' and table_name like 'DMHS%' and status ='VALID';
行号 OWNER TABLE_NAME
---------- ------ ----------------
1 SYSDBA DMHS_DDL_COL
2 SYSDBA DMHS_DDL_SQL
3 SYSDBA DMHS_DDL_CONS
4 SYSDBA DMHS_DDL_IDX
5 SYSDBA DMHS_DDL_RENAME
6 SYSDBA DMHS_DDL_SEQ
7 SYSDBA DMHS_DDL_PART
8 SYSDBA DMHS_DDL_COMMENT
9 SYSDBA DMHS_DDL_LOG
DMHS部署注意事项:主备环境建议进行安装部署,避免后续DMHS调试期间各种异常问题;使用dmdba用户部署;部署主机/tmp空间过小时需做如下操作:
[root@dm8-dxfl-8.111 opt]mkdir tmp
[root@dm8-dxfl-8.111 opt]chown dmdba:dinstall /opt/tmp
[root@dm8-dxfl-8.111 opt]chmod 777 /opt/tmp
[root@dm8-dxfl-8.111 opt]su - dmdba
[dmdba@dm8-dxfl-8.111 opt]export DMHS_INSTALL_TMPDIR=/opt/tmp
主备、单机DMHS部署参照如下:
DMHS主备环境源端配置注意事项:
主备配置文件保持一致(db_server建议使用连接串,密码和端口根据实际情况具体配);主备置需配置group为1,启用DMHS主备功能;注意配置各模块书写格式正确性;确认是否开启网闸模式;其它参数根据业务需要进行配置,参数说明详见DMHS手册;
参考配置如下:
主库DMHS配置:
<?xml version="1.0" encoding="GB2312"?>
<dmhs>
<base>
<lang>ch</lang>
<mgr_port>5345</mgr_port>
<chk_interval>3</chk_interval>
<ckpt_interval>60</ckpt_interval>
<siteid>3</siteid>
<group>1</group> --要启用DMHS主备功能
</base>
<cpt>
<db_type>DM8</db_type>
<db_server>DMDW</db_server> --输入本地IP可以是127.0.0.1
<db_user>SYSDBA</db_user>
<db_pwd>SYSDBA</db_pwd>
<db_port>5236</db_port>
<idle_time>10</idle_time>
<ddl_mask>OP:OBJ</ddl_mask>
<dict_dir>/dbbak/DICT</dict_dir>
<arch>
<clear_interval>60</clear_interval>
<clear_flag>0</clear_flag>
</arch>
<send>
<ip>172.26.8.89</ip> --输入对端IP
<mgr_port>5345</mgr_port>
<data_port>5346</data_port>
<net_pack_size>256</net_pack_size>
<net_turns>0</net_turns> --是否启用网闸
<crc_check>0</crc_check>
<trigger>1</trigger>
<constraint>1</constraint>
<identity>1</identity>
<filter>
<enable>
<item>DMDBA.*</item>
</enable>
<disable>
</disable>
</filter>
<map>
</map>
</send>
</cpt>
</dmhs>
备库DMHS配置:
<?xml version="1.0" encoding="GB2312"?>
<dmhs>
<base>
<lang>ch</lang>
<mgr_port>5345</mgr_port>
<chk_interval>3</chk_interval>
<ckpt_interval>60</ckpt_interval>
<siteid>3</siteid>
<group>1</group> --要启用DMHS主备功能
</base>
<cpt>
<db_type>DM8</db_type>
<db_server>DMDW</db_server> --输入本地IP可以是127.0.0.1
<db_user>SYSDBA</db_user>
<db_pwd>SYSDBA</db_pwd>
<db_port>5237</db_port>
<idle_time>10</idle_time>
<ddl_mask>OP:OBJ</ddl_mask>
<dict_dir>/dbbak/DICT</dict_dir>
<arch>
<clear_interval>60</clear_interval>
<clear_flag>0</clear_flag>
</arch>
<send>
<ip>172.26.8.89</ip> --输入对端IP
<mgr_port>5345</mgr_port>
<data_port>5346</data_port>
<net_pack_size>256</net_pack_size>
<net_turns>0</net_turns> --是否启用网闸
<crc_check>0</crc_check>
<trigger>1</trigger>
<constraint>1</constraint>
<identity>1</identity>
<filter>
<enable>
<item>DMDBA.*</item>
</enable>
<disable>
</disable>
</filter>
<map>
</map>
</send>
</cpt>
</dmhs>
DM8单机库目的端配置如下:
<?xml version="1.0" encoding="GB2312"?>
<dmhs>
<base>
<lang>ch</lang>
<mgr_port>5345</mgr_port>
<chk_interval>3</chk_interval>
<ckpt_interval>60</ckpt_interval>
<siteid>3</siteid>
<version>2.0</version>
</base>
<exec>
<recv>
<data_port>5346</data_port>
</recv>
<db_type>DM8</db_type>
<db_server>172.26.8.89</db_server>
<db_user>SYSDBA</db_user>
<db_pwd>Dameng123</db_pwd>
<db_port>5237</db_port>
<level>0</level>
<exec_thr>4</exec_thr>
<exec_sql>1024</exec_sql>
<exec_trx>5000</exec_trx>
<exec_rows>250</exec_rows>
<case_sensitive>1</case_sensitive>
<toggle_case>0</toggle_case>
<exec_policy>2</exec_policy>
<commit_policy>1</commit_policy>
<enable_merge>1</enable_merge>
<affect_row>0</affect_row>
</exec>
</dmhs>
DMDW集群配置dm_svc.conf,配置一致如下:
[dmdba@dm8-dxfl-8 ~]$cat /etc/dm_svc.conf
# 全局配置区
DMDW=(172.26.8.111:5236,172.26.8.112:5237)
TIME_ZONE=(480)
启动目的端DMHS服务,启动EXEC模块:
[dmdba@klv10test ~/dmhs/bin]$./DmhsServiceHSSERVER start
Starting DmhsServiceHSSERVER:
[dmdba@klv10test ~/dmhs/bin]$./dmhs_console
DMHS console tool: V4.3.08-Build(2023.03.31-127399trunc)_64_2303_sp8
Copyright (c) 2020, DMHS. All rights reserved.
Type ? or "help" for help, type "quit" to quit console.
DMHS> state
MGR: do not run any module
执行成功
DMHS> start exec
执行成功
启动源端主备DMHS服务:
[dmdba@dm8-dxfl-8 ~/dmhs/bin]$./DmhsServiceHSSERVER start
Starting DmhsServiceHSSERVER: [ OK ]
[dmdba@dm8-dxfl-8 ~/dmhs/bin]$./DmhsServiceHSSERVER start
Starting DmhsServiceHSSERVER: [ OK ]
登录源端主库DMHS控制台,查看主备CPT模块状态,在主库进行COPY操作,DICT会经DMHS自动同步到备库指定相关目录下,具体操作如下:
[dmdba@dm8-dxfl-8 ~/dmhs/bin]$./dmhs_console
DMHS console tool: V4.3.08-Build(2023.03.31-127399trunc)_64_2303_sp8
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.3.08-Build(2023.03.31-127399trunc)_64_2303_sp8
DMHS> state
MGR: do not run any module
执行成功
DMHS> COPY 0 "SCH.NAME='DMDBA'" DROP|CREATE|INSERT|INDEX|DICT|LSN|THREAD|4
CSL[WARN]: 检测到DROP掩码,该掩码会删掉目标库:TABLE! 请确认是否继续?(Y/N)
Y
CSL[WARN]: 检测到LSN掩码,该掩码会忽略日志中小于当前LSN的所有操作,请确认是否继续?(Y/N)
Y
copy mask is : |CREATE|DROP|INSERT|THREAD|INDEX|TABLE|DICT|LSN|PARTITION|OBJID|REP
执行完成,请查看执行模块日志,检查数据装载是否成功
先启动主库DMHS CPT模块:
[dmdba@dm8-dxfl-8 ~/dmhs/bin]$./dmhs_console
DMHS console tool: V4.3.08-Build(2023.03.31-127399trunc)_64_2303_sp8
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.3.08-Build(2023.03.31-127399trunc)_64_2303_sp8
DMHS> state
MGR: do not run any module
执行成功
DMHS> start cpt
执行成功
DMHS> state
MGR: Capture Master
TYPE VID SITEID EXEC/CPT IP PORT DBNAME
------- --- ------ ----------- ---- ------
Capture 0 3 172.26.8.89 5345
执行成功
DMHS>
再启用备库DMHS CPT模块:
[dmdba@dm8-dxfl-8 ~/dmhs/bin]$./dmhs_console
DMHS console tool: V4.3.08-Build(2023.03.31-127399trunc)_64_2303_sp8
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.3.08-Build(2023.03.31-127399trunc)_64_2303_sp8
DMHS> state
MGR: do not run any module
执行成功
DMHS> start cpt
执行成功
DMHS> state
MGR: Capture Master
TYPE VID SITEID EXEC/CPT IP PORT DBNAME
------- --- ------ ----------- ---- ------
Capture 0 3 172.26.8.89 5345
执行成功
DMHS>
查看目的端单机库DMHS状态:
[dmdba@klv10test ~/dmhs/bin]$./dmhs_console
DMHS console tool: V4.3.08-Build(2023.03.31-127399trunc)_64_2303_sp8
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.3.08-Build(2023.03.31-127399trunc)_64_2303_sp8
DMHS> state
MGR: Execute
TYPE VID SITEID EXEC/CPT IP PORT DBNAME
------- --- ------ ------------ ---- ------
Execute 0 3 172.26.8.112 5345
Execute 0 3 172.26.8.111 5345
执行成功
DMDW到目的端DMHS搭建成功后,DMHS主备优先备库同步到目的端,主库DMHS日志如下图:
DMDW备库库DMHS日志如下图:
目的端DM8单机库DMHS日志:如下图:
经过验证当备库HS故障时,HS主备自动切换到主库往目的端库同步,备库HS正常后,HS主备会自动将同步切回到备库上,具体日志如下图:
经过验证当主库HS故障时,HS备库保持往目的端库正常同步,主库HS正常后,主库保持停掉服务前检查最小LSN状态,具体日志如下图:
经过验证当DM8DW集群切机后,DMHS主备检测到DMDW集群主备变换会将HS自动切换到新备库上运行,新主库会将原来的同步自动切换到检查最小LSN状态,目的端同步正常,具体日志如下图:
如下为主库建表插入、更新、删除等测试均可以正常同步到目的端单机库,包括6.1-6.5几种类型HS故障时增删改操作均可同步到目的端,部分截图如下:
问题1:
2023-05-25 16:15:23 MGR[ERROR]: lib libdmhs_exec.so can not found,error code0
2023-05-25 16:15:23 MGR[ERROR]: log exec start fail
处理:ldd libdmhs_exec.so查看,libdmoci.so => not found,搜索只有DMHS相关路径下有libdmoci.so文件拷贝/lib64或配置DMHS环境变量lib库路径
export DMHS_HOME=/home/dmdba/dm/dmhs
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/dmdba/dm/dmhs/bin
问题2:
2023-05-25 15:56:01 MGR[ERROR]: 库文件 libdmhs_exec.so 未找到, 出错: 0, libdmoci.so: cannot open shared object file: No such file or directory
2023-05-25 15:56:01 MGR[ERROR]: 日志执行启动失败
处理:DMHS目的端启动执行模块报错,建议使用数据库同版本的libdmoci.so,不建议使用DMHS自带文件。
问题3:
2023-05-26 17:53:52 MGR[INFO]: 成功获取站点172.26.8.89:5345上的最小LSN: 103258...
2023-05-26 17:54:04 CPT[WARN]: 无法连接数据库:SYSDBA@127.0.0.1:0
处理:源端DMHS日志里报错,建议配置文件db_port配置具体端口,db_server配置为字符串使用dm_svc.conf。
问题4:
2023-05-25 15:15:29 MGR[ERROR]: cannot open or find configuration file :/home/dmdba/dm/dmhs/bin/dmhs.hs
2023-05-25 15:15:29 MGR[ERROR]: unable to load configuration
处理:检测配置文件里书写是否正确,是否少东西。
文章
阅读量
获赞