注册
DSC部署及故障测试
培训园地/ 文章详情 /

DSC部署及故障测试

一五八六七 2025/12/19 180 0 0

1概述

1.1DSC集群特点

DMDSC 的主要特点包括:

  • 高可用性 只要集群中有一个活动节点,就能正常提供数据库服务。此外,当出现磁盘损坏或数据丢失时,既可以利用其他镜像副本继续提供数据库服务,又可以使用其他镜像副本进行数据恢复。
  • 高吞吐量 多个节点同时提供数据库服务,有效提升集群的整体事务处理能力。
  • 负载均衡 一方面,通过巧用服务名,用户的连接请求被平均分配到集群中的各个节点,确保连接负载平衡;另一方面,条带化技术可保证写入的数据均匀分布到磁盘组内的不同磁盘中,实现数据负载均衡

1.2DSC架构

DMDSC 集群主要由数据库和数据库实例、共享存储、DMASM 或 DMASM 镜像、本地存储、通信网络、集群控制软件 DMCSS、集群监视器 DMCSSM 组成。DMDSC 集群最多支持 8 个数据库实例节点。
image.png

2 DSC部署

2.1 安装前准备

2.1.1存储规划

  • 共享存储(磁盘为实验设置,生产以实际情况为准)
    image.png
  • 本地存储
    image.png

2.1.2端口规划

内网:192.168.253.134、192.168.253.135
网络建议:DSC内网单独使用万兆交换机,建议业务网和心跳网分开
im
age.png

2.1.3 创建用户和目录

使用root用户进行创建,两节点执行

[root@dsc01 ~]# groupadd dinstall
[root@dsc01 ~]# mkdir -p /home/dmdba
[root@dsc01 ~]# useradd -g dinstall -m -d /home/dmdba/dm -s /bin/bash dmdba
[root@dsc01 ~]# echo dmdba| passwd --stdin dmdba
[root@dsc01 ~]# mkdir -p /dbbak/dmbak

数据库管理用户创建完成后,将数据库目录归属权限给dmdba

[root@dsc02 ~]# chown -R dmdba:dinstall /home/dmdba/ /dbbak/dmbak/

2.1.4服务器参数配置

2.1.4.1存储测速

#磁盘测速

[root@dsc01 ~]# dd if=/dev/zero of=/dbdata/test bs=32k count=4k oflag=dsync

2.1.4.2关闭防火墙

[root@dsc01 ~]# systemctl status firewalld.service
[root@dsc01 ~]# systemctl stop firewalld.service
[root@dsc01 ~]# systemctl disable firewalld.service

2.1.4.3 dmdba用户内核参数调整

cat <<-EOF>>/etc/security/limits.conf
dmdba soft as unlimited
dmdba hard as unlimited
dmdba soft fsize unlimited
dmdba hard fsize unlimited
dmdba soft nproc 131072
dmdba hard nproc 131072
dmdba soft nofile 131072
dmdba hard nofile 131072
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft data unlimited
dmdba hard data unlimited
dmdba soft memlock unlimited 
dmdba hard memlock unlimited
EOF

2.1.4.4 sysctl.conf配置调整

这一步用于调整core文件路径、虚拟内存和swap使用策略、min_free_kbyte参数。
当内存很大的情况下建议关闭交换分区或最小化交换的使用,避免内核的内存申请到交换分区影响数据库性能over commit_memory配置为0。内存小于256GB时swapiness参数设置为10以下,大于256GB时关闭。

[root@dsc01 ~]# vi /etc/sysctl.conf
添加以下内容
kernel.core_pattern=/dbbak/core/core-e%-p%-t%-s%
vm.swappiness=10
vm.overcommit_memory=0
# 当物理内存小于等于64G时,设置系统保留的最小空闲内存量为1153434(单位KB)
# 当物理内存大于64G时,设置系统保留的最小空闲内存量为物理内存的2%;
vm.min_free_kbytes = 物理内存的2%(单位KB)
kernel.core_pattern=/dbbak/core-e%-p%-t%-s%
vm.swappiness=10
vm.overcommit_memory=0
# 当物理内存小于等于64G时,设置系统保留的最小空闲内存量为1153434(单位KB)
# 当物理内存大于64G时,设置系统保留的最小空闲内存量为物理内存的2%;
vm.min_free_kbytes = 物理内存的2%(单位KB)

