DHMS 搭建(達夢到達夢)


DMHS軟件概述
​ DMHS全稱是Heterogeneous database Synchronization for DM,即達夢異構數據庫同步軟件。DMHS是基於數據庫日志,支持同構、異構數據庫的實時同步軟件,可以實現雙業務中心架構。
​ DMHS軟件功能非常豐富,支持多種架構場景,主流數據實時同步軟件的相關功能DMHS都已實現並且根據實際業務需求豐富了更多功能。主流的數據實時同步軟件主要有:Oracle GoldenGate、DSG RealSync、Quest Shareplex等。

搭建准備

准備兩台虛擬機,都安裝上dm8 /dm8),都安裝dmhs軟件(/dm8/dmhs),初始化兩個數據庫,源端數據庫IP: 192.168.118.11:5236 目的端數據庫IP:192.168.118.12:5236

開啟歸檔和邏輯日志(兩台都要配置)

1 設置歸檔標記和邏輯日志標記。打開 DM8服務器配置文件“dm.ini”,設置如下值:

ARCH_INI = 1

RLOG_APPEND_LOGIC = 1

 2 添加歸檔配置文件。在“dm.ini”同目錄下創建文件“dmarch.ini”,示例內容如下:

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /dm8/arch #歸檔目錄

ARCH_FILE_SIZE = 128 #歸檔文件大小,單位 MB

ARCH_SPACE_LIMIT = 0 #空間大小限制,0 表示不限制

3 重啟 DM8 數據庫,使配置參數生效。

 4 驗證配置的正確性

a) 檢查歸檔配置的正確性,請執行以下 SQL 命令:

SELECT ARCH_DEST, ARCH_FILE_SIZE FROM SYS.V$DM_ARCH_INI WHERE ARCH_TYPE='LOCAL'AND ARCH_IS_VALID='Y';

b) 檢查邏輯日志配置的正確性,通過下面的查詢:

SELECT PARA_VALUE FROM SYS.V$DM_INI WHERE PARA_NAME = 'RLOG_APPEND_LOGIC';

 

 c) 檢查在線日志,通過如下的查詢:

SELECT PATH FROM SYS.V$RLOGFILE;

 

 d) 檢查 FAST_COMMIT 參數是否為 0

select para_value from v$dm_ini where para_name = 'FAST_COMMIT';

開啟DDL同步參數 (不建議開啟
第一種:
首先查詢數據庫系統參數“RLOG_APPEND_SYSTAB_LOGIC”是否開啟,該參數啟用在日志中記錄系統表邏輯操作功能。該參數默認取值為0,即不啟用;設置為1時,啟用該功能。
使用SQL查詢該參數的值:

select * from v$dm_ini where para_name='RLOG_APPEND_SYSTAB_LOGIC';

調用系統過程,開啟RLOG_APPEND_SYSTAB_LOGIC參數的值為1

SP_SET_PARA_VALUE(2,'RLOG_APPEND_SYSTAB_LOGIC',1);

開啟DDL同步參數,后面還需要在DMHS配置文件中進行ddl_mask參數配置,用於設置DDL同步對象及操作。
第二種:
執行DDL同步腳本方式。在源端DM7數據庫中以SYSDBA用戶執行DDL同步腳本,在SYSDBA模式下創建相關DMHS系統表及觸發器,並在DMHS配置文件中配置ddl_mask參數選項以啟用該功能。
同步腳本位於DMHS安裝目錄的scripts子目錄下

配置 dmhs.hs

1 在源端機器上dmhs安裝路徑下編寫dmhs.hs

<?xml version="1.0" encoding="GB2312" standalone="no"?>
<dmhs>
<base>
<lang>ch</lang>
<version>2.0</version>
<mgr_port>5345</mgr_port>
<chk_interval>3</chk_interval>
<ckpt_interval>60</ckpt_interval>
<siteid>1</siteid>
</base>
<cpt>
<db_type>DM8</db_type>
<db_server>127.0.0.1</db_server>
<db_port>5236</db_port>
<db_user>SYSDBA</db_user>
<db_pwd>SYSDBA</db_pwd>
<parse_thr>1</parse_thr>
<ddl_mask>TABLE:OPERATION</ddl_mask>
<arch>
<clear_interval>600</clear_interval>
<clear_flag>2</clear_flag>
<bak_dir>/dm8/arch/</bak_dir>
</arch>
<send>
<ip>192.168.118.12</ip>
<mgr_port>5345</mgr_port>
<data_port>5346</data_port>
<filter>
<enable>
<item>SYSDBA.*</item>
<item>SYSDBA.TEST</item>
<item>SYSDBA.##HISTOGRAMS_TABLE</item>
<item>SYSDBA.TEST2</item>
</enable>
<disable>
<item>SYSDBA.TEST</item>
<item>SYSDBA.##PLAN_TABLE</item>
<item>SYSDBA.##HISTOGRAMS_TABLE</item>
</disable>
</filter>
<map>
<item>SYSDBA.TEST==TEST.TEST</item>
<item>SYSDBA.*==SYSDBA.*</item>
<item>SYSDBA.TEST1==SYSDBA.T1</item>
<item>SYSDBA.TEST2==SYSDBA.TEST2</item>
</map>
</send>
</cpt>
</dmhs>

 2 在目的端192.168.118.124編寫dmhs.hs

<?xml version="1.0" encoding="GB2312" standalone="no"?>
<dmhs>
<base>
<lang>ch</lang>
<version>2.0</version>
<mgr_port>5345</mgr_port>
<chk_interval>3</chk_interval>
<ckpt_interval>60</ckpt_interval>
<siteid>2</siteid>
</base>
<exec>
<recv>
<data_port>5346</data_port>
</recv>
<db_type>DM8</db_type>
<db_server>127.0.0.1</db_server>
<db_port>5236</db_port>
<db_user>SYSDBA</db_user>
<db_pwd>SYSDBA</db_pwd>
<recv_caches>8</recv_caches>
<trxid_tables>1</trxid_tables>
<exec_thr>4</exec_thr>
<exec_sql>1024</exec_sql>
<exec_trx> 5000 </exec_trx>
<exec_rows>1000</exec_rows>
<enable_merge>1</enable_merge>
<affect_row>1</affect_row>
<enable_ckpt_range>0</enable_ckpt_range>
<update_duplicate>0</update_duplicate>
</exec>
</dmhs>

開啟目標 DMHS 服務 

./dmhs_serverd start

./dmhs_console

DMHS >connect

DMHS >start

開啟源端 DMHS 服務: 初始裝載:

./dmhs_serverd start

./dmhs_console

DMHS >connect

DMHS >copy 0 "sch.name='SYSDBA'" DICT|LSN|CREATE|INSERT|INDEX

DMHS >start

常見報錯,啟動服務時如下

 修改dmhs.serverd 文件

 

配置環境變量 vim /etc/profile

PATH=$PATH:$HOME/bin
export PATH
export DMHS_HOME=/dm8/dmhs
export LD_LIBRARY_PATH=/dm8/dmhs/bin:$LD_LIBRARY_PATH:/dm8/bin

還是報錯。刪掉 dmhs.key ,啟動成功

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM