【与达梦同行】那些DMHS使用二三事

news2024/11/17 15:40:25

一什么时候用DMHS?

Dmhs是异构环境下的数据库实时同步系统。主机源数据库支持 DM6、DM7、MYSQL、PostgreSQL、DB2、SQLServer 和 Oracle9i 以上版本。备机目的数据库支持可通过 ODBC 接口连接的各种主流关系数据库管理系统,包括 DM6、DM7、MYSQL、PostgreSQL、DB2、SQLServer、Oracle、GBASE 和 HIVE 以及 KAFKA 消息中间件。

二DMHS安装

Dmhs的安装有两种方式,图形化和命令行安装。安装方式都非常简单,就不赘诉了,具体可以见《DMHS搭建手册》。

安装需要注意的点:

1.关于安装dmhs软件版本

源端和目的端都需要安装dmhs软件,源端和目的端安装的dmhs的版本需要是一致的,或者版本相差不大。安装的dmhs软件包除了版本,还需要根据源端和目的端的数据库的类型以及操作系统的类型来进行申请,比如,源端是win的oracle11g,目的端是rh6的dm8。

2.精简版和完整版的区别

安装选择精简版和完整版的区别是,完整版比精简版多了实时同步软件的客户端和内置数据库。具体情况见下面两张图;可以根据自己的需求进行安装,安装精简版或者是完整版都是可以使用数据同步功能的;
在这里插入图片描述
在这里插入图片描述

3.安装的时候提示输入

安装的时候提示输入依赖库路径以及内置数据库等信息时,可以先默认,后续根据生成的对应的配置文件去修改,安装到最后生成日志后,需要手动回车结束安装。
在这里插入图片描述

4.安装使用用户

通常情况下dmhs软件使用root用户安装,但是在oracle端上安装dmhs软件时,需要使用oracle用户安装dmhs,这样是为了加载到oracle的环境变量;

5.关于dmhs软件安装的位置

dmhs软件需要和源端数据库安装在一台服务器上,而在目的端却不是必要的,也就是说,可以选择将目的端dmhs安装在目的端的某一台数据库上(目的端有可能是集群),可以将目的端dmhs软件安装在第三台机器,前提是第三台机器可以访问到目的端数据库;

三DMHS配置

1.关于配置Odbc

dmhs的同步配置需求是要配置目的端的数据库的odbc连接,但是源端数据库类型为mysql时,源端和目的端都要配置ODBC连接;
在这里插入图片描述

2.dmhs运行目录

dmhs的配置文件是dmhs.hs,运行目录默认是dmhs下的bin目录,如果使用hsem(hs的web管理界面)搭建同步链路,运行目录可以自定义文件夹的名字;如果要在一台机器上搭建多个dmhs链路,并不需要重复安装dmhs软件,只需要拷贝运行目录(bin)到另一个路径下,修改配置文件即可运行;
源端和目的端配置文件不一致,源端需要配置cpt模块,目的端配置exec模块;具体的配置文件可见《DMHS搭建手册》;

3.dmhs的同步用户

dmhs的同步用户,源端和目的端配置用户如何选择?
以官方文档中的源端配置文件为例

<?xml version="1.0" encoding="GB2312"?> 
<dmhs> 
<base> 
<lang>ch</lang> 
<mgr_port>5345</mgr_port> 
<ckpt_interval>60</ckpt_interval> 
<siteid>1</siteid> 
</base> 
<cpt> 
<db_type>dm7</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>2</clear_flag> 
<bak_dir>/dmarch/arch_bak</bak_dir> 
</arch> 
<send><!-- 发送模块配置 --> 
<ip>192.168.10.109</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.*==DMHS.*</item> 
</map> 
</send> 
</cpt> 
</dmhs>

可以看到源端配置文件中的配置了db_user和db_pwd,这个地方配置的是dmhs源端读取用户的用户名和密码,比如我的业务用户是test用户,我需要同步test用户下的数据到另一个库,就可以在源端数据库中创建一个读取用户read_test,授予read_test用户select any table权限,或者读取test用户下对象的权限,在db_user和db_pwd中配置read_test用户的名字和密码,即可实现同步;
业务用户的同步,可以在map模块中进行配置,TEST.==TEST.
目的端一般不需要配置相应的用户,因为目的端需要创建对应的对象,执行DDL和DML,直接使用业务用户即可,不用南辕北辙。