#保存后执行
[root@dsc01 ~]# sysctl -p

2.1.4.5 磁盘IO调度算法

建议将IO调度算法设置为noop或deadline,优化数据库的磁盘性能。
如个人临时调整可参考以下方式:

#手动临时调整 sdc 为盘符,需要对应数据库使用的真实盘符
[root@dsc01 ~]# echo deadline >  /sys/block/sdc/queue/scheduler

2.1.4.6 ARENA参数配置

[root@dsc01 ~]# vim /home/dmdba/dm/dmdbms/bin/dmserverd
添加如下内容
#将其写入到数据库启动脚本中
export MALLOC_ARENA_MAX=1
注意:此配置是调整数据库启动脚本

2.1.4.7 关闭SELinux

#查看当前selinux的状态:
[root@dsc01 ~]# /usr/sbin/sestatus -v
[root@dsc01 ~]# vi /etc/selinux/config
设置SELINUX=disabled,重启机器生效。

2.1.4.8关闭numa+透明大页
数据库服务器建议关闭numa功能

1.编辑 /etc/default/grub 文件, 添加 numa=off transparent_hugepage=never
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet numa=off transparent_hugepage=never"
2. 重新生成/etc/grub2.cfg 配置文件:
grub2-mkconfig -o /etc/grub2.cfg
3. 重启操作系统。
reboot
4. 重启之后进行确认。
dmesg | grep -i numa
5. 再次确认。
cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.10.0-957.el7.x86_64 root=/dev/mapper/centos-root ro rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet numa=off transparent_hugepage=never

2.2裸设备绑定

一个lun对应一个uuid和wwid,格式化后uuid会发生改变,但wwid在存储重新配置前,是一定不会发生改变的,wwid类似于网卡的MAC地址,独一无二,而uuid类似于IP地址,所以需要用wwid来绑定asm磁盘。一般DSC的环境都是配置了多路径的,我们可以选择多路径的dm_uuid来绑定裸设备。
方法一:多路径方式绑定

1)查看多路径配置
#连接任意节点机器
[root@dsc01 ~]# multipath -ll
2)获取多路径dm_uuid
#连接任意节点机器
[root@dsc01 ~]# udevadm info --query=all --name=/dev/mapper/mpathx |grep -i dm_uuid
3)配置udev规则
#连接任意节点机器
[root@dsc01 ~]# vim /etc/udev/rules.d/99-dm-asm.rules
添加如下内容:
注意:其中xxx替换成对应设备的uuid,注意每个设备存储大小与名称要对应,将配置好的规则文件放到DSC每个节点服务器中/etc/udev/rules.d/目录下
ACTION=="add|change", ENV{DM_UUID}=="xxx",SYMLINK+="dm_shrdisk/dm_dcr" ,OWNER="dmdba", GROUP="dinstall", MODE="0660", OPTIONS="nowatch"
ACTION=="add|change", ENV{DM_UUID}=="xxx",SYMLINK+="dm_shrdisk/dm_vtd" ,OWNER="dmdba", GROUP="dinstall", MODE="0660", OPTIONS="nowatch"
ACTION=="add|change", ENV{DM_UUID}=="xxx",SYMLINK+="dm_shrdisk/dm_arch" ,OWNER="dmdba", GROUP="dinstall", MODE="0660", OPTIONS="nowatch"
ACTION=="add|change", ENV{DM_UUID}=="xxx",SYMLINK+="dm_shrdisk/dm_rlog" ,OWNER="dmdba", GROUP="dinstall", MODE="0660", OPTIONS="nowatch"
ACTION=="add|change", ENV{DM_UUID}=="xxx",SYMLINK+="dm_shrdisk/dm_data" ,OWNER="dmdba", GROUP="dinstall", MODE="0660", OPTIONS="nowatch"
4)加载udev规则
#所有节点机器都要执行
#修改udev后台的内部状态信息
[root@~]# udevadm control --reload
#从内核请求events
[root@~]# udevadm trigger --type=devices --action=change 
#查看设备文件的符号链接是否生效,权限、所属用户组是否正确
[root@~]# ls -la /dev/dm_shrdisk/

方法二:UUID 方式
如没有配置多路径,采用 UUID 绑定多个 LUN 存储,可以通过 fdisk -l 命令查看 LUN 设备,这里以共享存储盘为 sda,sdb,sdc,sdd,sde 为例。

