DMHS 的安装部署

DMHS 的安装部署

本次 DM 实时同步的源数据库和目的数据库都是 DM8,因此双方都需要安装部署基于 DM 的 DMHS 包

前提

安装前提:关闭防火墙 firewalld 和 SELinux

节点主机
源节点192.168.244.132
目的节点192.168.244.136

安装目录:/home/dmdba/dmhs

安装 DMHS

在两个结点均安装基于 DM 的 DMHS,由于源节点没有图形界面,因此将以两种方式(图形界面和命令行界面)分别进行安装

图形界面安装

修改权限后以 dmdba 身份执行以下命令

./dmhs_V4.1.48_pack4_dm8_rev104804_rh6_64_veri_20211228.bin

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

图形化界面安装完成

命令行界面安装

在这里插入图片描述

在这里插入图片描述

命令行界面安装完成

安装 ODBC

以 root 身份执行以下命令

yum install unixODBC -y
odbcinst -j

在这里插入图片描述

修改 odbcinst.ini 和 odbc.ini 文件

vi /etc/odbcinst.ini
###增加以下内容
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
Driver = /home/dmdba/dmdbms/bin/libdodbc.so
###

vi /etc/odbc.ini
###增加以下内容
[DM8]
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = SYSDBA
TCP_PORT = 5236

以 dmdba 身份执行 isql 测试连接是否正常

在这里插入图片描述

数据库配置

开启归档(源端和目的端)

登入源数据库执行以下命令开启归档日志

alter database mount;
alter database add archivelog 'DEST=/home/dmdba/dmarch/DMHS,TYPE=LOCAL,SPACE_LIMIT=0';
alter database archivelog;
alter database open;
开启逻辑日志(源端和目的端)

登入数据库执行以下命令开启逻辑日志

SP_SET_PARA_VALUE(1,'RLOG_APPEND_LOGIC',1);
创建相关表及触发器(源端)

执行 DMHS 安装目录下 scripts/ddl_sql_dm8.sql 文件,可以通过以下两种方式执行

  • 登入源数据库通过 start 执行,执行过程中有要求输入参数确认,有可能出错
  • 复制文件内容通过 DM 管理工具直接执行,建议使用该方式

创建结果是 SYSDBA 模式下的 9 个表和 4 个触发器

在这里插入图片描述

在这里插入图片描述

目的端及源端配置启动

注意:配置启动环节中有概率出现异常,建议先跳转阅读后续的问题章节

目的端

在 DMHS 安装目录下的 bin 目录新建 dmhs.hs 配置文件

<?xml version="1.0" encoding="GB2312"?>
<dmhs>

 <base>    <!-- 管理模块的基本配置 -->
    <lang>en</lang>    <!-- 语言选项,ch 为中文,en 为英文 -->
    <mgr_port>5345</mgr_port>    <!-- 管理端口号,默认为5345-->
    <ckpt_interval>60</ckpt_interval>    <!-- 检查点间隔,默认60 -->
    <siteid>2</siteid>    <!-- 站点ID,这个ID配置时要注意,全局唯一,最小值0,最大值65535 -->
    <version>2.0</version>
</base>

<exec>    <!-- 执行模块的基本配置 -->
  <recv>
    <data_port>5346</data_port>    <!-- 当数据传递采用网络直连时,需要配置该参数,表明同步数据从该端口号获取。 -->
  </recv>
  <db_type>dm8</db_type>    <!-- 目标端数据库类型 -->
  <db_server>192.168.244.136</db_server>    <!-- 目标端数据库服务名或IP -->
  <db_user>SYSDBA</db_user>    <!-- 目标端数据库用户 -->
  <db_pwd>SYSDBA</db_pwd>    <!-- 用户的密码 -->
  <db_port>5236</db_port>    <!-- 目标端数据库端口 -->
  <db_name></db_name>    <!-- 默认数据库名,默认为空串(只针对dm6有用)-->
  <char_code>PG_GB18030</char_code>
  <exec_thr>4</exec_thr>    <!-- 执行线程个数,只有当 exec_mode 为 1 时才会生效!默认为1 -->
  <exec_sql>1024</exec_sql>    <!-- SQL 缓存大小,默认为 512M -->
  <exec_trx> 5000 </exec_trx>    <!-- 事务缓存个数,默认为 5000 -->
  <exec_rows>1000</exec_rows>    <!-- 批量绑定行数,默认为 250 -->
 </exec>
</dmhs>

执行以下命令启动目的端

./dmhs_server dmhs.hs

在这里插入图片描述

新开一个终端执行以下命令

./dmhs_console
connect 192.168.244.136:5345
start exec

在这里插入图片描述

在这里插入图片描述

源端

在 DMHS 安装目录下的 bin 目录新建 dmhs.hs 配置文件

 <?xml version="1.0" encoding="GB2312"?>
<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>127.0.0.1</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 配置项-->
 <arch><!--归档清理配置项-->
 <clear_interval>600</clear_interval>
 <clear_flag>0</clear_flag>
 </arch>
 <send><!-- 发送模块配置 -->
 <ip>192.168.244.136</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>

执行以下命令启动源端

./dmhs_server dmhs.hs

新开一个终端执行以下命令

./dmhs_console
connect 192.168.244.132:5345
clear exec lsn       #初始化日志起始位置
COPY 0 "SCH.NAME='SYSDBA'" CREATE|INSERT|DICT       #装载SYSDBA的schema数据,配置同步掩码,COPY 命令和 LOAD 命令是对等的,COPY 命令是早期版本装载载命令,为了版本兼容而保留

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

至此 DM 到 DM 的 DMHS 部署及同步完成,同步结果可以在目的端 DM 进行查询

问题

在 DMHS 配置过程中遇到了以下问题

  • lib libdmhs_exec.so can not found
  • 执行 start exec 时提示段错误

以上问题均由于一个原因,就是 libdmoci.so 版本不对,经查证后有以下原因解释和解决方法

老版本 DMHS 自带 libdmoci.so(DM7 版本),新版本(DM8)不带 libdmoci.so,需要单独向原厂申请。libdmhs_exec.so 需要链接的是对目的数据库操作的库文件 libdmoci.so,也就是 DM8 的 libdmoci.so,然而 DMHS 下的 db/bin 是 DMHS 内置元数据库 DM7 的路径,也就是说此时执行器链接的是 DM7 的 libdmoci.so,所以执行异常

实际上 DM8 默认的安装文件中也并没有包含 libdmoci.so 文件, 因为 DM8 的 bin 文件安装中并不包含 oci 接口库。 因此对 DM8 安装配置 DMHS 必须向原厂申请对应版本的 dmdci.zip 文件,解压 dmdci.zip 后复制库文件 libdmoci.so 到 DM8/bin 下对应位置即可使用

达梦在线服务平台:https://eco.dameng.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值