博客 / 詳情

返回

達夢數據庫V8數據守護集羣配置[1]

1 概述

1.1 達夢數據庫集羣簡介

  達夢數據庫提供了三種集羣,分別為數據守護集羣(Data Watch - DMDW)、共享存儲集羣(Data Shared Cluster - DMDSC)、分佈式集羣(Distributed Processing Cluster - DMDPC)。
  其中,數據守護集羣由一個主庫和多個實時歸檔備庫組成,主庫提供完成的數據庫功能,備庫只提供只讀服務。當主庫出現故障時,備庫切換為主庫並繼續對外提供服務。數據守護集羣應用的主要目的是提高數據庫可用性,保障數據安全,支持應用讀寫分離。
  共享存儲集羣允許多個數據庫實例同時訪問、操作同一個數據庫存儲。每個數據庫實例都可以對外提供完整的數據庫服務,數據文件、控制文件在集羣中只有一份,每個節點有獨立的日誌,文件和日誌都存儲在共享存儲上。共享存儲集羣應用的主要目的是提高吞吐量,實現負載均衡。
  分佈式集羣由一個計劃生成節點(SQL Processor - SP)、多個數據存儲節點(Backend Processor - BP)和元數據服務節點(Metadata Processor - MP)組成。每組BP、MP節點中又存在一主多備。分佈式集羣的特點是高可用、高擴展、高性能、高吞吐量和透明易用等。

1.2 達夢數據守護集羣原理

  達夢數據守護集羣的實現原理為:將主庫產生的 REDO 日誌傳輸到備庫,備庫接收並重新應用 REDO 日誌,從而實現備庫與主庫的數據同步。達夢數據守護的核心思想是監控數據庫狀態,獲取主、備庫數據同步情況,為 REDO 日誌傳輸與重演過程中出現的各種異常情況提供一系列的解決方案。達夢數據守護系統主要由主庫、備庫、REDO 日誌、REDO 日誌傳輸、REDO 日誌重演、守護進程(dmwatcher)、監視器(dmmonitor)組成,如下圖所示:
image.png
  達夢數據守護集羣,由數據庫實例服務、守護進程服務、監視進程服務共同實現,其中數據庫實例服務涉及數據庫實例配置(dm.ini)、歸檔配置(dmarch.ini)、鏈路配置(dmmal.ini),守護進程服務涉及守護配置(dmwatcher.ini),監視進程服務涉及監視配置(dmmonitor.ini)。數據庫實例服務、守護進程服務、監視進程服務可以運行在同一台服務器上,監視進程服務也可以運行在單獨的服務器上,如果要實現數據守護的自動故障切換,達夢要求監視進程服務為奇數個。

1.3 數據守護集羣使用模式

1.3.1 一主一備模式

  一主一備模式,即一台服務器作為主庫服務器,一台服務器作為備庫服務器,主庫服務器性能優於備庫服務器,主庫服務器、備庫服務器上運行數據庫實例服務、守護進程服務,備庫服務器上還運行監視進程服務。
  正常使用時,主庫服務器提供完整的數據庫功能,備庫服務器只提供讀服務。當主庫服務器故障時,備庫服務器上運行監視進程服務自動完成主備切換,備庫服務器提供完整的數據庫功能。當主庫服務器恢復後,再手工進行主備切換,仍由主庫服務器提供完整的數據庫功能。
  該模式適用於不對稱的服務器配置,目標是保障數據不丟失,服務不停止,兼顧讀寫分離。