##创建uuid.sh文件,写入如下内容:
vim uuid.sh 
curr=$(cd "$(dirname "$0")";pwd)
rm -f $curr/99-dm-asm.rules
for i in b c d e f;
do
echo "KERNEL==\"sd?\",SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\",RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", SYMLINK+=\"dm/asm-disk$i\",OWNER=\"dmdba\", GROUP=\"dinstall\",MODE=\"0660\"" >> $curr/99-dm-asm.rules
done
##执行 uuid.sh 脚本
chmod +x uuid.sh
./uuid.sh
##脚本执行成功后,会生成绑定配置文件99-dm-asm.rules,可以根据自己的需求进行修改别名 SYMLINK,本文档修改如下:
vim 99-dm-asm.rules
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="360
00c29f55322574712484a0e4d9c6d4", SYMLINK+="dm/asm-diskb",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="360
00c292bccffa48fa18c9131d07782c", SYMLINK+="dm/asm-diskc",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="360
00c2993fa5c2a4bf9fb869d25bda1f", SYMLINK+="dm/asm-diskd",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="360
00c298ac540fe8609fb13c1457b692", SYMLINK+="dm/asm-diske",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="360
00c29ab99c1da3bfc2ed3265dbd5e2", SYMLINK+="dm/asm-diskf",OWNER="dmdba", GROUP="dinstall",MODE="0660"
配置部署文件。生成配置文件后,把 99-dm-asm.rules 配置文件 cp 到 DSC 的每个节点上。
cp 99-dm-asm.rules /etc/udev/rules.d/99-dm-asm.rules
检查生效。
(1)重启服务器,建议使用该方法。
(2)如果无法重启,执行下述命令。
udevadm trigger --type=devices --action=change 
udevadm control --reload-rules
(3)授权。
chown  dmdba:dinstall /dev/dm/asm-* -R
(4)检查生效。
blockdev --getsize64 /dev/dm/asm-dmdcr
blockdev --getsize64 /dev/dm/asm-dmvote
blockdev --getsize64 /dev/dm/asm-dmlog
blockdev --getsize64 /dev/dm/asm-dmdata
blockdev --getsize64 /dev/dm/asm-dmarch
##结果如下
[root@dsc01 dm]# blockdev --getsize64 /dev/dm/asm-dmdcr
10737418240
[root@dsc01 dm]# blockdev --getsize64 /dev/dm/asm-dmvote
10737418240
[root@dsc01 dm]# blockdev --getsize64 /dev/dm/asm-dmlog
21474836480
[root@dsc01 dm]# blockdev --getsize64 /dev/dm/asm-dmdata
32212254720
[root@dsc01 dm]# blockdev --getsize64 /dev/dm/asm-dmarch
21474836480

2.3数据库软件安装

2.4配置文件准备

