DM7环境安装DMHS集群

DMHS

源端:192.168.10.129
目的端:192.168.10.131
安装相关包:
yum install -y gcc* odbc* gdb*

1、两台服务器上安装DM7数据库
2、DMHS安装,根据DM7数据库类型及操作系统环境,安装对应DMHS版本软件
3、DM7单机部署(两台服务器同时部署)
3.1 开启归档和逻辑日志
1)设置归档标记和逻辑日志标记。设置dm.ini文件
ARCH_INI = 1
RLOG_APPEND_LOGIC = 1
FAST_COMMIT = 0 #必须为0,否则会导致逻辑日志不全而影响同步。

2)添加归档配置文件。在dm.ini同目录下创建文件dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /data/dmdbms/arch #归档目录
ARCH_FILE_SIZE = 128 #归档文件大小,单位 MB
ARCH_SPACE_LIMIT = 0 #空间大小限制,0 表示不限制

3)重启数据库,使配置参数生效。

4)验证配置的正确性

a) 检查归档配置的正确性,请执行以下 SQL 命令:
SELECT ARCH_DEST, ARCH_FILE_SIZE FROM SYS.V$DM_ARCH_INI WHERE ARCH_TYPE=‘LOCAL’ AND ARCH_IS_VALID=‘Y’;

查询结果如下:
行号 ARCH_DEST ARCH_FILE_SIZE


1 /data/dmdbms/arch 128
已用时间: 128.384(毫秒). 执行号:3.

如果存在以上的查询表示配置归档是正确的。

b) 检查逻辑日志配置的正确性,通过下面的查询:
SELECT PARA_VALUE FROM SYS.V$DM_INI WHERE PARA_NAME = ‘RLOG_APPEND_LOGIC’;

查询结果如下:
行号 PARA_VALUE


1 1
已用时间: 20.685(毫秒). 执行号:4

如果存在以上的查询结果,表示逻辑日志参数配置成功。

c) 检查在线日志,通过如下的查询:
SELECT PATH FROM SYS.V$RLOGFILE;
查询结果如下:
行号 PATH


1 /data/dmdbms/arch/src_db01.log
2 /data/dmdbms/arch/src_db02.log
已用时间: 1.096(毫秒). 执行号:5.

如果存在以上的查询结果,表示在线日志正常。

d) 检查 FAST_COMMIT 参数是否为 0
select para_value from v$dm_ini where para_name = ‘FAST_COMMIT’;

查询结果如下:
行号 PARA_VALUE


1 0
已用时间: 8.691(毫秒). 执行号:585.

如果查询的值为 0 表示正常。

3.2配置DDL同步,创建DDL触发器和辅助表。创建脚本参见DMHS安装目录下scripts子目录中“ddl_sql_dm7.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.
如果存在以上的查询结果,表示 DMHS 辅助表创建有效。

检查触发器的语句:
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.
如果存在以上的查询结果,表示 DMHS 触发器创建有效

3.3配置dmhs.hs
dmhs.hs 是 DMHS 默认的配置文件名,如果需要 DDL 同步,那么基本的配置示例如下:
切换至dmdba用户,在/home/dmdba/dmhs/bin2下创建dmhs.hs

源端配置文件
DM7环境安装DMHS集群
目的端配置文件
DM7环境安装DMHS集群

现对以上的基本配置作如下几点说明:

  1. siteid 全局唯一,即 DMHS 同步系统涉及的所有节点的 siteid 必须全局唯一,不允
    许有重复值。

  2. DDL 配置项,如果不需要 DDL 同步,那么就配置为空,即<ddl_mask></ddl_mask>,
    相应地 DMHS DDL 触发器和辅助表也不需要创建。

  3. 归档清理配置项,clear_flag 为 1 表示清除,即 DMHS 将同步完成的归档文件删除;
    为 2,表示将同步完成的归档移到 bak_dir 目录下;为 0,表示不作任何操作。

  4. 过滤配置项,本示例配置了白名单,即 enable,也可以配置黑名单,详见 DMHS
    用户手册。其过滤的规则是:先判断白名单,然后判断黑名单。如果存在重叠的情况,那么
    也是会被过滤的。

  5. 映射配置项,表示存在不同模式之间的表同步,例如本示例中源端的 SYSDBA 模
    式下的表映射成目的端的 DMHS 模式下同名的表。

    3.4开启源端服务
    配置完成之后,则可以启动 DMHS 服务:dmhs_server。
    Linux:
    ./dmhs_serverd start
    Windows:
    net start dmhs_server

cd /home/dmdba/dmhs/bin/service_template
cp DmhsService …/…/bin2
DM7环境安装DMHS集群

3.5初始装载
初始装载是将源端数据库中的初始数据装载到目的端数据库,使 DMHS 同步的时刻源和目的端的同步表数据一致。装载前源端 DMHS 服务和目的端 DMHS 服务都需要开启。

具体步骤如下:
1)开启目的端DMHS服务
./DmhsService start
2)start目的端DMHS
./dmhs_console
DMHS >connect #connect 192.168.10.131:5346
DMHS >start #start exec
启动界面如下:
DM7环境安装DMHS集群

3)开启源端DMHS服务
./DmhsService start
4)初始装载
./dmhs_console
DMHS >connect #connect 192.168.10.129:5346
DMHS >copy 0 “sch.name=‘SYSDBA’” DICT|LSN|CREATE|INSERT|INDEX
copy 0 “sch.name=‘SYSDBA’” DROP|CREATE|INSERT|DICT|
DMHS >start cpt
DM7环境安装DMHS集群

DMHS DM7 单机搭建过程中,需要注意初始装载之后保证源库和目的库的待同步的表数据一致,这样才可以开启 DMHS 同步,否则会导致数据同步失败。