1.3.2 一主一備一監視模式

  一主一備一監視模式,即一台服務器作為主庫服務器,一台服務器作為備庫服務器,一台服務器作為監視服務器,主庫服務器與備庫服務器性能相當,監視服務器只需要較小的資源。主庫服務器、備庫服務器上運行數據庫實例服務、守護進程服務、監視進程服務,監視服務器上只運行監視進程服務。
  正常使用時,主庫或備庫服務器均可提供完整的數據庫功能,另一台備庫或主庫服務器只提供讀服務,當其中提供完整的數據庫功能的服務器出現故障時,另外兩台服務器上的監視進程服務自動完成主備切換。當故障的服務器恢復後,可以切換回來也可以不切換。考慮服務器使用平衡,可以每隔一段時間,進行一次主備切換。如果監視服務器出現故障,也不影響數據庫服務器正常使用。
  該模式適用於對稱的服務器配置,目標是保障數據不丟失,服務不停止,可以實現讀寫分離,具備自動切換能力,可靠性比較好。

1.3.3 一主多備模式

  一主多備模式,即一台服務器作為主庫服務器,兩台或更多的服務器作為備庫服務器,主庫服務器與備庫服務器性能相當。每台主庫服務器、備庫服務器上運行數據庫實例服務、守護進程服務、監視進程服務。正常使用時,任何一台服務器均可切換為主庫模式提供完整的數據庫功能,其他服務器為備庫模式只提供讀服務。當主庫模式的服務器故障時,其他服務器上運行的監視服務會將選舉其中一台服務器切換為主庫模式。當故障的服務器恢復後,可以切換回來也可以不切換。考慮服務器使用平衡,可以每隔一段時間,進行一次主備切換。
  該模式適用於對稱的服務器配置,目標是保障數據不丟失,服務不停止,實現讀寫分離可對外可提供較大規模的讀服務,具備自動切換能力,可靠性比較好,但需要的服務器資源比較多。

1.3.4 結合共享存儲模式

  數據守護集羣可以結合共享存儲集羣共同使用,共享存儲集羣整體作為主庫對外提供完整的數據庫功能,一台獨立的服務器作為備庫與共享存儲集羣形成數據守護集羣。當共享存儲集羣出現故障時,備庫服務器上運行監視進程服務自動完成主備切換,備庫服務器提供完整的數據庫功能。當主庫服務器恢復後,再手工進行主備切換,仍由主庫服務器提供完整的數據庫功能。
  該模式適用於不對稱的服務器配置,目標是正常時提供負載均衡、高吞吐量,異常時保障數據不丟失,服務不停止,具備自動切換能力,可靠性比較好,但結構複雜。
image.png

2 數據守護集羣規劃

  本次配置數據守護集羣規劃三台主機,採用一主一備一監視模式,服務具體參數如下,其中加#的配置項使用的是默認值:

配置項 主機一 主機二 主機三
對外IP地址 192.168.20.101 192.168.20.102 192.168.20.103
管理員用户 kylin kylin kylin
數據庫用户 dameng dameng dameng
數據庫程序目錄# ~/dmdbms/ ~/dmdbms/ ~/dmdbms/
數據庫目錄# ~/dmdbms/data ~/dmdbms/data ~/dmdbms/data
數據庫實例目錄# ~/dmdbms/data/DAMENG ~/dmdbms/data/DAMENG
數據庫名稱# DAMENG DAMENG
實例名稱 DASERVER1 DASERVER1
實例端口# 5236 5236
實例字符集 UTF-8
歸檔日誌目錄# arch arch
備份數據目錄# bak bak
MAL系統監聽端口 5336 5336
實例守護進程端口 5436 5436
實例守護請求端口 5536 5536
數據庫配置文件# dm.ini dm.ini
歸檔配置文件 dmarch.ini dmarch.ini
鏈路配置文件 dmmal.ini dmmal.ini
守護配置文件 dmwatcher.ini dmwatcher.ini
監視配置文件 dmmonitor.ini dmmonitor.ini dmmonitor.ini
監視進程監聽端口 8341 8342 8343
監視器系統ID 45614
聯機日誌文件魔數 142857

3 安裝達夢數據庫

  在規劃的三台主機上安裝達夢數據庫軟件。

3.1 安裝環境

  Hyper-V虛擬機環境,每台虛擬機分配4G內存,64G硬盤。
  操作系統,銀河麒麟V10桌面版國防版(Kylin-Desktop-V10-GFB-HWE-Release-020-X86_64.iso)。
  MobaXterm Professional Edition v20.2。

