MQ MI多實例安裝配置

在 MQ V7.0.1 版本中,我們可以通過多實例隊列管理器來實現自動故障轉移,這種方式不同於HACMP,HACMP是對硬件進行監測,而它可以監測到軟件問題。它通過將數據和配置共享在網絡文件系統上(NFS),當活動隊列管理器出現問題時,另一個實例自動接管網絡文件系統上的數據和配置並變爲活動實例。任何時候活動實例都將鎖定隊列管理器的數據,確保了數據的完整性。
---------------------------------------------------------------------

操作系統:RHEL 5.8
主機A: mqtest
主機B:mqtest2
掛載目錄:/MQHA

在新建用戶和組時,我們要確保兩個節點上 mqm 用戶的 id 和組 id 是相同的,這裏我們自定義爲 1000 :
Linux系統中的用戶分爲3類:
普通用戶:在添加普通用戶時,系統默認用戶ID從500開始編號
根用戶:也就是root用戶,它的ID是0,也被稱爲超級用戶
系統用戶:是指系統運行時必須有的用戶,但並不是指真實的使用者

-新建用戶
[root@mqtest ~]# groupadd mqm -g 1000
[root@mqtest ~]# useradd mqm -u 1000 -g mqm -d /var/mqm
通過命令驗證:
[root@mqtest ~]# id mqm
uid=1000(mqm) gid=1000(mqm) groups=1000(mqm)

-然後在兩臺機器上分別安裝MQ V7.0.1
-然後掛載 NFS 網絡文件系統
-更改掛載目錄權限爲mqm所有
[root@mqtest ~]# chown -R mqm:mqm /MQHA
---------------------------------------------------------------------

-使用 amqmfsck 命令以驗證文件系統

用法:amqmfsck [-v] [-c | -w] DirectoryName

 -c   測試針對目錄中某個文件的併發寫操作。
 -v   詳細輸出。
 -w   測試等待和釋放目錄中的文件鎖定。

如果 -c 或 -w 都未指定,那麼該程序將測試 WebSphere MQ 用於隊列管理器數據和日誌的文件系統的基本行爲。

如果指定了 -c 或-w,那麼應使用相同的命令行選項在兩臺服務器上同時啓動該程序。該目錄應位於在兩臺服務器的相同位置安裝的網絡存儲器。
1、不帶任何選項
[root@mqtest ~]# su - mqm
[mqm@mqtest ~]$ amqmfsck /MQHA
已成功完成目錄上的測試。

2、帶有 -c 選項(兩臺都執行)
[mqm@mqtest ~]$ amqmfsck -c /MQHA/
在另一臺服務器上使用相同參數啓動此程序的第二個副本。
寫入測試文件。這通常將在大約 60 秒內完成。
...........................................................
已成功完成目錄上的測試。

3、同步執行帶有 -w 選項(兩臺都執行)
[mqm@mqtest ~]$ amqmfsck -w /MQHA/
在另一臺服務器上使用相同參數啓動此程序的第二個副本。
獲取文件鎖定。
按 Enter 鍵或終止此進程以釋放該鎖定。

釋放文件鎖定。
已成功完成目錄上的測試。

[mqm@mqtest2 ~]$ amqmfsck -w /MQHA/
正在等待文件鎖定。
正在等待文件鎖定。
正在等待文件鎖定。
正在等待文件鎖定。
正在等待文件鎖定。
獲取文件鎖定。
按 Enter 鍵或終止此進程以釋放該鎖定。

釋放文件鎖定。
已成功完成目錄上的測試。
---------------------------------------------------------------------

-在共享文件系統中創建data和logs目錄
[mqm@mqtest ~]$ mkdir {data,logs}

-創建隊列管理器
[mqm@mqtest MQHA]$ crtmqm -md /MQHA/data -ld /MQHA/logs -lf 16384 -lp 10 -ls 5 -u QM1.DEAD.QUEUE -q QM1
WebSphere MQ 隊列管理器已創建。
已創建目錄“/MQHA/data/QM1”。
隊列管理器與安裝“Installation1”關聯。
正在創建或替換隊列管理器“QM1”的缺省對象。
缺省對象統計:71 個已創建。0 個已替換。0 個已失敗。
正在完成設置。
設置完成。

-複製隊列管理器配置
[mqm@mqtest ~]$ dspmqinf -o command QM1
addmqinf -s QueueManager -v Name=QM1 -v Directory=QM1 -v Prefix=/var/mqm -v DataPath=/MQHA/data/QM1
將輸出的 addmqinf 命令在另一臺執行:
[mqm@mqtest2 ~]$ addmqinf -s QueueManager -v Name=QM1 -v Directory=QM1 -v Prefix=/var/mqm -v DataPath=/MQHA/data/QM1
WebSphere MQ configuration information added.
---------------------------------------------------------------------
驗證安裝,一個活動實例,一個備用實例:
[mqm@mqtest MQHA]$ strmqm -x QM1
WebSphere MQ 隊列管理器“QM1”正在啓動。
隊列管理器與安裝“Installation1”關聯。
在日誌重放階段在隊列管理器“QM1”上訪問了 5 條日誌記錄。
完成隊列管理器“QM1”的日誌重放。
爲隊列管理器“QM1”恢復了事務管理器狀態。
使用 V7.1.0.3 啓動了 WebSphere MQ 隊列管理器“QM1”。

-啓動 MI 隊列管理器 需要帶有參數 -x
[mqm@mqtest2 ~]$ strmqm -x QM1
WebSphere MQ 隊列管理器“QM1”正在啓動。
隊列管理器與安裝“Installation1”關聯。
隊列管理器“QM1”的備用實例已啓動。活動實例正在其他位置運行。

[mqm@mqtest ~]$ dspmq -x
QMNAME(QM1)                                               STATUS(正在運行)
    INSTANCE(mqtest) MODE(活動的)
    INSTANCE(mqtest2) MODE(備用)

[mqm@mqtest2 ~]$ dspmq -x
QMNAME(QM1)                                               STATUS(正在以備用方式運行)
    INSTANCE(mqtest) MODE(活動的)
    INSTANCE(mqtest2) MODE(備用)

-停止 MI 隊列管理器
用法:endmqm [-z] [([-c | -w | -i | -p] [-r] [-s]) | -x] QMgrName

 -s   在關閉後切換到備用隊列管理器實例
 -x   結束備用隊列管理器實例,而不結束活動實例

不帶參數 -s或者 -x將同時停止活動和備用實例

-刪除 MI 隊列管理器
在備用隊列管理器服務器刪除它的引用:
[mqm@mqtest ~]$ rmvmqinf QM1
刪除活動隊列管理器:
[mqm@mqtest ~]$ dltmqm MQ1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章