
一、前言

二、环境信息
操作系统版本:Centos7 数据库版本:DM8
1. IP和端口规划
| 主机名 | 公网IP | 实例端口 | 私网IP | 私网端口 | 守护进程端口 | 实例守护进程端口 |
| dm8_primary | 192.168.2.30 | 5236 | 192.168.3.30 | 5237 | 5238 | 5239 |
| dm8_standby | 192.168.2.31 | 5236 | 192.168.3.31 | 5237 | 5238 | 5239 |
由于涉及的端口过多,建立进行提前规划。
2. 数据库信息规划
数据库名:muggle 实例名:muggle_01、muggle_02
OGUID:88888
三、数据库安装
需要在两台服务器完成数据库软件的安装。
1. 关闭防火墙
systemctl stop firewalld.servicesystemctl disable firewalld.service
2. 创建用户
groupadd dinstalluseradd -g dinstall dmdbapasswd dmdba
3. 创建目录
mkdir -p /dmdbmschown dmdba.dinstall -R /dmdbmschmod 775 -R /dmdbmsmkdir /dmdatachown dmdba.dinstall /dmdatachmod 775 /dmdata
4. 配置资源限制
vi /etc/security/limits.confdmdba hard nofile 65536dmdba soft nofile 65536dmdba hard stack 32768dmdba soft stack 16384
5. 配置用户环境变量
vi .bash_profileexport DM_HOME=/dmdbmsexport LD_LIBRARY_PATH=$DM_HOME/bin:$LD_LIBRARY_PATHexport PATH=$DM_HOME/bin:$PATH
6. DM8软件安装
mount dm8_20210818_x86_rh7_64_ent_8.1.2.18_pack13.iso /mntsu - dmdbacd /mnt./DMInstall.bin -iPlease select the installer's language (E/e:English C/c:Chinese) [E/e]:Extract install files..........Welcome to DM DBMS InstallerWhether to input the path of Key File? (Y/y:Yes N/n:No) [Y/y]:nWhether to Set The TimeZone? (Y/y:Yes N/n:No) [Y/y]:TimeZone:[ 1]: GTM-12=West Date Line[ 2]: GTM-11=Samoa[ 3]: GTM-10=Hawaii[ 4]: GTM-09=Alaska[ 5]: GTM-08=Pacific(America and Canada)[ 6]: GTM-07=Arizona[ 7]: GTM-06=Central(America and Canada)[ 8]: GTM-05=East(America and Canada)[ 9]: GTM-04=Atlantic(America and Canada)[10]: GTM-03=Brasilia[11]: GTM-02=Middle Atlantic[12]: GTM-01=Azores[13]: GTM=Greenwich Mean Time[14]: GTM+01=Sarajevo[15]: GTM+02=Cairo[16]: GTM+03=Moscow[17]: GTM+04=AbuDhabi[18]: GTM+05=Islamabad[19]: GTM+06=Dakar[20]: GTM+07=BangKok,Hanoi[21]: GTM+08=China[22]: GTM+09=Seoul[23]: GTM+10=Guam[24]: GTM+11=Solomon[25]: GTM+12=Fiji[26]: GTM+13=Nukualofa[27]: GTM+14=KiribatiPlease Select the TimeZone [21]:Installation Type:1 Typical2 Server3 Client4 CustomPlease Input the number of the Installation Type [1 Typical]:Require Space: 1263MPlease Input the install path [/home/dmdba/dmdbms]:/dmdbmsAvailable Space:89GPlease Confirm the install path(/dmdbms)? (Y/y:Yes N/n:No) [Y/y]:Pre-Installation SummaryInstallation Location: /dmdbmsRequire Space: 1263MAvailable Space: 89GVersion Information:Expire Date:Installation Type: TypicalConfirm to Install? (Y/y:Yes N/n:No):y2021-12-30 10:05:45[INFO] Installing DM DBMS...2021-12-30 10:05:45[INFO] Installing BASE Module...2021-12-30 10:05:49[INFO] Installing SERVER Module...2021-12-30 14:07:49[INFO] Installing CLIENT Module...2021-12-30 10:05:52[INFO] Installing DRIVERS Module...2021-12-30 10:05:55[INFO] Installing MANUAL Module...2021-12-30 10:05:56[INFO] Installing SERVICE Module...2021-12-30 10:05:56[INFO] Move log file to log directory.2021-12-30 10:05:57[INFO] Installed DM DBMS completely.Please execute the commands by root:/dmdbms/script/root/root_installer.shEnd
7.执行root脚本
/dmdbms/script/root/root_installer.shMove /dmdbms/bin/dm_svc.conf to /etcModify the files' mode of DM ServerCreate the DmAPService serviceCreated symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.Finished to create the service (DmAPService)Start the DmAPService service
四、主库配置
1. 初始化数据库
dminit PATH=/dmdata DB_NAME=MUGGLE INSTANCE_NAME=MUGGLE_01 SYSDBA_PWD=A12345678a SYSAUDITOR_PWD=A12345678a
log:
[dmdba@dm8_primary ~]$ dminit PATH=/dmdata DB_NAME=MUGGLE INSTANCE_NAME=MUGGLE_01 SYSDBA_PWD=A12345678a SYSAUDITOR_PWD=A12345678ainitdb V8db version: 0x7000cNormal of FASTNormal of DEFAULTNormal of RECYCLENormal of KEEPNormal of ROLLlog file path: /dmdata/MUGGLE/MUGGLE01.loglog file path: /dmdata/MUGGLE/MUGGLE02.logwrite to dir [/dmdata/MUGGLE].create dm database success. 2021-12-30 10:56:28
2.注册实例服务(root)
cd /dmdbms/script/root./dm_service_installer.sh -t dmserver -p MUGGLE -dm_ini /dmdata/MUGGLE/dm.ini
log:
[root@dm8_primary /]# cd /dmdbms/script/root[root@dm8_primary root]# ./dm_service_installer.sh -t dmserver -p MUGGLE -dm_ini /dmdata/MUGGLE/dm.iniCreated symlink from /etc/systemd/system/multi-user.target.wants/DmServiceMUGGLE.service to /usr/lib/systemd/system/DmServiceMUGGLE.service.创建服务(DmServiceMUGGLE)完成
3. 启动实例
systemctl start DmServiceMUGGLE
4. 停止实例
systemctl stop DmServiceMUGGLE
5. 配置实例参数文件(dm.ini)
vi /dmdata/MUGGLE/dm.iniINSTANCE_NAME = MUGGLE_01PORT_NUM = 5236DW_INACTIVE_INTERVAL = 60ALTER_MODE_STATUS = 0ENABLE_OFFLINE_TS = 2MAL_INI = 1ARCH_INI = 1RLOG_SEND_APPLY_MON = 64
6. 配置MAL参数文件(dmmal.ini)
vi /dmdata/MUGGLE/dmmal.iniMAL_CHECK_INTERVAL = 5MAL_CONN_FAIL_INTERVAL = 5[MAL_INST1]MAL_INST_NAME = MUGGLE_01MAL_HOST = 192.168.3.30MAL_PORT = 5237MAL_INST_HOST = 192.168.2.30MAL_INST_PORT = 5236MAL_DW_PORT = 5238MAL_INST_DW_PORT = 5239[MAL_INST2]MAL_INST_NAME = MUGGLE_02MAL_HOST = 192.168.3.31MAL_PORT = 5237MAL_INST_HOST = 192.168.2.31MAL_INST_PORT = 52367.MAL_DW_PORT = 5238MAL_INST_DW_PORT = 5239
7.配置归档参数文件(dmarch.ini)
mkdir /dmarchchown -R dmdba.dinstall /dmarchchmod -R 775 /dmarchvi /dmdata/MUGGLE/dmarch.ini[ARCHIVE_REALTIME]ARCH_TYPE = REALTIMEARCH_DEST = MUGGLE_02[ARCHIVE_LOCAL1]ARCH_TYPE = LOCALARCH_DEST = /dmarchARCH_FILE_SIZE = 512ARCH_SPACE_LIMIT = 0
8. mount启动主库
dmserver /dmdata/MUGGLE/dm.ini mount &
log:
[dmdba@dm8_primary ~]$ dmserver /dmdata/MUGGLE/dm.ini mount &[1] 11827[dmdba@dm8_primary ~]$ Global parameter value of ALTER_MODE_STATUS is illegal, use default value!version info: enterpriseDM Database Server x64 V8 1-2-84-21.10.21-149328-10032-ENT startup...Normal of FASTNormal of DEFAULTNormal of RECYCLENormal of KEEPNormal of ROLLDatabase mode = 0, oguid = 0begin redo pwr log collect, last ckpt lsn: 25052 ...redo pwr log collect finishedmain rfil[/dmdata/MUGGLE/MUGGLE01.log]'s grp collect 0 valid pwr record, discard 2 invalid pwr recordEP[0]'s cur_lsn[25067], file_lsn[25067]rafil_recv_if_necessary, arch file recv begin: arch_lsn: 25051, clsn: 25067, begin_seq: 4197, end_seq: 4199arch file recv end: arch_lsn: 25052, clsn: 25067, begin_seq: 4198, end_seq: 4199begin redo log recover, last ckpt lsn: 25052 ...redo log recover finishedndct db load finishedndct second level fill fast pool finishedndct third level fill fast pool finishedndct fill fast pool finishednsvr_startup end.aud sys init success.aud rt sys init success.systables desc init success.ndct_db_load_info success.SYSTEM IS READY.
9. 设置OGUID
disql sysdba/A12345678a@192.168.3.30:5236SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);sp_set_oguid(88888);SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
log:
[dmdba@dm8_primary ~]$ disql sysdba/A12345678a@192.168.3.30:5236服务器[192.168.3.30:5236]:处于普通配置状态登录使用时间 : 1.339(ms)disql V8SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);DMSQL 过程已成功完成已用时间: 5.621(毫秒). 执行号:0.SQL> sp_set_oguid(88888);DMSQL 过程已成功完成已用时间: 12.390(毫秒). 执行号:1.SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);DMSQL 过程已成功完成已用时间: 3.807(毫秒). 执行号:2.SQL>
10. 修改为主库模式
alter database primary;
log:
SQL> alter database primary;操作已执行已用时间: 10.634(毫秒). 执行号:0.SQL>
五、备库配置
通过drman备份主数据库,并上传至备库进行备库的搭建工作。
1. 备库的还原
创建备份目录
mkdir -p /dmbakchown dmdba.dinstall -R /dmbak
关闭主库
shutdown immediate
脱机备份主库
dmrman CTLSTMT="BACKUP DATABASE '/dmdata/MUGGLE/dm.ini' FULL TO MUGGLE_full BACKUPSET '/dmbak/MUGGLE_FULL'"
log:
[dmdba@dm8_primary ~]$ dmrman CTLSTMT="BACKUP DATABASE '/dmdata/MUGGLE/dm.ini' FULL TO MUGGLE_full BACKUPSET '/dmbak/MUGGLE_FULL'"dmrman V8BACKUP DATABASE '/dmdata/MUGGLE/dm.ini' FULL TO MUGGLE_full BACKUPSET '/dmbak/MUGGLE_FULL'Database mode = 1, oguid = 88888Normal of FASTNormal of DEFAULTNormal of RECYCLENormal of KEEPNormal of ROLLbegin redo pwr log collect, last ckpt lsn: 25052 ...redo pwr log collect finishedEP[0]'s cur_lsn[25067], file_lsn[25067]Processing backupset /dmbak/MUGGLE_FULL[Percent:100.00%][Speed:0.00M/s][Cost:00:00:00][Remaining:00:00:00]backup successfully!time used: 00:00:01.063
2. 初始化备库实例
[dmdba@dm8_standby MUGGLE]$ dminit PATH=/dmdata DB_NAME=MUGGLE INSTANCE_NAME=MUGGLE_02initdb V8db version: 0x7000cNormal of FASTNormal of DEFAULTNormal of RECYCLENormal of KEEPNormal of ROLLlog file path: /dmdata/MUGGLE/MUGGLE01.loglog file path: /dmdata/MUGGLE/MUGGLE02.logwrite to dir [/dmdata/MUGGLE].create dm database success. 2021-12-30 11:57:05
拷贝备份集
scp -r MUGGLE_FULL/ dmdba@192.168.2.31:/dmbak
还原备库数据文件
dmrman CTLSTMT=" RESTORE DATABASE '/dmdata/MUGGLE/dm.ini' FROM BACKUPSET '/dmbak/MUGGLE_FULL'"
log:
[dmdba@dm8_standby MUGGLE_FULL]$ dmrman CTLSTMT=" RESTORE DATABASE '/dmdata/MUGGLE/dm.ini' FROM BACKUPSET '/dmbak/MUGGLE_FULL'"dmrman V8RESTORE DATABASE '/dmdata/MUGGLE/dm.ini' FROM BACKUPSET '/dmbak/MUGGLE_FULL'Normal of FASTNormal of DEFAULTNormal of RECYCLENormal of KEEPNormal of ROLL[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]restore successfully.time used: 00:00:02.330
介质恢复
dmrman CTLSTMT=" RECOVER DATABASE '/dmdata/MUGGLE/dm.ini' FROM BACKUPSET '/dmbak/MUGGLE_FULL'"
log:
[dmdba@dm8_standby MUGGLE_FULL]$ dmrman CTLSTMT=" RECOVER DATABASE '/dmdata/MUGGLE/dm.ini' FROM BACKUPSET '/dmbak/MUGGLE_FULL'"dmrman V8RECOVER DATABASE '/dmdata/MUGGLE/dm.ini' FROM BACKUPSET '/dmbak/MUGGLE_FULL'Database mode = 1, oguid = 88888Normal of FASTNormal of DEFAULTNormal of RECYCLENormal of KEEPNormal of ROLLEP[0]'s cur_lsn[25052], file_lsn[25052][Percent:100.00%][Speed:0.00PKG/s][Cost:00:00:00][Remaining:00:00:00]recover successfully!time used: 00:00:02.299[dmdba@dm8_standby MUGGLE_FULL]$
更新Magic
dmrman CTLSTMT="RECOVER DATABASE '/dmdata/MUGGLE/dm.ini' UPDATE DB_MAGIC"
log:
[dmdba@dm8_standby MUGGLE_FULL]$ dmrman CTLSTMT="RECOVER DATABASE '/dmdata/MUGGLE/dm.ini' UPDATE DB_MAGIC"dmrman V8RECOVER DATABASE '/dmdata/MUGGLE/dm.ini' UPDATE DB_MAGICDatabase mode = 1, oguid = 88888Normal of FASTNormal of DEFAULTNormal of RECYCLENormal of KEEPNormal of ROLLEP[0]'s cur_lsn[25067], file_lsn[25067]recover successfully!time used: 00:00:01.003[dmdba@dm8_standby MUGGLE_FULL]$
3. root注册实例
cd /dmdbms/script/root./dm_service_installer.sh -t dmserver -p MUGGLE -dm_ini /dmdata/MUGGLE/dm.ini
log:
[root@dm8_standby ~]# cd /dmdbms/script/root[root@dm8_standby root]# ./dm_service_installer.sh -t dmserver -p MUGGLE -dm_ini /dmdata/MUGGLE/dm.iniCreated symlink from /etc/systemd/system/multi-user.target.wants/DmServiceMUGGLE.service to /usr/lib/systemd/system/DmServiceMUGGLE.service.创建服务(DmServiceMUGGLE)完成[root@dm8_standby root]#
4. 启动服务
systemctl start DmServiceMUGGLE
5. 配置归档参数文件(dmarch.ini)
mkdir /dmarchvi /dmdata/MUGGLE/dmarch.ini[ARCHIVE_REALTIME]ARCH_TYPE = REALTIMEARCH_DEST = MUGGLE_01[ARCHIVE_LOCAL1]ARCH_TYPE = LOCALARCH_DEST = /dmarchARCH_FILE_SIZE = 512ARCH_SPACE_LIMIT = 0
Note:更改归档传输路径为主库。
6. 配置实例参数文件(dm.ini)
vi /dmdata/MUGGLE/dm.iniINSTANCE_NAME = MUGGLE_02PORT_NUM = 5236DW_INACTIVE_INTERVAL = 60ALTER_MODE_STATUS = 0ENABLE_OFFLINE_TS = 2MAL_INI = 1ARCH_INI = 1RLOG_SEND_APPLY_MON = 64
Note:修改实例名和端口,dmmal.ini无需修改。
7. 配置dmmal.ini
vi /dmdata/MUGGLE/dm.iniMAL_CHECK_INTERVAL = 5MAL_CONN_FAIL_INTERVAL = 5[MAL_INST1]MAL_INST_NAME = MUGGLE_01MAL_HOST = 192.168.3.30MAL_PORT = 5237MAL_INST_HOST = 192.168.2.30MAL_INST_PORT = 5236MAL_DW_PORT = 5238MAL_INST_DW_PORT = 5239[MAL_INST2]MAL_INST_NAME = MUGGLE_02MAL_HOST = 192.168.3.31MAL_PORT = 5237MAL_INST_HOST = 192.168.2.31MAL_INST_PORT = 5236MAL_DW_PORT = 5238MAL_INST_DW_PORT = 5239
8. 启动备库
dmserver /dmdata/MUGGLE/dm.ini mount &
9.配置备库OGUID
disql sysdba/A12345678a@192.168.2.31:5236SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);sp_set_oguid(88888);SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
log:
[dmdba@dm8_standby ~]$ disql sysdba/A12345678a@192.168.2.31:5236服务器[192.168.2.31:5236]:处于主库配置状态登录使用时间 : 4.312(ms)disql V8SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);DMSQL 过程已成功完成已用时间: 6.233(毫秒). 执行号:0.SQL> sp_set_oguid(88888);DMSQL 过程已成功完成已用时间: 2.023(毫秒). 执行号:1.SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);DMSQL 过程已成功完成已用时间: 5.693(毫秒). 执行号:2.SQL>
10. 修改备库模式
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);alter database standby;SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
log:
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);DMSQL 过程已成功完成已用时间: 3.951(毫秒). 执行号:3.SQL> alter database standby;操作已执行已用时间: 17.373(毫秒). 执行号:0.SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);DMSQL 过程已成功完成已用时间: 3.724(毫秒). 执行号:4.SQL>
六、配置守护进程
1. 配置守护进程参数文件(dmwatcher.ini)
vi /dmdata/MUGGLE/dmwatcher.ini[GRP1]DW_TYPE = GLOBALDW_MODE = AUTODW_ERROR_TIME = 10INST_RECOVER_TIME = 60INST_ERROR_TIME = 10INST_OGUID = 88888INST_INI = /dmdata/MUGGLE/dm.iniINST_AUTO_RESTART = 1INST_STARTUP_CMD = /dmdbms/bin/dmserverRLOG_SEND_THRESHOLD = 0RLOG_APPLY_THRESHOLD = 0
2. 注册守护进程服务(root)
cd /dmdbms/script/root./dm_service_installer.sh -t dmwatcher -p MUGGLE -watcher_ini /dmdata/MUGGLE/dmwatcher.ini
log:
[root@dm8_standby ~]# cd /dmdbms/script/root[root@dm8_standby root]# ./dm_service_installer.sh -t dmwatcher -p MUGGLE -watcher_ini /dmdata/MUGGLE/dmwatcher.iniCreated symlink from /etc/systemd/system/multi-user.target.wants/DmWatcherServiceMUGGLE.service to /usr/lib/systemd/system/DmWatcherServiceMUGGLE.service.创建服务(DmWatcherServiceMUGGLE)完成
3.启动守护进程服务
systemctl start DmWatcherServiceMUGGLE
4. 集群检验
主库
disql sysdba/A12345678a@192.168.2.30:5236select NAME,OGUID,STATUS$,MODE$ from v$instance;
[dmdba@dm8_primary ~]$ disql SYSDBA/A12345678a@192.168.2.30:5236服务器[192.168.2.30:5236]:处于主库打开状态登录使用时间 : 1.236(ms)disql V8SQL> select NAME,OGUID,STATUS$,MODE$ from v$instance;行号 NAME OGUID STATUS$ MODE$---------- --------- ----------- ------- -------1 MUGGLE_01 88888 OPEN PRIMARY已用时间: 3.902(毫秒). 执行号:500.SQL>
备库
disql sysdba/A12345678a@192.168.2.31:5236select NAME,OGUID,STATUS$,MODE$ from v$instance;
[dmdba@dm8_primary ~]$ disql sysdba/A12345678a@192.168.2.31:5236服务器[192.168.2.31:5236]:处于备库打开状态登录使用时间 : 2.590(ms)disql V8SQL> select NAME,OGUID,STATUS$,MODE$ from v$instance;行号 NAME OGUID STATUS$ MODE$---------- --------- ----------- ------- -------1 MUGGLE_02 88888 OPEN STANDBY已用时间: 3.300(毫秒). 执行号:100.SQL>
七、配置监视器
监视器可以实现主备集群的自动切换,后面我们进行验证下;监视器可以配置在专门的服务器,这里演示配置在节点1上。
1. 创建日志目录
mkdir -p /dmdata/log
2. 配置监视器参数文件(dmmonitor.ini)
vi /dmdata/MUGGLE/dmmonitor.iniMON_DW_CONFIRM = 1MON_LOG_PATH = /dmdata/logMON_LOG_INTERVAL = 60MON_LOG_FILE_SIZE = 32MON_LOG_SPACE_LIMIT = 0[GRP1]MON_INST_OGUID = 88888MON_DW_IP = 192.168.3.30:5238MON_DW_IP = 192.168.3.31:5238
3. 注册服务(root)
cd /dmdbms/script/root./dm_service_installer.sh -t dmmonitor -p MUGGLE -monitor_ini /dmdata/MUGGLE/dmmonitor.ini
log:
[root@dm8_standby ~]# cd /dmdbms/script/root[root@dm8_standby root]# ./dm_service_installer.sh -t dmmonitor -p MUGGLE -monitor_ini /dmdata/MUGGLE/dmmonitor.iniCreated symlink from /etc/systemd/system/multi-user.target.wants/DmMonitorServiceMUGGLE.service to /usr/lib/systemd/system/DmMonitorServiceMUGGLE.service.创建服务(DmMonitorServiceMUGGLE)完成
4. 启动监视器服务
systemctl start DmMonitorServiceMUGGLE
监视器服务同时只能在一个节点运行。
5.命令行查看监控服务(应先停止监控服务,再用命令行查看)
dmmonitor path=/dmdata/MUGGLE/dmmonitor.ini
log:
[dmdba@dm8_primary ~]$ dmmonitor path=/dmdata/MUGGLE/dmmonitor.ini[monitor] 2021-12-30 16:08:32: DMMONITOR[4.0] V8[monitor] 2021-12-30 16:08:32: DMMONITOR[4.0] IS READY.[monitor] 2021-12-30 16:08:32: 收到守护进程(MUGGLE_01)消息WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN2021-12-30 16:08:32 OPEN OK MUGGLE_01 OPEN PRIMARY VALID 3 28021 28021[monitor] 2021-12-30 16:08:32: 收到守护进程(MUGGLE_02)消息WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN2021-12-30 16:08:32 OPEN OK MUGGLE_02 OPEN STANDBY VALID 3 28021 28021show2021-12-30 16:08:34#================================================================================#GROUP OGUID MON_CONFIRM MODE MPP_FLAGGRP1 88888 TRUE AUTO 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 RSTAT192.168.3.30 5238 2021-12-30 16:08:34 GLOBAL VALID OPEN MUGGLE_01 OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALIDEP INFO:INST_IP INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG192.168.2.30 5236 OK MUGGLE_01 OPEN PRIMARY 0 0 REALTIME VALID 4234 28021 4234 28021 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 RSTAT192.168.3.31 5238 2021-12-30 16:08:34 GLOBAL VALID OPEN MUGGLE_02 OK 1 1 OPEN STANDBY DSC_OPEN REALTIME VALIDEP INFO:INST_IP INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG192.168.2.31 5236 OK MUGGLE_02 OPEN STANDBY 0 0 REALTIME VALID 4199 28021 4199 28021 NONEDATABASE(MUGGLE_02) APPLY INFO FROM (MUGGLE_01), REDOS_PARALLEL_NUM (1):DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[4234, 4234, 4234], (RLSN, SLSN, KLSN)[28021, 28021, 28021], N_TSK[0], TSK_MEM_USE[0]REDO_LSN_ARR: (28021)#================================================================================#
八、集群同步/切换测试
1.测试同步
主库:
create tablespace muggle datafile '/dmdata/MUGGLE/muggle01.dbf' size 512;create user muggle identified by "muggle123456789" default tablespace muggle default index tablespace muggle;grant dba to muggle;create table muggle.test(id number,name varchar(10));insert into muggle.test (id,name) values(1,'muggle');commit;
log:
SQL> select * from muggle.test;行号 ID NAME---------- -- ------1 1 muggle已用时间: 0.633(毫秒). 执行号:606.SQL>
备库查看:
[dmdba@dm8_standby bin]$ disql sysdba/A12345678a@192.168.2.31:5236服务器[192.168.2.31:5236]:处于备库打开状态登录使用时间 : 1.191(ms)disql V8SQL> select * from muggle.test;行号 ID NAME---------- -- ------1 1 muggle已用时间: 1.379(毫秒). 执行号:300.SQL> >
查看恢复状态
SQL> select * from V$RECOVER_STATUS;no rowsused time: 0.296(ms). Execute id is 318.SQL>
2. 主备切换
dmmonitor path=/dmdata/MUGGLE/dmmonitor.iniloginSYSDBAA12345678aswitchover grp1.MUGGLE_02
log:
LOGIN用户名:SYSDBA密码:[monitor] 2021-12-30 16:31:01: 登录监视器成功!switchover grp1.MUGGLE_02[monitor] 2021-12-30 16:31:34: 开始切换实例MUGGLE_02[monitor] 2021-12-30 16:31:34: 通知守护进程MUGGLE_01切换SWITCHOVER状态[monitor] 2021-12-30 16:31:34: 守护进程(MUGGLE_01)状态切换 [OPEN-->SWITCHOVER][monitor] 2021-12-30 16:31:35: 切换守护进程MUGGLE_01为SWITCHOVER状态成功[monitor] 2021-12-30 16:31:35: 通知守护进程MUGGLE_02切换SWITCHOVER状态[monitor] 2021-12-30 16:31:35: 守护进程(MUGGLE_02)状态切换 [OPEN-->SWITCHOVER][monitor] 2021-12-30 16:31:36: 切换守护进程MUGGLE_02为SWITCHOVER状态成功[monitor] 2021-12-30 16:31:36: 实例MUGGLE_01开始执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句[monitor] 2021-12-30 16:31:36: 实例MUGGLE_01执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句成功[monitor] 2021-12-30 16:31:36: 实例MUGGLE_02开始执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句[monitor] 2021-12-30 16:31:36: 实例MUGGLE_02执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句成功[monitor] 2021-12-30 16:31:36: 实例MUGGLE_01开始执行ALTER DATABASE MOUNT语句[monitor] 2021-12-30 16:31:36: 实例MUGGLE_01执行ALTER DATABASE MOUNT语句成功[monitor] 2021-12-30 16:31:36: 实例MUGGLE_02开始执行SP_APPLY_KEEP_PKG()语句[monitor] 2021-12-30 16:31:36: 实例MUGGLE_02执行SP_APPLY_KEEP_PKG()语句成功[monitor] 2021-12-30 16:31:36: 实例MUGGLE_02开始执行ALTER DATABASE MOUNT语句[monitor] 2021-12-30 16:31:37: 实例MUGGLE_02执行ALTER DATABASE MOUNT语句成功[monitor] 2021-12-30 16:31:37: 实例MUGGLE_01开始执行ALTER DATABASE STANDBY语句[monitor] 2021-12-30 16:31:37: 实例MUGGLE_01执行ALTER DATABASE STANDBY语句成功[monitor] 2021-12-30 16:31:37: 实例MUGGLE_02开始执行ALTER DATABASE PRIMARY语句[monitor] 2021-12-30 16:31:37: 实例MUGGLE_02执行ALTER DATABASE PRIMARY语句成功[monitor] 2021-12-30 16:31:37: 通知实例MUGGLE_02修改所有归档状态无效[monitor] 2021-12-30 16:31:37: 修改所有实例归档为无效状态成功[monitor] 2021-12-30 16:31:37: 实例MUGGLE_01开始执行ALTER DATABASE OPEN FORCE语句[monitor] 2021-12-30 16:31:37: 实例MUGGLE_01执行ALTER DATABASE OPEN FORCE语句成功[monitor] 2021-12-30 16:31:37: 实例MUGGLE_02开始执行ALTER DATABASE OPEN FORCE语句[monitor] 2021-12-30 16:31:37: 实例MUGGLE_02执行ALTER DATABASE OPEN FORCE语句成功[monitor] 2021-12-30 16:31:37: 实例MUGGLE_01开始执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句[monitor] 2021-12-30 16:31:37: 实例MUGGLE_01执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句成功[monitor] 2021-12-30 16:31:37: 实例MUGGLE_02开始执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句[monitor] 2021-12-30 16:31:37: 实例MUGGLE_02执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句成功[monitor] 2021-12-30 16:31:37: 通知守护进程MUGGLE_01切换OPEN状态[monitor] 2021-12-30 16:31:37: 守护进程(MUGGLE_01)状态切换 [SWITCHOVER-->OPEN][monitor] 2021-12-30 16:31:38: 切换守护进程MUGGLE_01为OPEN状态成功[monitor] 2021-12-30 16:31:38: 通知守护进程MUGGLE_02切换OPEN状态[monitor] 2021-12-30 16:31:39: 守护进程(MUGGLE_02)状态切换 [SWITCHOVER-->OPEN][monitor] 2021-12-30 16:31:39: 切换守护进程MUGGLE_02为OPEN状态成功[monitor] 2021-12-30 16:31:39: 通知组(GRP1)的守护进程执行清理操作[monitor] 2021-12-30 16:31:39: 清理守护进程(MUGGLE_01)请求成功[monitor] 2021-12-30 16:31:39: 清理守护进程(MUGGLE_02)请求成功[monitor] 2021-12-30 16:31:39: 实例MUGGLE_02切换成功2021-12-30 16:31:39#================================================================================#GROUP OGUID MON_CONFIRM MODE MPP_FLAGGRP1 88888 TRUE AUTO 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 RSTAT192.168.3.31 5238 2021-12-30 16:31:39 GLOBAL VALID OPEN MUGGLE_02 OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALIDEP INFO:INST_IP INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG192.168.2.31 5236 OK MUGGLE_02 OPEN PRIMARY 0 0 REALTIME VALID 4253 35224 4253 35224 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 RSTAT192.168.3.30 5238 2021-12-30 16:31:40 GLOBAL VALID OPEN MUGGLE_01 OK 1 1 OPEN STANDBY DSC_OPEN REALTIME INVALIDEP INFO:INST_IP INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG192.168.2.30 5236 OK MUGGLE_01 OPEN STANDBY 0 0 REALTIME INVALID 4251 33866 4251 33866 NONEDATABASE(MUGGLE_01) APPLY INFO FROM (MUGGLE_02), REDOS_PARALLEL_NUM (1):DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[4251, 4251, 4251], (RLSN, SLSN, KLSN)[33866, 33866, 33866], N_TSK[0], TSK_MEM_USE[0]REDO_LSN_ARR: (33866)#================================================================================#[monitor] 2021-12-30 16:31:41: 守护进程(MUGGLE_02)状态切换 [OPEN-->RECOVERY]WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN2021-12-30 16:31:41 RECOVERY OK MUGGLE_02 OPEN PRIMARY VALID 8 35224 35224[monitor] 2021-12-30 16:31:45: 守护进程(MUGGLE_02)状态切换 [RECOVERY-->OPEN]WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN2021-12-30 16:31:45 OPEN OK MUGGLE_02 OPEN PRIMARY VALID 8 35227 35227
查看主备状态
disql SYSDBA/A12345678aselect NAME,OGUID,STATUS$,MODE$ from v$instance;
log:
[dmdba@dm8_standby MUGGLE]$ disql sysdba/A12345678a@192.168.2.31:5236服务器[192.168.2.31:5236]:处于主库打开状态登录使用时间 : 0.916(ms)disql V8SQL> select NAME,OGUID,STATUS$,MODE$ from v$instance;行号 NAME OGUID STATUS$ MODE$---------- --------- ----------- ------- -------1 MUGGLE_02 88888 OPEN PRIMARY已用时间: 1.532(毫秒). 执行号:1100.SQL>
可以看到,主库与备库角色发生了互换。主备切换正常。至此,DM8主备集群搭建完成。
文章转载自麻瓜的DBA生活,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