1)dmdcr_cfg.ini
#任意节点配置即可,当前以192.168.253.134为主节点
[dmdba@dsc01 dm_config]$vi /home/dmdba/dm/dm_config/dmdcr_cfg.ini
添加如下内容:
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/dm/asm-dmvote
DCR_OGUID = 63635
[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 = CSS0
DCR_EP_HOST = 192.168.253.134  ##IP以实际值为准
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.253.135  ##IP以实际值为准
DCR_EP_PORT = 9342
[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 = ASM0
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 1024
DCR_EP_HOST = 192.168.253.134  ##IP以实际值为准
DCR_EP_PORT = 9351
DCR_EP_ASM_LOAD_PATH = /dev/dm
[GRP_ASM]
DCR_EP_NAME =ASM1
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 1024
DCR_EP_HOST = 192.168.253.135  ##IP以实际值为准
DCR_EP_PORT = 9352
DCR_EP_ASM_LOAD_PATH = /dev/dm
[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 = DSC0
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741
[GRP_DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9742

2)dmasvrmal.ini
#各节点都需要配置,内容保持一致
[dmdba@dsc01 dm_config]$ vi /home/dmdba/dm/dm_config/dmasvrmal.ini
添加如下内容:
MAL_CHECK_INTERVAL = 61
MAL_CONN_FAIL_INTERVAL = 61
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.253.134
MAL_PORT = 9355
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.253.135
MAL_PORT = 9366
3)dmmal.ini
#各节点都需要配置,内容保持一致
[dmdba@dsc01 dm_config]$ vi /home/dmdba/dm/dm_config/dmmal.ini
添加如下内容:
MAL_CHECK_INTERVAL = 61
MAL_CONN_FAIL_INTERVAL = 61
[mal_inst0]
mal_inst_name           = DSC0
mal_host                = 192.168.253.134
mal_port                = 9255
[mal_inst1]
mal_inst_name           = DSC1
mal_host                = 192.168.253.135
mal_port                = 9266
4)dmdcr.ini
注意:两个实例中dmdcr_seqo 分别为 0 和 1,这里以0节点为例
#各节点都需要配置,配置文件有所不同,注意修改
[dmdba@dsc01 dm_config]$ vi /home/dmdba/dm/dm_config/dmdcr.ini
添加如下内容:
DMDCR_PATH = /dev/dm/asm-dmdcr
DMDCR_MAL_PATH =/home/dmdba/dm/dm_config/dmasvrmal.ini
DMDCR_SEQNO = 0
DMDCR_ASM_RESTART_INTERVAL = 70
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dm/dmdbms/bin/DmASMSvrService start
DMDCR_DB_RESTART_INTERVAL = 70
DMDCR_DB_STARTUP_CMD =  /home/dmdba/dm/dmdbms/bin/DmService start
DMDCR_AUTO_OPEN_CHECK= 90
DMDCR_ASM_TRACE_LEVEL = 2
DMDCR_NEED_PRE _LOAD = 1
DMDCR_LINK_CHECK_IP =192.168.133.131
5)dmcssm.ini
注意:dmccm控制台是监控DSC集群的重要工具,建议每个DSC环境都准备好该配置。
#各节点都需要配置,配置文件有所不同,注意修改
[dmdba@dsc01 dm_config]$ vi /home/dmdba/dm/dmdbms/bin/dmcssm.ini
添加如下内容:
CSSM_OGUID=63635
CSSM_CSS_IP=192.168.253.134:9341
CSSM_CSS_IP=192.168.253.135:9342
CSSM_LOG_PATH=/home/dmdba/dm/dmdbms/log
CSSM_LOG_FILE_SIZE=32
CSSM_LOG_SPACE_LIMIT=1024
6)dminit.ini
#任意节点配置即可,当前以192.168.253.134为主节点
[dmdba@dsc01 dm_config]$ vi /home/dmdba/dm/dm_config/dminit.ini
添加如下内容:
db_name = DAMENG
system_path = +DMDATA/
system = +DMDATA/DAMENG/system.dbf
system_size = 128
roll = +DMDATA/DAMENG/roll.dbf
roll_size = 128
main = +DMDATA/DAMENG/main.dbf
main_size = 128
ctl_path = +DMDATA/DAMENG/dm.ctl
ctl_size = 8
dcr_path =  /dev/dm/asm-dmdcr
dcr_seqno = 0
auto_overwrite = 1
[DSC0]
config_path= /home/dmdba/dm/dm_config/conf0
port_num = 5236
mal_host = 192.169.253.134
mal_port = 9255
log_path = +DMLOG/dsc0_01.log
log_path = +DMLOG/dsc0_02.log
log_size = 2048
page_size= 32
extent_size=16
case_sensitive=Y
RLOG_GEN_FOR_HUGE=0
SYSDBA_PWD=Sysdba%_025
SYSSSO_PWD=Sysdba%_025
SYSAUDITOR_PWD=Sysdba%_025
[DSC1]
config_path= /home/dmdba/dm/dm_config/conf1
port_num = 5236
mal_host = 192.169.253.135
mal_port = 9266
log_path = +DMLOG/dsc1_01.log
log_path = +DMLOG/dsc1_02.log
log_size = 2048
page_size= 32
extent_size=16
case_sensitive=Y
RLOG_GEN_FOR_HUGE=0
SYSDBA_PWD=Sysdba%_025
SYSSSO_PWD=Sysdba%_025
SYSAUDITOR_PWD=Sysdba%_025

7)dmarch.ini
注意:ARCH_SPACE_LIMIT为arch存储上限的40%配置
#各节点都需要配置,配置文件有所不同;
[dmdba@dsc01 bin]$ vi /home/dmdba/dm/dm_config/dmrach.ini
DSC0节点添加如下内容:
[ARCHIVE_LOCAL1]
        ARCH_TYPE                       = LOCAL        
        ARCH_DEST                       = +DMARCH/ARCH0        
        ARCH_FILE_SIZE                  = 2048
        ARCH_SPACE_LIMIT                = 4096    #根据实际arch存储上限的40%配置  
