目錄
概述
安裝規劃
安裝步驟
上傳安裝包
更改權限
執行安裝命令
源端和目的端處理
開啟歸檔
開啟邏輯日志
?創建測試表
生成測試數據
?配置目的端文件
配置源端文件
?啟動目的端
啟動源端
裝載數據
?源端開啟cpt模塊
?數據同步驗證
隨機數據驗證?
概述
達夢數據實時同步軟件(DMHS)是支持異構環境的高性能、高可靠、高可擴展數據庫實時同步復制系統。該產品采用基于日志的結構化數據復制技術,不依賴主機上源數據庫的觸發器或者規則,對主機源數據庫系統幾乎無影響,能以極少的系統開銷實現秒級數據實時同步復制。DMHS基于成熟的關系數據模型和標準接口,支持多種軟硬件平臺,能夠靈活的配置出一對一、一對多、多對一、多對多以及級聯等多種形式的復制拓撲結構,可以廣泛應用于應急系統、容災備份、負載均衡、數據移植、聯機維護、訂閱分發、多業務中心等業務領域。
安裝規劃
在源端和目的端進行單向數據同步安裝,源端IP:192.168.153.130,目的端IP:192.168.153.131
安裝步驟
上傳安裝包
將DMHS安裝包上傳至虛擬機(本次上傳路徑為/opt目錄下,源端和目的端都要上傳)
更改權限
采用root用戶執行下面的命令:
chown -R dmdba:dinstall /optchmod -R 755 /opt
切換至dmdba用戶
su dmdba
執行安裝命令
使用dmdba用戶執行下面的安裝命令(-i為命令行安裝的方式,源端和目的端都需要進行安裝)
./dmhs_V4.3.36_dm8_rev181880_rh6_64_20250218_sp3.bin -i
語言選擇:選擇2簡體中文
?
選擇1免費試用達夢數據實時同步
選擇2安裝完整版
選擇安裝目錄(本次默認安裝目錄,直接回車即可)
這里選擇統一部署
遠程部署工具名稱默認即可
主機IP通過ifconfig查看后輸入本機可被訪問的IP地址即可
web服務內置庫默認即可
依賴庫路徑選擇dm數據庫安裝目錄下的bin目錄和dmhs安裝目錄下的bin目錄,中間用:隔開
/home/dmdba/dmdbms/bin:/home/dmdba/dmhs/bin?
?
所有的服務選擇手動啟動,至此dmhs安裝完成,安裝路徑為/home/dmdba/dmhs
源端和目的端處理
開啟歸檔
源端和目的端使用管理工具或disql登錄數據庫,執行下面的命令(路徑更換為自己的路徑即可)開啟歸檔
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG ;
ALTER DATABASE ADD ARCHIVELOG 'TYPE=LOCAL, DEST = /dmdata/arch, file_size=128, space_limit=1024';
ALTER DATABASE OPEN ;
?驗證歸檔是否開啟:
select para_value from v$dm_ini where para_name in ('ARCH_INI');
結果顯示為1,表示開啟歸檔
開啟邏輯日志
源端和目的端采用下面的命令開啟邏輯日志
SP_SET_PARA_VALUE(1,'RLOG_APPEND_LOGIC',1);
?驗證邏輯日志是否開啟
select para_value from v$dm_ini where para_name in ('RLOG_APPEND_LOGIC');
結果顯示為1表示開啟邏輯日志
?創建測試表
在源端SYSDBA模式下新建一張測試表,字段如下:
create table EMPLOYEES
(EMPLOYEEID INT not null, //非空 主鍵,自增列NATIONALNO VARCHAR(18) not null, //非空 身份證號碼PERSONID INT not null, //非空 指向 PERSON.PERSONID 的外鍵LOGINID VARCHAR(256) not null, //非空 用戶登錄 IDTITLE VARCHAR(50) not null,// 非空 職位MANAGERID INT, //空BIRTHDATE DATE not null, //非空 出生日期MARITALSTATUS CHAR(1) not null,// 非空 S=未婚 M=已婚PHOTO IMAGE,// 空 照片HAIRDATE DATE not null, //非空 入職時間SALARY DEC(19,4) not null
);
生成測試數據
利用sqlark工具生成1萬條測試數據
?配置目的端文件
在目的端DMHS安裝目錄下的bin目錄下,新建dmhs.hs配置文件
內容如下:
<?xml version="1.0" encoding="GB2312"?>
<dmhs><base> <!-- 管理模塊的基本配置 --><lang>en</lang> <!-- 語言選項,ch 為中文,en 為英文 --><mgr_port>5345</mgr_port> <!-- 管理端口號,默認為5345--><ckpt_interval>60</ckpt_interval> <!-- 檢查點間隔,默認60 --><siteid>2</siteid> <!-- 站點ID,這個ID配置時要注意,全局唯一,最小值0,最大值65535 --><version>2.0</version>
</base>
<exec> <!-- 執行模塊的基本配置 --><recv><data_port>5346</data_port> <!-- 當數據傳遞采用網絡直連時,需要配置該參數,表明同步數據從該端口號獲取。 --></recv><db_type>dm8</db_type> <!-- 目標端數據庫類型 --><db_server>192.168.153.131</db_server> <!-- 目標端數據庫服務名或IP --><db_user>SYSDBA</db_user> <!-- 目標端數據庫用戶 --><db_pwd>DMwzy6870</db_pwd> <!-- 用戶的密碼 --><db_port>5236</db_port> <!-- 目標端數據庫端口 --><db_name></db_name> <!-- 默認數據庫名,默認為空串(只針對dm6有用)--><char_code>PG_GB18030</char_code><exec_thr>4</exec_thr> <!-- 執行線程個數,只有當 exec_mode 為 1 時才會生效!默認為1 --><exec_sql>1024</exec_sql> <!-- SQL 緩存大小,默認為 512M --><exec_trx> 5000 </exec_trx> <!-- 事務緩存個數,默認為 5000 --><exec_rows>1000</exec_rows> <!-- 批量綁定行數,默認為 250 --></exec>
</dmhs>
將目的端數據庫的IP、端口號、用戶名和密碼修改為自己機器的即可,其他選項可默認
配置源端文件
在源端DMHS安裝目錄下的bin子目錄,新建dmhs.hs配置文件
<?xml version="1.0" encoding="GB2312"?>
<dmhs><base>
<lang>en</lang><mgr_port>5345</mgr_port><ckpt_interval>60</ckpt_interval><siteid>1</siteid>
<version>2.0</version></base><cpt><db_type>dm8</db_type><db_server>192.168.40.141</db_server><db_user>SYSDBA</db_user><db_pwd>dameng123</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>0</clear_flag></arch><send><!-- 發送模塊配置 --><ip>192.168.40.142</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.*==SYSDBA.*</item></map></send></cpt>
</dmhs>
將源端數據庫的IP、端口號、用戶名和密碼修改為自己機器的即可,將發送模塊配置下面的IP替換為目的端的IP即可,其他選項可默認,映射配置選項選擇想要同步的模式和表即可
?啟動目的端
在第一個終端bin目錄下執行下面的命令:
./dmhs_server dmhs.hs
重新啟動一個終端,在bin目錄下執行下面的命令?
./dmhs_console?
隨后執行start exec命令
?
第一個終端顯示如下:
啟動源端
在第一個終端bin目錄下執行下面的命令:
./dmhs_server dmhs.hs
重新啟動一個終端,在bin目錄下執行下面的命令
./dmhs_console
?隨后執行下面的命令初始化日志的起始位置
clear exec lsn
此處紅色錯誤需要將源端dmhs.hs文件中的<ddl_mask>op:obj</ddl_mask> <!--DDL 配置項-->設置為<ddl_mask>0</ddl_mask> <!--DDL 配置項-->?
裝載數據
在源端執行下面的命令進行數據裝載
copy 0 "sch.name='SYSDBA'" DICT|LSN|CREATE|INSERT|INDEX
目的端數據裝載過程展示:
數據裝載成功:
源端數據裝載展示:
?源端開啟cpt模塊
在./dmhs_console啟動的命令行中執行start cpt命令,即可實現數據同步
?數據同步驗證
在源端的表中新生成1000條數據,驗證目的端的數據條數
源端:
目的端:
隨機數據驗證?
在源端使用select * from sysdba.EMPLOYEES limit 1;查詢一條語句,在目的端采用唯一標識select * from sysdba.employees where nationalno='sCk7Y1s9Tb9zLku'進行查詢。查看兩條數據是否一致。如下圖所示,結果一致
至此,DMHS單向dm8-dm8搭建完成。
達夢社區地址:達夢數據庫 - 新一代大型通用關系型數據庫 | 達夢在線服務平臺https://eco.dameng.com/