一、前言
达梦数据实时同步软件 DMHS 是一款基于日志分析的数据库实时同步系统,具备高性 能、高可靠、易于扩展等多种优势。
二、环境准备
服务器 | IP | 配置 | 操作系统版本 | DMHS版本 |
主库 | 192.168.255.137 | 1核2G | Redhat7.5 | dmhs_V4.1.48_pack4_dm8_rev104804_rh6_64_veri_20211228.bin |
备库 | 192.168.255.138 | 1核2G | Redhat7.5 | dmhs_V4.1.48_pack4_dm8_rev104804_rh6_64_veri_20211228.bin |
1.检查DM数据库是否开启归档
select arch_mode from v$database;
ARCH_MODE=Y
若没有开启归档:
ARCH_INI=1
vi dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dbarch/dmarch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 102400
2.检查是否打开逻辑追加日志。
RLOG_APPEND_LOGIC=1
三、正式安装
1.将安装包传到服务器上,给安装包赋权
chown -R dmdba:dinstall /opt/tmp/dmhs_V4.1.48_pack4_dm8_rev104804_rh6_64_veri_20211228.bin
chmod 755 /opt/tmp/dmhs_V4.1.48_pack4_dm8_rev104804_rh6_64_veri_20211228.bin
chown -R dmdba:dinstall /opt/tmp/libdmoci.so
chmod 755 /opt/tmp/libdmoci.so
2.命令行方式安装
./dmhs_V4.1.48_pack4_dm8_rev104804_rh6_64_veri_20211228.bin -i
>>简体中文
>>免费试用达梦数据实时同步
>>精简版
>>安装目录:/home/dmdba/dm/dmhs
>>统一部署
>>远程部署工具名称[HsAgent]
>>主机Ip(外网)[192.168.255.137]
>>远程部署工具管理端口[5456](1000-65535)
>>内置数据库轮询间隔[3](1-60)
>>内置数据库IP[]:192.168.255.137
>>内置数据库端口[15236](1000-65535)
>>内置数据库用户名[SYSDBA]
>>内置数据库密码[SYSDBA]
>>启动方式:[2.手动]
加入缺少的libdmoci.so模块
mv /opt/tmp/libdmoci.so /home/dmdba/dm/dmhs/bin/
3.编辑dmhs.hs配置文件
主库:
vi /home/dmdba/dm/dmhs/bin/dmhs.hs
<?xml version="1.0" encoding="GB2312"?>
<dmhs>
<base>
<lang>en</lang>
<mgr_port>5345</mgr_port>
<chk_interval>3</chk_interval>
<ckpt_interval>60</ckpt_interval>
<siteid>1</siteid><!— 序号唯一 -->
</base>
<cpt>
<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>
<idle_time>300</idle_time>
<dict_dir>/dbbak/dmhs_dict</dict_dir>
<ddl_mask>obj:op</ddl_mask>
<parse_thr>1</parse_thr>
<arch>
<clear_interval>600</clear_interval>
<clear_flag>0</clear_flag>
<bak_dir></bak_dir>
</arch>
<send>
<ip>192.168.255.138</ip> <!-- 目的端 -->
<mgr_port>5345</mgr_port>
<data_port>5346</data_port>
<level>0</level>
<trigger>1</trigger><!-- 是否忽略触发器,默认为0,限定值0,1 -->
<constraint>1</constraint><!-- 是否忽略约束,默认为0,限定值0,1 -->
<identity>1</identity><!-- 是否忽略自增列,默认为0,限定值0(不忽略,插入同步过来的值),1(忽略,插入自增列自身的值) -->
<net_turns>0</net_turns>
<filter>
<enable>
<item>*.*</item>
</enable>
<disable>
<item></item>
</disable>
</filter>
<map>
<item></item>
</map>
</send>
</cpt>
</dmhs>
备库:
vi /home/dmdba/dm/dmhs/bin/dmhs.hs
<?xml version="1.0" encoding="GB2312"?>
<dmhs>
<base>
<lang>en</lang>
<mgr_port>5345</mgr_port>
<chk_interval>2</chk_interval>
<ckpt_interval>45</ckpt_interval>
<siteid>2</siteid><!— 序号唯一 -->
</base>
<recv>
<data_port>5346</data_port>
<exec>
<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>
<db_name></db_name>
<exec_mode>1</exec_mode>
<exec_thr>4</exec_thr> <!-- 线程数 -->
<exec_sql>512</exec_sql>
<exec_trx>5000</exec_trx>
<exec_rows>250</exec_rows>
<exec_policy>2</exec_policy>
<msg_col_size>8000</msg_col_size>
<level>0</level>
<affect_row>0</affect_row>
</exec>
</recv>
</dmhs>
4.执行ddl同步sql脚本,如果是双向同步,则目标端与源端都需要执行该脚本
脚本在 /home/dmdba/dm/dmhs/scripts路径下
dm8选择ddl_sql_dm8.sql脚本
5.启动dmhs服务
./dmhs_server
目标端与源端都启动
start
源端数据装载
copy 0 "sch.name='SYSDBA'" DICT|LSN|CREATE|INSERT|INDEX
6.编写后台启动脚本
cp /home/dmdba/dm/dmhs/bin/service_template/DmhsService /home/dmdba/dm/dmhs/bin/dmhs_serverd
chmod 755 /home/dmdba/dm/dmhs/bin/dmhs_serverd
vi /home/dmdba/dm/dmhs/bin/dmhs_serverd
更改路径
DMHS_HOME=/home/dmdba/dm/dmhs/bin
PROG_DIR=/home/dmdba/dm/dmhs/bin
CONF_PATH=/home/dmdba/dm/dmhs/bin/dmhs.hs
NEED_LIB_PATH=$DMHS_HOME:/home/dmdba/dm/dmdbms/bin
启动服务
/home/dmdba/dm/dmhs/bin/dmhs_serverd start
查看服务
/home/dmdba/dm/dmhs/bin/dmhs_serverd status
7.测试
主库:
create table dmtest01(v1 int);
insert into dmtest01 values(1);commit;
备库:
select * from dmtest01;
四、后记
1.在DMHS第一次启动时报错
CPT[ERROR]: DDL_MASK is not empty, but some DDL auxiliary table is missed, please rebuild it or set DDL_MASK = 0.
需要执行/home/dmdba/dm/dmhs/scripts/ddl_sql_dm8.sql脚本
2.启动DMHS报错
MGR[ERROR]: unable to connect to management module at peer(192.168.255.138:5345)
很明显的端口问题,防火墙没关闭
社区地址:https://eco.dameng.com