[ARCH_REMOTE1]
        ARCH_TYPE                       = REMOTE
        ARCH_DEST                       = DSC1  
        ARCH_INCOMING_PATH              = +DMARCH/ARCH1
        ARCH_FILE_SIZE                  = 2048
        ARCH_SPACE_LIMIT                = 4096  #根据实际arch存储上限的40%配置  
ARCH_LOCAL_SHARE                = 1
#各节点都需要配置,配置文件有所不同;
[dmdba@dsc01 bin]$ vi /home/dmdba/dm/dm_config/dmrach.ini
DSC1节点添加如下内容:
[ARCHIVE_LOCAL1]
        ARCH_TYPE                       = LOCAL        
        ARCH_DEST                       = +DMARCH/ARCH1        
        ARCH_FILE_SIZE                  = 2048
        ARCH_SPACE_LIMIT                = 4096 #根据实际arch存储上限的40%配置  
[ARCH_REMOTE1]
        ARCH_TYPE                       = REMOTE
        ARCH_DEST                       = DSC0  
        ARCH_INCOMING_PATH              = +DMARCH/ARCH0
        ARCH_FILE_SIZE                  = 2048
        ARCH_SPACE_LIMIT                = 4096 #根据实际arch存储上限的40%配置  
ARCH_LOCAL_SHARE                = 1

8)sqllog.ini
#各节点都需要配置
[dmdba@dsc01 bin]$ vi /home/dmdba/dm/dm_config/sqllog.ini
添加如下内容:
BUF_TOTAL_SIZE       	   = 10240      
BUF_SIZE             	   = 1024         
BUF_KEEP_CNT         	   = 6          
[SLOG_ALL]
    FILE_PATH    = ../log
    PART_STOR    = 1
    SWITCH_MODE  = 1
    SWITCH_LIMIT   = 300000
    ASYNC_FLUSH   = 1
    FILE_NUM = 30
    ITEMS    = 0 
    SQL_TRACE_MASK  = 2:3:23:25 
    MIN_EXEC_TIME = 0 
    USER_MODE   = 0 
    USERS =

2.5初始化ASM盘

#任意节点机器执行,当前以192.168.253.134为主节点
[dmdba@dsc01 bin]$./dmasmcmd
ASM>create dcrdisk '/dev/dm/asm-dmdcr' 'dmdcr'
ASM>create votedisk '/dev/dm/asm-dmvote' 'dmvote'
ASM>create asmdisk '/dev/dm/asm-dmarch' 'dmarch'
ASM>create asmdisk '/dev/dm/asm-dmlog' 'dmrlog'
ASM>create asmdisk '/dev/dm/asm-dmdata' 'dmdata'
ASM>init dcrdisk '/dev/dm/asm-dmdcr' from '/home/dmdba/dm/dm_config/dmdcr_cfg.ini' identified by 'Sysdba%_025'
ASM>init votedisk '/dev/dm/asm-dmvote' from '/home/dmdba/dm/dm_config/dmdcr_cfg.ini'

2.6准备CSS启动脚本

#各节点都需要配置
[dmdba@dsc01 bin]$ cp ./service_template/DmCSSService ./
[dmdba@dsc01 bin]$vim DmCSSService

DCR_INI_PATH=%DCR_INI_PATH%
修改为
DCR_INI_PATH=/home/dmdba/dm/dm_config/dmdcr.ini

2.7准备ASM启动脚本

#各节点都需要配置
[dmdba@dsc01 bin]$ cp ./service_template/DmASMSvrService  ./
[dmdba@dsc01 bin]$vim DmASMSvrService

DCR_INI_PATH=%DCR_INI_PATH%
修改为
DCR_INI_PATH=/home/dmdba/dm/dm_config/dmdcr.ini

2.8准备DMSERVER启动脚本

注意:各节点dm.ini路径不一致,注意配置修改
#各节点都需要配置
[dmdba@dsc01 bin]$ cp ./service_template/DmService  ./
[dmdba@dsc01 bin]$vim DmService
DSC0节点,当前192.168.253.134为0号节点
INI_PATH=%INI_PATH%
修改为
INI_PATH=/home/dmdba/dm/dm_config/conf0/dm.ini

