DM8 MPP主備環境搭建

LEVEL7發表於2020-08-18

DM8 MPP 主備環境搭建

1.     環境說明

本例配置2個MPP節點,每個節點作為主庫,與其備庫組成一個守護組,因此需要配置兩個守護組,取名分別為GRP1、GRP2,主庫名為GRP1_MPP_EP01/GRP2_MPP_EP02,對應的備庫例項名分別為GRP1_MPP_EP11/GRP2_MPP_EP22。

配置環境說明

機器名

IP 地址

初始狀態

作業系統

mppdw1

192.168.18.201 (外部服務)

192.168.10.201 (內部通訊)

主庫 GRP1_MPP_EP01

備庫 GRP2_MPP_EP22

監視器

CentOS Linux release 7.8.2003

mppdw2

192.168.18.202 (外部服務)

192.168.10.202 (內部通訊)

主庫 GRP2_MPP_EP02

備庫 GRP1_MPP_EP11

CentOS Linux release 7.8.2003

埠規劃-主庫

例項名

PORT_NUM

MAL_INST_DW_PORT

MAL_HOST

MAL_PORT

MAL_DW_PORT

MPP 例項序號

GRP1_MPP_EP01

5236

5243

192.168.10.201

5337

5253

0

GRP2_MPP_EP02

5236

5243

192.168.10.202

5337

5253

1

埠規劃-備庫

例項名

PORT_NUM

MAL_INST_DW_PORT

MAL_HOST

MAL_PORT

MAL_DW_PORT

對應主庫

GRP1_MPP_EP11

5237

5244

192.168.10.202

5338

5254

GRP1_MPP_EP01

GRP2_MPP_EP22

5237

5244

192.168.10.201

5338

5254

GRP2_MPP_EP02

守護程式規劃

組名

例項名

所在機器

GRP1

GRP1_MPP_EP01

192.168.10.201

GRP1_MPP_EP11

192.168.10.202

GRP2

GRP2_MPP_EP02

192.168.10.202

GRP2_MPP_EP22

192.168.10.201

2.     資料準備

mppdw1 機器上初始化庫至目錄 /dmdata:

dminit PATH=/dmdata PAGE_SIZE=16 DB_NAME=EP01 INSTANCE_NAME=GRP1_MPP_EP01

mppdw2 機器上初始化庫至目錄 /dmdata:

dminit PATH=/dmdata PAGE_SIZE=16 DB_NAME=EP02 INSTANCE_NAME=GRP2_MPP_EP02

即完成兩個主資料庫的初始化,然後分別同步兩個備資料庫。

採取機器交叉的方式配置兩個備資料庫

mppdw1 機器

dminit PATH=/dmdata PAGE_SIZE=16 DB_NAME=EP22 INSTANCE_NAME=GRP2_MPP_EP22 PORT_NUM=5237

mppdw2 機器

dminit PATH=/dmdata PAGE_SIZE=16 DB_NAME=EP11 INSTANCE_NAME=GRP1_MPP_EP11 PORT_NUM=5237

3.     配置主庫GRP1_MPP_EP01

1)     配置dm.ini

在mppdw1機器上配置主庫的例項名為GRP1_MPP_EP01,dm.ini引數修改如下:

# 例項名,建議使用"組名_守護環境_序號"的命名方式,總長度不能超過16

INSTANCE_NAME = GRP1_MPP_EP01

PORT_NUM = 5236  # 資料庫例項監聽埠

DW_INACTIVE_INTERVAL = 60  # 接收守護程式訊息超時時間

ALTER_MODE_STATUS = 0  # 不允許手工方式修改例項模式/狀態/OGUID

ENABLE_OFFLINE_TS = 2  # 不允許備庫OFFLINE表空間

MAL_INI = 1  # 開啟MAL系統

ARCH_INI = 1  # 開啟歸檔配置

MPP_INI = 1  # 啟用MPP配置

