一、准备工作
1.DM8数据库安装
在配置DMHS同步之前,需要安装完成相应的DM8数据库。
2.DMHS安装
根据DM8数据库的类型以及操作系统环境,安装对应的DMHS版本软件。
二、配置部署
1.开启归档和逻辑日志
(1)设置归档标记和逻辑日志标记。打开DM8服务器配置文件“dm.ini”,设置如下值:
ARCH_INI = 1
RLOG_APPEND_LOGIC = 1
注意:dm.ini配置参数中“FAST_COMMIT”必须为0,否则会导致逻辑日志不全而影响同步。(2)添加归档配置文件。在“dm.ini”同目录下创建文件“dmarch.ini”,示例内容如下:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /opt/dmdbms/arch #归档目录
ARCH_FILE_SIZE = 128 #归档文件大小,单位MB
ARCH_SPACE_LIMIT = 0 #空间大小限制,0表示不限制
(3)重启DM7数据库,使配置参数生效。
(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 /opt/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 /opt/dmdbms/arch/src_db01.log
2 /opt/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表示正常。
2.配置DDL
如果要求DDL同步,那么需要创建DDL触发器和辅助表。创建的脚本参见DMHS安装目录下scripts子目录中“ddl_sql_dm8.sql”。注意创建时需要使用SYSDBA用户。可以选择 disql 执行脚本,也可用管理工具执行,注意目的端无需执行。
检查创建的触发器和辅助表是否有效,检查辅助表的语句:
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.配置dmhs.hs
(1)源端
<?xml version="1.0" encoding="GB2312"?>
-<dmhs>
-<base>
<lang>ch</lang>
<mgr_port>5345</mgr_port>
<chk_interval>3</chk_interval>
<ckpt_interval>60</ckpt_interval>
<siteid>1</siteid>
<version>2.0</version>
</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>
<dict_dir>/dbbak/dmhs_dict</dict_dir>
<char_code>PG_GB18030</char_code>
<ddl_mask>OBJ:OP</ddl_mask>
-<arch>
<clear_interval>600</clear_interval>
<clear_flag>1</clear_flag>
</arch>
-<send>
<ip>193.1.1.170</ip>
<mgr_port>5345</mgr_port>
<data_port>5346</data_port>
<net_pack_size>256</net_pack_size>
<net_turns>0</net_turns>
<crc_check>0</crc_check>
<trigger>1</trigger>
<constraint>0</constraint>
<identity>0</identity>
-<filter>
-<enable>
<item>*.*</item>
</enable>
-<disable>
<item>HISDB.*</item>
<item>ALARM.*</item>
<item>FHYC.*</item>
<item>DDJH.*</item>
<item>THSCADA.HISPOINT1MIN*</item>
<item>D5000.SYS_DATABASE_INFO</item>
<item>D5000.SYS_PROC_NETINFO</item>
<item>D5000.MNG_NODE_INFO</item>
<item>D5000.MNG_MODE_APP</item>
<item>D5000.MNG_SYS_DISTRIBUTING_INFO</item>
<item>D5000.MNG_PROCESS_INFO</item>
<item>D5000.MNG_CPU_MEM_INFO</item>
<item>D5000.MNG_NET_STATUS_INFO</item>
<item>D5000.MNG_APP_DUTY_INFO</item>
<item>D5000.MNG_REGION_INFO</item>
<item>D5000.MNG_DISK_NETINFO</item>
<item>D5000.TOKEN_INFO</item>
<item>D5000.OP_INFO</item>
</disable>
</filter>
<map> </map>
</send>
</cpt>
</dmhs>
(2)目的端
<?xml version="1.0" encoding="GB2312"?>
-<dmhs>
-<base>
<lang>ch</lang>
<mgr_port>5345</mgr_port>
<chk_interval>2</chk_interval>
<ckpt_interval>45</ckpt_interval>
<siteid>2</siteid>
</base>
-<recv>
<data_port>5346</data_port>
-<exec>
<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_name/>
<exec_mode>1</exec_mode>
<exec_thr>16</exec_thr>
<exec_sql>512</exec_sql>
<exec_trx>5000</exec_trx>
<exec_rows>250</exec_rows>
<exec_policy>2</exec_policy>
<msg_col_size>8000</msg_col_size>
<level>0</level>
<affect_row>0</affect_row>
-<tag>
<schema>D5000</schema>
<sql>update D5000.DY_DOWNLOAD_SIGNAL set DOWNLOAD_FLAG=0,MODIFY_TIME=sysdate where table_name_eng=lcase('%s');</sql>
<before_commit>0</before_commit>
</tag>
</exec>
</recv>
</dmhs>
4.启动源端与目的端服务
5.启动目的端控制台工具,执行 start exec
6.源端启动控制台工具 copy 字典
![](https://i-blog.csdnimg.cn/blog_migrate/fc4116835bb2dd1c2e516a21bfafa4a7.png)
7.源端执行 start cpt
8.同步验证,切机测试