
-----正文-----

本章介绍DMHS命令行搭建部署的方式。
本章内容已在如下环境上测试:
①操作系统:CentOS 7.6;
②数据库版本:DM8;
③DMHS版本:DMHS 4.1.2
关键词:DMHS
1.1、源端目的端都修改dm.ini参数,设置归档标记和逻辑日志标记:
ARCH_INI=1RLOG_APPEND_LOGIC=1
重启数据库实例后查询数据库归档状态
SQL> select arch_mode from v$database;LINEID ARCH_MODE---------- ---------1 Yused time: 3.236(ms). Execute id is 123.
可以用如下语言查询数据库附加日志状态
SQL> select * from v$dm_ini where para_name='RLOG_APPEND_LOGIC';LINEID PARA_NAME PARA_VALUE MIN_VALUE MAX_VALUE---------- ----------------- ---------- --------- ---------1 RLOG_APPEND_LOGIC 1 0 2used time: 2.016(ms). Execute id is 125.
1.2、源端目的端都配置dmarch.ini(归档日志):
[ARCHIVE_LOCAL1]ARCH_TYPE = LOCALARCH_DEST = home/dmdba/dmarch #归档目录ARCH_FILE_SIZE = 128 #归档文件大小,单位 MBARCH_SPACE_LIMIT = 2048#空间大小限制,0 表示不限制
1.3、DDL同步配置:
执行DDL同步脚本方式。在源端DM7/DM8数据库中以SYSDBA用户执行DDL同步脚本,在SYSDBA模式下创建相关DMHS系统表及触发器,并在DMHS配置文件中配置ddl_mask参数选项以启用该功能。
./disqlSQL> conn SYSDBA/rootrootrootSQL> start opt/ddl_sql_dm8.sqlSQL> exit
2.1、目的端部署流程
先启动目的端,配置dmhs.hs:
<?xml version="1.0" encoding="GB2312" standalone="no"?><dmhs><base><lang>ch</lang><mgr_port>5345</mgr_port><name>exec</name><ckpt_interval>60</ckpt_interval><siteid>3</siteid><version>2.0</version></base><exec><recv><mgr_port>5345</mgr_port> <!-- 接收管理端口--><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><!-- 数据库端口号--></exec></dmhs>
[dmdba@localhost bin]$ ./dmhs_server dmhs.hs
2.2、配置源端
进入bin目录,配置dmhs.hs:
<?xml version="1.0" encoding="GB2312" standalone="no"?><dmhs><base><lang>ch</lang><mgr_port>5345</mgr_port> <!-- 管理端口号--><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>10</idle_time> <!—cpt休眠时间--><parse_thr>1</parse_thr><ddl_mask>OP:OBJ:REC</ddl_mask> <!--DDL同步参数--><arch><clear_interval>60</clear_interval> <!--归档日志清理间隔(s)--><clear_flag>0</clear_flag> <!--归档删除标识--></arch>--><send><ip>192.168.209.129</ip> <!--投递到下一级的ip地址--><mgr_port>5345</mgr_port> <!--下一级的管理端口--><data_port>5346</data_port> <!--下一级的NET模块监听端口--><net_turns>0</net_turns><trigger>1</trigger><constraint>1</constraint><identity>1</identity><filter> <!--过滤规则--><enable><item>SYSDBA.*</item></enable><disable/></filter><map> <!--映射规则--></map></send></cpt>
[dmdba@localhost bin]$ ./dmhs_server dmhs.hs
2.3、F&Q
启动执行模块时出现错误,库文件libdmhs_exec.so未找到

此时要卸载dmhs重装,因为执行端装了精简版,应该装web版
在dmhs目录下卸载,./uninst.sh -i

重新安装,然后修改环境变量:
export LD_LIBRARY_PATH=/home/dmdba/dmhs/bin:/home/dmdba/dmhs/db/bin
让环境变量生效source home/dmdba/.bash_profile后,查询一下:

DMHS初始装载有两种:初始字典装载和初始数据装载。
3.1、启动目的端执行服务
初次启动目的端DMHS服务时,同步执行服务并未开启,需要使用DMHS控制台工具连接DMHS管理服务,手动输入start exec命令开启。
3.2、进行初始字典装载
copy 0 " sch.name='SYSDBA' " DICT
3.3、F&Q
出现错误:libcpt_dm8.so未找到

排查后发现精简安装缺少这个,可以从另一个虚拟机上发送过来
scp 192.168.209.181:/home/dmdba/dmhs/db/bin/*.so ./
说明:so文件来自于dmdci.zip压缩文件。
修改环境变量
export LD_LIBRARY_PATH=/home/dmdba/dmhs/bin:/home/dmdba/dmhs/db/bin:/home/dmdba/dmhs/bin/lib

重新启动
./dmhs_server dmhs.hs
输入:
copy 0 " sch.name='SYSDBA' " dict
在搭建完同步链路之后简单测试一下同步
4.1 、 DDL同步功能测试
使用管理工具,在源端创建两个表:

浏览表数据,修改

Table_1

Table_2
在目的端未发现

在源端上操作:
copy 0 "sch.name='SYSDBA'" clear|dict
重新装载离线字典
copy 0 "sch.name='SYSDBA'" create|insert
重新查看

可以发现两张表已装载
4.2 、表修改数据同步功能测试
启动捕获
start cpt
修改表内数据

保存后查看目的端:

两边已同步,证明搭建成功。
>>> THE END <<<
相关推荐





