DSC环境两节点分别是:
DSC1:
业务IP:192.168.1.110
私网IP:10.0.0.1
DSC2:
业务IP:192.168.1.111
私网IP:10.0.0.2
备库:
业务IP:192.168.1.115
私网IP:10.0.0.115
监视器:
业务IP:192.168.1.225
私网IP:10.0.0.3
#启动 dmrman
./dmrman use_ap=2 dcr_ini=/home/dmdba/dmdbms/dsc_config/dmdcr.ini
#脱机备份 DMDSC 集群
backup database '/home/dmdba/dmdbms/dmdata/dsc01/dm.ini' FULL BACKUPSET '/home/dmdba/db_full_for_dsc';
#DSC备份传输到备库
$ scp -r db_full_for_dsc/ 192.168.1.115:/home/dmdba/
#### 初始化备库
./dminit path=/home/dmdba/dmdbms/data
### 使用 DMDSC库的备份集还原恢复到单节点备库
./dmrman CTLSTMT="RESTORE DATABASE '/home/dmdba/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/db_full_for_dsc'"
./dmrman CTLSTMT="RECOVER DATABASE '/home/dmdba/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/db_full_for_dsc'"
./dmrman CTLSTMT="RECOVER DATABASE '/home/dmdba/dmdbms/data/DAMENG/dm.ini' UPDATE DB_MAGIC"
DSC1的dm.ini
----------
INSTANCE_NAME = DSC1
PORT_NUM = 5236
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64
DSC2的dm.ini
----------
INSTANCE_NAME = DSC2
PORT_NUM = 5236
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64
备库的dm.ini
----------
INSTANCE_NAME = GRP1_RT_1
PORT_NUM = 5236
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64
编写主库的dmmal.ini添加备库配置项,完成后拷贝到DSC2和备库即可
--------------------------------------------------
MAL_CHECK_INTERVAL = 30
MAL_CONN_FAIL_INTERVAL = 10
[MAL_INST1]
MAL_INST_NAME = DSC1
MAL_HOST = 10.0.0.1
MAL_PORT = 7237
MAL_INST_HOST = 192.168.1.110
MAL_INST_PORT = 5236
MAL_DW_PORT = 65101
MAL_INST_DW_PORT = 45101
[MAL_INST2]
MAL_INST_NAME = DSC2
MAL_HOST = 10.0.0.2
MAL_PORT = 7237
MAL_INST_HOST = 192.168.1.111
MAL_INST_PORT = 5236
MAL_DW_PORT = 65101
MAL_INST_DW_PORT = 45101
[MAL_INST3]
MAL_INST_NAME = GRP1_RT_1
MAL_HOST = 10.0.0.115
MAL_PORT = 7237
MAL_INST_HOST = 192.168.1.115
MAL_INST_PORT = 5236
MAL_DW_PORT = 65101
MAL_INST_DW_PORT = 45101
DSC1的dmarch.ini #DSC环境配置主备必须配置远程归档
--------------------------------
ARCH_LOCAL_SHARE = 1
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_RT_1
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/archlog1
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 4096
[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC2
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 4096
ARCH_INCOMING_PATH = +DMDATA/archlog2
DSC2的dmarch.ini
--------------------------------
ARCH_LOCAL_SHARE = 1
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_RT_1
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/archlog2
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 4096
[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC2
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 4096
ARCH_INCOMING_PATH = +DMDATA/archlog1
备库的dmarch.ini
--------------------------------
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DSC1/DSC2
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmdbms/data/DAMENG/archlog
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 4096
ARCH_FLUSH_BUF_SIZE = 0
ARCH_HANG_FLAG = 1
DSC1的dmwatcher.ini
--------------------------------
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 60
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453331
INST_INI = /home/dmdba/dmdbms/dmdata/dsc01/dm.ini
DCR_INI = /home/dmdba/dmdbms/dsc_config/dmdcr.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
DSC2的dmwatcher.ini
--------------------------------
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 60
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453331
INST_INI = /home/dmdba/dmdbms/dmdata/dsc02/dm.ini
DCR_INI = /home/dmdba/dmdbms/dsc_config/dmdcr.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
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 = 10
INST_OGUID = 453331
INST_INI = /home/dmdba/dmdbms/data/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
监控的dmmonitor.ini
MON_DW_CONFIRM = 0
MON_LOG_PATH = /dm8/dbms/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0
[GRP1]
MON_INST_OGUID = 453331
MON_DW_IP = 10.0.0.1:65101/10.0.0.2:65101
MON_DW_IP = 10.0.0.115:65101
DSC1:
./dmserver /home/dmdba/dmdbms/dmdata/dsc01/dm.ini DCR_INI=/home/dmdba/dmdbms/dsc_config/dmdcr.ini mount
DSC2:
./dmserver /home/dmdba/dmdbms/dmdata/dsc02/dm.ini DCR_INI=/home/dmdba/dmdbms/dsc_config/dmdcr.ini mount
备库:
./dmserver /home/dmdba/dmdbms/data/DAMENG/dm.ini mount
SQL> SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
SQL> sp_set_oguid(453331);
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(453331);
SQL>alter database standby;
SQL>SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);
启动 DMDSC 主库的所有守护进程
./dmwatcher /home/dmdba/dmdbms/dmdata/dsc01/dmwatcher.ini
./dmwatcher /home/dmdba/dmdbms/dmdata/dsc02/dmwatcher.ini
启动备库的守护进程:
./dmwatcher /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini
./dmmonitor /home/dmdba/dmmonitor.ini
[monitor] 2023-03-01 17:11:43: DMMONITOR[4.0] V8
[monitor] 2023-03-01 17:11:43: DMMONITOR[4.0] IS READY.
[monitor] 2023-03-01 17:11:43: 收到守护进程(DSC1)消息
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2023-03-01 17:11:43 RECOVERY OK DSC1 OPEN PRIMARY VALID 17 174315 174315
[monitor] 2023-03-01 17:11:43: 收到守护进程(DSC2)消息
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2023-03-01 17:11:43 STARTUP OK DSC1 OPEN PRIMARY VALID 17 174315 174315
[monitor] 2023-03-01 17:11:43: 收到守护进程(GRP1_RT_1)消息
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2023-03-01 17:11:43 OPEN OK GRP1_RT_1 OPEN STANDBY INVALID 17 174313 174313
[monitor] 2023-03-01 17:11:51: 守护进程(DSC1)状态切换 [RECOVERY-->OPEN]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2023-03-01 17:11:51 OPEN OK DSC1 OPEN PRIMARY VALID 17 174316 174317
监视器查看:
查看DSC集群状态:
登录主库DSC1:
登录主库DSC2:
登录备库:
#================================================================================#
login
用户名:SYSDBA
密码:
[monitor] 2023-03-01 18:09:20: 登录监视器成功!
SHOW GLOBAL INFO
2023-03-01 18:09:27
#================================================================================#
GROUP OGUID MON_CONFIRM MODE MPP_FLAG
GRP1 453331 FALSE MANUAL FALSE
<<DATABASE GLOBAL INFO:>>
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT
10.0.0.1 65101 2023-03-01 18:09:26 GLOBAL VALID OPEN DSC1 OK 2 2 OPEN PRIMARY DSC_OPEN REALTIME VALID
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT
10.0.0.115 65101 2023-03-01 18:09:26 GLOBAL VALID OPEN GRP1_RT_1 OK 1 1 OPEN STANDBY DSC_OPEN REALTIME VALID
#================================================================================#
switchover
[monitor] 2023-03-01 18:09:37: 开始切换实例GRP1_RT_1
[monitor] 2023-03-01 18:09:37: 通知守护进程DSC1切换SWITCHOVER状态
[monitor] 2023-03-01 18:09:38: 守护进程(DSC1)状态切换 [OPEN-->SWITCHOVER]
[monitor] 2023-03-01 18:09:39: 切换守护进程DSC1为SWITCHOVER状态成功
[monitor] 2023-03-01 18:09:39: 通知守护进程GRP1_RT_1切换SWITCHOVER状态
[monitor] 2023-03-01 18:09:39: 守护进程(GRP1_RT_1)状态切换 [OPEN-->SWITCHOVER]
[monitor] 2023-03-01 18:09:40: 切换守护进程GRP1_RT_1为SWITCHOVER状态成功
[monitor] 2023-03-01 18:09:40: 实例DSC1开始执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句
[monitor] 2023-03-01 18:09:40: 实例DSC1执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句成功
[monitor] 2023-03-01 18:09:40: 实例GRP1_RT_1开始执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句
[monitor] 2023-03-01 18:09:40: 实例GRP1_RT_1执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句成功
[monitor] 2023-03-01 18:09:40: 实例DSC1开始执行ALTER DATABASE MOUNT语句
[monitor] 2023-03-01 18:09:40: 实例DSC1执行ALTER DATABASE MOUNT语句成功
[monitor] 2023-03-01 18:09:40: 实例GRP1_RT_1开始执行SP_APPLY_KEEP_PKG()语句
[monitor] 2023-03-01 18:09:40: 实例GRP1_RT_1执行SP_APPLY_KEEP_PKG()语句成功
[monitor] 2023-03-01 18:09:40: 实例GRP1_RT_1开始执行ALTER DATABASE MOUNT语句
[monitor] 2023-03-01 18:09:40: 实例GRP1_RT_1执行ALTER DATABASE MOUNT语句成功
[monitor] 2023-03-01 18:09:40: 实例DSC1开始执行ALTER DATABASE STANDBY语句
[monitor] 2023-03-01 18:09:41: 实例DSC1执行ALTER DATABASE STANDBY语句成功
[monitor] 2023-03-01 18:09:41: 实例GRP1_RT_1开始执行ALTER DATABASE PRIMARY语句
[monitor] 2023-03-01 18:09:41: 实例GRP1_RT_1执行ALTER DATABASE PRIMARY语句成功
[monitor] 2023-03-01 18:09:41: 通知实例GRP1_RT_1修改所有归档状态无效
[monitor] 2023-03-01 18:09:41: 修改所有实例归档为无效状态成功
[monitor] 2023-03-01 18:09:41: 实例DSC1开始执行ALTER DATABASE OPEN FORCE语句
[monitor] 2023-03-01 18:09:41: 实例DSC1执行ALTER DATABASE OPEN FORCE语句成功
[monitor] 2023-03-01 18:09:41: 实例GRP1_RT_1开始执行ALTER DATABASE OPEN FORCE语句
[monitor] 2023-03-01 18:09:41: 实例GRP1_RT_1执行ALTER DATABASE OPEN FORCE语句成功
[monitor] 2023-03-01 18:09:41: 实例DSC1开始执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句
[monitor] 2023-03-01 18:09:42: 实例DSC1执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句成功
[monitor] 2023-03-01 18:09:42: 实例GRP1_RT_1开始执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句
[monitor] 2023-03-01 18:09:42: 实例GRP1_RT_1执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句成功
[monitor] 2023-03-01 18:09:42: 通知守护进程DSC1切换OPEN状态
[monitor] 2023-03-01 18:09:42: 守护进程(DSC1)状态切换 [SWITCHOVER-->OPEN]
[monitor] 2023-03-01 18:09:43: 切换守护进程DSC1为OPEN状态成功
[monitor] 2023-03-01 18:09:43: 通知守护进程GRP1_RT_1切换OPEN状态
[monitor] 2023-03-01 18:09:43: 守护进程(GRP1_RT_1)状态切换 [SWITCHOVER-->OPEN]
[monitor] 2023-03-01 18:09:44: 切换守护进程GRP1_RT_1为OPEN状态成功
[monitor] 2023-03-01 18:09:44: 通知组(GRP1)的守护进程执行清理操作
[monitor] 2023-03-01 18:09:44: 清理守护进程(DSC1)请求成功
[monitor] 2023-03-01 18:09:44: 清理守护进程(GRP1_RT_1)请求成功
[monitor] 2023-03-01 18:09:44: 实例GRP1_RT_1切换成功
2023-03-01 18:09:44
#================================================================================#
GROUP OGUID MON_CONFIRM MODE MPP_FLAG
GRP1 453331 FALSE MANUAL FALSE
<<DATABASE GLOBAL INFO:>>
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT
10.0.0.115 65101 2023-03-01 18:09:44 GLOBAL VALID OPEN GRP1_RT_1 OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID
EP INFO:
INST_IP INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG
192.168.1.115 5236 OK GRP1_RT_1 OPEN PRIMARY 0 0 REALTIME VALID 73981 176854 73981 176854 NONE
<<DATABASE GLOBAL INFO:>>
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT
10.0.0.1 65101 2023-03-01 18:09:44 GLOBAL VALID OPEN DSC1 OK 2 2 OPEN STANDBY DSC_OPEN REALTIME INVALID
EP INFO:
INST_IP INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG
192.168.1.110 5236 OK DSC1 OPEN STANDBY 0 0 REALTIME INVALID 73978 175478 73978 175478 NONE
192.168.1.111 5236 OK DSC2 OPEN STANDBY 1 0 REALTIME INVALID 74128 175478 74128 175478 NONE
DATABASE(DSC1) APPLY INFO FROM (GRP1_RT_1), REDOS_PARALLEL_NUM (1):
DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[73978, 73978, 73978], (RLSN, SLSN, KLSN)[175477, 175477, 175477], N_TSK[0], TSK_MEM_USE[0]
REDO_LSN_ARR: (175477)
DSC_SEQNO[1], (RSEQ, SSEQ, KSEQ)[74128, 74128, 74128], (RLSN, SLSN, KLSN)[175478, 175478, 175478], N_TSK[0], TSK_MEM_USE[0]
REDO_LSN_ARR: (175478)
#================================================================================#
[monitor] 2023-03-01 18:09:46: 守护进程(GRP1_RT_1)状态切换 [OPEN-->RECOVERY]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2023-03-01 18:09:46 RECOVERY OK GRP1_RT_1 OPEN PRIMARY VALID 18 176854 176855
[monitor] 2023-03-01 18:09:51: 守护进程(GRP1_RT_1)状态切换 [RECOVERY-->OPEN]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2023-03-01 18:09:51 OPEN OK GRP1_RT_1 OPEN PRIMARY VALID 18 176856 176856
再次检查主备库状态
监视器检查:
主库DSC1查看:主备库模式已变化
主库DSC2查看:主备库模式已变化
备库查看:
至此DSC集群搭建单机备库操作分享演示完毕。
文章
阅读量
获赞