DCR_INI_PATH=%DCR_INI_PATH%
修改为
DCR_INI_PATH=/home/dmdba/dm/dm_config/dmdcr.ini

#文件中搜索MALLOC_ARENA_MAX
export MALLOC_ARENA_MAX=4
修改为
export MALLOC_ARENA_MAX=1
DSC1节点,当前192.168.253.135为1号节点
INI_PATH=%INI_PATH%
修改为
INI_PATH=/home/dmdba/dm/dm_config/conf1/dm.ini

DCR_INI_PATH=%DCR_INI_PATH%
修改为
DCR_INI_PATH=/home/dmdba/dm/dm_config/dmdcr.ini

#文件中搜索MALLOC_ARENA_MAX
export MALLOC_ARENA_MAX=4
修改为
export MALLOC_ARENA_MAX=1

2.9启动dmcssm控制台

#任意节点操作,当前以192.168.253.134为主节点执行
[dmdba@dsc01 bin]$ cd /home/dmdba/dm/dmdbms/bin
[dmdba@dsc01 bin]$./dmcssm ini_path=/home/dmdba/dm/dmdbms/bin/dmcssm.ini

2.10启动两个节点的CSS服务

#各节点都启动
[dmdba@dsc01 bin]$ cd /home/dmdba/dm/dmdbms/bin
[dmdba@dsc01 bin]$./DmCSSService start

2.11 关闭DB自动拉起

#回到刚才启动的cssm控制台页面,在dmcssm控制台中输入命令关闭DB组自动拉起
set GRP_DSC auto restart off

2.12 创建ASM磁盘组

注意:此处创建磁盘组的名称要和前面准备的dminit.ini、dmarch.ini中的路径匹配
#任意节点操作,当前以192.168.253.134为主节点执行
[dmdba@dsc01 bin]$ cd /home/dmdba/dm/dmdbms/bin
[dmdba@dsc01 bin]$./dmasmtool dcr_ini=/home/dmdba/dm/dm_config/dmdcr.ini
ASM>create diskgroup 'DMDATA' asmdisk '/dev/dm/asm-dmdata'
ASM>create diskgroup 'DMLOG' asmdisk '/dev/dm/asm-dmlog'
ASM>create diskgroup 'DMARCH' asmdisk '/dev/dm/asm-dmarch'

##2.13 初始化数据库

注意:选择0号节点(与dminit.ini中的dcr_seqno匹配)使用dminit工具进行初始化
#当前以192.168.253.134为主节点执行
[dmdba@dsc01 bin]$ cd /home/dmdba/dm/dmdbms/bin
[dmdba@dsc01 bin]$./dminit control=/home/dmdba/dm/dm_config/dminit.ini

2.14 sqllog、mal文件替换到conf0/1目录

#当前以192.168.253.134为主节点执行
[dmdba@dsc01 bin]$ cd /home/dmdba/dm/dm_config
[dmdba@ dm_config]#]cp sqllog.ini ./conf0/
[dmdba@ dm_config]#]mv sqllog.ini ./conf1/
[dmdba@ dm_config]#]cp dmmal.ini ./conf0/
[dmdba@ dm_config]#]mv dmmal.ini ./conf1/
[dmdba@ dm_config]#]cp dmarch.ini ./conf0/
[dmdba@ dm_config]#]mv dmarch.ini ./conf1/

2.15修改dmini参数

#当前以192.168.253.134为主节点执行
[dmdba@dsc01 bin]$ cd /home/dmdba/dm/dm_config
[dmdba@ dm_config]#]vi ./conf0/dm.ini  #分别修改
[dmdba@ dm_config]#]vi ./conf1/dm.ini  #分别修改
修改如下内容
#将如下参数新增到文件结尾处或者找到对应参数修改对应的数值
ARCH_INI=1
SVR_LOG=1
ENABLE_ENCRYPT=0
####DSC专门修改参数
DSC_N_POOLS=101
DSC_N_CTLS=5000

2.16发送conf1到1号节点

#当前以192.168.253.134为主节点执行
[dmdba@dsc01 bin]$ cd /home/dmdba/dm/dm_config
[dmdba@ dm_config]#]scp -rp conf1 dmdba@192.168.253.135:/home/dmdba/dm/dm_config

2.17启动数据库

#回到刚才启动的cssm控制台页面
EP STARTUP GRP_DSC

2.18 数据库开机自启动

