一、开启归档和逻辑日志
1.设置归档标记和逻辑日志标记。打开 DM7 服务器配置文件“dm.ini”,设置如下值:
ARCH_INI = 1
RLOG_APPEND_LOGIC = 1
注意:dm.ini 配置参数中“FAST_COMMIT”必须为 0,否则会导致逻辑日志不全而影响同步。
2.添加归档配置文件。在“dm.ini”同目录下创建文件“dmarch.ini”,示例内容如下:
3.重启 DM7 数据库,使配置参数生效。
4.验证配置的正确性
4.1检查归档配置的正确性,请执行以下 SQL 命令:
如果存在以上的查询表示配置归档是正确的。
4.2 检查逻辑日志配置的正确性,通过下面的查询:
查询结果如下:
如果存在以上的查询结果,表示逻辑日志参数配置成功。
4.3检查在线日志,通过如下的查询:
查询结果如下:
如果存在以上的查询结果,表示在线日志正常。
4.4检查 FAST_COMMIT 参数是否为 0
查询结果如下:
如果查询的值为 0 表示正常。
二、DDL同步管理检查
DDL同步功能默认是不支持的,需要在源端数据库进行配置才能使用。开启DDL同步,需要将DMHS安装程序中提供的对应DM7数据库的SQL脚本在源端数据库进行执行,并且需要对DMHS配置文件中的DDL_MASK选项进行配置。DDL同步SQL脚本会在源端数据库的SYSDBA模式下建立相关中间表和触发器。(DDL语句在DMHS安装后的dmhs/scripts文件下)
三、配置 dmhs.hs
dmhs.hs 是 DMHS 默认的配置文件名,如果需要 DDL 同步,那么基本的配置示例如下:
<?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>172.17.188.159</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>
现对以上的基本配置作如下几点说明:
1. siteid:
·每个 DMHS 节点的 siteid 必须全局唯一,不允许重复。
2. DDL 配置:
·若不需要 DDL 同步,则将 DDL_mask 配置为空,无需创建 DDL 触发器和辅助表。
3. 归档清理配置:
·clear_flag 的值决定归档文件的处理方式:
·1: 删除已同步的归档文件
·2: 将已同步的归档文件移动到 bak_dir 目录下
·0: 不进行任何操作
4. 过滤配置:
·可以配置白名单或黑名单进行过滤。
·过滤顺序:先判断白名单,再判断黑名单。
·若白名单和黑名单有重叠,则该对象会被过滤。
5. 映射配置:
·用于配置不同模式之间表的同步,例如将源端 SYSDBA 模式下的表映射到目的端 DMHS 模式下同名的表。
DDL 配置和归档清理配置非常重要,建议参考 DMHS 用户手册了解更多过滤配置的细节。
2.4初始装载
初始装载是将源端数据库中的初始数据装载到目的端数据库,使 DMHS 同步的时刻源和目的端的同步表数据一致。装载前源端 DMHS 服务和目的端 DMHS 服务都需要开启。本示例的目的端 DMHS 使用的是和源端相同环境的 DM7 数据库,其配置详细参见 6 执行端 DMHS DM7 的搭建。
具体的步骤如下:
1.开启目的端 DMHS 服务:
./dmhs_serverd start
2.start 目的端 DMHS:
./dmhs_console
DMHS >connect
DMHS >start
3.开启源端 DMHS 服务:
./dmhs_serverd start
4.初始装载:
./dmhs_console
DMHS >connect
DMHS >copy 0 "sch.name='SYSDBA'" DICT|LSN|CREATE|INSERT|INDEX
四、开启同步
初始装载完成后,则可以开启同步:源端 DMHS:
./dmhs_console
DMHS >start
注:DMHS DM7 单机搭建过程中,需要注意初始装载之后保证源库和目的库的待同步的表数据一致,这样才可以开启 DMHS 同步,否则会导致数据同步失败。