使用VM模擬部署DM共享儲存(DSC)叢集
準備兩個虛擬機器CentOS1(192.168.202.133)和CentOS2(192.168.202.152),還需一個裸盤,沒有的話可以以在虛擬機器新增硬碟的方式模擬裸盤。
一、環境準備
1、新建兩臺虛擬機器
選擇新建虛擬機器,設定ISO映象檔案,磁碟大小12G,將虛擬磁碟儲存為單個檔案。虛擬機器記憶體設定為2GB。兩個虛擬機器作業系統、記憶體大小等完全一樣。
啟動好後systemctl stop firewalld 關閉防火牆
ifconfig 查ip地址
如果沒安裝ifconfig,則yum install ifconfig
如果還失敗,則yum search ifconfig
查到後執行 yum install net-tools.x86_64
這樣就可以用ifconfig了
注意:我之前試過先建立虛擬機器,選擇稍後安裝作業系統,然後新建硬碟,新增完硬碟後再建立作業系統,結果啟動後找不到我新建的硬碟,建議還是先安裝作業系統,啟動沒問題後再關閉虛擬機器,然後新建硬碟。
2、在CentOS1建立新硬碟
注意:必須在虛擬機器關閉的狀態下,才能進行虛擬機器的設定。
編輯虛擬機器或者直接點硬碟(SCSI)都可以,選擇新增硬碟,虛擬磁碟型別選SCSI(S),建立新虛擬硬碟。磁碟大小20G,將虛擬磁碟儲存為單個檔案,硬碟自己命名,最好單獨儲存到一個資料夾,不要選擇預設。
必須勾選立即分配所有磁碟空間
下圖是我的儲存目錄,第三個是虛擬硬碟。
3、在CentOS2新增之前建立的硬碟
注意:必須在虛擬機器關閉的狀態下,才能進行虛擬機器的設定。
3、修改vmx檔案
我只添加了一個SCSI硬碟,開啟CentOS2的vmx配置檔案,加入如下資訊:
disk.locking="FALSE"
scsi0:1.SharedBus="Virtual"
說明:
scsi n:m.SharedBus="Virtual"
n和m是SCSI的裝置編號,可以在配置檔案中找到需要共享的SCSI裝置的資訊。
4、檢視硬碟有沒有加入
二、安裝達夢資料庫管理系統
1、建立使用者組、使用者和響應目錄
[root@dameng home]# groupadd dinstall
[root@dameng home]# useradd -g dinstall dmdba
[root@dameng home]# passwd dmdba
PWD : dmdba
手動建立響應的目錄
資料庫管理系統安裝在/home/dmdba目錄下
cd /home/dmdba
mkdir dmdbms
cd dmdbms
mkdir BAK
mkdir config(目錄存放所有配置檔案)
mkdir arch_0(存放歸檔日誌)
mkdir arch_0_remote(存放遠端歸檔)
cd ../
chown -R dmdba:dinstall dmdbms
chmod -R 755 dmdbms
2、安裝
上傳iso檔案或者DMInstall.bin,我是直接上傳的DMInstall.bin,放在/home下
chown -R dmdba:dinstall /home/DMInstall.bin
chmod -R 755 /home/DMInstall.bin
切換dmdba登入
[dmdba@dameng home]# ./DMInstall.bin -i
請選擇安裝語言(C/c:中文 E/e:英文) [C/c]:c
是否輸入Key檔案路徑? (Y/y:是 N/n:否) [Y/y]:n
是否設定時區? (Y/y:是 N/n:否) [Y/y]:y
請選擇設定時區 [21]:21
請選擇安裝型別的數字序號 [1 典型安裝]:1
請選擇安裝目錄 [/opt/dmdbms]:/home/dmdba
3、在共享磁碟上劃分裸裝置
1)開始劃分
在一個節點上劃分即可。
a) 輸入 fdisk /dev/sdb
b) 依次輸入 n p 1 回車 +100M 回車,完成第一塊磁碟劃分
c) 依次輸入 n p 2 回車 +100M 回車,完成第二塊磁碟劃分
d) 依次輸入 n p 3 回車 +2048M 回車,完成第三塊磁碟劃分
e) 依次輸入 n p 4 回車回車回車,完成第四塊磁碟劃分
f) 輸入w命令,將裸裝置劃分的設定進行儲存
g)兩個節點都執行一下語句完成裸裝置繫結
partprobe /dev/sdb 重讀分割槽表
systemctl restart systemd-udev-trigger.service
h)fdisk -l 檢視劃分情況(兩個節點都看)
注意:我第一次劃分的時候,第四步輸錯了,把+2048M輸成+2048,導致後面使用 DMASMCMD 工具初始化的時候報錯,如下圖所示:
解決方法是把3和4刪掉重建。
同樣使用fdisk /dev/sdb命令 不是fdisk /dev/sdb1,輸入m並回車,
輸入d並回車
選擇要刪除的分割槽,分別刪除3和4。
刪除後再重新分割槽3和4,如下:
依次輸入 n p 3 回車 +2048M 回車,完成第三塊磁碟劃分
依次輸入 n p 4 回車回車回車,完成第四塊磁碟劃分
輸入w命令,將裸裝置劃分的設定進行儲存。
最後執行
partprobe /dev/sdb 重讀分割槽表
systemctl restart systemd-udev-trigger.service
2)編輯/etc/udev/rules.d/60-raw.rules 檔案,增加以下語句:
2臺伺服器均需增加以下語句
ACTION=="add" , KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdb3", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sdb4", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"
4、準備dmdcr_cfg.ini配置檔案
放在 /home/dmdba/dmdbms/config 目錄下,兩個節點均需要, 後續 DMASMCMD工具執行 init 語句會使用到。
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 63635
[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = GRP_CSS
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_CSS]
DCR_EP_NAME = CSS0
DCR_EP_HOST = 192.168.202.133
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.202.152
DCR_EP_PORT = 9343
[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = GRP_ASM
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_ASM]
DCR_EP_NAME = ASM0
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 192.168.202.133
DCR_EP_PORT = 9349
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 192.168.202.152
DCR_EP_PORT = 9351
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = GRP_DSC
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_DSC]
DCR_EP_NAME = DSC0
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741
[GRP_DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9742
5、使用 DMASMCMD 工具初始化磁碟組
1)在其中一個節點上啟動dmasmcmd工具
cd /home/dmdba/bin
./dmasmcmd
2)依次輸入以下命令(只需在一臺機器執行即可)
ASM>create dcrdisk '/dev/raw/raw1' 'dcr'
ASM>create votedisk '/dev/raw/raw2' 'vote'
ASM>create asmdisk '/dev/raw/raw3' 'LOG0'
ASM>create asmdisk '/dev/raw/raw4' 'DATA0'
ASM>init dcrdisk '/dev/raw/raw1' from '/home/dmdba/dmdbms/config/dmdcr_cfg.ini' identified by 'abcd'
ASM>init votedisk '/dev/raw/raw2' from '/home/dmdba/dmdbms/config/dmdcr_cfg.ini'
6、配置dmasvrmal.ini檔案(兩個節點都一樣)
存放目錄 home/dmdba/dmdbms/config
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.202.133
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.202.152
MAL_PORT = 7237
7、準備 dmdcr.ini 配置檔案
存放目錄 home/dmdba/dmdbms/config
DMASM 的兩個節點分別配置 dmdcr.ini,dmdcr_path 相同,dmasvrmal.ini 檔案內容也相同,dmdcr_seqno 分別為 0 和 1。path中分別是dsc0_config和dsc1_config。
CentOS1的:
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/home/dmdba/dmdbms/config/dmasvrmal.ini
DMDCR_SEQNO = 0
#ASM 重啟引數,命令列方式啟動
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/bin/dmasmsvr dcr_ini=home/dmdba/dmdbms/config/dmdcr.ini
#DB 重啟引數,命令列方式啟動
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/bin/dmserver path=/home/dmdba/dmdbms/dsc0_config/dm.ini dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini
CentOS2的:
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/home/dmdba/dmdbms/config/dmasvrmal.ini
DMDCR_SEQNO = 1
#ASM 重啟引數,命令列方式啟動
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/bin/dmasmsvr dcr_ini=home/dmdba/dmdbms/config/dmdcr.ini
#DB 重啟引數,命令列方式啟動
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/bin/dmserver path=/home/dmdba/dmdbms/dsc1_config/dm.ini dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini
注意:紅框圈中的不能換行。
8、啟動DMCSS、DMASM服務
在兩臺虛擬機器分別前臺啟動,方便檢視啟動資訊。
cd /home/dmdba/bin
./dmcss DCR_INI=/home/dmdba/dmdbms/config/dmdcr.ini
啟動成功效果如下:
注意:啟動第二個節點的時候報了個錯,如下:
解決方式如下:
切換一個會話,因為是前臺啟動,退出的話也關閉css了。
cd /home/dmdba/bin
./dmasmsvr DCR_INI=/home/dmdba/dmdbms/config/dmdcr.ini
啟動成功效果如下:
9、使用 dmasmtool 工具建立 DMASM 磁碟組
選擇一個節點,啟動 dmasmtool 工具。
cd /home/dmdba/bin
./dmasmtool DCR_INI=/home/dmdba/dmdbms/config/dmdcr.ini
輸入下列語句建立 DMASM 磁碟組:
#建立日誌磁碟組
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
#建立資料磁碟組
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
注意:剛開始啟動的時候報錯了,原因是我133重啟過,防火牆又自動啟動了。
systemctl disable firewalld.service 防火牆禁止開機重啟
檢視日誌資訊如下:
根據日誌資訊判斷應該是網路的問題。
剛開始沒想到是防火牆的問題,因為我記得我關了,忘記中間有重啟過,也沒設定防火牆禁止開機重啟。
測試方式是在133這臺機器上建立個數據庫,用152去連線,發現連不上,我本地也連不上133的資料庫,只有133自己可以連線。也猜測過是selinux的問題,後來發現不是。
10、準備 dminit.ini 配置檔案(一個節點即可)
存放目錄 home/dmdba/dmdbms/config
我是放在133這個節點上。
11、使用 dminit 初始化 DB 環境
在133上啟動dminit工具初始化資料庫。
./dminit control=/home/dmdba/dmdbms/config/dminit.ini
dminit執行完成後,會在config_path目錄(/home/dmdba/dmdbms/config/rac0_config和rac1_config)下生成配置檔案dm.ini和dmmal.ini。
注:初始化資料庫完成之後,將133節點上生成的rac1_config檔案拷貝到152的/home/dmdba/dmdbms/config目錄下,然後將133上/home/dmdba/dmdbms/config目錄下的rac1_config資料夾刪掉。
注意:初始化的時候遇到如下問題:
原因是dcr檔案裡面的例項名與dminit裡面不匹配。
dmdcr_cfg.ini配置如下:
dmdcr.ini配置如下:
12、配置遠端歸檔
先將兩個節點上的dm.ini中的ARCH_INI設定為1,然後配置dmarch.ini檔案
1)節點133:
存放目錄 /home/dmdba/dmdbms/config/dsc0_config
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmdbms/arch_0
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 10240
[ARCH_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_INCOMING_PATH =/home/dmdba/dmdbms/arch_0_remote
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 10240
2)節點152:
存放目錄 /home/dmdba/dmdbms/config/dsc1_config
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmdbms/arch_1
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 10240
[ARCH_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC0
ARCH_INCOMING_PATH =/home/dmdba/dmdbms/arch_1_remote
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 10240
13、啟動資料庫服務
1)啟動133節點的
./dmserver /home/dmdba/dmdbms/config/dsc0_config/dm.ini dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini
2)啟動152節點的
./dmserver /home/dmdba/dmdbms/config/dsc1_config/dm.ini dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini
14、註冊服務
1)註冊命令
cd /home/dmdba/script/root
./dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -p CSS1
./dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -p ASM1 -y DmCSSServiceCSS1
./dm_service_installer.sh -t dmserver -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -dm_ini /home/dmdba/dmdbms/config/dsc0_config/dm.ini -p DB1 -y DmASMSvrServiceASM1
./dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -p CSS2
./dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -p ASM2 -y DmCSSServiceCSS2
./dm_service_installer.sh -t dmserver -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -dm_ini /home/dmdba/dmdbms/config/dsc1_config/dm.ini -p DB2 -y DmASMSvrServiceASM2
2)啟動命令
節點1:
systemctl start DmCSSServiceCSS1
systemctl start DmASMSvrServiceASM1
systemctl start DmServiceDB1
節點2:
systemctl start DmCSSServiceCSS2
systemctl start DmASMSvrServiceASM2
systemctl start DmServiceDB2
15、配置監視器
監視器放在第三方機器上,為 windows 作業系統,dmcssm.ini 配置檔案路徑為 D:\DCA\cssm。
1)dmcssm.ini內容
#和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致
CSSM_OGUID = 63635
#配置所有 CSS 的連線資訊,
#和 dmdcr_cfg.ini 中 CSS 配置項的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致
CSSM_CSS_IP = 192.168.202.133:9341
CSSM_CSS_IP = 192.168.202.152:9343
CSSM_LOG_PATH =D:\DCA\cssm\log
#監視器日誌檔案存放路徑
CSSM_LOG_FILE_SIZE = 32
#每個日誌檔案最大 32M
CSSM_LOG_SPACE_LIMIT = 0
#不限定日誌檔案總佔用空間
2)啟動監視器
dmcssm.exe INI_PATH=D:\DCA\cssm\dmcssm.ini
更多資訊請上達夢技術社群瞭解:https://eco.dameng.com