達夢數據庫主備搭建(數據守護)


話不多說,上環境和操作方法:

一、環境准備

首先主備,要規划好機器的,我准備了兩台機器,主節點master:192.168.107.111 ,從節點slave:192.168.107.112。

主節點數據庫測試實例名:master 兩者端口同為5240
從節點數據庫測試實例名:slave

dm_ini文件位置:/DMINSTALL/database/dmsql/dm.ini
back備份位置:/DMINSTALL/back
arch歸檔文件存放路徑:/DMINSTALL/arch

二、主備庫數據同步

同步原理:主節點的數據備份,通過SCP到從節點,然后從節點回滾主節點的數據庫備份文件,做到主從同步。

1、主從節點創建實例master:

./dminit PATH=/DMINSTALL/database/ DB_NAME=master INSTANCE_NAME=master PORT_NUM=5240
./dm_service_installer.sh -t dmserver -dm_ini /DMINSTALL/database/master/dm.ini -p master

 

 2、主節點脫機備份

BACKUP DATABASE '/DMINSTALL/database/master/dm.ini' BACKUPSET '/DMINSTALL/back',執行完畢之后,會生成一個備份文件,通過scp命令傳輸到從庫的/DMINSTALL/  目錄下面,若scp命令不熟悉的,可以利用xftp工具,手動拖包到從節點機器,該處注意back包的用戶權限。

 

主節點的備份文件以及傳過去了,那現在要干什么呢?

3、從庫執行數據庫還原。

從庫:

RESTORE DATABASE '/DMINSTALL/database/master/dm.ini' FROM BACKUPSET '/DMINSTALL/back'

RECOVER DATABASE '/DMINSTALL/database/master/dm.ini' UPDATE DB_MAGIC

 

三、主從配置文件(配置文件路徑無具體說明,都與dm.ini文件路徑同級)

1、修改dm.ini

ALTER_MODE_STATUS = 0     #不允許手工方式修改實例模式/狀態/OGUID
ENABLE_OFFLINE_TS = 2       #不允許備庫 OFFLINE 表空間
MAL_INI= 1      #打開 MAL 系統
ARCH_INI = 1   #打開歸檔配置

2、增加文件dmmal.ini

vim ./dmmal.ini

 

 3、配置 vim./dmarch.ini

主節點:
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #實時歸檔類型
ARCH_DEST = slave #實時歸檔目標實例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地歸檔類型
ARCH_DEST = /DMINSTALL/arch #本地歸檔文件存放路徑
ARCH_FILE_SIZE = 128 #單位 Mb,本地單個歸檔文件最大值
ARCH_SPACE_LIMIT = 0 #單位 Mb,0 表示無限制,范圍 1024~4294967294M

從節點:
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #實時歸檔類型
ARCH_DEST = master #實時歸檔目標實例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地歸檔類型
ARCH_DEST = /DMINSTALL/arch #本地歸檔文件存放路徑
ARCH_FILE_SIZE = 128 #單位 Mb,本地單個歸檔文件最大值
ARCH_SPACE_LIMIT = 0 #單位 Mb,0 表示無限制,范圍 1024~4294967294M

 

 4、配置守護進程 vim ./dmwatcher.ini

主庫:
[GRP1]
DW_TYPE = GLOBAL #全局守護類型
DW_MODE = AUTO #自動切換模式
DW_ERROR_TIME = 10 #遠程守護進程故障認定時間
INST_RECOVER_TIME = 60 #主庫守護進程啟動恢復的間隔時間
INST_ERROR_TIME = 10 #本地實例故障認定時間
INST_OGUID = 453331 #守護系統唯一 OGUID 值
INST_INI = /DMINSTALL/database/master/dm.ini #dm.ini 配置文件路徑
INST_AUTO_RESTART = 1 #打開實例的自動啟動功能
INST_STARTUP_CMD = /DMINSTALL/bin/dmserver #命令行方式啟動
RLOG_SEND_THRESHOLD = 0 #指定主庫發送日志到備庫的時間閥值,默認關閉
RLOG_APPLY_THRESHOLD = 0 #指定備庫重演日志的時間閥值,默認關閉
從庫:
[GRP1]
DW_TYPE = GLOBAL #全局守護類型
DW_MODE = AUTO #自動切換模式
DW_ERROR_TIME = 10 #遠程守護進程故障認定時間
INST_RECOVER_TIME = 60 #主庫守護進程啟動恢復的間隔時間
INST_ERROR_TIME = 10 #本地實例故障認定時間
INST_OGUID = 453331 #守護系統唯一 OGUID 值
INST_INI = /DMINSTALL/database/slave/dm.ini #dm.ini 配置文件路徑
INST_AUTO_RESTART = 1 #打開實例的自動啟動功能
INST_STARTUP_CMD = /DMINSTALL/bin/dmserver #命令行方式啟動
RLOG_SEND_THRESHOLD = 0 #指定主庫發送日志到備庫的時間閥值,默認關閉
RLOG_APPLY_THRESHOLD = 0 #指定備庫重演日志的時間閥值,默認關閉

 

 四、啟動主從庫

首先啟動主庫:

以 Mount 方式啟動主庫
./dmserver /DMINSTALL/database/master/dm.ini mount

 

 

啟動命令行工具 DIsql,登錄主庫設置 OGUID 值。主庫修改數據庫為 Primary 模式
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(453331);
alter database primary;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

 

 

從庫操作一樣(注意文件路徑):

以 Mount 方式啟動從庫
./dmserver /DMINSTALL/database/slave/dm.ini mount

啟動命令行工具 DIsql,登錄備庫設置 OGUID 值為 453331
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(453331);
alter database standby;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

 

 五、配置監聽dmmonitor.ini (改文件房主主從節點均可,只要配置其中一個)

因為之前已經規划好了主從節點,所以我把監聽ini文件放在了主節點上面。

vim ./dmmonitor.ini

MON_DW_CONFIRM = 1 #確認監視器模式
MON_LOG_PATH = /DMINSTALL/jtlog #監視器日志文件存放路徑
MON_LOG_INTERVAL = 60 #每隔 60s 定時記錄系統信息到日志文件
MON_LOG_FILE_SIZE = 32 #每個日志文件最大 32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件總占用空間
[GRP1]
MON_INST_OGUID = 453331 #組 GRP1 的唯一 OGUID 值
#以下配置為監視器到組 GRP1 的守護進程的連接信息,以“IP:PORT”的形式配置
#IP 對應 dmmal.ini 中的 MAL_HOST,PORT 對應 dmmal.ini 中的 MAL_DW_PORT
MON_DW_IP = 192.168.107.111:52141
MON_DW_IP = 192.168.107.112:52142

 

 配置好監聽之后,啟動主從守護進程:

主: ./dmwatcher /DMINSTALL/database/master/dmwatcher.ini
從:   ./dmwatcher /DMINSTALL/database/slave/dmwatcher.ini

 

 

啟動監聽

./dmmonitor /DMINSTALL/database/master/dmmonitor.ini

 

 至此守護配置已完成。提示:如果到了這一步,監聽不到從節點,在你確保你的配置文件沒出錯的前提下,一定要注意從節點的防火牆,我首次搭建也是監聽不打,后面關閉防火牆重新啟動監聽,就可以了。

 

 主備注冊新的服務,登陸數據庫測試驗證

 

 

以上操作純自己參考達夢官方文檔和網上資料搭建的,如有錯誤的地方,歡迎廣大道友指評批判。


免責聲明!

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



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