一、准备工作
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 字典
7.源端执行 start cpt
8.同步验证,切机测试
达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台达梦数据库产品体验站,DM8在线试玩,达梦数据库全系列产品免费下载,官方权威的快速上手文档和产品手册,最活跃的达梦技术社区,面向全行业ISV厂商免费的云适配服务。https://eco.dameng.com/