4.配置文件密码暴露处理

dmhs.hs配置文件中,直接输入了用户密码,有暴露风险怎么办?
可以对密码进行加密处理,再将加密处理后的密码替换db_pwd中的密码。

在dmhs.hs配置文件的base中添加参数并设置该参数值为1,如下:
<pwd_encipher>1</pwd_encipher>
然后登录dmhs_console使用encrypt和decrypt对密码加密,使用双引号将密码括起来。
然后将加密后的密码放到<db_pwd></db_pwd>中;

如下为测试密码加密:
DMHS> encrypt “qeasfge!!#$!$6r*09”
密文:c105fb037b11d71ad89da8ca235166ab9726446183ed98d4

DMHS> decrypt c105fb037b11d71ad89da8ca235166ab9726446183ed98d4
明文:qeasfge!!#$!$6r*09

5.dmhs配置环境变量及示例

dmhs配置环境变量如何考虑?
第一种情况是安装了dmhs完整版,在原来的用户的LD_LIBRARY_PATH目录下添加dmhs内置库的bin目录即可;比如配置dm到dm的hs同步,只需要export LD_LIBRARY_PATH=/opt/dmhs/db/bin
第二种情况是安装了精简版,根据我的使用经验是,在原来的LD_LIBRARY_PATH目录下添加数据库bin目录,数据库的lib目录以及odbc配置目录,还要获取对应的dm数据库版本的依赖文件;
以下环境变量的配置可供参考(在原有环境变量下添加):
1)Oracle19c-dm同步
Oracle端环境变量:/u01/app/oracle/product/19.0.0/dbhome_1/lib:/opt/dmhs/bin
dm端环境变量:/home/dmdba/dmdbms/bin:/usr/local/lib:/opt/dmhs/bin
2)mysql-dm同步
MySQL端环境变量:
/home/mysql/dmhs/bin:/mysql/mysql57/lib:/usr/lib64/:/usr/lib/:/var/lib/mysql
dm端环境变量:/opt/dmhs/bin:/home/dmdba/dmdbms/bin/

需要把环境变量的声明语句,添加hs的启动脚本中的最前面;也可以配置在bash里面。

6.中文乱码处理

oralce同步到dm中文乱码怎么办?
解决:设置NLS_LANG参数值以及配置CHAR_CODE掩码;
查询oracle数据库字符集:

SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
--------------------------------------------------------------------------------
AMERICAN_AMERICA.AL32UTF8

在hs启动脚本中添加
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
以及在dmhs.hs中添加<char_code>PG_UTF8</char_code> ;
以oracle端的字符集为准;
并且目的端的字符集原则上在初始化时,应当和源端保持一致;

7.dmhs服务脚本及自启

如何注册dmhs的服务脚本?
有注册的脚本,在hs安装目录的dmhs/scripts/root下面的dmhs_service_installer.sh;
使用-h查看帮助;
查看帮助:
./dmhs_service_installer.sh -h
Usage: dmhs_service_installer.sh -t service_type [-d execute_program_dir] [-p service_name_postfix] [-x xml_file]
or dmhs_service_installer.sh [ -s service_file_path ]
or dmhs_service_installer.sh -h
-t 服务类型, 包括dmhs_server,dmhs_agent,dmhs_stat,dmhsweb,dmserver,dmhs_guard,veri_agent_dm8,veri_agent_dm7,veri_agent_dm6,veri_agent_db2,veri_agent_ora,veri_agent_mysql,veri_agent_kingbase,veri_agent_postgres,dmhs
-a 设置服务是否自动启动,值为true或false,默认true.
-p 服务名后缀,对于dmserver,dmhsweb服务类型无效
-x 配置文件路径
-d 执行程序所在目录
-l 附加动态库目录(LD_LIBRARY_PATH/LIBPATH).
-n 执行程序名称,仅对dmhs服务类型生效.
-s 服务脚本路径,设置则忽略其他参数选项
-h 帮助
例如:
[root@oradb01 root]# ./dmhs_service_installer.sh -t dmhs_server -p ORA -x /opt/dmhs/bin/dmhs.hs -l /u01/app/oracle/product/19.0.0/dbhome_1/lib:/opt/dmhs/bin -d /opt/dmhs/bin
创建服务(DmhsServiceORA)完成

8.关于dmhs授权

