1、什么是DMHS 异构双向实时同步?
目前DMHS不仅支持达梦之间的同步,也能支持常用的通用数据库的数据同步,达梦DMHS支持 DM、MySQL、PostgreSQL、DB2、SQLServer、Oracle9i 及以上版本;双向实时同步即源端可以实时同步到目标端,目标端也可以实时同步到源端。
DMHS通过网络,可实现实时备份、异地容灾等功能
2、源端及目标端相关检查
2.1、检查系统信息
用户在安装 DMHS 前,需要检查当前操作系统的相关信息,确认 DMHS 安装程序与当
前操作系统匹配,以保证 DMHS 能够正确安装和运行。可以使用以下命令检查操作系
统基本信息。
#获取系统位数 getconf LONG_BIT [oracle11g@oracle11g ~]$ getconf LONG_BIT 64 ---表示64位 #查询操作系统 release 信息 lsb_release -a --centos 7 CentOS Linux release 7.4.1708 (Core) #查询系统信息 cat /etc/issue Kernel \r on an \m ---centos Linux version 3.10.0-693.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Tue Aug 22 21:09:27 UTC 201 #查询系统名称 uname -a Linux oracle11g 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux |
2.2、检查系统内存与存储空间
2.2.1、检查内存
为了保证 DMHS 的正确安装和运行,要尽量保证操作系统至少 1GB 的可用内存(RAM)。
如果可用内存过少,可能导致 DMHS 安装或启动失败。用户可以使用以下命令检查操作内
存:
#获取内存总大小 [oracle11g@oracle11g ~]$ grep MemTotal /proc/meminfo -h #获取交换分区大小 [oracle11g@oracle11g ~]$ grep SwapTotal /proc/meminfo #获取内存使用详情(可以直接使用这种查看内存) |
2.2.2、检查存储空间
DMHS 完全安装需要 1GB 的存储空间,用户需要提前规划好安装目录,预留足够
|
3、源端安装DMHS及配置参数
3.1、DMHS软件安装
#官网要求
安装 ORACLE 端 DMHS 同步软件
ORACLE 端操作系统上建立 dmhs 同步软件存放目录,并修改目录属主为 oracle 用
户,增加程序执行权限;修改目录属主为 oracle 用户
3.1.1源库安装DMHS软件及配置
1)安装前oracle字符集检查:
#oracle服务端字符集 SQL> select userenv('language') from dual ; USERENV('LANGUAGE') #oracle客户段字符集 #NEED_LIB_PATH环境配置依赖路径: /u01/app/oracle12c/product/12c/db_1/bin:/usr/local/lib |
2)安装DMHS
[oracle12c@oracle12c dm8]$ ./dmhs_V4.2.96_oracle12c_rev114308_rh6_64_veri_20220906.bin -i 1.English(English) |
3)配置DMHS
双向同步源端配置dmhs.hs,通过与单向实时同步配置可以对比出,双向实时同步在源端上也配置上了EXEC执行器;其实也不难理解,源端也可以是目标端,目标端也可以是源端,所以我在这次配置时候不分从目标端开始。
echo ' |
4)、oracle 12数据库配置与修改
1)检查归档日志:如果没有打开需要关闭数据库打开 sqlplus / as sysdba #操作系统认证登陆
2)打开归档 ---一般生产库都是开了归档的 SQL> archive log list;
SUPPLEME SUP --开启数据库最小附加日志及全列日志 SQL> alter database add supplemental log data ; SQL> alter database add supplemental log data (ALL) columns ; --再次检查附加日志: SUPPLEME SUP #检查回收站:回收站是开的,为啥要检查这步还没搞懂 show parameter recycle; NAME TYPE VALUE 12c之前需要关闭回收站,12c之后不用 #检查同步用户权限 --在 DMHS 捕获器中用于连接源端数据库管理系统的数据库用户,若没有 DBA 权限,则 Oracle12C 则还需要加: #查询用户的系统权限 #查询用户的对象权限 4)开启 DDL 同步配置 #查询是否为true
#注意一定要将原始的ddl_sql_ora.sql分开执行,否者会报错,建议使用在sqlplus里运行 create or replace trigger dmhs_trigger -----省略中间的 #执行效果 Table created. 67 /
echo ' |
3.2、DMHS软件安装:oracle 12c配置unixodb
#查询源端没有数据安装ODBC,接下来进行M目标端的数据库 ----既然是双向同步,那就要保证源端也能成为目标端,所以需要配置ODBC #达梦官方文档推荐安装 unixodbc2.3.2 版本的 odbc:(使用root用户安装)
#卸载ODBC make uninstall #odbc.ini 配置: #odbcinst.ini 配置: export LD_LIBRARY_PATH=/u01/app/oracle12c/product/oracle12c/db_1/lib/:/usr/lib export LD_LIBRARY_PATH=$ORACLE_HOME/lib 5)、查看odbc配置文件路径 unixODBC 2.3.2 6)测试ORACLE源端成功登陆到ISQL |
------------------------//源端配置到此结束//---------------------------
4、目标端安装DMHS及配置参数
4.1、DMHS软件安装
----这里不再赘述
4.1.1源库安装DMHS软件及配置
1)、DMHS参数配置 2)、目标端DM8开启归档模式 --1) 设置归档标记和逻辑日志标记。打开 DM8 服务器配置文件“dm.ini”,设置如下值: #查询修改情况: --2) 添加归档配置文件。在“dm.ini”同目录下创建文件“dmarch.ini”,示例内容如下: #(注意:配置完后,重启数据库) #查看归档情况: 已用时间: 128.384(毫秒). 执行号:3. 3)检查逻辑日志配置的正确性,通过下面的查询: 行号 PARA_VALUE 已用时间: 20.685(毫秒). 执行号:4. #注意在配置双向同步的时候,需要把RLOG_APPEND_SYSTAB_LOGIC设置为0 4)检查在线日志,通过如下的查询: ---------- ----------------------------------------
6)配置 DDL:注意注意注意,一定要管理工具运行,否则可能会报错 select owner, table_name from dba_tables where owner = 'SYSDBA' and table_name like 'DMHS%' and status = 'VALID';
8) 同步连接用户&授权 9)、DMHS 前台启动 10)、DMHS 启动 EXEC 模块(这一步启动,主要验证能否登陆成功) #当出现start exec卡着不动时,极有可能是缺少链接库,但是没报错,可使用root用户登陆看看 #在dmhs/bin目录中有18个,如果少了总之缺少就要补进去,主要是环境变量没有配置好才导致的问题 |
4、初始化及数据同步
第一步、启动两台的服务(./dmhs_server dmhs.hs) 第二步、启动两台的执行器(./dmhs_console 输入start exec) #修改软链接:当启动start exec失败时,需修改软链接 第三步、初始化数据字典及装载数据 #目标端执行: 第四步、、启动两台的CPT日志分析捕获器() |
5、实时同步测试
测试方法:既然是双向同步,那就在源端和目标端建立数据,看能否同步到对方 1、源端操作: --插入数据6个字段1百万条记录数据 #结论:在目标端可以查询到数据 2、目标端操作: --插入数据6个字段1百万条记录数据 #结论:在源端可以查询到数据 |
6、注册服务
为什么要把注册服务放到最后一步呢??? 1、源端注册:重启后报错:
可以查看到相应的注册服务。 systemctl start DmhsServiceDMHS_DM
/dm8/dmhs/scripts/root/dmhs_service_installer.sh -t dmhs_server -p DMHS_DM_target -x /dm8/dmhs/bin/dmhs.hs -d /dm8/dmhs/bin #注册完成以后:可以查看到相应的注册服务。 #服务的启停以及开机自启: systemctl start DmhsServiceDMHS_DM |
7、总结
通过ORACLE 12C <->DM8双向实时同步搭建,再对比单向实时同步,主要的区别是配置上的不同,理解其中的架构意义才能最后搭建成功,至少知道他们怎么工作的
-----------------------------------------本文档到此结束---------------------------------------------
更多内容,请访问达梦社区地址:https:eco.dameng.com