RLOG_SEND_APPLY_MON = 64  # 統計最近64次的日誌傳送資訊

2)     配置dmmal.ini

配置MAL系統,各主備庫的dmmal.ini配置必須完全一致,MAL_HOST使用內部網路IP,MAL_PORT與dm.ini中PORT_NUM使用不同的埠值,MAL_DW_PORT是各例項對應的守護程式之間,以及守護程式和監視器之間的通訊埠,配置如下:

MAL_CHECK_INTERVAL = 5  #MAL 鏈路檢測時間間隔

MAL_CONN_FAIL_INTERVAL = 5  # 判定MAL鏈路斷開的時間

[MAL_INST1]

MAL_INST_NAME = GRP1_MPP_EP01  # 例項名,和dm.ini中的INSTANCE_NAME一致

MAL_HOST = 192.168.10.201  #MAL 系統監聽TCP連線的IP地址

MAL_PORT = 5337  #MAL 系統監聽TCP連線的埠

MAL_INST_HOST = 192.168.18.201  # 例項的對外服務IP地址

MAL_INST_PORT = 5236  # 例項的對外服務埠,和dm.ini中的PORT_NUM一致

MAL_DW_PORT = 5253  # 例項對應的守護程式監聽TCP連線的埠

MAL_INST_DW_PORT = 5243  # 例項監聽守護程式TCP連線的埠

[MAL_INST2]

MAL_INST_NAME = GRP2_MPP_EP02

MAL_HOST = 192.168.10.202

MAL_PORT = 5337

MAL_INST_HOST = 192.168.18.202

MAL_INST_PORT = 5236

MAL_DW_PORT = 5253

MAL_INST_DW_PORT = 5243

[MAL_INST3]

MAL_INST_NAME = GRP1_MPP_EP11

MAL_HOST = 192.168.10.202

MAL_PORT = 5338

MAL_INST_HOST = 192.168.18.202

MAL_INST_PORT = 5237

MAL_DW_PORT = 5254

MAL_INST_DW_PORT = 5244

[MAL_INST4]

MAL_INST_NAME = GRP2_MPP_EP22

MAL_HOST = 192.168.10.201

MAL_PORT = 5338

MAL_INST_HOST = 192.168.18.201

MAL_INST_PORT = 5237

MAL_DW_PORT = 5254

MAL_INST_DW_PORT = 5244

3)     配置dmarch.ini(實時歸檔)

修改dmarch.ini,配置實時歸檔。除了本地歸檔外,其他歸檔配置項中的ARCH_DEST表示例項是Primary模式時,需要同步歸檔資料的目標例項名。

當前例項GRP1_MPP_EP01是主庫,需要向MPP備庫GRP1_MPP_EP11同步資料,因此實時歸檔的ARCH_DEST配置為GRP1_MPP_EP11。

[ARCHIVE_REALTIME1]

ARCH_TYPE = REALTIME  # 實時歸檔型別

ARCH_DEST = GRP1_MPP_EP11  # 實時歸檔目標例項名

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL  # 本地歸檔型別

ARCH_DEST = /dmarch/EP01  # 本地歸檔檔案存放路徑

ARCH_FILE_SIZE = 128  # 單位Mb,本地單個歸檔檔案最大值

ARCH_SPACE_LIMIT = 0  # 單位Mb,0表示無限制,範圍1024~4294967294M

4)     配置dmmpp.ctl

dmmpp.ctl 是二進位制檔案,由dmmpp.ini文字通過dmctlcvt工具轉換而來

兩節點的dmmpp.ini配置如下:

[service_name1]

mpp_seq_no = 0

mpp_inst_name = GRP1_MPP_EP01

[service_name2]

mpp_seq_no = 1

mpp_inst_name = GRP2_MPP_EP02

轉換命令如下:

dmctlcvt TYPE=2 SRC=/dmdata/EP01/dmmpp.ini DEST=/dmdata/EP01/dmmpp.ctl

5)     啟動主庫

以Mount方式啟動主庫

註冊資料庫服務,設定伺服器啟動模式mount

DmServiceEP01 start

一定要以Mount方式啟動資料庫例項,否則系統啟動時會重構回滾表空間,生成Redo日誌;並且,啟動後應用可能連線到資料庫例項進行操作,破壞主備庫的資料一致性。資料守護配置結束後,守護程式會自動Open資料庫。

6)     設定OGUID

啟動命令列工具DIsql,使用MPP型別為LOCAL方式,登入主庫設定OGUID值。

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL> sp_set_oguid(45330);

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

系統通過OGUID值確定一個守護程式組,由使用者保證OGUID值的唯一性,並確保資料守護系統中,資料庫、守護程式和監視器配置相同的OGUID值。

7)     修改資料庫模式

啟動命令列工具DIsql,使用MPP型別為LOCAL方式,登入主庫修改資料庫為Primary模式。

SQL> alter database primary;

4.     配置主庫GRP2_MPP_EP02

1)     配置dm.ini

在mppdw2機器上配置主庫的例項名為GRP2_MPP_EP02,dm.ini引數修改如下:

# 例項名,建議使用"組名_守護環境_序號"的命名方式,總長度不能超過16

INSTANCE_NAME = GRP1_MPP_EP02

PORT_NUM = 5236  # 資料庫例項監聽埠

DW_INACTIVE_INTERVAL = 60  # 接收守護程式訊息超時時間

ALTER_MODE_STATUS = 0  # 不允許手工方式修改例項模式/狀態/OGUID

ENABLE_OFFLINE_TS = 2  # 不允許備庫OFFLINE表空間

MAL_INI = 1  # 開啟MAL系統

ARCH_INI = 1  # 開啟歸檔配置

MPP_INI = 1  # 啟用MPP配置

RLOG_SEND_APPLY_MON = 64  # 統計最近64次的日誌傳送資訊

2)     配置dmmal.ini

直接將mppdw1機器上例項GRP1_MPP_EP01配置的dmmal.ini拷貝到/dmdata/EP02目錄中。

scp 192.168.18.201:/dmdata/EP01/dmmal.ini /dmdata/EP02

3)     配置dmarch.ini(實時歸檔)

修改dmarch.ini,配置實時歸檔。除了本地歸檔外,其他歸檔配置項中的ARCH_DEST表示例項是Primary模式時,需要同步歸檔資料的目標例項名。

當前例項GRP2_MPP_EP02是主庫,需要向MPP備庫GRP2_MPP_EP22同步資料,因此實時歸檔的ARCH_DEST配置為GRP2_MPP_EP22。

[ARCHIVE_REALTIME1]

ARCH_TYPE = REALTIME  # 實時歸檔型別

ARCH_DEST = GRP2_MPP_EP22  # 實時歸檔目標例項名

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL  # 本地歸檔型別

ARCH_DEST = /dmarch/EP02  # 本地歸檔檔案存放路徑

ARCH_FILE_SIZE = 128  # 單位Mb,本地單個歸檔檔案最大值

ARCH_SPACE_LIMIT = 0  # 單位Mb,0表示無限制,範圍1024~4294967294M

4)     配置dmmpp.ctl

拷貝GRP1_MPP_EP01的dmmpp.ctl到/dmdata/EP02目錄即可。

scp 192.168.18.201:/dmdata/EP01/dmmpp.ctl /dmdata/EP02

5)     啟動主庫

以Mount方式啟動主庫

註冊資料庫服務,設定伺服器啟動模式mount

DmServiceEP02 start

一定要以Mount方式啟動資料庫例項,否則系統啟動時會重構回滾表空間,生成Redo日誌;並且,啟動後應用可能連線到資料庫例項進行操作,破壞主備庫的資料一致性。資料守護配置結束後,守護程式會自動Open資料庫。