dmhs如何替换授权?是否支持在线替换授权?
Dmhs的授权使用,需要修改为dmhs.key,需要放到运行目录下面,重启生效;
现在也支持在线更新授权,登录dmhs_console控制台,执行upgrade命令即可在线更新授权;

【与达梦同行】 🏆🏆🏆 第一届达梦数据库技术征文大赛来啦!🚀🚀🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/70542.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

m基于FPGA的积分梳状CIC滤波器verilog设计

目录 1.算法描述 2.仿真效果预览 3.verilog核心程序 4.完整FPGA 1.算法描述 积分梳状滤波器&#xff0c;是指该滤波器的冲激响应具有如下形式&#xff1a; 其物理框图如图所示&#xff1a; 可见&#xff0c;CIC滤波器是由两部分组成&#xff1a;累积器H1和H2梳状滤波器的级…

(附源码)ssm某村青年人口信息管理系统 毕业设计 271621

ssm某村青年人口信息管理系统 摘 要 随着社会的发展&#xff0c;社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;它主要是采用SSM技术和mysql数据库来完…

Python下的Logistic回归模型

以前都是写杂文&#xff0c;今天也写写专业文章。 不讲理论&#xff0c;Logistic回归模型&#xff08;中文简称逻辑回归&#xff09;的形式就是&#xff1a; 其中&#xff0c; 有的人会把Logistic回归模型的形式写成&#xff1a; 其实&#xff0c;它和第一个公式没有区别&…

worldview卫星数据的查询方法

地理遥感生态网平台代理worldview1、worldview2、worldview3、worldview4、quickbird、geoeye、ikonos、 pleiades、spot1、spot2、spot3、spot4、spot5、spot6、spot7、landsat5(tm)、landsat(etm)、landsat8、rapideye、alos、aster、Hyperion(EO-1)、kompsat2、kompsat-3、k…

vue element 动态增加表单并进行表单验证

表单验证: 需要注意的一点是: 普通表单验证单项依靠的是prop…而动态生成的表单要用:prop 书写的语法是:prop=“‘cloudAccounts.’ + index +’.objectDetails’”,cloudAccounts是v-for绑定的数组,index是索引,objectDetails是表单绑定的v-model的名称,然后用.把他们…

一文带你看透天气预报

天气预报是气象台(站)预先发出关于未来一定时期内的天气变化和趋势的报告。气象台运用现代科学技术(如卫星、雷达等)收集了全国甚至全世界的气象资料&#xff0c;根据天气演变规律&#xff0c;进行综合分析&#xff0c;科学判断&#xff0c;然后作出大范围的天气预报。气象站、…

m基于FPGA的分布式FIR滤波器verilog设计,对比普通结构以及DA结构

目录 1.算法描述 2.仿真效果预览 3.verilog核心程序 4.完整FPGA 1.算法描述 DA算法的主要特点是&#xff0c;巧妙地利用查找表将固定系数的MAC运算转化为查表操作&#xff0c;其运算速度不随系数和输入数据位数的增加而降低&#xff0c;而且相对直接实现乘法器而言&#xf…

软件测试面试技巧有哪些?这几点你得知道,不然后悔都来不及

新手测试技术不过硬&#xff0c;最害怕hr在面试时&#xff0c;问到技术方面的问题&#xff0c;那么在进行软件测试面试时&#xff0c;有哪些软件测试面试技巧可以帮助测试人&#xff0c;提高面试通过率呢&#xff1f; 接下来我就给大家总结了几个方面的面试技巧&#xff0c;希望…

【车载开发系列】UDS诊断---写入数据($0x2E)

【车载开发系列】UDS诊断—写入数据&#xff08;$0x2E&#xff09; UDS诊断---写入数据&#xff08;$0x2E&#xff09;【车载开发系列】UDS诊断---写入数据&#xff08;$0x2E&#xff09;一.概念定义二.应用场景三.报文格式1&#xff09;请求报文2&#xff09;肯定响应3&#x…

技术合集 | 【MySQL技术专题】「数据库锁技术」深入浅出透析MySQL数据库的锁基础概念和原理(上下全)

上篇 前提介绍 在计算机科学中&#xff0c;锁是在执行多线程时用于强行限制资源访问的同步机制&#xff0c;即用于在并发控制中保证对互斥要求的满足。 本文内容 本文主要介绍&#xff1a;行级锁、表级锁、页级锁的相关概念以及原理介绍 本文主要介绍&#xff1a;共享锁、排它…

