達夢兩節點dsc+資料守護叢集搭建
- 1:主機規劃
- 2:編輯DSC節點dmarch.ini
- 3:備份 DMDSC 庫
- 4:配置單節點備庫
- 5:配置所有節點的dm.ini
- 6:配置dmmal.ini
- 7:配置 dmarch.ini
- 8:配置 dmwatcher.ini
- 9:配置 dmmonitor.ini
- 10:配置 dmdcr.ini
- 11:啟動DMCSS、DMASM服務程式
- 12:啟動主備庫
- 13:啟動守護程序
- 14:啟動螢幕
1:主機規劃
節點 | IP位址 | 端口 |
---|---|---|
DSC0 | 192.168.139.100 | 5236 |
DSC1 | 192.168.139.101 | 5236 |
DSC_DW | 192.168.139.102 | 5236 |
2:編輯DSC節點dmarch.ini
搭建完dsc後正常退出 DMDSC 叢集的兩個 dmserver 節點執行個體,不需要退出 dmcss和 dmasmsvr。
編輯兩個 DMDSC 節點的 dmarch.ini 檔案,增加本地歸檔和遠端歸檔,dmarch.ini 檔案放在各自 dm.ini 中指定的 CONFIG_PATH 目錄下(/home/data/dsc0_config)。
DSC0,DSC1的dmarch.ini: 加粗的需要修改
[ARCHIVE_LOCAL1]
ARCH_TYPE= LOCAL
ARCH_DEST= /home/data/dsc0_config/arch
ARCH_FILE_SIZE= 128
ARCH_SPACE_LIMIT= 0
[ARCHIVE_REMOTE]
ARCH_TYPE= REMOTE
ARCH_DEST= DSC1
ARCH_FILE_SIZE= 128
ARCH_SPACE_LIMIT= 0
ARCH_INCOMING_PATH =/home/data/dsc1_config/arch
配置dm.ini,将DSC兩節點的歸檔參數設定為1
3:備份 DMDSC 庫
重新開機 DMDSC 叢集的兩個 dmserver 執行個體,然後再正常退出。在 DMDSC 叢集生成有歸檔日志的情況下進行脫機備份,以便後續校驗日志連續性時使用。
啟動 dmrman(bin目錄下)
./dmrman use_ap=2 dcr_ini=/home/data/dmdcr.ini
1)脫機備份 DMDSC 叢集
RMAN>BACKUP DATABASE ‘/home/data/dsc0_config/dm.ini’ FULL BACKUPSET ‘/home/data/dsc0_config/bak/db_full_bak_for_DSC’;
2)在備機上初始化備庫(dmdba使用者初始化,注意權限問題)
./dminit path=/home/dmdba/dmdbms/data/ db_name=… instance_name= …
3)将db_full_bak_for_DSC檔案發送到單節點備庫的
/home/dmdba/dmdbms/data/DSC_DW/bak/目錄下
scp -r db_full_bak_for_DSC/ [email protected]:/home/dmdba/dmdbms/data/DSC_DW/bak/
4:配置單節點備庫
啟動 dmrman
./dmrman use_ap=2
使用 DMDSC 庫的備份集還原恢複到單節點備庫
還原:
RMAN>restore database ‘/home/dmdba/dmdbms/data/DSC_DW/dm.ini’ from backupset ‘/home/dmdba/dmdbms/data/DSC_DW/bak/db_full_bak_for_DSC’;
恢複:
RMAN>RECOVER DATABASE ‘/home/dmdba/dmdbms/data/DSC_DW/dm.ini’ FROM BACKUPSET ‘/home/dmdba/dmdbms/data/DSC_DW/bak/db_full_bak_for_DSC’;
更新:
RMAN>RECOVER DATABASE ‘/home/dmdba/dmdbms/data/DSC_DW/dm.ini’ UPDATE DB_MAGIC;
5:配置所有節點的dm.ini
ALTER_MODE_STATUS = 0 #不允許手工方式修改執行個體模式/狀态/OGUID
ENABLE_OFFLINE_TS = 2 #不允許備庫 OFFLINE 表空間
MAL_INI = 1 #打開 MAL 系統
ARCH_INI = 1 #打開歸檔配置
6:配置dmmal.ini
(在 DMDSC 叢集的 dmmal.ini 檔案基礎上,增加備庫DSC_DW 的配置項。所有節點執行個體的 dmmal.ini 檔案内容是一緻的,配置完成後,拷貝到每個節點執行個體dm.ini 中指定的 CONFIG_PATH 目錄下。)
dmmal.ini:
MAL_CHECK_INTERVAL = 30 #MAL鍊路檢測時間間隔
MAL_CONN_FAIL_INTERVAL = 10 #判定MAL鍊路斷開的時間
[mal_inst0]
mal_inst_name = DSC0
mal_host = 192.168.139.100
mal_port = 9340
MAL_INST_HOST = 192.168.139.100 #執行個體的對外服務IP位址
MAL_INST_PORT = 5236 #執行個體的對外服務端口,和dm.ini中的PORT_NUM一緻
MAL_DW_PORT= 3569 #執行個體本地的守護程序監聽TCP連接配接的端口
MAL_INST_DW_PORT = 4569 #執行個體監聽守護程序TCP連接配接的端口
[mal_inst1]
mal_inst_name = DSC1
mal_host = 192.168.139.101
mal_port = 9340
MAL_INST_HOST = 192.168.139.101 #執行個體的對外服務IP位址
MAL_INST_PORT = 5236 #執行個體的對外服務端口,和dm.ini中的PORT_NUM一緻
MAL_DW_PORT= 3569 #執行個體本地的守護程序監聽TCP連接配接的端口
MAL_INST_DW_PORT = 4569 #執行個體監聽守護程序TCP連接配接的端口
[mal_inst2]
mal_inst_name = DSC_DW #與dm.ini instance_name相同
mal_host = 192.168.139.102
mal_port = 9340
MAL_INST_HOST = 192.168.139.102 #執行個體的對外服務IP位址
MAL_INST_PORT = 5236 #執行個體的對外服務端口,和dm.ini中的PORT_NUM一緻
MAL_DW_PORT= 3569 #執行個體本地的守護程序監聽TCP連接配接的端口
MAL_INST_DW_PORT = 4569 #執行個體監聽守護程序TCP連接配接的端口
7:配置 dmarch.ini
再次編輯各個節點的 dmarch.ini 檔案,增加實時歸檔配置。
DSC0的dmarch.ini:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/data/dsc0_cfg/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
ARCH_INCOMING_PATH =/home/data/dsc1_cfg/arch
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DSC_DW #因為我單節點執行個體名是 DSC_DW
DSC1的dmarch.ini:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST =/home/data/dsc1_cfg_/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC0
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
ARCH_INCOMING_PATH = /home/data/dsc0_cfg/arch
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DSC_DW #因為我單節點執行個體名是 DSC_DW
單節點DMSERVER的dmarch.ini:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmdbms/data/DSC_DW/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DSC0/DSC1
8:配置 dmwatcher.ini
(依次配置每個節點執行個體的 dmwatcher.ini 檔案,放到各自 dm.ini 中指定的CONFIG_PATH 目錄下)
DSC0的dmwatcher.ini:
[GRP1]
DW_TYPE = GLOBAL #全局守護類型
DW_MODE = MANUAL #手動切換模式
DW_ERROR_TIME = 60 #遠端守護程序故障認定時間
INST_RECOVER_TIME = 60 #主庫守護程序啟動恢複的間隔時間
INST_ERROR_TIME = 30 #本地執行個體故障認定時間
INST_INI = /home/data/dsc0_config/dm.ini #dm.ini 配置檔案路徑
DCR_INI = /home/data/dmdcr.ini #dmdcr.ini 配置檔案路徑
INST_OGUID = 1000 #守護系統唯一 OGUID 值
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #指令行方式啟動
INST_AUTO_RESTART = 0 #關閉執行個體的自動啟動功能
RLOG_SEND_THRESHOLD = 0 #指定主庫發送日志到備庫的時間閥值,預設關閉
RLOG_APPLY_THRESHOLD = 0 #指定備庫重演日志的時間閥值,預設關閉
DSC1的dmwatcher.ini:
[GRP1]
DW_TYPE = GLOBAL #全局守護類型
DW_MODE = MANUAL #手動切換模式
DW_ERROR_TIME = 60 #遠端守護程序故障認定時間
INST_RECOVER_TIME = 60 #主庫守護程序啟動恢複的間隔時間
INST_ERROR_TIME = 30 #本地執行個體故障認定時間
INST_INI = /home/data/dsc1_config/dm.ini #dm.ini 配置檔案路徑
DCR_INI = /home/data/dmdcr.ini #dmdcr.ini 配置檔案路徑
INST_OGUID = 1000 #守護系統唯一 OGUID 值
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #指令行方式啟動
INST_AUTO_RESTART = 0 #關閉執行個體的自動啟動功能
RLOG_SEND_THRESHOLD = 0 #指定主庫發送日志到備庫的時間閥值,預設關閉
RLOG_APPLY_THRESHOLD = 0 #指定備庫重演日志的時間閥值,預設關閉
單節點的dmwatcher.ini:
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 60
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 30
INST_INI = /home/dmdba/dmdbms/data/DSC_DW/dm.ini
INST_OGUID = 1000
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
INST_AUTO_RESTART = 0 #對單節點,如果需要打開自動拉起功能,将此配置修改為 1 即可
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
9:配置 dmmonitor.ini
(在單節點上配置,放在/home/dmdba/dmdbms/data/DSC_DW下)
dmmonitor.ini:
MON_LOG_PATH = /home/dmdba/dmdbms/2des_dw_monitor_log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 64
MON_LOG_SPACE_LIMIT = 0
MON_DW_CONFIRM = 0
[GRP1]
MON_INST_OGUID = 1000
MON_DW_IP = 192.168.139.99:3569/192.168.139.100:3569
MON_DW_IP = 192.168.139.101:3569
10:配置 dmdcr.ini
DMDSC 叢集中 dmserver 的自動拉起是由 dmcss 執行的,如果不需要打開 dmcss 的自動拉起功能,則可以跳過此章節。否則需要修改 dmdcr.ini 中的自動拉起配置參數(将時間設定不為0即可),此參數修改完成後,需要重新開機dmcss 才可以生效,為了避免重新開機 dmcss 引發 dmasmsvr 被強制關閉,這裡先将 dmcss和 dmasmsvr 都正常退出。
另外要注意,本示例中是用指令行方式啟動,啟動參數中指定以 Mount 方式拉起
dmserver,如果是用服務方式啟動,服務腳本中也一定要指定以 Mount 方式拉起dmserver。
11:啟動DMCSS、DMASM服務程式
在兩個節點分别先後啟動dmcss,dmasm程式。
手動啟動 dmcss 指令:
./dmcss DCR_INI=/home/data/dmdcr.ini
手動啟動 dmasmsvr 指令:
./dmasmsvr DCR_INI=/home/data/dmdcr.ini
12:啟動主備庫
(注意執行個體都要使用 Mount 方式啟動)
啟動DSC0:
./dmserver /home/data/dsc0_config/dm.ini DCR_INI=/home/data/dmdcr.ini mount
啟動DSC1:
./dmserver /home/data/dsc1_config/dm.ini DCR_INI=/home/data/dmdcr.ini mount
啟動單節點備庫
./dmserver /home/dmdba/dmdbms/data/DSC_DW/dm.ini mount
設定 OGUID和模式
啟動disql
DSC任意一節點:
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);
SQL>SP_SET_OGUID(1000);
SQL>ALTER DATABASE PRIMARY;
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);
單節點:
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);
SQL>SP_SET_OGUID(1000);
SQL>ALTER DATABASE STANDBY;
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);
13:啟動守護程序
啟動DSC0守護程序:
./dmwatcher /home/data/dsc0_config/dmwatcher.ini
啟動DSC1守護程序:
./dmwatcher /home/data/dsc1_config/dmwatcher.ini
啟動單節點的守護程序:
./dmwatcher /home/dmdba/dmdbms/data/DSC_DW/dmwatcher.ini
14:啟動螢幕
啟動配置在單節點備庫的螢幕:
./dmmonitor path=/home/dmdba/dmdbms/data/DSC_DW/dmmonitor.ini
至此 DMDSC 叢集的實時資料守護系統搭建完畢,在搭建步驟和各項配置都正确的情況下,在螢幕上執行 show 指令,可以監控到所有執行個體都處于 Open 狀态,所有守護程序也都處于 Open 狀态,即為正常運作狀态。