6)     設定OGUID

啟動命令列工具DIsql,使用MPP型別為LOCAL方式,登入主庫設定OGUID值。

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL> sp_set_oguid(45331);

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

系統通過OGUID值確定一個守護程式組,由使用者保證OGUID值的唯一性,並確保資料守護系統中,資料庫、守護程式和監視器配置相同的OGUID值。

7)     修改資料庫模式

啟動命令列工具DIsql,使用MPP型別為LOCAL方式,登入主庫修改資料庫為Primary模式。

SQL> alter database primary;

5.     配置備庫GRP1_MPP_EP11

1)     配置dm.ini

在mppdw2機器上配置備庫的例項名為GRP1_MPP_EP11,dm.ini引數修改如下:

# 例項名,建議使用"組名_守護環境_序號"的命名方式,總長度不能超過16

INSTANCE_NAME = GRP1_MPP_EP11

PORT_NUM = 5237  # 資料庫例項監聽埠

DW_INACTIVE_INTERVAL = 60  # 接收守護程式訊息超時時間

ALTER_MODE_STATUS = 0  # 不允許手工方式修改例項模式/狀態/OGUID

ENABLE_OFFLINE_TS = 2  # 不允許備庫OFFLINE表空間

MAL_INI = 1  # 開啟MAL系統

ARCH_INI = 1  # 開啟歸檔配置

MPP_INI = 1  # 啟用MPP配置

RLOG_SEND_APPLY_MON = 64  # 統計最近64次的日誌傳送資訊

2)     配置dmmal.ini

直接將mppdw1機器上例項GRP1_MPP_EP01配置的dmmal.ini拷貝到/dmdata/EP11目錄中。

scp 192.168.18.201:/dmdata/EP01/dmmal.ini /dmdata/EP11

3)     配置dmarch.ini(實時歸檔)

修改dmarch.ini,配置實時歸檔。除了本地歸檔外,其他歸檔配置項中的ARCH_DEST表示例項是Primary模式時,需要同步歸檔資料的目標例項名。

當前例項GRP1_MPP_EP11是備庫,守護系統配置完成後,可能在各種故障處理中,GRP1_MPP_EP11切換為新的主庫,正常情況下,GRP1_MPP_EP01會切換為新的備庫,需要向GRP1_MPP_EP01同步資料,因此實時歸檔的ARCH_DEST配置為GRP1_MPP_EP01。

[ARCHIVE_REALTIME1]

ARCH_TYPE = REALTIME  # 實時歸檔型別

ARCH_DEST = GRP1_MPP_EP01  # 實時歸檔目標例項名

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL  # 本地歸檔型別

ARCH_DEST = /dmarch/EP11  # 本地歸檔檔案存放路徑

ARCH_FILE_SIZE = 128  # 單位Mb,本地單個歸檔檔案最大值

ARCH_SPACE_LIMIT = 0  # 單位Mb,0表示無限制,範圍1024~4294967294M

4)     配置dmmpp.ctl

資料守護V2.1及以上版本中,MPP備庫同樣需要配置dmmpp.ctl檔案,可以直接從主庫上拷貝。

將mppdw1機器上例項GRP1_MPP_EP01配置的dmmpp.ctl拷貝到/dmdata/EP11目錄中。

scp 192.168.18.201:/dmdata/EP01/dmmpp.ctl /dmdata/EP11

5)     啟動備庫

以Mount方式啟動備庫

註冊資料庫服務,設定伺服器啟動模式mount

DmServiceEP11 start

一定要以Mount方式啟動資料庫例項,否則系統啟動時會重構回滾表空間,生成Redo日誌;並且,啟動後應用可能連線到資料庫例項進行操作,破壞主備庫的資料一致性。資料守護配置結束後,守護程式會自動Open資料庫。

6)     設定OGUID

