一實時備機+一異步備機叢集搭建
- 1:主機規劃
- 2:備份主庫
- 3:備庫還原、恢複與更新
- 4:配置主庫
-
- dm.ini配置
- dmmal.ini配置
- dmarch.ini配置
- dmtimer.ini配置
- dmwatcher.ini配置
- 配置主庫OGUID:
- 5:配置所有備庫
-
- dm.ini:
- dmarch.ini:
- Dmwatcher:
- 配置所有備庫OGUID:
- 配置異步備庫 dmwatcher.ini
- 6:配置螢幕dmmonitor.ini
- 7:啟動三個庫的守護程序
- 8:啟動監控功能
1:主機規劃
----- | 執行個體名 | IP位址 | 端口 |
---|---|---|---|
主庫 | 3DW_1 | 192.168.139.100 | 5236 |
實時備庫 | 3DW_2 | 192.168.139.101 | 5236 |
異步備庫 | 3DW_3 | 192.168.139.102 | 5236 |
2:備份主庫
1)首先初始化三台機器執行個體,以第一台為例,在安裝目錄bin目錄下輸入:
./dminit path=/home/dmdba/dmdbms/data db_name=3DW_1 instance_name=3DW_1 case_sensitive=1 port_num=5236;
2)然後在脫機狀态 使用dmrman備份主庫(bin下)
./dmrman ctlstmt=“backup database ‘/home/dmdba/dmdbms/data/3DW_1/dm.ini’ full to backup_3dw1 backupset ‘/home/dmdba/dmdbms/data/3DW_1/backup_3dw1’”
3)将備份發送到每個備庫
scp -r /home/dmdba/dmdbms/data/3DW_1/backup_3dw1/ [email protected]:/home/dmdba/dmdbms/data
3:備庫還原、恢複與更新
脫機狀态下在備庫上使用dmrman還原、恢複與更新(下面是實時備庫,異步備庫同理)
讀資料檔案失敗:換dmdba使用者
還原:./dmrman ctlstmt=“restore database ‘/home/dmdba/dmdbms/data/3DW_2/dm.ini’ from backupset ‘/home/dmdba/dmdbms/data/backup_3dw1’”
恢複:./dmrman ctlstmt=“recover database ‘/home/dmdba/dmdbms/data/3DW_2/dm.ini’ from backupset ‘/home/dmdba/dmdbms/data/backup_3dw1’”
更新:./dmrman ctlstmt=“recover database ‘/home/dmdba/dmdbms/data/3DW_2/dm.ini’ update db_magic”
4:配置主庫
dm.ini配置
INSTANCE_NAME=3DW_1
ARCH_INI=1
MAL_INI=1
ALTER_MODE_STATUS= 0
ENABLE_OFFLINE_TS = 2
TIMER_INI = 1 #配置有異步歸檔時,打開定時器,定時同步歸檔到異備庫
dmmal.ini配置
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = 3DW_1
MAL_HOST = 192.168.139.100
MAL_PORT = 61141
MAL_INST_HOST = 192.168.139.100
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
[MAL_INST2]
MAL_INST_NAME = 3DW_2
MAL_HOST = 192.168.139.101
MAL_PORT = 61141
MAL_INST_HOST = 192.168.139.101
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
[MAL_INST3]
MAL_INST_NAME = 3DW_3
MAL_HOST = 192.168.139.102
MAL_PORT = 61141
MAL_INST_HOST = 192.168.139.102
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
dmarch.ini配置
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = 3DW_2
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmdbms/data/3DW_1/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 10240
[ARCHIVE_ASYNC]
ARCH_TYPE = ASYNC #異步歸檔類型
ARCH_DEST = 3DW_3#異步歸檔目标執行個體名
ARCH_TIMER_NAME = RT_TIMER #定時器名稱,和dmtimer.ini 中的名稱一緻
dmtimer.ini配置
主和實時備庫都需要,配置 dmtimer.ini,用于定時觸發執行個體發送歸檔日志到異步備庫。
下面示例中定時器配置為每天 00:00:00 觸發主庫發送歸檔日志到異步備庫,可以根據實際情況再做調整。
[RT_TIMER] #和 dmarch.ini 中的 ARCH_TIMER_NAME 一緻
TYPE = 2
FREQ_MONTH_WEEK_INTERVAL = 1
FREQ_SUB_INTERVAL = 0
FREQ_MINUTE_INTERVAL = 0
START_TIME = 00:00:00
END_TIME = 00:00:00
DURING_START_DATE = 2016-02-11 17:36:09
DURING_END_DATE = 9999-12-31 23:59:59
NO_END_DATE_FLAG = 1
DESCRIBE = RT TIMER
IS_VALID = 1
dmwatcher.ini配置
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453331
INST_INI = /home/dmdba/dmdbms/data/3DW_1/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
配置主庫OGUID:
①以mount模式開啟主庫:進入安裝得bin目錄,輸入:
./dmserver /home/dmdba/dmdbms/data/3DW_1/dm.ini mount
②新打開一個終端,登入disql,修改OGUID
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);
SQL>sp_set_oguid(453331);
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);
③修改資料庫模式
alter database primary;
後将配置檔案發送到兩個備庫:
scp dm.ini dmmal.ini dmarch.ini dmwatcher.ini [email protected]:/home/dmdba/dmdbms/data/3DW_2
5:配置所有備庫
dm.ini:
裡面的INSTANCE_NAME改為自己的,還有所有路徑改變為自己的。
dmarch.ini:
将ARCH_DEST參數修改為除自己外的庫(異步備庫隻保留本地歸檔)
Dmwatcher:
裡面修改為自己的目錄
配置所有備庫OGUID:
①以mount模式開啟備庫:進入安裝得bin目錄,輸入:
./dmserver /home/dmdba/dmdbms/data/3DW_2/dm.ini mount
②新打開一個終端,登入disql,修改OGUID
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);
SQL>sp_set_oguid(453331);
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);
③修改資料庫模式
alter database standby;
配置異步備庫 dmwatcher.ini
修改 dmwatcher.ini 配置守護程序,配置為本地守護類型,異步備庫不具備故障自動切換等功能,DW_MODE 配置并不起作用,此處配置為 MANUAL 即可,另外異步備庫不需要配置 dmwatcher.ctl 控制檔案。
[GRP1]
DW_TYPE = LOCAL #本地守護類型
DW_MODE = MANUAL #故障手動切換模式
DW_ERROR_TIME = 10 #遠端守護程序故障認定時間
INST_ERROR_TIME = 10 #本地執行個體故障認定時間
INST_OGUID = 453331 #守護系統唯一 OGUID 值
INST_INI = /home/dmdba/dmdbms/data/3DW_3/dm.ini #dm.ini 配置檔案路徑
INST_AUTO_RESTART = 1 #打開執行個體的自動啟動功能
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #指令行方式啟動
6:配置螢幕dmmonitor.ini
MON_DW_Confirm = 1
MON_LOG_PATH = /home/dmdba/dmdbms/monitor_3dw_log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0
[GRP1]
MON_INST_OGUID = 453331
MON_DW_IP = 192.168.139.100:52141
MON_DW_IP = 192.168.139.101:52141
MON_DW_IP = 192.168.139.102:52141
7:啟動三個庫的守護程序
先以mount方式啟動資料庫。然後啟動守護程序
./dmwatcher /home/dmdba/dmdbms/data/3DW_1/dmwatcher.ini
8:啟動監控功能
./dmmonitor /home/dmdba/dmdbms/data/3DW_3/dmmonitor.ini
注意:記得關閉防火牆,端口号不能重,初始化執行個體,配置檔案名不能錯