注意:此操作两套环境都需要执行
[root@~]# cd /home/dmdba/dm/dmdbms/script/root/
[root@root]#./dm_service_installer.sh -s /home/dmdba/dm/dmdbms/bin/DmCSSService

[root@root]#./dm_service_installer.sh -s /home/dmdba/dm/dmdbms/bin/DmService

安装部署完成后要重启一下服务器,验证一下磁盘自动挂载、数据库相关服务自启动是否正常!!!

2.19 检查集群状态

#登录cssm控制台
[dmdba@dsc01 bin]$ ./dmcssm ini_path=/home/dmdba/dm/dmdbms/bin/dmcssm.ini
#执行
Show

image.png

  • 监视器常见命令
    image.png
  • 通过系统视图检查
实例状态
select NAME,INSTANCE_NAME,INSTANCE_NUMBER from v$instance;
select * from v$dsc_ep_info;
查看DCR配置的全局信息
select * from v$dcr_info;
查看DCR配置的组信息
select * from v$dcr_group;
查看DCR配置的节点信息
select GROUP_NAME,EP_NAME,EP_SEQNO,EP_HOST,EP_PORT,SHM_KEY,SHM_SIZE,ASM_LOAD_PATH from v$dcr_ep;
统计DSC环境内TYPE类型请求时间
select * from v$dsc_request_statistic;
统计lbs_xx类型最耗时间的前100页地址信息
select * from v$dsc_request_page_statistic;
显示DSC环境各个节点数据页LSN
select * from v$dsc_crash_over_info;
#ASM 信息
查看ASM磁盘信息
select GROUP_ID,DISK_ID,DISK_NAME,DISK_PATH,SIZE,FREE_AUNO from v$asmdisk;
查看ASM磁盘组信息
select * from v$asmgroup;
查看所有的ASM文件信息
select * from v$asmfile;
查询重做日志文件路径
SELECT GROUP_ID, FILE_ID, PATH FROM V$RLOGFILE ORDER BY 2;

3 DSC切换测试

3.1 控制节点DB宕机

#登录cssm控制台
[dmdba@dsc01 bin]$ ./dmcssm ini_path=/home/dmdba/dm/dmdbms/bin/dmcssm.ini

image.png

  • 在节点192.168.253.134 kill -9 控制节点上数据库实例服务的进程ID
    image.png
  • 观察监视器显示
    image.png
  • 进程端口检查
    image.png
测试结果:
当在检测时间内,控制节点的DSC0实例进程丢失后,DSC集群自动将控制节点转移至正常节点、并将其mode变更为Control Node,并标记为故障节点,待检查时间周期(设置的60s)原集群尝试自动拉起故障节点,拉起成功后重新加入集群,如正常加入后节点状态恢复正常,变更为非控制节点,其mode变更为Normal Node,进程与端口正常,服务登录正常。

3.2 非控制节点DB宕机

  • 监视器检查各节点状态
    image.png
  • 执行命令并检查
    image.png
  • 观察监视器显示
    image.png
测试结果
当在检测时间内,非控制节点的DSC0实例进程丢失后,并标记为故障节点,待检查时间周期(设置的60s)原集群尝试自动拉起故障节点,拉起成功后重新加入集群,如正常加入后节点状态恢复正常,进程与端口正常,服务登录正常。

3.3 故障节点服务器重启

  • 重启前
    image.png
  • 重启中
    image.png
    image.png
  • 重启后
    image.png
    image.png
测试结果
服务器重启过程中、活动节点重新选举 DMCSS 控制节点,新的 DMCSS 控制节点通知出现DMCSS故障节点对应的 dmasmsvr、dmserver 强制退出,dsc 集群会将css、asm、dsc集群组故障节点状态转为FALSE,待服务器启动成功后、通过系统服务拉起CSS服务 ,DSC 集群在检查周期检查将自动拉起故障节点、并验证状态、启动并自动拉起节点成功节点恢复正常。

3.4 非控制节点服务器重启

  • 重启前
    image.png
  • 重启中
    image.png
    image.png
  • 重启后
    image.png
    image.png
测试结果
服务器重启过程中、dsc 集群会将css、asm、dsc集群组故障节点状态转为FALSE,待服务器启动成功后、通过系统服务拉起CSS服务 ,DSC 集群在检查周期检查将自动拉起故障节点、并验证状态、启动并自动拉起节点成功节点恢复正常。
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服