啟動命令列工具DIsql,使用MPP型別為LOCAL方式,登入備庫設定OGUID值。

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL> sp_set_oguid(45330);

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

系統通過OGUID值確定一個守護程式組,由使用者保證OGUID值的唯一性,並確保資料守護系統中,資料庫、守護程式和監視器配置相同的OGUID值。

7)     修改資料庫模式

啟動命令列工具DIsql,使用MPP型別為LOCAL方式,登入備庫修改資料庫為Standby模式。

SQL> alter database standby;

6.     配置備庫GRP2_MPP_EP22

1)     配置dm.ini

在mppdw1機器上配置備庫的例項名為GRP2_MPP_EP22,dm.ini引數修改如下:

# 例項名,建議使用"組名_守護環境_序號"的命名方式,總長度不能超過16

INSTANCE_NAME = GRP2_MPP_EP22

PORT_NUM = 5237  # 資料庫例項監聽埠

DW_INACTIVE_INTERVAL = 60  # 接收守護程式訊息超時時間

ALTER_MODE_STATUS = 0  # 不允許手工方式修改例項模式/狀態/OGUID

ENABLE_OFFLINE_TS = 2  # 不允許備庫OFFLINE表空間

MAL_INI = 1  # 開啟MAL系統

ARCH_INI = 1  # 開啟歸檔配置

MPP_INI = 1  # 啟用MPP配置

RLOG_SEND_APPLY_MON = 64  # 統計最近64次的日誌傳送資訊

2)     配置dmmal.ini

直接將mppdw1機器上例項GRP1_MPP_EP01配置的dmmal.ini拷貝到/dmdata/EP22目錄中。

cp /dmdata/EP01/dmmal.ini /dmdata/EP22/

3)     配置dmarch.ini(實時歸檔)

修改dmarch.ini,配置實時歸檔。除了本地歸檔外,其他歸檔配置項中的ARCH_DEST表示例項是Primary模式時,需要同步歸檔資料的目標例項名。

當前例項GRP2_MPP_EP22是備庫,守護系統配置完成後,可能在各種故障處理中,GRP2_MPP_EP22切換為新的主庫,正常情況下,GRP2_MPP_EP02會切換為新的備庫,需要向GRP2_MPP_EP02同步資料,因此實時歸檔的ARCH_DEST配置為GRP2_MPP_EP02。

[ARCHIVE_REALTIME1]

ARCH_TYPE = REALTIME  # 實時歸檔型別

ARCH_DEST = GRP2_MPP_EP02  # 實時歸檔目標例項名

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL  # 本地歸檔型別

ARCH_DEST = /dmarch/EP22  # 本地歸檔檔案存放路徑

ARCH_FILE_SIZE = 128  # 單位Mb,本地單個歸檔檔案最大值

ARCH_SPACE_LIMIT = 0  # 單位Mb,0表示無限制,範圍1024~4294967294M

4)     配置dmmpp.ctl

資料守護V2.1及以上版本中,MPP備庫同樣需要配置dmmpp.ctl檔案,可以直接從主庫上拷貝。

將mppdw1機器上例項GRP1_MPP_EP01配置的dmmpp.ctl拷貝到/dmdata/EP22目錄中。

cp /dmdata/EP01/dmmpp.ctl /dmdata/EP22/

5)     啟動備庫

以Mount方式啟動備庫

註冊資料庫服務,設定伺服器啟動模式mount

DmServiceEP22 start

一定要以Mount方式啟動資料庫例項,否則系統啟動時會重構回滾表空間,生成Redo日誌;並且,啟動後應用可能連線到資料庫例項進行操作,破壞主備庫的資料一致性。資料守護配置結束後,守護程式會自動Open資料庫。

6)     設定OGUID

啟動命令列工具DIsql,使用MPP型別為LOCAL方式,登入備庫設定OGUID值。

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL> sp_set_oguid(45331);

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

系統通過OGUID值確定一個守護程式組,由使用者保證OGUID值的唯一性,並確保資料守護系統中,資料庫、守護程式和監視器配置相同的OGUID值。

7)     修改資料庫模式

啟動命令列工具DIsql,使用MPP型別為LOCAL方式,登入備庫修改資料庫為Standby模式。

SQL> alter database standby;

7.     配置dmwatcher.ini

一般來說,每個單獨的例項都是使用一個單獨的守護程式守護。比如實時主備和讀寫分離叢集的配置。

由於同一臺機器上有不同組的兩個例項,我們可以只配置一個守護程式,同時守護兩個例項。

mppdw1 機器上配置dmwatcher.ini,配置為全域性守護型別,使用自動切換模式。

[GRP1]

DW_TYPE = GLOBAL  # 全域性守護型別

DW_MODE = AUTO  # 自動切換模式

DW_ERROR_TIME = 10  # 遠端守護程式故障認定時間

INST_RECOVER_TIME = 60  # 主庫守護程式啟動恢復的間隔時間

INST_ERROR_TIME = 10  # 本地例項故障認定時間

INST_OGUID = 45330  # 守護系統唯一OGUID值

INST_INI = /dmdata/EP01/dm.ini  #dm.ini 配置檔案路徑

INST_AUTO_RESTART = 1  # 開啟例項的自動啟動功能

INST_STARTUP_CMD = /dm8/bin/dmserver  # 命令列方式啟動

RLOG_SEND_THRESHOLD = 0  # 指定主庫傳送日誌到備庫的時間閥值,預設關閉

RLOG_APPLY_THRESHOLD = 0  # 指定備庫重演日誌的時間閥值,預設關閉

[GRP2]

DW_TYPE = GLOBAL  # 全域性守護型別

DW_MODE = AUTO  # 自動切換模式

DW_ERROR_TIME = 10  # 遠端守護程式故障認定時間

INST_RECOVER_TIME = 60  # 主庫守護程式啟動恢復的間隔時間

INST_ERROR_TIME = 10  # 本地例項故障認定時間

INST_OGUID = 45331  # 守護系統唯一OGUID值

INST_INI = /dmdata/EP22/dm.ini  #dm.ini 配置檔案路徑

INST_AUTO_RESTART = 1  # 開啟例項的自動啟動功能

INST_STARTUP_CMD = /dm8/bin/dmserver  # 命令列方式啟動

RLOG_SEND_THRESHOLD = 0  # 指定主庫傳送日誌到備庫的時間閥值,預設關閉

RLOG_APPLY_THRESHOLD = 0  # 指定備庫重演日誌的時間閥值,預設關閉

mppdw2 機器上配置dmwatcher.ini,配置為全域性守護型別,使用自動切換模式。

[GRP1]

DW_TYPE = GLOBAL  # 全域性守護型別

DW_MODE = AUTO  # 自動切換模式

DW_ERROR_TIME = 10  # 遠端守護程式故障認定時間

INST_RECOVER_TIME = 60  # 主庫守護程式啟動恢復的間隔時間

INST_ERROR_TIME = 10  # 本地例項故障認定時間

INST_OGUID = 45330  # 守護系統唯一OGUID值

INST_INI = /dmdata/EP11/dm.ini  #dm.ini 配置檔案路徑

INST_AUTO_RESTART = 1  # 開啟例項的自動啟動功能

INST_STARTUP_CMD = /dm8/bin/dmserver  # 命令列方式啟動

RLOG_SEND_THRESHOLD = 0  # 指定主庫傳送日誌到備庫的時間閥值,預設關閉

RLOG_APPLY_THRESHOLD = 0  # 指定備庫重演日誌的時間閥值,預設關閉

[GRP2]

DW_TYPE = GLOBAL  # 全域性守護型別

DW_MODE = AUTO  # 自動切換模式

