一 确认环境信息
二 源端安装HS
2.1 上传安装包
dmhs_V4.2.55_dm8-dsc_rev105986_rh6_64_veri_20220215.bin
scp -r dmhs_V4.2.55_dm8-dsc_rev105986_rh6_64_veri_20220215.bin/ root@49.233.255.65:/opt/dmsetup
*********
2.2 安装
cd /data
mkdir dmhs
cd /opt/dmsetup
sh dmhs_V4.2.55_dm8-dsc_rev105986_rh6_64_veri_20220215.bin -i
[dmdba@VM-16-10-centos dmsetup]$ sh dmhs_V4.2.55_dm8-dsc_rev105986_rh6_64_veri_20220215.bin -i
Extract install files..........
1.英文(English)
2.简体中文(简体中文)
请选择安装语言[2.简体中文(简体中文)]:2
/tmp/DMHSInstall/install.log
1.免费试用达梦数据实时同步
2.使用已申请的Key文件
验证许可证文件[1.免费试用达梦数据实时同步]:1
1.精简版
2.完整版(web客户端)
3.自定义
安装类型[1.精简版]:1
1.实时同步软件服务器
2.远程部署工具
3.实时同步软件配置助手
4.手册
所需磁盘空间:576 MB
安装目录: [/home/dmdba/dmhs] /data/dmhs
对应盘符不存在,或者磁盘可用空间为01.精简版
2.完整版(web客户端)
3.自定义
安装类型[1.精简版]:1
1.实时同步软件服务器
2.远程部署工具
3.实时同步软件配置助手
4.手册
所需磁盘空间:576 MB
安装目录: [/home/dmdba/dmhs]/data/dmhs
该路径不为空,是否继续安装?[Y or N]Y --实际是检查是否有这个目录
安装路径可能存在覆盖安装
1.统一部署
2.现在初始化
是否初始化达梦数据实时同步系统[1.统一部署]:1
正在安装
default start ... default finished.
server start ... server finished.
hs_agent start ... hs_agent finished.
hsca start ... hsca finished.
doc start ... doc finished.
postinstall start ... postinstall finished.
正在创建快捷方式
安装成功
远程部署工具配置
远程部署工具名称[HsAgent]:
主机Ip(外网)[10.0.16.10](10.0.16.10):
远程部署工具管理端口[5456](1000-65535):
内置数据库轮询间隔[3](1-60):
内置数据库IP[]:
输入有误,请重新输入!
内置数据库IP[]:10.0.16.10
内置数据库端口[15236](1000-65535):
内置数据库用户名[SYSDBA]:
内置数据库密码[SYSDBA]:
服务脚本环境变量设置
依赖库路径
提示:此配置项供用户配置源或目的数据库依赖库路径和odbc依赖库路径, 多个路径以":"隔开(例:/opt/dmdbms/bin:/usr/local/lib),此配置项会添加到服务脚本的NEED_LIB_PATH的变量值中。
请配置依赖库路径:
远程控制服务
1.自动
2.手动
启动方式:[2.手动]
正在创建远程控制服务
达梦数据实时同步V4.0安装完成
更多安装信息,请查看安装日志文件:
/data/dmhs/log/install.log
三 目标端安装HS
2.1 传输安装包
源端操作:
cd /opt/dmsetup/
scp -r dmhs_V4.2.55_dm8-dsc_rev105986_rh6_64_veri_20220215.bin/ root@10.0.20.16:/opt/dmsetup
*********
2.2 安装
cd /data
mkdir dmhs
cd /opt/dmsetup
sh dmhs_V4.2.55_dm8-dsc_rev105986_rh6_64_veri_20220215.bin -i
=-=-=-=-=-=-=-
=-=-=-=-=-=-=-
=-=-=-=-=-=-=-
四 环境变量以及日志配置
4.1 环境变量配置(dmdba用户)
源端:
4.1.1编辑环境变量文件
cd
vi .bash_profile
最后一排增加(对应修改为自己的安装目录):
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/dmhs/bin
(可以通过安装时指定)
export DM_HOME="/opt/dmdbms"
export PATH=/opt/dmdbms/bin:$PATH
export DMHS_HOME=/data/dmhs
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
4.1.2使环境变量生效
source ~/.bash_profile
4.1.3查询环境变量是否设置成功
echo $LD_LIBRARY_PATH
如果有:/opt/dmdbms/bin:/data/dmhs/bin:/data/dmhs/bin:/data/dmhs/bin几个目录则为成功(自己的安装目录)
4.1.4 目标端:
同源端
4.2 开启逻辑日志(源端目标端都要操作)
SP_SET_PARA_VALUE(2,‘RLOG_APPEND_LOGIC’,1);
SELECT PARA_VALUE FROM SYS.V$DM_INI WHERE PARA_NAME = 'RLOG_APPEND_LOGIC';
五 其他设置
5.1、开启归档和逻辑日志
5.1.1 设置归档标记和逻辑日志标记。打开 DM8 服务器配置文件“dm.ini”,设置如下值:
ARCH_INI = 1
RLOG_APPEND_LOGIC = 1
5.1.2 添加归档配置文件。在“dm.ini”同目录下创建文件“dmarch.ini”,示例内容如下:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /opt/dmdbms/arch #归档目录
ARCH_FILE_SIZE = 128 #归档文件大小,单位 MB
ARCH_SPACE_LIMIT = 0 #空间大小限制,0 表示不限制
5.1.3 重启 DM8 数据库,使配置参数生效。(之前已经设置不用重启)
5.1.4 验证配置的正确性
5.1.4.1 检查归档配置的正确性,请执行以下 SQL 命令:
SELECT ARCH_DEST, ARCH_FILE_SIZE FROM SYS.V$DM_ARCH_INI WHERE ARCH_TYPE='LOCAL' AND ARCH_IS_VALID='Y';
查询结果如下则为正常:
5.1.4.2 检查逻辑日志配置的正确性,通过下面的查询:
SELECT PARA_VALUE FROM SYS.V$DM_INI WHERE PARA_NAME = 'RLOG_APPEND_LOGIC';
查询结果为1则为正常:
行号 PARA_VALUE
---------- ----------
1 1
已用时间: 20.685(毫秒). 执行号:4.
5.1.4.3 检查在线日志,通过如下的查询:
SELECT PATH FROM SYS.V$RLOGFILE;
查询结果如下则为正常:
行号 PATH
---------- ----------------------------------------
1 /opt/dmdbms/arch/src_db01.log
2 /opt/dmdbms/arch/src_db02.log
已用时间: 1.096(毫秒). 执行号:5.
5.2 、配置 DDL
如果要求 DDL 同步,那么需要创建 DDL 触发器和辅助表。创建的脚本参见 DMHS 安装目录下 scripts 子目录中“ddl_sql_dm8.sql”。注意创建时需要使用 SYSDBA 用户。
检查创建的触发器和辅助表是否有效,检查辅助表的语句:(生产最好不开启)
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
7 rows got
已用时间: 197.302(毫秒). 执行号:7.
检查触发器的语句:
select owner, trigger_name from dba_triggers where owner = 'SYSDBA' and trigger_name like 'DMHS%' and status = 'Y';
查询结果如下则为正常:
行号 OWNER TRIGGER_NAME
---------- ------ -----------------------
1 SYSDBA DMHS_DDL_TRIGGER_AFTER
2 SYSDBA DMHS_DDL_TRIGGER_BEFORE
3 SYSDBA DMHS_DDL_TRIGGER_GRANT
4 SYSDBA DMHS_DDL_TRIGGER_REVOKE
已用时间: 12.147(毫秒). 执行号:16.
5.3 配置ODBC
DMHS的odbc的安装
root用户执行:
yum search odbc
yum install unixODBC.x86_64
安装完成后修改对应配置文件
查找对应位置
odbcinst -j
cd /etc/
vi odbc.ini
[dm8]
Description = DM ODBC DSND
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = SYSDBA
TCP_PORT = 5236
vi odbcinst.ini
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
Driver = /opt/dmdbms/bin/libdodbc.so
授权:
chmod 775 odbc.ini
chmod 775 odbcinst.ini
测试:
切换到安装达梦数据库的用户
[root@dca01 soft]#su - dmdba
[root@dca01 soft]#isql odbc
查看是否安装
rpm -qa|grep glibc
六 DMHS.HS文件配置
6.1 源端
6.1.1 cd /data/dmhs/bin
vi dmhs.hs
<?xml version="1.0" encoding="utf-8"?>
<dmhs>
<base>
<lang>en</lang>
<mgr_port>5345</mgr_port>
<ckpt_interval>60</ckpt_interval>
<siteid>1</siteid>
<version>2.0</version>
</base>
<cpt>
<db_type>dm8</db_type>
<db_server>10.0.16.10</db_server>
<db_user>SYSDBA</db_user>
<db_pwd>SYSDBA</db_pwd>
<db_port>5236</db_port>
<db_ssl_path></db_ssl_path>
<db_ssl_pwd></db_ssl_pwd>
<parse_thr>1</parse_thr>
<ddl_mask>op:obj</ddl_mask> <!--DDL 配置项--> OBJ:OP
<arch><!--归档清理配置项-->
<clear_interval>600</clear_interval>
<clear_flag>0</clear_flag>
</arch>
<send><!-- 发送模块配置 -->
<ip>10.0.20.16</ip>
<mgr_port>5345</mgr_port>
<data_port>5346</data_port>
<trigger>1</trigger><!-- 是否忽略触发器,默认为 0,限定值 0,1 -->
<constraint>1</constraint><!-- 是否忽略约束,默认为 0,限定值 0,1 -->
<identity>1</identity>
<net_turns>0</net_turns>
<filter><!--过滤配置项-->
<enable><!-- 白名单,所有允许同步的表 -->
<item>SYSDBA.*</item>
</enable>
</filter>
<map><!--映射配置项-->
<item>SYSDBA.*==SYSDBA.*</item>
</map>
</send>
</cpt>
</dmhs>
6.2 目的端
cd /data/dmhs/bin
vi dmhs.hs
<?xml version="1.0" encoding="utf-8"?>
<dmhs>
<base>
<lang>en</lang>
<mgr_port>5345</mgr_port>
<ckpt_interval>60</ckpt_interval>
<siteid>2</siteid>
<version>2.0</version>
</base>
<exec>
<recv>
<data_port>5346</data_port>
</recv>
<db_type>dm8</db_type>
<db_server>10.0.20.16</db_server>
<db_user>SYSDBA</db_user>
<db_pwd>SYSDBA</db_pwd>
<driver>DM8 ODBC DRIVER</driver>
<db_port>5236</db_port>
<db_name></db_name>
<exec_thr>4</exec_thr>
<exec_sql>1024</exec_sql>
<exec_trx> 5000 </exec_trx>
<exec_rows>1000</exec_rows>
</exec>
</dmhs>
七 同步测试
7.1 启动dmhs服务
源端和目的端都前台启动dmhs服务:
cd /data/dmhs/bin
./dmhs_server dmhs.hs
7.2 初始装载
初始装载是将源端数据库中的初始数据装载到目的端数据库,使 DMHS 同步的时刻源和目的端的同步表数据一 致。装载前源端 DMHS 服务和目的端 DMHS 服务都需要开启。
①目的端
目的端新开一个连接,依次执行:
cd /data/dmhs/bin
./dmhs_console
connect
[dmdba@VM-20-16-centos bin]$ ./dmhs_console
DMHS console tool: V4.2.55-Build(2022.02.15-105986trunc)_D64
Copyright (c) 2020, DMHS. All rights reserved.
Type ? or "help" for help, type "quit" to quit console.
Connected to DMHS: 127.0.0.1:5345
execute success
Dameng HS Server V4.2.55-Build(2022.02.15-105986trunc)_D64
DMHS> start exec
cd /data/dmhs/bin
./dmhs_server dmhs.hs
start exec
7.2.2开启源端 DMHS 服务: 初始装载:
cd /data/dmhs/bin
./dmhs_server dmhs.hs
重新打开一个会话:
echo $LD_LIBRARY_PATH
./dmhs_console
DMHS >connect
DMHS >copy 0 "sch.name='SYSDBA'" DICT|LSN|CREATE|INSERT|INDEX
connnect
copy 0"sch.name='SYSDBA' " DICT|LSN|CREATE|INSERT|INDEX
( LOAD|COPY "<过滤条件>" <装载选项> :指 CPT 模块的虚拟编号,虚拟编号是指配置文件中 CPT 配置从上到下的顺序 编号,从 0 开始编号,可以用 STATE 命令来查看每个 CPT 模块的虚拟编号。 "<过滤条件>":指的是装载表的过滤条件,这里面有两个重要的对像前缀,分别是 SCH 和 TAB,分别代表系统表中的模式系统表和对像系统表。 <装载选项>:它是装载命令中最复杂的参数,由一组掩码组成,并且可以按照约定组 59 DMHS 达梦数据实时同步系统管理员手册 合使用, )
DDL设置:
cd /data/dmhs/scripts
执行ddl_sql_dm8.sql
DMHS >start cpt
--源端 create table SYSDBA.test(id int,name varchar2); insert intoSYSDBA.test values(2,'李'); select * fromSYSDBA.test;
--检查目的端 select * fromSYSDBA.test;
检验发现同步成功
=========================
注意点:
1 数据库版本和hs版本是否一致,是否适配服务器版本。
2 dmhs.key 是否有
3 dmhs.hs里面的参数是否配错:
3.1 IP
源端
<send><!-- 发送模块配置 -->
<ip>10.0.20.16</ip> -----------目的端IP
目的端:
</recv>
<db_type>dm8</db_type>
<db_server>10.0.20.16</db_server>------也是目的端IP
3.2 DDL_MASK
<ddl_mask>op:obj</ddl_mask> <!--DDL 配置项-->OBJ:OP
含义:DDL 操作功能掩码,默认值 TABLE:OP
TABLE:允许捕获表的 DDL 操作。
OBJECT:允许捕获所有数据库对象的 DDL 操作,支持简写 OBJ。
3.3 字符集和语言源端和目的端一致,并与服务器终端一致
若乱码则 语言 设置为en
4 验证如果存在ddl,需要设置ddl
cd /data/dmhs/scripts/
管理工具中执行
ddl_sql_dm8.sql
5 需要配置odbc 具体配置见上面5.3
6 各种依赖包不能随便使用,需要对应版本。
达梦技术社区:https://eco.dameng.com