1. 程式人生 > 其它 >動態增加讀寫分離叢集節點

動態增加讀寫分離叢集節點

技術標籤:DM

動態增加讀寫分離叢集節點

一、配置環境說明:

機器名稱IP地址初始狀態作業系統備註
DW_P192.168.180.130 192.168.181.130GRP1_RWW_01Linux rh6.9 X86_64主庫
DW_S1192.168.180.131 192.168.181.131GRP1_RWW_02Linux rh6.9 X86_64備庫
DW_S2192.168.180.132 192.168.181.132GRP1_RWW_03Linux rh6.9 X86_64新增備庫
DM_M192.168.180.135Linux rh6.9 X86_64監視器

DW_P 為原主庫,DW_S1為備庫,DW_S2為本次新增讀寫分離叢集節點

二、資料準備

2.1備份主庫資料

SQL> BACKUP DATABASE BACKUPSET '/home/dmdata/BACKUP_FILE_01'; 

2.2.初始化備機資料庫
注意初始化引數需要和之前環境保持一致

./dminit path=/home/dmdata/ 

2.3.還原恢復新增備庫

拷貝生成的備份集目錄 BACKUP_FILE_01 到 144 上/home/dmdata/目錄,使用 DMRMAN 
工具離線還原。 
./dmrman CTLSTMT="RESTORE DATABASE '/home/dmdata/DAMENG/dm.ini' FROM BACKUPSET 
'/home/dmdata/BACKUP_FILE_01'" 
./dmrman CTLSTMT="RECOVER DATABASE '/home/dmdata/DAMENG/dm.ini' FROM BACKUPSET 
'/home/dmdata/BACKUP_FILE_01'" 
./dmrman CTLSTMT="RECOVER DATABASE '/home/dmdata/DAMENG/dm.ini' UPDATE DB_MAGIC"

三、 配置新節點備庫

3.1 配置dm.ini

INSTANCE_NAME = GRP1_RWW_03
PORT_NUM = 5236 #資料庫例項監聽埠
DW_INACTIVE_INTERVAL = 60 #接收守護程序訊息超時時間
ALTER_MODE_STATUS = 0 #不允許手工方式修改例項模式/狀態
ENABLE_OFFLINE_TS = 2 #不允許備庫OFFLINE表空間
MAL_INI = 1 #開啟MAL系統
ARCH_INI = 1 #開啟歸檔配置
RLOG_SEND_APPLY_MON = 64 #統計最近64次的日誌重演資訊

3.2 配置dmmal.ini

MAL_CHECK_INTERVAL = 5 #MAL鏈路檢測時間間隔
MAL_CONN_FAIL_INTERVAL = 5 #判定MAL鏈路斷開的時間
[MAL_INST1] 
MAL_INST_NAME = GRP1_RWW_01 #例項名,和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 192.168.180.130 #MAL系統監聽TCP連線的IP地址
MAL_PORT = 61141 #MAL系統監聽TCP連線的埠
MAL_INST_HOST = 192.168.181.130 #例項的對外服務IP地址
MAL_INST_PORT = 5236 #例項的對外服務埠,和dm.ini中的PORT_NUM一致
MAL_DW_PORT = 52141 #例項對應的守護程序監聽TCP連線的埠
MAL_INST_DW_PORT = 33141 #例項監聽守護程序TCP連線的埠
[MAL_INST2] 
MAL_INST_NAME = GRP1_RWW_02 
MAL_HOST = 192.168.180.131 
MAL_PORT = 61142 
MAL_INST_HOST = 192.168.181.131 
MAL_INST_PORT = 5236 
MAL_DW_PORT = 52142 
MAL_INST_DW_PORT = 33142
[MAL_INST3] 
MAL_INST_NAME = GRP1_RWW_03 
MAL_HOST = 192.168.180.133
MAL_PORT = 61143 
MAL_INST_HOST = 192.168.181.133
MAL_INST_PORT = 5236 
MAL_DW_PORT = 52143 
MAL_INST_DW_PORT = 33143

3.3 配置dmwatcher.ini

[GRP1]
DW_TYPE =GLOBAL #全域性守護型別
DW_MODE = AUTO #自動切換模式
DW_ERROR_TIME = 10 #遠端守護程序故障認定時間
INST_RECOVER_TIME = 60 #主庫守護程序啟動恢復的間隔時間
INST_ERROR_TIME = 10 #本地例項故障認定時間
INST_OGUID = 453332 #守護系統唯一OGUID值
INST_INI = /home/dmdata/DAMENG/dm.ini #dm.ini配置檔案路徑
INST_AUTO_RESTART = 1 #開啟例項的自動啟動功能
#INST_STARTU P_CMD = /home/dmdbms/bin/DmServiceDMSERVER start #命令列方式啟動
INST_STARTUP_CMD =/home/dmdbms/bin/dmserver #命令列方式啟動
RLOG_SEND_THRESHOLD = 0 #指定主庫傳送日誌到備庫的時間閥值,預設關閉
RLOG_APPLY_THRESHOLD = 0 #指定備庫重演日誌的時間閥值,預設關閉

3.4 配置dmarch.ini

[ARCHIVE_TIMELY1]
ARCH_TYPE = TIMELY #即時歸檔型別
ARCH_DEST = GRP1_RWW_01 #即時歸檔目例項名
[ARCHIVE_TIMELY2]
ARCH_TYPE = TIMELY #即時歸檔型別
ARCH_DEST = GRP1_RWW_02 #即時歸檔目例項名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地歸檔型別
ARCH_DEST = /home/dmarch #本地歸檔檔案存放路徑
ARCH_FILE_SIZE = 128 #單位Mb,本地單個歸檔檔案最大值
ARCH_SPACE_LIMIT = 10240 #單位Mb,0表示無限制,範圍1024~4294967294M

四、 備庫配置完成以後,以mount方式啟動主庫

[[email protected] bin]$ ./dmserver /home/dmdata/DAMENG/dm.ini mount

五、 設定OGUID

 登入disql
[[email protected] bin]$  ./disql sysdba/[email protected]:5236
設定OGUID
SQL>sp_set_oguid(453332);
--在修改oguid之後要確認是否修改成功
修改資料庫模式
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); 
SQL> alter database standby;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0); 

六、 動態新增mal配置

其他的主庫備庫環境執行GRP1_RWW_03的配置資訊
SF_MAL_CONFIG(1,0); 
SF_MAL_INST_ADD('MAL_INST3','GRP1_RWW_03','192.168.180.132',61143,'192.168.181.132',5236,52143,0,33143); 
SF_MAL_CONFIG_APPLY(); 
SF_MAL_CONFIG(0,0); 

七、 動態新增歸檔配置

分別連線原系統中的所有資料庫執行(此時處於 MOUNT 狀態),動態新增 dmarch.ini 
中歸檔節點,如果是 DMDSC 叢集,則需要連線叢集內的每一個節點執行。 
SQL> alter database add archivelog 'DEST=GRP1_RWW_03, TYPE=TIMELY';

八、 dmmonitor.ini配置確認監視器

MON_DW_Confirm = 1 #確認監視器模式
MON_LOG_PATH =/home/dmdata/log #監視器日誌檔案存放路徑
MON_LOG_INTERVAL = 60 #每隔60s定時記錄系統資訊到日誌檔案
MON_LOG_FILE_SIZE = 32 #每個日誌檔案最大32M 
MON_LOG_SPACE_LIMIT = 0 #不限定日誌檔案總佔用空間
[GRP1] 
MON_INST_OGUID = 453332 #組GRP1的唯一OGUID值
#以下配置為監視器到組GRP1的守護程序的連線資訊,以“IP:PORT”的形式配置
#IP對應dmmal.ini中的MAL_HOST,PORT對應dmmal.ini中的MAL_DW_PORT
MON_DW_IP = 192.168.180.130:52141
MON_DW_IP = 192.168.180.131:52142
MON_DW_IP = 192.168.180.132:52143
最後啟動所有守護程序和確認監視器,並檢查資料庫狀態