论文速读系列二:YOLO3D、PIXOR、HDNET、Voxel-FPN、Fast Point RCNN

如有错误&#xff0c;恳请指出。 参考网上资料&#xff0c;对一些经典论文进行快速思路整理 文章目录1. YOLO3D2. PIXOR3. HDNET&#xff08;PIXOR&#xff09;4. Voxel-FPN5. Fast Point RCNN1. YOLO3D paper&#xff1a;《YOLO3D: End-to-end real-time 3D OrientedObject B…

领英怎么用多个账号一起开发客户?进阶知识

1.如何注册账号&#xff1f; LinkedIn经历调整 2021年12月14日起&#xff0c;领英(LinkedIn)正式被改版为领英职-场。在改版后的领英职-场上&#xff0c;我们既无法进行主动搜-索客户&#xff0c;添-加好友&#xff0c;也无法查看和发布动态内容&#xff0c;完完全全的变成了一…

ChatGPT 常见错误原因及解决方案:报错、回答不完整等

最近&#xff0c;由人工智能实验室 OpenAI 发布的对话式大型语言模型 ChatGPT 火得一塌糊涂。它可以与人类轻松地对话&#xff0c;无论是多么奇葩的问题 ChatGPT 都不在话下。在体验 ChatGPT 的同时我们也会遇到各种各样的问题&#xff0c;这里我总结了其对话过程中可能会发生的…

springboot中如何实现跨域请求

Springboot中如何处理跨域请求 一.什么是跨域? 我们知道Url的一般格式&#xff1a;协议 域名&#xff08;子域名 主域名&#xff09; 端口号 资源地址 比如&#xff1a; https://www.itquanmingxing.cn:8080/users 是由https www itquanmingxing.cn 8080 users组成…

普通程序员可以怎么做搞钱程序?

最近海洋问题实在是很严重&#xff0c;人类活动带来的垃圾污染等问题使海洋生物得到了很大的压力。 每年鱼类等海洋生物体内的塑料海量越来越多&#xff0c;不仅仅是由于日常人类日常使用的垃圾袋引起的。 还有很多方面的原因&#xff0c;最直接的因素就是去看海的游客遗留下…

云计算自学笔记(不定期更新)

管道命令使用 linux管道相关命令__小笼包_的博客-CSDN博客_linux管道命令 [cut ]&#xff1a;命令的功能是用于按列提取文件内容 按照字符提取命令&#xff1a;head -2 2.txt | cut -c 5 查看前两行&#xff0c;并按照字符提取第五个字符 -c 按照字符提取 截取出…

剑指Offer40——最小的k个数

摘要 剑指 Offer 40. 最小的k个数 一、排序方法 1.1 排序的方法分析 对原数组从小到大排序后取出前 k 个数即可。 1.2 复杂度分析 时间复杂度&#xff1a;O(nlog⁡n)O&#xff0c;其中 n 是数组 arr 的长度。算法的时间复杂度即排序的时间复杂度。 空间复杂度&#xff1a;…

MQ高级(四)MQ集群

一、集群分类 RabbitMQ的是基于Erlang语言编写&#xff0c;而Erlang又是一个面向并发的语言&#xff0c;天然支持集群模式。 RabbitMQ的集群有两种模式&#xff1a; &#xff08;1&#xff09;普通集群&#xff1a;是一种分布式集群&#xff0c;将队列分散到集群的各个节点&…

【Flink】复杂事件处理CEP底层实现(有限状态机)和应用

文章目录一 Flink CEP简介1 什么是复杂事件处理CEP2 Flink CEP&#xff08;1&#xff09;导入依赖&#xff08;2&#xff09;代码编写&#xff08;3&#xff09;优化模板3 实现CEP底层 -- 有限状态机4 使用CEP处理超时事件一 Flink CEP简介 1 什么是复杂事件处理CEP 一个或多…

239页11万字新型智慧城市运营中心IOC大数据平台建设方案

目录 1 概述 1.1 建设目标 1.2 建设内容 1.3 建设步骤 2 项目建设方案 2.1 总体设计方案 2.2 支撑平台方案 2.2.1 数据治理平台 2.2.2 可视化平台 2.2.3 城市感知平台 2.3 应用系统方案 2.3.1 综合监测系统 2.3.2 事件管理系统 2.3.3 联动指挥系统 2.3.4 辅助决策…