一、实验背景
为增加共享存储集群的冗余性,建议可在共享存储集群构架上再增加一台实时备机,保障系统的数据安全和实时稳定。
本实验练习在两节点的DSC集群基础上,新增一台实时备机,增加数据库的高可靠性。
二、实验要求
完成2节点dsc+1节点dw的部署
三、实验步骤
1 集群规划
1.1 地址规划
表1 地址规划
服务器名 | DM1 | DM2 | DM_DW |
---|---|---|---|
业务IP | 192.168.75.141 | 192.168.75.142 | 192.168.75.144 |
内部IP | 1.1.1.11 | 1.1.1.12 | 1.1.1.14 |
OGUID | 1234 | 1234 | 1234 |
1.2 DSC端口规划
表2 实例端口规划(dmdcr_cfg)
服务器名 | 实例名 | IP | PORT_NUM |
---|---|---|---|
DM1 | CSS1 | 192.168.75.141 | 5230 |
ASM1 | 5231 | ||
DSC1 | 5232 | ||
DM2 | CSS2 | 192.168.75.142 | 5230 |
ASM2 | 5231 | ||
DSC2 | 5232 |
表3 其它端口规划
服务器名 | 配置文档 | 实例名 | 端口类型 | PORT_NUM |
---|---|---|---|---|
DM1 | dmasvrmal | ASM1 | MAL_PORT | 5233 |
dminit | DSC1 | PORT_NUM | 5232 | |
dmasvrmal | DSC1 | MAL_PORT | 5235 | |
DM2 | dmasvrmal | ASM2 | MAL_PORT | 5233 |
dminit | DSC2 | PORT_NUM | 5232 | |
dmasvrmal | DSC2 | MAL_PORT | 5235 |
1.3 实时备机端口规划(增)
实例名 | PORT_NUM | MAL_PORT | MAL_DW_PORT | MAL_INST_DW_PORT |
---|---|---|---|---|
DW1 | 5232 | 5235 | 5234 | 5236 |
1.4 用户和用户组规划
两台机器均创建用户和组:
groupadd dmdba
useradd dmdba -g dmdba
passwd dmdba
1.5 目录规划
两台机器均准备:
(1)使用dmdba用户创建用于DSC环境搭建的目录:/home/dmdba/dmdsc
(2)DM执行码和工具存放的目录:/home/dmdba/dmdsc/bin
(3)配置文件存放的目录:两台分别为/home/dmdba/dmdsc/data/DSC1和/home/dmdba/dmdsc/data/DSC2
实时备机目录:
(1)数据库安装目录/dm8
(2)数据库目录/dm8/data
(3)归档目录:/dm8/data/arch
1.6 存储规划(实验用)
磁盘名称 | 大小 | 文件命名 | 用途 |
---|---|---|---|
SCR磁盘 | 1G | DSCShare_1G_1.vmdk | 记录存储、集群配置的详细信息 |
VOTE磁盘 | 1G | DSCShare_1G_2.vmdk | 存储VTD文件,记录集群成员信息,并通过VOTE DISK进行心跳检测,确定节点状态。 |
DMDATA磁盘 | 10G | DSCShare_10G_1.vmdk | |
DMLOG磁盘 | 10G | DSCShare_10G_2.vmdk | |
归档日志 | 5G | DSCShare_5G_1.vmdk |
所有存储只需要挂在给DSC两节点,实时备份节点不需要挂载
2 参数配置
2.1 创建用户、目录并安装数据库
正常初始化数据库
注意:无需初始化数据库,新建目录保存配置文件即可
2.2 存储配置
参考:https://blog.csdn.net/January01/article/details/119008348
使用vmware-vdiskmanager.exe工具创建共享磁盘,分别为1G、1G、10G、10G大小。(注意工具的位置和创建磁盘的目录根据自己的需要进行修改)
注意最后一条为新增
D:\vmware\vmware-vdiskmanager.exe -c -s 1Gb -a lsilogic -t 2 "E:\98_VMware\share_disk\DSCShare_1G_1.vmdk
D:\vmware\vmware-vdiskmanager.exe -c -s 1Gb -a lsilogic -t 2 "E:\98_VMware\share_disk\DSCShare_1G_2.vmdk
D:\vmware\vmware-vdiskmanager.exe -c -s 1Gb -a lsilogic -t 2 "E:\98_VMware\share_disk\DSCShare_10G_1.vmdk
D:\vmware\vmware-vdiskmanager.exe -c -s 1Gb -a lsilogic -t 2 "E:\98_VMware\share_disk\DSCShare_10G_1.vmdk
D:\vmware\vmware-vdiskmanager.exe -c -s 5Gb -a lsilogic -t 2 "E:\98_VMware\share_disk\DSCShare_5G_1.vmdk
把磁盘挂在给第一台虚拟机,并修改两台虚拟机的vmx文件,在文件后面添加以下内容:注意虚拟设备节点根据实际情况修改。
注意有新增
sata0:1.mode="independent-persistent"
sata0:1.SharedBus="Virtual"
sata0:2.mode="independent-persistent"
sata0:2.SharedBus="Virtual"
sata0:3.mode="independent-persistent"
sata0:3.SharedBus="Virtual"
sata0:0.mode="independent-persistent"
sata0:0.SharedBus="Virtual"
sata0:4.mode="independent-persistent"
sata0:4.SharedBus="Virtual"
disk.locking="FALSE"
disk.EnableUUID="TRUE"
保存vmx文件,已现有文件的方式挂载磁盘后,启动第二台虚拟机,磁盘可以被正常挂载。
使用UDEV工具来固定磁盘,先查看磁盘的scsi_id,查询命令如下:
/usr/lib/udev/scsi_id -g -u /dev/sdb
/usr/lib/udev/scsi_id -g -u /dev/sdc
/usr/lib/udev/scsi_id -g -u /dev/sdd
/usr/lib/udev/scsi_id -g -u /dev/sde
/usr/lib/udev/scsi_id -g -u /dev/sdf
编写/etc/udev/rules.d/66-dmdevices.rules,创建磁盘软链接
## DCR磁盘配置,且在软链接之前创建文件夹 /dev_DSC2
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="35000c29082f479d4",SYMLINK+="DCR", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name;mkdir -p /dev_DSC2; ln -s /dev/DCR /dev_DSC2/DCR'"
## VOTE 磁盘配置
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="35000c293c79e120a",SYMLINK+="VOTE", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/VOTE /dev_DSC2/VOTE'"
## DMDATA 磁盘配置
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="35000c2960951fe60",SYMLINK+="DMDATA", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/DMDATA /dev_DSC2/DMDATA'"
## DMLOG 磁盘配置,且在搭建完成之后,将权限直接赋予 dmdba组的dmdba用户
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="35000c291ba9a6f99",SYMLINK+="DMLOG", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/DMLOG /dev_DSC2/DMLOG ; chown -R dmdba:dmdba /dev_DSC2'"
## ARCH 磁盘配置,且在搭建完成之后,将权限直接赋予 dmdba组的dmdba用户
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="35000c2947250e00e",SYMLINK+="ARCH", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/ARCH /dev_DSC2/ARCH ; chown -R dmdba:dmdba /dev_DSC2'"
重启 systemd-udev-trigger 服务。
systemctl restart systemd-udev-trigger
查看磁盘权限:
ls -lth /dev_DSC2/
2.3 dmdcr_cfg.ini 文件配置(DM1)
配置文件dmdcr_cfg.ini存放于服务器DM1的/home/dmdba/dmdsc/data/DSC1,内容如下:
DCR_N_GRP= 3
DCR_VTD_PATH=/dev_DSC2/VOTE
DCR_OGUID= 1234
[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = GRP_CSS
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 1.1.1.11
DCR_EP_PORT = 5230
[GRP_CSS]
DCR_EP_NAME = CSS2
DCR_EP_HOST = 1.1.1.12
DCR_EP_PORT = 5230
[GRP]
DCR_GRP_TYPE= ASM
DCR_GRP_NAME= GRP_ASM
DCR_GRP_N_EP= 2
DCR_GRP_DSKCHK_CNT= 60
[GRP_ASM]
DCR_EP_NAME= ASM1
DCR_EP_SHM_KEY= 64735
DCR_EP_SHM_SIZE= 512
DCR_EP_HOST= 1.1.1.11
DCR_EP_PORT= 5231
DCR_EP_ASM_LOAD_PATH= /dev_DSC2
[GRP_ASM]
DCR_EP_NAME= ASM2
DCR_EP_SHM_KEY= 54736
DCR_EP_SHM_SIZE= 512
DCR_EP_HOST= 1.1.1.12
DCR_EP_PORT= 5231
DCR_EP_ASM_LOAD_PATH= /dev_DSC2
[GRP]
DCR_GRP_TYPE= DB
DCR_GRP_NAME= GRP_DSC
DCR_GRP_N_EP= 2
DCR_GRP_DSKCHK_CNT= 60
[GRP_DSC]
DCR_EP_NAME= DSC1
DCR_EP_SEQNO= 0
DCR_EP_PORT= 5232
[GRP_DSC]
DCR_EP_NAME= DSC2
DCR_EP_SEQNO= 1
DCR_EP_PORT= 5232
2.4 使用dmasmcmd工具初始化磁盘(DM1)
在DM1上使用dmasmcmd工具初始化磁盘:
有新增
create dcrdisk '/dev_DSC2/DCR' 'DCR'
create votedisk '/dev_DSC2/VOTE' 'VOTE'
create asmdisk '/dev_DSC2/DMDATA' 'DMDATA'
create asmdisk '/dev_DSC2/DMLOG' 'DMLOG'
create asmdisk '/dev_DSC2/ARCH' 'ARCH'
init dcrdisk '/dev_DSC2/DCR' from '/home/dmdba/dmdsc/data/DSC1/dmdcr_cfg.ini' identified by 'SYSDBA'
init votedisk '/dev_DSC2/VOTE' from '/home/dmdba/dmdsc/data/DSC1/dmdcr_cfg.ini'
新增:
说明:如需要清理实验环境,需要重新初始化磁盘,此时会抹除数据
2.5 dmasvrmal.ini文件(DM1,DM2)
dmasvrmal.ini文件保存在/home/dmdba/dmdsc/data/DSC1下,DM1和DM2的配置一致。
[MAL_INST1]
MAL_INST_NAME=ASM1
MAL_HOST=1.1.1.11
MAL_PORT=5233
[MAL_INST2]
MAL_INST_NAME= ASM2
MAL_HOST= 1.1.1.12
MAL_PORT= 5233
2.6 dmarch.ini文件配置
##DM1节点修改 dm.ini
[dmdba@~]# vi /home/dmdba/dmdsc/data/DSC1/dm.ini
ARCH_INI = 1
##创建 dmarch.ini
[dmdba@~]# vi /home/dmdba/dmdsc/data/DSC1/dmarch.ini
ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
ARCH_LOCAL_SHARE_CHECK=0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +ARCH/ARCH/DSC1/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 2048
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC2
ARCH_INCOMING_PATH = +ARCH/ARCH/DSC2/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 2048
2.7 dmdcr.ini文件配置
DM1和DM2的配置仅DMDCR_SEQNO有区别,当前为手动拉起两个节点的ASM和DMSERVER服务。待集群配置完成后,再去掉注释符号##,修改为自动拉起
DM1节点配置:
[dmdba@~]# vi /home/dmdba/dmdsc/data/DSC1/dmdcr.ini
DMDCR_PATH=/dev_DSC2/DCR
DMDCR_MAL_PATH=/home/dmdba/dmdsc/data/DSC1/dmasvrmal.ini
DMDCR_SEQNO=0
DMDCR_AUTO_OPEN_CHECK=111
DMDCR_ASM_TRACE_LEVEL =2
#DMDCR_ASM_RESTART_INTERVAL = 30 #CSS 认定 ASM 故障重启的时间
#DMDCR_ASM_STARTUP_CMD=/home/dmdba/dmdsc/bin/DmASMSvrServiceASM start
#DMDCR_DB_RESTART_INTERVAL= 60##CSS认定DSC 故障重启的时间,设置为 0 不自动拉起
#DMDCR_DB_STARTUP_CMD=/home/dmdba/dmdsc/bin/DmServiceDSC start
DM2节点修改DMDCR_SEQNO为1,注意修改ini文件目录名
[dmdba@~]#vi /home/dmdba/dmdsc/data/DSC2/dmdcr.ini
DMDCR_PATH=/dev_DSC2/DCR
DMDCR_MAL_PATH=/home/dmdba/dmdsc/data/DSC2/dmasvrmal.ini
DMDCR_SEQNO=1
DMDCR_AUTO_OPEN_CHECK=111
DMDCR_ASM_TRACE_LEVEL =2
#DMDCR_ASM_RESTART_INTERVAL = 30 #CSS 认定 ASM 故障重启的时间
#DMDCR_ASM_STARTUP_CMD=/home/dmdba/dmdsc/bin/DmASMSvrServiceASM start
#DMDCR_DB_RESTART_INTERVAL= 60##CSS认定DSC 故障重启的时间,设置为 0 不自动拉起
#DMDCR_DB_STARTUP_CMD=/home/dmdba/dmdsc/bin/DmServiceDSC start
2.8 启动DMCSS和DMASM服务
启动DMCSS服务
[dmdba@dm1 bin]$ ./dmcss dcr_ini=/home/dmdba/dmdsc/data/DSC1/dmdcr.ini
[dmdba@dm2 bin]$ ./dmcss dcr_ini=/home/dmdba/dmdsc/data/DSC2/dmdcr.ini
启动DMASM服务
[dmdba@dm1 bin]$ ./dmasmsvr dcr_ini=/home/dmdba/dmdsc/data/DSC1/dmdcr.ini
[dmdba@dm2 bin]$ ./dmasmsvr dcr_ini=/home/dmdba/dmdsc/data/DSC2/dmdcr.ini
2.9 创建DMASM磁盘组
在DM1上使用DMASMTOOL工具创建ASM磁盘组:
/home/dmdba/dmdsc/bin/dmasmtool dcr_ini=/home/dmdba/dmdsc/data/DSC1/dmdcr.ini
创建DATA磁盘组和LOG磁盘组
有新增
create diskgroup 'DMDATA' asmdisk '/dev_DSC2/DMDATA'
create diskgroup 'DMLOG' asmdisk '/dev_DSC2/DMLOG'
create diskgroup 'ARCH' asmdisk '/dev_DSC2/ARCH'
2.10 dminit.ini文件配置
##创建 dminit.ini 文件保存在/home/dmdba/data/DSC1上
DB_NAME= dsc2
SYSDBA_PWD= SYSDBA_PWD
SYSTEM_PATH= +DMDATA/data
SYSTEM= +DMDATA/data/dsc2/SYSTEM.dbf
SYSTEM_SIZE= 512
ROLL= +DMDATA/data/dsc2/ROLL.dbf
ROLL_SIZE= 512
MAIN= +DMDATA/data/dsc2/MAIN.dbf
MAIN_SIZE= 512
CTL_PATH= +DMDATA/data/dsc2/dm.ctl
CTL_SIZE= 8
LOG_SIZE= 512
DCR_PATH= /dev_DSC2/DCR
DCR_SEQNO= 0
AUTO_OVERWRITE= 2
PAGE_SIZE= 32
EXTENT_SIZE = 16
BLANK_PAD_MODE= 1
[DSC1]
CONFIG_PATH= /home/dmdba/dmdsc/data/DSC1
PORT_NUM= 5232
MAL_HOST= 1.1.1.11
MAL_PORT= 5235
LOG_PATH= +DMLOG/DSC0_LOG01.log
LOG_PATH= +DMLOG/DSC0_LOG02.log
[DSC2]
CONFIG_PATH= /home/dmdba/dmdsc/data/DSC2
PORT_NUM= 5232
MAL_HOST= 1.1.1.12
MAL_PORT= 5235
LOG_PATH= +DMLOG/DSC1_LOG01.log
LOG_PATH= +DMLOG/DSC1_LOG02.log
##在 DM1 节点执行初始化 db 命令(路径需修改)
[dmdba@~]# ./dminit control=/home/dmdba/dmdsc/data/DSC1/dminit.ini
##拷贝文件到 db1 节点
[dmdba@dm1 data]$ scp -r DSC2 1.1.1.12:/home/dmdba/dmdsc/data/
2.11 dmarch.ini文件配置(实验如不开启归档可不配置)
DM1节点:
##修改 dm.ini,如不开启归档,可不配置
ARCH_INI= 1
##创建 dmarch.ini
ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
ARCH_LOCAL_SHARE_CHECK=0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMARCH/ARCH/DSC1/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC2
ARCH_INCOMING_PATH = +DMARCH/ARCH/DSC2/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 1024
DM2节点:
##修改 dm.ini
ARCH_INI= 1
##创建 dmarch.ini
ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
ARCH_LOCAL_SHARE_CHECK=0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMARCH/ARCH/DSC2/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_INCOMING_PATH = +DMARCH/ARCH/DSC1/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 1024
2.12 手动拉起集群
##DM1 机器
[dmdba@dm1 bin]$ ./dmserver /home/dmdba/dmdsc/data/DSC1/dm.ini dcr_ini=/home/dmdba/dmdsc/data/DSC1/dmdcr.ini
##DM2 机器
[dmdba@dm1 bin]$ ./dmserver /home/dmdba/dmdsc/data/DSC2/dm.ini dcr_ini=/home/dmdba/dmdsc/data/DSC2/dmdcr.ini
2.13 注册服务
##DM1 机器
[root@~]# /home/dmdba/dmdsc/script/root/dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/dmdsc/data/DSC1/dmdcr.ini -p CSS
[root@~]# /home/dmdba/dmdsc/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/dmdsc/data/DSC1/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
[root@~]# /home/dmdba/dmdsc/script/root/dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdsc/data/DSC1/dm.ini -dcr_ini /home/dmdba/dmdsc/data/DSC1/dmdcr.ini -y DmASMSvrServiceASM.service -m open -p DSC
##DM2 机器
[root@~]# /dm/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm/dmdbms/dsc_config/dmdcr.ini -p CSS
[root@~]# /dm/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dm/dmdbms/dsc_config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
[root@~]# /dm/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dm/dmdbms/dsc_config/DSC1/dm.ini -dcr_ini /dm/dmdbms/dsc_config/dmdcr.ini -y DmASMSvrServiceASM.service -m -p DSC
3 实时备机搭建
3.1 基本环境准备
(1)准备用户和目录、准备网络、安装数据库
(2)停止DSC集群的DMSERVER服务
3.2 备份DSC集群数据并在备机上恢复
##备份 DM1 机器数据
[dmdba@dm1 bin]$ ./dmrman dcr_ini=../data/DSC1/dmdcr.ini
RMAN> backup database '/home/dmdba/dmdsc/data/DSC1/dm.ini' full backupset '/home/dmdba/BACKUP_FILE1'
##检查备份文件有效性
RMAN> check backupset '/home/dmdba/BACKUP_FILE1' ;
将备份文件发送到 DM_DW 机器
[dmdba@~]# scp -r /home/dmdba/BACKUP_FILE dmdba@1.1.1.14:/home/dmdba/
登录备机使用 rman 进行还原(注意:备机初始化参数要与主库一致)
[dmdba@dm_dw bin]$ ./dmrman
RMAN> check backupset '/home/dmdba/BACKUP_FILE1' ;
RMAN>RESTORE DATABASE '/dm8/data/DW1/dm.ini' FROM BACKUPSET '/home/dmdba/BACKUP_FILE1';
RMAN>RECOVER DATABASE '/dm8/data/DW1/dm.ini' FROM BACKUPSET '/home/dmdba/BACKUP_FILE1';
RMAN>RECOVER DATABASE '/dm8/data/DW1/dm.ini' UPDATE DB_MAGIC;
3.3 dm.ini文件修改
##修改DSC集群dm.ini文件,DM1 和DM2 机器该配置相同
[dmdba@dm1 ~]$ vi /home/dmdba/dmdsc/data/DSC1/dm.ini
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息
##修改DM_DW机器的dm.ini文件
[dmdba@~]# vi /dm8/data/DW1/dm.ini
INSTANCE_NAME = DW01
PORT_NUM = 5232 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息
3.4 配置dmmal.ini文件
DSC集群中DM1和DM2服务器的dmmal.ini文件需要修改,DM_DW服务器需新建dmmal.ini文件,三台服务器文件必须保持一致。
[dmdba@dm1 ~]$ cat /home/dmdba/dmdsc/data/DSC1/dmmal.ini
MAL_CHECK_INTERVAL=87
MAL_CONN_FAIL_INTERVAL=180
MAL_SYS_BUF_SIZE=600
MAL_BUF_SIZE=300
MAL_VPOOL_SIZE=500
MAL_COMPRESS_LEVEL=0
[MAL_INST0]
MAL_INST_NAME = DSC1
MAL_HOST = 1.1.1.11
MAL_PORT = 5235
MAL_INST_HOST = 192.168.75.141
MAL_INST_PORT = 5232
MAL_DW_PORT = 5234
MAL_INST_DW_PORT = 5236
[MAL_INST1]
MAL_INST_NAME = DSC2
MAL_HOST = 1.1.1.12
MAL_PORT = 5235
MAL_INST_HOST = 192.168.75.142
MAL_INST_PORT = 5232
MAL_DW_PORT = 5234
MAL_INST_DW_PORT = 5236
[MAL_INST2]
MAL_INST_NAME = DW1
MAL_HOST = 1.1.1.14
MAL_PORT = 5235
MAL_INST_HOST = 192.168.75.144
MAL_INST_PORT = 5232
MAL_DW_PORT = 5234
MAL_INST_DW_PORT = 5236
3.5 配置dmmarch.ini
DM1:
[dmdba@dm1 ~]$ cat dmdsc/data/DSC1/dmarch.ini
ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
ARCH_LOCAL_SHARE_CHECK=0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +ARCH/ARCH/DSC1/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC2
ARCH_INCOMING_PATH = +ARCH/ARCH/DSC2/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_REALTIME1]
ARCH_TYPE=REALTIME
ARCH_DEST=DW1
DM2:
[dmdba@dm2 bin]$ cat ../data/DSC2/dmarch.ini
ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
ARCH_LOCAL_SHARE_CHECK=0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +ARCH/ARCH/DSC2/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_INCOMING_PATH = +ARCH/ARCH/DSC1/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_REALTIME1]
ARCH_TYPE=REALTIME
ARCH_DEST=DW1
DM_DW:
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DSC1/DSC2 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm8/data/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 1024 #单位 Mb,0 表示无限制,范围 1024~4294967294M
3.6 配置dmwatcher.ini
DM1:
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 120
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 120
INST_OGUID = 11111
INST_INI = /home/dmdba/dmdsc/data/DSC1/dm.ini
DCR_INI=/home/dmdba/dmdsc/data/DSC1/dmdcr.ini
INST_STARTUP_CMD = /home/dmdba/dmdsc/bin/DmCSSServiceDSC start
INST_AUTO_RESTART = 0
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
DM1:
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 120
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 120
INST_OGUID = 11111
INST_INI = /home/dmdba/dmdsc/data/DSC2/dm.ini
DCR_INI=/home/dmdba/dmdsc/data/DSC2/dmdcr.ini
INST_STARTUP_CMD = /home/dmdba/dmdsc/bin/DmCSSServiceDSC start
INST_AUTO_RESTART = 0
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
DM_DW:
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = MANUAL#手动切换模式
DW_ERROR_TIME = 120 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 120 #本地实例故障认定时间
INST_OGUID = 11111 #守护系统唯一 OGUID 值
INST_INI = /dm8/data/DW1/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 0 #设置实例不自动拉起
INST_STARTUP_CMD = /dm8/bin/DmServiceDW1 start #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
3.7 配置DSC+DW监视器
MON_DW_CONFIRM = 1
MON_LOG_PATH = /home/dmdba/dmdsc/data/DSC1/log
MON_LOG_INTERVAL = 0
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0
[GRP1]
MON_INST_OGUID = 11111
MON_DW_IP = 192.168.75.141:5232/192.168.75.142:5232
MON_DW_IP = 192.168.75.144:5232
3.8 注册服务
##DM1 机器
[root@~]# /home/dmdba/dmdsc/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /home/dmdba/dmdsc/data/DSC1/dmwatcher.ini
##DM2 机器
[root@~]# /home/dmdba/dmdsc/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /home/dmdba/dmdsc/data/DSC2/dmwatcher.ini
##DM_DW 机器
[root@~]# /dm8/script/root/dm_service_installer.sh -t dmserver -p DW1 -dm_ini /dm8/data/DW1/dm.ini
[root@~]# /dm8/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dm8/data/DW1/dmwatcher.ini
3.9 启动数据库并修改参数
以mount方式分别启动DSC及备库,并修改参数
/home/dmdba/dmdsc/bin/dmserver path=/home/dmdba/dmdsc/data/DSC2/dm.ini dcr_ini=/home/dmdba/dmdsc/data/DSC2/dmdcr.ini mount
启动后监视器查看DSC集群已状态正常
##使用 disql 连接 dsc 数据库执行:
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(11111);
SQL> alter database primary;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
##使用 disql 连接备库数据库执行:
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(11111);
SQL> alter database standby;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
##主备分别启动守护进程
./DmWatcherServiceWatcher start
3.10 启动dmcssm和dmmonitor监视器
4 服务启动和关闭顺序
4.1 启动
(1)启动DSC集群的CSS服务,服务配置30s自动拉起ASM,60s自动拉起DSC
(2)启动所有节点的守护进程,守护进程会自动拉起备机
4.2 关闭
(1)DSC集群DMSERVER服务
(2)DSC集群ASM服务
(3)DSC集群CSS服务
(4)所有节点的守护进程
(5)备节点的DMSERVER服务
四、实验结论
(1)完成2节点DSC集群+1DW备机环境搭建,配置文件较多,手动配置较复杂
(2)在原有DSC集群的基础上,备机可以多提供一层保障。
五、实验心得
1 备库的RSTAT始终处于IVALID状态
原因:备库的归档目录没有生成归档文件,重启后正常
社区地址:https://eco.dameng.com