DW_ERROR_TIME = 10  # 遠端守護程式故障認定時間

INST_RECOVER_TIME = 60  # 主庫守護程式啟動恢復的間隔時間

INST_ERROR_TIME = 10  # 本地例項故障認定時間

INST_OGUID = 45331  # 守護系統唯一OGUID值

INST_INI = /dmdata/EP02/dm.ini  #dm.ini 配置檔案路徑

INST_AUTO_RESTART = 1  # 開啟例項的自動啟動功能

INST_STARTUP_CMD = /dm8/bin/dmserver  # 命令列方式啟動

RLOG_SEND_THRESHOLD = 0  # 指定主庫傳送日誌到備庫的時間閥值,預設關閉

RLOG_APPLY_THRESHOLD = 0  # 指定備庫重演日誌的時間閥值,預設關閉

8.     配置監視器

由於主備庫的守護程式配置為自動切換模式,因此這裡選擇配置確認監視器。和普通監視器相比,確認監視器除了相同的命令支援外,在主庫發生故障時,能夠自動通知備庫接管為新的主庫,具有自動故障處理的功能。

故障自動切換模式下,必須配置確認監視器,且確認監視器最多隻能配置一個。

修改dmmonitor.ini配置確認監視器,其中MON_DW_IP中的IP和PORT和dmmal.ini中的MAL_HOST和MAL_DW_PORT配置項保持一致。

MON_DW_CONFIRM = 1  # 確認監視器模式

MON_LOG_PATH = /dmdata/dmmonitor/log  # 監視器日誌檔案存放路徑

MON_LOG_INTERVAL = 60  # 每隔60s定時記錄系統資訊到日誌檔案

MON_LOG_FILE_SIZE = 32  # 每個日誌檔案最大32M

MON_LOG_SPACE_LIMIT = 0  # 不限定日誌檔案總佔用空間

[GRP1]

MON_INST_OGUID = 45330  # 組GRP1的唯一OGUID值

# 以下配置為監視器到組GRP1的守護程式的連線資訊,以"IP:PORT"的形式配置

#IP 對應dmmal.ini中的MAL_HOST,PORT對應dmmal.ini中的MAL_DW_PORT

MON_DW_IP = 192.168.10.201:5253

MON_DW_IP = 192.168.10.202:5254

[GRP2]

MON_INST_OGUID = 45331  # 組GRP2的唯一OGUID值

# 以下配置為監視器到組GRP2的守護程式的連線資訊,以"IP:PORT"的形式配置

#IP 對應dmmal.ini中的MAL_HOST,PORT對應dmmal.ini中的MAL_DW_PORT

MON_DW_IP = 192.168.10.202:5253

MON_DW_IP = 192.168.10.201:5254

9.     啟動守護程式

註冊守護程式服務,分別啟動mppdw1、mppdw2機器上的守護程式

./dm_service_installer.sh -t dmwatcher -p DW1 -watcher_ini /dmdata/EP01/dmwatcher.ini

./dm_service_installer.sh -t dmwatcher -p DW2 -watcher_ini /dmdata/EP02/dmwatcher.ini

DmWatcherServiceDW1 start

DmWatcherServiceDW2 start

守護程式啟動後,進入Startup狀態,此時例項都處於Mount狀態。守護程式開始廣播自身和其監控例項的狀態資訊,結合自身資訊和遠端守護程式的廣播資訊,守護程式將本地例項Open,並切換為Open狀態。

10.    啟動監視器

啟動監視器:

dmmonitor /dmdata/dmmonitor/dmmonitor.ini

至此MPP實時主備搭建完畢,在搭建步驟和各項配置都正確的情況下,在監視器上執行show命令,可以監控到所有例項都處於Open狀態,所有守護程式也都處於Open狀態,即為正常執行狀態。

11.    驗證MPP主備

1)     MPP  驗證

在MPP主節點1建立測試表:

[dmdba@mppdw1 ~]$ disql SYSDBA/SYSDBA

 

Server[LOCALHOST:5236]:mode is primary, state is open

login used time: 6.018(ms)

disql V8

SQL> set lineshow off timing off

SQL> create table mevi as select * from sysobjects;

executed successfully

在MPP主節點2查詢:MPP執行正常

[dmdba@mppdw2 ~]$ disql SYSDBA/SYSDBA*LOCAL

 

Server[LOCALHOST:5236]:mode is primary, state is open

login used time: 4.127(ms)

disql V8

SQL> set lineshow off timing off

SQL> select count(*) from mevi;

 

COUNT(*)           

--------------------

0

 

SQL> exit

[dmdba@mppdw2 ~]$ disql SYSDBA/SYSDBA

 

Server[LOCALHOST:5236]:mode is primary, state is open

login used time: 5.289(ms)

disql V8

SQL> set lineshow off timing off

SQL> select count(*) from mevi;

 

COUNT(*)           

--------------------

1327

2)     資料守護驗證

在GRP1備節點查詢

[dmdba@mppdw2 ~]$ disql SYSDBA/SYSDBA@LOCALHOST:5237

 

Server[LOCALHOST:5237]:mode is standby, state is open

login used time: 3.352(ms)

disql V8

SQL> set lineshow off timing off

SQL> select count(*) from mevi;

 

COUNT(*)           

--------------------

1327

在GRP2備節點查詢

[dmdba@mppdw1 ~]$ disql SYSDBA/SYSDBA@LOCALHOST:5237

 

Server[LOCALHOST:5237]:mode is standby, state is open

login used time: 4.356(ms)

disql V8

SQL> set lineshow off timing off

SQL> select count(*) from mevi;

 

COUNT(*)           

--------------------

0

確認守護程式的資訊,執行正常

[dmdba@mppdw1 ~]$ disql SYSDBA/SYSDBA

 

Server[LOCALHOST:5236]:mode is primary, state is open

login used time: 4.011(ms)

disql V8

SQL> set lineshow off timing off

SQL> select * from v$dmwatcher;

 

N_GROUP     GROUP_NAME INST_NAME     DW_TYPE DW_MODE AUTO_RESTART DW_STATUS DW_SUB_STATUS 

----------- ---------- ------------- ------- ------- ------------ --------- ---------------

LAST_MSG_TIME                                                                                        SWITCH_COUNT CTL_NUM     INST_NUM    MAX_CONN_NUM

---------------------------------------------------------------------------------------------------- ------------ ----------- ----------- ------------

2           GRP2       GRP2_MPP_EP02 GLOBAL  AUTO    1            OPEN      SUB_STATE_START

2020-08-18 21:20:13.000000                                                                           0            1           1           2

 

2           GRP1       GRP1_MPP_EP01 GLOBAL  AUTO    1            OPEN      SUB_STATE_START

2020-08-18 21:20:13.000000                                                                           0            1           1           2

 

 

SQL> select * from v$mal_link_status;

 

SRC_SITE      DEST_SITE     CTL_LINK_STATUS DATA_LINK_STATUS

------------- ------------- --------------- ----------------

GRP2_MPP_EP02 GRP1_MPP_EP01 CONNECTED       CONNECTED

GRP2_MPP_EP02 GRP1_MPP_EP11 CONNECTED       CONNECTED

GRP2_MPP_EP02 GRP2_MPP_EP22 CONNECTED       CONNECTED

GRP1_MPP_EP01 GRP2_MPP_EP02 CONNECTED       CONNECTED

GRP1_MPP_EP01 GRP1_MPP_EP11 CONNECTED       CONNECTED

GRP1_MPP_EP01 GRP2_MPP_EP22 CONNECTED       CONNECTED

 

6 rows got


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31516603/viewspace-2712757/,如需轉載,請註明出處,否則將追究法律責任。