3.2 安裝前準備

3.2.1 修改系統限制

  使用管理員用户修改/etc/security/limits.conf文件,加入以下內容。修改完成後,重新啓動計算機。

kylin@KL1:~$ sudo vi /etc/security/limits.conf
…………
dameng          soft    nice            65536
dameng          hard    nice            65536
dameng          soft    as              unlimited
dameng          hard    as              unlimited
dameng          soft    fsize           unlimited
dameng          hard    fsize           unlimited
dameng          soft    nproc           65536
dameng          hard    nproc           65536
dameng          soft    nofile          65536
dameng          hard    nofile          65536
dameng          soft    core            unlimited
dameng          hard    core            unlimited
dameng          soft    data            unlimited
dameng          hard    data            unlimited
…………
kylin@KL1:~$ sudo shutdown -r now

3.2.2 創建達夢用户

  使用管理員用户創建達夢用户,只簡單地創建一個dameng用户及默認組即可。

kylin@KL1:~$ sudo adduser dameng
正在添加用户"dameng"...
正在添加新組"dameng" (1001)...
正在添加新用户"dameng" (1001) 到組"dameng"...
創建主目錄"/home/dameng"...
正在從"/etc/skel"複製文件...
新的密碼:
重新輸入新的密碼:
passwd:已成功更新密碼
Changing the user information for dameng
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
這些信息是否正確? [Y/n] y

3.2.3 掛載安裝盤

  麒麟插入光盤後,默認掛載會對普通用户無權限訪問,可以手動掛載。

kylin@KL1:/$ sudo umount /dev/cdrom
kylin@KL1:/$ sudo mount -t iso9660 /dev/cdrom /mnt/

3.3 圖形方式安裝

  使用dameng用户,在/mnt目錄執行DMInstall.bin。正常情況可以彈出安裝嚮導窗體。
image.png
image.png
image.png
image.png
  試用版沒有Key文件,安裝後可以使用到試用版發佈日期之後的一年,過期後,可以重啓動數據庫服務,延長兩週的試用期。
image.png
image.png
  測試環境安裝目錄選擇默認的目錄即可,生產環境按照規劃目錄設置。
image.png
image.png
  安裝過程中,最後一步需要使用管理員賬户執行腳本。

kylin@KL1:/tmp/DMInstall$ sudo /home/dameng/dmdbms/script/root/root_installer.sh
移動 /home/dameng/dmdbms/bin/dm_svc.conf 到/etc目錄
創建DmAPService服務
Created symlink /etc/systemd/system/multi-user.target.wants/DmAPService.service → /lib/systemd/system/DmAPService.service.
創建服務(DmAPService)完成
啓動DmAPService服務

image.png
  安裝完成後,安裝嚮導提示配置環境變量,實際上達夢的安裝程序已經修改了用户主目錄下的.bash_profile文件,在其中加入了LD_LIBRARY_PATH和DM_HOME兩個環境變量。可以將達夢的bin、tools目錄也加到PATH中去。

dameng@KL1:~$ vi .bash_profile
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/dameng/dmdbms/bin"
export DM_HOME="/home/dameng/dmdbms"
export PATH="$PATH:/home/dameng/dmdbms/bin:/home/dameng/dmdbms/tool"

image.png
  安裝完成,此時先不初始化數據庫。

3.4 文本方式安裝

  如果主機的桌面環境無法使用,也可以使用命令行方式安裝。使用-i參數執行安裝文件DMInstall.bin,選擇安裝語言,此後安裝程序會解壓縮文件、校驗架構,此步需要較長時間。

dameng@KL2:/mnt$ ./DMInstall.bin -i
安裝語言:
[1]: 簡體中文
[2]: English
請選擇安裝語言 [1]:1
解壓安裝程序..........
硬件架構校驗通過!
歡迎使用達夢數據庫安裝程序

  安裝程序提示輸入Key文件,選擇n。設置時區為21。安裝類型選擇典型安裝。設置安裝目錄。最後確認安裝。

是否輸入Key文件路徑? (Y/y:是 N/n:否) [Y/y]:n

是否設置時區? (Y/y:是 N/n:否) [Y/y]:y
設置時區:
[ 1]: (GTM-12:00) 日界線西
[ 2]: (GTM-11:00) 薩摩亞羣島
[ 3]: (GTM-10:00) 夏威夷
[ 4]: (GTM-09:00) 阿拉斯加
[ 5]: (GTM-08:00) 太平洋時間(美國和加拿大)
[ 6]: (GTM-07:00) 亞利桑那
[ 7]: (GTM-06:00) 中部時間(美國和加拿大)
[ 8]: (GTM-05:00) 東部部時間(美國和加拿大)
[ 9]: (GTM-04:00) 大西洋時間(美國和加拿大)
[10]: (GTM-03:00) 巴西利亞
[11]: (GTM-02:00) 中大西洋
[12]: (GTM-01:00) 亞速爾羣島
[13]: (GTM) 格林威治標準時間
[14]: (GTM+01:00) 薩拉熱窩
[15]: (GTM+02:00) 開羅
[16]: (GTM+03:00) 莫斯科
[17]: (GTM+04:00) 阿布扎比
[18]: (GTM+05:00) 伊斯蘭堡
[19]: (GTM+06:00) 達卡
[20]: (GTM+07:00) 曼谷,河內
[21]: (GTM+08:00) 中國標準時間
[22]: (GTM+09:00) 首爾
[23]: (GTM+10:00) 關島
[24]: (GTM+11:00) 所羅門羣島
[25]: (GTM+12:00) 斐濟
[26]: (GTM+13:00) 努庫阿勒法
[27]: (GTM+14:00) 基里巴斯
請選擇時區 [21]:21

安裝類型:
1 典型安裝
2 服務器
3 客户端
4 自定義
請選擇安裝類型的數字序號 [1 典型安裝]:1
所需空間: 1750M

請選擇安裝目錄 [/home/dameng/dmdbms]:
可用空間: 21G
是否確認安裝路徑(/home/dameng/dmdbms)? (Y/y:是 N/n:否)  [Y/y]:y
安裝前小結
安裝位置: /home/dameng/dmdbms
所需空間: 1750M
可用空間: 21G
版本信息:
有效日期:
安裝類型: 典型安裝
是否確認安裝? (Y/y:是 N/n:否):y

  開始安裝,在安裝結束時,會提示需要用root用户執行腳本。

2025-09-10 14:35:43
[INFO] 安裝達夢數據庫...
2025-09-10 14:35:43
[INFO] 安裝 基礎 模塊...
2025-09-10 14:36:25
[INFO] 安裝 服務器 模塊...
2025-09-10 14:36:34
[INFO] 安裝 客户端 模塊...
2025-09-10 14:37:32
[INFO] 安裝 驅動 模塊...
2025-09-10 14:38:01
[INFO] 安裝 手冊 模塊...
2025-09-10 14:38:06
[INFO] 安裝 服務 模塊...
2025-09-10 14:38:11
[INFO] 移動日誌文件。
2025-09-10 14:38:19
[INFO] 安裝達夢數據庫完成。

請以root系統用户執行命令:
/home/dameng/dmdbms/script/root/root_installer.sh

安裝結束

  使用管理員用户執行腳本。

kylin@KL2:~$ sudo /home/dameng/dmdbms/script/root/root_installer.sh
移動 /home/dameng/dmdbms/bin/dm_svc.conf 到/etc目錄
創建DmAPService服務
Created symlink /etc/systemd/system/multi-user.target.wants/DmAPService.service → /lib/systemd/system/DmAPService.service.
創建服務(DmAPService)完成
啓動DmAPService服務
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.