DSC共享存储集群のDMASM两节点

4.1 DSC共享存储集群のDMASM两节点

一、前期规划

1.1 系统规划

在这里插入图片描述

1.2 IP与端口规划

在这里插入图片描述

1.3 共享存储规划

在这里插入图片描述

1.4 本地存储规划

在这里插入图片描述

二、搭建过程

2.1 环境准备

2.1.1 配置主机名
++ 1. 针对RHEL 6.x 修改主机名
vim /etc/sysconfig/network
HOSTNAME=dmdsc1
#HOSTNAME=dmdsc2

++ 1. 针对RHEL 7.x 修改主机名
hostnamectl set-hostname dmdsc1
#hostnamectl set-hostname dmdsc2

++ 2. 添加hosts
echo "192.168.1.11 dsc01" >> /etc/hosts
echo "192.168.1.12 dsc02" >> /etc/hosts

++ 3. 临时设置主机名,当前生效
hostname dmdsc1
#hostname dmdsc2
2.1.2 关闭防火墙和SELinux
++ 1. 针对RHEL 6.x 关闭防火墙
service iptables stop
chkconfig iptables off

++ 1. 针对RHEL 7.x 关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service

++ 2. 禁用SELinux
setenforce 0
sed -i s:^SELINUX=.*$:SELINUX=disabled:g /etc/selinux/config

# 重启永久生效
# sestatus -v

2.1.3 添加用户和用户组
groupadd -g 2001 dinstall
useradd -u 2001 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
echo "dmdba" | passwd --stdin dmdba
# echo "dmdba:dameng123" |chpasswd
2.1.4 配置用户资源限制
# 1. 添加资源限制条目
cat >>/etc/security/limits.conf<<EOF
dmdba soft nofile 65535
dmdba hard nofile 65536
dmdba soft nproc 65535
dmdba hard nproc 65535
dmdba soft stack 10240
dmdba hard stack 32768
EOF

# 2. 让资源限制的配置文件生效
root# echo "session  required  pam_limits.so" >> /etc/pam.d/login
root# echo "session  required /lib64/security/pam_limits.so" >> /etc/pam.d/login

# 3. 当前会话设置生效(关于最大文件打开数)
root# ulimit -SHn 65536

# 4. 切换dmdba检查用户资源限制是否生效
su - dmdba
ulimit -a
ulimit -u
2.1.5 调整两个节点的系统时间与时区

注:集群中所有节点的时间应该保持一致。

++ 1. 统一系统时区
date -R    # 查看当前系统的时区
tzselect
echo "TZ='Asia/Shanghai'; export TZ" >> ~/.bash_profile

timedatectl list-timezones | grep "^Asia"
timedatectl set-timezone "Asia/Shanghai"
date -s "2020-12-16 21:51:46"
hwclock -r
hwclock --hctosys

++ 2. 统一系统时间
+ 2.1 采用ntpdate客户端方式定时同步时间服务器
# 不建议使用这种方式同步,因为跳跃太大(由于数据库事务的时间不会往回跳跃)
# 应用程序依赖连续时钟,时间是线性的。
ntpdate -u s2a.time.edu.cn

+ 2.2 采用ntpd服务器模式自动同步上级时间服务器(Oracle官方建议)
#https://www.cnblogs.com/quchunhui/p/7658853.html
#ntpd不仅能够校准计算机的时间,而且能够校准计算机的时钟
#ntpd在和时间服务器的同步过程中,会把BIOS计时器的振荡频率偏差——或者说Local Clock的自然漂移(drift)——记录下来。
[root@dsc01 ~]# yum –y install ntp
[root@dsc01 ~]# chkconfig --list|grep ntp         
ntpd            0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
ntpdate         0:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:关闭  6:关闭

[root@dsc01 ~]# service ntpd status
ntpd (pid  2248) 正在运行...

[root@dsc01 ~]# vim /etc/ntp.conf
server 59.124.196.83

# 查看ntp服务器有无和上层ntp连通
ntpstat

# 查看ntp服务器与上层ntp的状态
ntpq -p
2.1.6 创建软件安装目录
mkdir -pv /DMDB/app/DM8
mkdir -pv /DMDB/data
mkdir -pv /DMDB/arch
mkdir -pv /DMDB/backup
mkdir -pv /DMDB/soft
chown -R dmdba:dinstall /DMDB
chmod -R 775 /DMDB
ls -ld /DMDB
2.1.7 配置dmdba环境变量

注:一般情况,安装完达梦数据库软件后,它会自动添加DM_HOME和LD_LIBRARY_PATH变量。

su - dmdba
vi .bash_profile
source ~/.bash_profile
#################################################
### Dameng Database Environment Configuration ###
export TMP=/tmp
export TMP_DIR=$TMP
export DM_INSTALL_TMPDIR=$TMP
export DM_HOME=/DMDB/app/DM8
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/DMDB/app/DM8/bin"
export PATH=$DM_HOME/bin:$DM_HOME/tool:$PATH:$HOME/bin
umask 022
### end ###
2.1.8 格式化共享磁盘
++ 1. vmware workstation 创建共享磁盘
vmware-vdiskmanager.exe -c -s 200M -a lsilogic -t 2 E:\VMDATA\DM\dscdisk\dcr.vmdk
vmware-vdiskmanager.exe -c -s 200M -a lsilogic -t 2 E:\VMDATA\DM\dscdisk\vote.vmdk
vmware-vdiskmanager.exe -c -s 5g -a lsilogic -t 2 E:\VMDATA\DM\dscdisk\data0.vmdk
vmware-vdiskmanager.exe -c -s 2g -a lsilogic -t 2 E:\VMDATA\DM\dscdisk\log0.vmdk

++ 2. 在两个节点主机(虚拟机)配置共享磁盘
//dmdsc1.vmx末尾追加内容
# share disk 2020-12-16
disk.enableUUID = "TRUE"
disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.dataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"

scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsi1.sharedBus = "virtual"

scsi1:1.present = "TRUE"
scsi1:1.mode = "independent-persistent"
scsi1:1.filename = "E:\VMDATA\DM\dscdisk\dcr.vmdk"
scsi1:2.present = "TRUE"
scsi1:2.mode = "independent-persistent"
scsi1:2.filename = "E:\VMDATA\DM\dscdisk\vote.vmdk"
scsi1:3.present = "TRUE"
scsi1:3.mode = "independent-persistent"
scsi1:3.filename = "E:\VMDATA\DM\dscdisk\data0.vmdk"
scsi1:4.present = "TRUE"
scsi1:4.mode = "independent-persistent"
scsi1:4.filename = "E:\VMDATA\DM\dscdisk\log0.vmdk"

++ 3. Linux系统磁盘分区 (可选)
# 裸设备可以建分区,也可不建分区
fdisk -l | grep 'Disk /dev'
lsblk
fdisk /dev/sdb
fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde

[root@dsc01 ~]# fdisk -l | grep 'Disk /dev' | sort
Disk /dev/sda: 53.7 GB, 53687091200 bytes
Disk /dev/sdb: 107.4 GB, 107374182400 bytes
Disk /dev/sdc: 209 MB, 209715200 bytes
Disk /dev/sdd: 209 MB, 209715200 bytes
Disk /dev/sde: 5368 MB, 5368709120 bytes
Disk /dev/sdf: 2147 MB, 2147483648 bytes

[root@dsc02 ~]# fdisk -l | grep 'Disk /dev' | sort
Disk /dev/sda: 53.7 GB, 53687091200 bytes
Disk /dev/sdb: 107.4 GB, 107374182400 bytes
Disk /dev/sdc: 209 MB, 209715200 bytes
Disk /dev/sdd: 209 MB, 209715200 bytes
Disk /dev/sde: 5368 MB, 5368709120 bytes
Disk /dev/sdf: 2147 MB, 2147483648 bytes
2.1.9 共享磁盘绑定udev

作用:防止后期盘符变化,同时固定权限。

++ 1. 取出共享磁盘的UUID(采用同oracle绑定udev方式)
for i in c d e f;
do  
 echo "KERNEL==\"sd?\",SUBSYSTEM==\"block\", PROGRAM==\"/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\",RESULT==\"`/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", SYMLINK+=\"asm-disk$i\",OWNER=\"dmdba\", GROUP=\"dinstall\",MODE=\"0660\",OPTIONS=\"nowatch\"" 
done  

for i in c d e f;
do  
 echo "KERNEL==\"sd?\",SUBSYSTEM==\"block\", PROGRAM==\"/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\",RESULT==\"`/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", SYMLINK+=\"asm-disk$i\",OWNER=\"dmdba\", GROUP=\"dinstall\",MODE=\"0660\",OPTIONS=\"nowatch\"" 
done  >> /etc/udev/rules.d/99-dm-devices.rules

//SYMLINK 链接名可根据自己的喜好定义
[root@dsc01 ~]# more /etc/udev/rules.d/99-dm-devices.rules
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2973bc339661d0e
6826f09dc9f3", SYMLINK+="asm-dcr",OWNER="dmdba", GROUP="dinstall",MODE="0660",OPTIONS="nowatch"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29be5928af292e1
1b5fc1ae7eaf", SYMLINK+="asm-vote",OWNER="dmdba", GROUP="dinstall",MODE="0660",OPTIONS="nowatch"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29f041a770b7664
2e79e186b94c", SYMLINK+="asm-data0",OWNER="dmdba", GROUP="dinstall",MODE="0660",OPTIONS="nowatch"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29efe610de95581
bd9d40179f3e", SYMLINK+="asm-log0",OWNER="dmdba", GROUP="dinstall",MODE="0660",OPTIONS="nowatch"


++ 2. 重载udev规则,让绑定生效
# 针对RHLE 6.x
start_udev

# 针对RHEL 7.x
/sbin/udevadm trigger --type=devices --action=change
/sbin/udevadm control --reload-rules

++ 3. 查看共享磁盘的绑定规则生效
ls -lh /dev/sd*
[root@dsc01 ~]# ls -l /dev/sd*
brw-rw---- 1 root  disk     8,  0 12月 16 13:34 /dev/sda
brw-rw---- 1 root  disk     8,  1 12月 16 13:34 /dev/sda1
brw-rw---- 1 root  disk     8,  2 12月 16 13:34 /dev/sda2
brw-rw---- 1 root  disk     8, 16 12月 16 13:34 /dev/sdb
brw-rw---- 1 root  disk     8, 17 12月 16 13:34 /dev/sdb1
brw-rw---- 1 dmdba dinstall 8, 32 12月 16 13:34 /dev/sdc
brw-rw---- 1 dmdba dinstall 8, 48 12月 16 13:34 /dev/sdd
brw-rw---- 1 dmdba dinstall 8, 64 12月 16 13:34 /dev/sde
brw-rw---- 1 dmdba dinstall 8, 80 12月 16 13:34 /dev/sdf
[root@dsc01 ~]# ls -l /dev/asm*
lrwxrwxrwx 1 root root 3 12月 16 13:34 /dev/asm-data0 -> sde
lrwxrwxrwx 1 root root 3 12月 16 13:34 /dev/asm-dcr -> sdc
lrwxrwxrwx 1 root root 3 12月 16 13:34 /dev/asm-log0 -> sdf
lrwxrwxrwx 1 root root 3 12月 16 13:34 /dev/asm-vote -> sdd

++ 4. 将做好的udev配置文件传至另一节点主机
scp 192.168.1.11:/etc/udev/rules.d/99-dm-devices.rules /etc/udev/rules.d/
start_udev

2.1.10 配置裸设备(可选)

注意:

1、使用裸设备作为数据文件,数据文件大小不能更改,所以大小要提前规划好。
2、一般建议使用达梦ASM文件管理系统,灵活而方便,扩展性好。
++ 1. 方法一:/etc/rc.local
echo -e "
###################################
  DMDB RAW Bind Rules
###################################
#DCR
/bin/raw /dev/raw/raw1 /dev/asm-dcr
sleep 2
chown dmdba:dinstall /dev/raw/raw1
chmod 660 /dev/raw/raw1

#Votingdisk
/bin/raw /dev/raw/raw2 /dev/asm-vote
sleep 2
chown dmdba:dinstall /dev/raw/raw2
chmod 660 /dev/raw/raw2

#LOG
/bin/raw /dev/raw/raw3 /dev/asm-data0
sleep 2
chown dmdba:dinstall /dev/raw/raw3
chmod 660 /dev/raw/raw3

#Data
/bin/raw /dev/raw/raw4 /dev/asm-log0
sleep 2
chown dmdba:dinstall /dev/raw/raw4
chmod 660 /dev/raw/raw4

#注意这里必须放在最后一行,否则开机不会自动映射raw设备
touch /var/lock/subsys/local
" >> /etc/rc.local

//执行rc.local脚本 
sh /etc/rc.local

//列出当前系统中存在的裸设备:
[root@dsc01 ~]# raw -qa
/dev/raw/raw1:  bound to major 8, minor 32
/dev/raw/raw2:  bound to major 8, minor 48
/dev/raw/raw3:  bound to major 8, minor 64
/dev/raw/raw4:  bound to major 8, minor 80

//查看裸设备大小:
blockdev --getsize64 /dev/raw/raw1

//解绑裸设备
raw /dev/raw/raw1 0 0

++ 2. 方法二:/etc/udev/rules.d/60-raw.rules
# 裸设备格式化后成字符设备
# crw-rw---- 1 dmdba dinstall 162, 1 12月 16 14:15 /dev/raw/raw1
ACTION=="add", KERNEL=="sdc", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdd", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sde", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sdf", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"


//查看裸设备大小
[root@dsc02 ~]# blockdev --getsize64 /dev/raw/raw1
209715200  字节单位
[root@dsc02 ~]# blockdev --getsize64 /dev/raw/raw2
209715200
[root@dsc02 ~]# blockdev --getsize64 /dev/raw/raw3
5368709120
[root@dsc02 ~]# blockdev --getsize64 /dev/raw/raw4
2147483648

2.1.11 系统内核参数优化 (可选)
vim /etc/sysctl.conf
#----------------------------------------
fs.file-max = 6815744    
fs.aio-max-nr = 1048576    
#kernel.shmall = 2097152    
#kernel.shmmax = 2147483648   
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500    
net.core.rmem_default = 4194304    
net.core.rmem_max = 4194304    
net.core.wmem_default = 262144    
net.core.wmem_max = 1048576
vm.swappiness = 10
vm.dirty_background_ratio = 3
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100

++ 不重启系统,立即加载生效
sysctl -p

2.2 安装达梦数据库软件

2.2.1 上传软件安装包或挂载光盘
mount /dev/cdrom /mnt
cp /mnt/DMInstall.bin  /DMDB/soft
chown dba:dinstall /DMDB/soft/DMInstall.bin
chmod a+x /DMDB/soft/DMInstall.bin
#chmod 775 /DMDB/soft/DMInstall.bin
2.2.2 切换dmdba用户开始安装达梦数据库
su - dmdba
cd /DMDB/soft/
./DMInstall.bin -i
# 按文本向导提示进行安装 (略)
#请以root系统用户执行命令:
/DMDB/app/DM8/script/root/root_installer.sh

2.3 配置DMASM

2.3.1 配置dmdcr_cfg.ini文件

dmdcr_cfg.ini 是格式化 DCR 和 Voting Disk 的配置文件。 配置信息包括三类:
集群环境全局信息、集群组信息、以及组内节点信息。

仅使用裸设备,不使用 ASM 文件系统,不需要配置 ASM 信息,仅配置 CSS/DB 信息。

#/DMDB/data/dmdcr_cfg.ini
DCR_N_GRP = 3                   #集群环境包括多少组,取值[1,16]  
DCR_VTD_PATH = /dev/raw/raw2    #voting disk路径
DCR_OGUID = 63635               #消息标识,dmcssm登录dmcss消息校验使用

[GRP]                           #[GRP]表示新建一个Group
DCR_GRP_TYPE = CSS              #组类型(CSS/ASM/DB)                
DCR_GRP_NAME = GRP_CSS          #组名,16字节,配置文件中不可重复                   
DCR_GRP_N_EP = 2                #组内节点个数,最大16.                
DCR_GRP_DSKCHK_CNT = 60         #磁盘心跳的容错时间,单位秒,缺省60秒,取值[5,600]                
[GRP_CSS]                      #[]里的是组名,与 DCR_GRP_NAME 对应
#DB 的节点名必须和dm.ini里的INSTANCE_NAME 保持一致
#ASM 的节点名必须和dmmal.ini里的MAL_INST_NAME 一致
#同一类型节点的EP_NAME不能重复
DCR_EP_NAME = CSS0             #节点名 16字节,配置文件中不可重复   
#对DB来说,是绑定VIP的网卡对应的物理IP地址,若配置DCR_VIP才需要配置,否则不需要配置。
#CSS 中设置表示DMCSSM可以通过该IP连接CSS,可以不配置;
#ASM中设置表示 DB 可以通过该 IP 连接 ASM,可以不配置                   
DCR_EP_HOST = 10.10.10.11      #节点IP(实例所在机器的 IP 地址) ,私有网络                
DCR_EP_PORT = 9341                              
[GRP_CSS]                      #[]里的是组名,与 DCR_GRP_NAME 对应
DCR_EP_NAME = CSS1                              
DCR_EP_HOST = 10.10.10.12                    
DCR_EP_PORT = 9343             #节点TCP监听端口(CSS/ASM/DB 有效,对应登录 CSS/ASM/DB 的端口
                               #号),节点实例配置此参数,取值范围 1024~65534;发起连接端的端口
                               #在 1024~65535 之间随机分配                 

[GRP]                        #[GRP]表示新建一个 Group
DCR_GRP_TYPE = ASM           
DCR_GRP_NAME = GRP_ASM       
DCR_GRP_N_EP = 2             
DCR_GRP_DSKCHK_CNT = 60      
[GRP_ASM]                    #[]里的是组名,与 DCR_GRP_NAME 对应
DCR_EP_NAME = ASM0
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 10     #共享内存大小,单位M,(ASM 有效,初始化共享内存大小),取值范围10~1024
DCR_EP_HOST = 192.168.1.11  #公网IP
DCR_EP_PORT = 9349
DCR_EP_ASM_LOAD_PATH = /dev/raw   #ASM 磁盘扫描路径          
[GRP_ASM]                 #[]里的是组名,与 DCR_GRP_NAME 对应
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 93361  #共享内存标识,数值类型(ASM 有效,初始化共享内存的标识符),应为大于 0 的 4 字节整数
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 192.168.1.12
DCR_EP_PORT = 9351
DCR_EP_ASM_LOAD_PATH = /dev/raw

[GRP]                       #[GRP]表示新建一个 Group
DCR_GRP_TYPE = DB
DCR_GRP_NAME = GRP_DSC
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_DSC]                   #[]里的是组名,与 DCR_GRP_NAME 对应
DCR_EP_NAME = GRP_DSC01
DCR_EP_SEQNO  = 0       #组内序号,CSS/ASM 不能配置,自动分配。DB可以配置,0 ~ n_ep-1,组内不能重复,如不配置则自动分配
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741  #DCR检查端口号。检查实例是否活动的时候用,各实例不能冲突。
[GRP_DSC]                 #[]里的是组名,与DCR_GRP_NAME对应
DCR_EP_NAME = GRP_DSC02
DCR_EP_SEQNO  = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9742
2.3.2 DMASMCMD初始化磁盘

注:仅在任意一台节点主机上执行初始化即可。

++ 1. 将以下命令存为脚本文件/DMDB/data/asmdisk.cmd
#asm script file
create dcrdisk '/dev/raw/raw1' 'dcr'
create votedisk '/dev/raw/raw2' 'vote'
create asmdisk '/dev/raw/raw3' 'data0'
create asmdisk '/dev/raw/raw4' 'log0'
init dcrdisk '/dev/raw/raw1' from '/DMDB/data/dmdcr_cfg.ini' identified by 'SYSDBA123'
init votedisk '/dev/raw/raw2' from '/DMDB/data/dmdcr_cfg.ini'

++ 2. 调用脚本文件,批量初始化磁盘
su - dmdba
dmasmcmd script_file=asmdisk.cmd

[dmdba@dsc01 data]$ dmasmcmd script_file=asmdisk.cmd 
DMASMCMD V8
ASM>create dcrdisk '/dev/raw/raw1' 'dcr'
[Trace]The ASM initialize dcrdisk /dev/raw/raw1 to name DMASMdcr
Used time: 14.817(ms).
ASM>create votedisk '/dev/raw/raw2' 'vote'
[Trace]The ASM initialize votedisk /dev/raw/raw2 to name DMASMvote
Used time: 11.374(ms).
ASM>create asmdisk '/dev/raw/raw3' 'data0'
[Trace]The ASM initialize asmdisk /dev/raw/raw3 to name DMASMdata0
Used time: 8.664(ms).
ASM>create asmdisk '/dev/raw/raw4' 'log0'
[Trace]The ASM initialize asmdisk /dev/raw/raw4 to name DMASMlog0
Used time: 9.472(ms).
ASM>init dcrdisk '/dev/raw/raw1' from '/DMDB/data/dmdcr_cfg.ini' identified by 'SYSDBA123'
[Trace]DG 126 allocate 4 extents for file 0xfe000002.
Used time: 185.505(ms).
ASM>init votedisk '/dev/raw/raw2' from '/DMDB/data/dmdcr_cfg.ini'
[Trace]DG 125 allocate 4 extents for file 0xfd000002.
Used time: 42.400(ms).
2.3.3 配置dmasvrmal.ini文件

DMASM 的所有节点都要配置,内容完全一样

# /DMDB/data/dmasvrmal.ini
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 10.10.10.11
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 10.10.10.12
MAL_PORT = 7237 
2.3.4 配置dmdcr.ini文件

dmdcr.ini 是 dmcss、dmasmsvr、dmasmtool 工具的输入参数。记录了当前节点序列号以及 DCR 磁盘路径。
DMASM 的两个节点分别配置 dmdcr.ini,dmdcr_path 相同,dmasvrmal.ini
文件内容也相同,dmdcr_seqno分别为 0 和 1。

dsc01

#将DMDCR_ASM_RESTART_INTERVAL 与 DMDCR_DB_RESTART_INTERVAL值修改为不等于0,
#css即可自动拉起asm与server服务
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/DMDB/data/dmasvrmal.ini  #dmasmsvr使用的MAL配置文件路径
DMDCR_SEQNO = 0

#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /DMDB/app/DM8/bin/dmasmsvr dcr_ini=/DMDB/data/dmdcr.ini

#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /DMDB/app/DM8/bin/dmserver path=/DMDB/data/dmdata0_config/dm.ini dcr_ini=/DMDB/data/dmdcr.ini

dsc02

DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/DMDB/data/dmasvrmal.ini  #dmasmsvr使用的MAL配置文件路径
DMDCR_SEQNO = 0

#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /DMDB/app/DM8/bin/dmasmsvr dcr_ini=/DMDB/data/dmdcr.ini

#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /DMDB/app/DM8/bin/dmserver path=/DMDB/data/dmdata0_config/dm.ini dcr_ini=/DMDB/data/dmdcr.ini
2.3.5 启动DMASM实例
++ 1. dsc01
su - dmdba
# 启动DMCSS服务、DMASMSVR服务
dmcss DCR_INI=/DMDB/data/dmdcr.ini
dmasmsvr DCR_INI=/DMDB/data/dmdcr.ini

[dmdba@dsc01 data]$ dmcss DCR_INI=/DMDB/data/dmdcr.ini
DMCSS V8
DMCSS IS READY
[CSS]: 设置EP CSS0[0]为控制节点
[ASM]: 设置EP ASM0[0]为控制节点
[ASM]: 设置命令[START NOTIFY], 目标站点 ASM0[0], 命令序号[2]
[ASM]: 设置命令[EP START], 目标站点 ASM0[0], 命令序号[3]
[ASM]: 设置命令[NONE], 目标站点 ASM0[0], 命令序号[0]
[ASM]: 设置命令[EP START], 目标站点 ASM1[1], 命令序号[5]
[ASM]: 设置命令[NONE], 目标站点 ASM1[1], 命令序号[0]
[ASM]: 设置命令[EP OPEN], 目标站点 ASM0[0], 命令序号[8]
[ASM]: 设置命令[EP OPEN], 目标站点 ASM1[1], 命令序号[9]
[ASM]: 设置命令[NONE], 目标站点 ASM0[0], 命令序号[0]
[ASM]: 设置命令[NONE], 目标站点 ASM1[1], 命令序号[0]

[dmdba@dsc01 ~]$ dmasmsvr DCR_INI=/DMDB/data/dmdcr.ini
ASM SELF EPNO:0
DMASMSVR V8
dmasmsvr task worker thread startup
the ASM server is Ready.
check css cmd: START NOTIFY, cmd_seq: 2
check css cmd: EP START, cmd_seq: 3
ASM Control Node EPNO:0
check css cmd: EP OPEN, cmd_seq: 8


++ 2. dsc02
su - dmdba
dmcss DCR_INI=/DMDB/data/dmdcr.ini
dmasmsvr DCR_INI=/DMDB/data/dmdcr.ini

//
[dmdba@dsc01 data]$ dmcss DCR_INI=/DMDB/data/dmdcr.ini
dmcss: error while loading shared libraries: libdmcalc.so: cannot open shared object file: No such file or directory
处理方法:
ln -s /DMDB/app/DM8/bin/*.so  /lib64

2.3.6 创建DMASM磁盘组
su - dmdba
dmasmtool DCR_INI=/dmdata/dmdcr.ini

ASM> create diskgroup 'LOG' asmdisk '/dev/raw/raw4'
ASM> create diskgroup 'DATA' asmdisk '/dev/raw/raw3'

ASM>lsdg
total 4 groups......
1 disk_group:
         name: LOG
         id: 0
         au_size: 1.00 MB
         extent_size: 4
         total_size: 2.00 GB
         free_size: 1.99 GB
         total_file_num: 1
2 disk_group:
         name: DATA
         id: 1
         au_size: 1.00 MB
         extent_size: 4
         total_size: 5.00 GB
         free_size: 4.99 GB
         total_file_num: 1
3 disk_group:
         name: VOTE
         id: 125
         au_size: 1.00 MB
         extent_size: 4
         total_size: 200.00 MB
         free_size: 176.00 MB
         total_file_num: 2
4 disk_group:
         name: DCR
         id: 126
         au_size: 1.00 MB
         extent_size: 4
         total_size: 200.00 MB
         free_size: 176.00 MB
         total_file_num: 2
Used time: 23.149(ms).
ASM>lsdsk 
group LOG include 1 disks......
         NO.1 disk : 
                 name: DMASMlog0
                 path: /dev/raw/raw4
                 size: 2.00 GB
                 create_time: 2020-12-16 15:07:27
                 modify_time: 2020-12-16 15:41:46
                 belong group: LOG
group DATA include 1 disks......
         NO.1 disk : 
                 name: DMASMdata0
                 path: /dev/raw/raw3
                 size: 5.00 GB
                 create_time: 2020-12-16 15:07:27
                 modify_time: 2020-12-16 15:41:53
                 belong group: DATA
group VOTE include 1 disks......
         NO.1 disk : 
                 name: DMASMvote
                 path: /dev/raw/raw2
                 size: 200.00 MB
                 create_time: 2020-12-16 15:07:27
                 modify_time: 2020-12-16 15:07:27
                 belong group: VOTE
group DCR include 1 disks......
         NO.1 disk : 
                 name: DMASMdcr
                 path: /dev/raw/raw1
                 size: 200.00 MB
                 create_time: 2020-12-16 15:07:27
                 modify_time: 2020-12-16 15:07:27
                 belong group: DCR

total 0 disks unused......
Used time: 39.580(ms).
ASM>df
group LOG include 1 disks......
         NO.1 disk : 
                 name: DMASMlog0
                 path: /dev/raw/raw4
                 size: 2.00 GB
                 create_time: 2020-12-16 15:07:27
                 modify_time: 2020-12-16 15:41:46
                 belong group: LOG
group DATA include 1 disks......
         NO.1 disk : 
                 name: DMASMdata0
                 path: /dev/raw/raw3
                 size: 5.00 GB
                 create_time: 2020-12-16 15:07:27
                 modify_time: 2020-12-16 15:41:53
                 belong group: DATA
group VOTE include 1 disks......
         NO.1 disk : 
                 name: DMASMvote
                 path: /dev/raw/raw2
                 size: 200.00 MB
                 create_time: 2020-12-16 15:07:27
                 modify_time: 2020-12-16 15:07:27
                 belong group: VOTE
group DCR include 1 disks......
         NO.1 disk : 
                 name: DMASMdcr
                 path: /dev/raw/raw1
                 size: 200.00 MB
                 create_time: 2020-12-16 15:07:27
                 modify_time: 2020-12-16 15:07:27
                 belong group: DCR

total 0 disks unused......
Used time: 34.519(ms).
ASM>

2.4 初始化数据库

2.4.1 编辑dminit.ini文件

dminit.ini 是 dminit 工具初始化数据库环境的配置文件。 与初始化库使用普通文件系统不同,如果使用裸设备或者 ASM
文件系统,必须使用 dminit 工具的 control 参数指定 dminit.ini 文件。 dminit 工具的命令行参数都可以放在
dminit.ini 中,比如db_name,auto_overwrite 等,dminit.ini 格式分为全局参数和节点参数。

db_name = dsc      #数据库名
system_path = +DATA/data    #初始化数据库存放的路径
system = +DATA/data/dsc/system.dbf   #系统表空间文件
system_size = 128
roll  = +DATA/data/dsc/roll.dbf     #回滚表空间文件
roll_size = 128
main  = +DATA/data/dsc/main.dbf    #默认的用户表空间文件
main_size = 128
ctl_path = +DATA/data/dsc/dm.ctl    #dm.ini的控制文件
ctl_size = 8
log_size = 256     #联机日志文件大小
dcr_path = /dev/raw/raw1  #dcr 磁盘路径,目前不支持asm,只能是裸设备
dcr_seqno = 0  #连接DMASM节点的节点号
auto_overwrite = 1 #文件存在时覆盖

[GRP_DSC01] #inst_name跟dmdcr_cfg.ini中DB类型 group中DCR_EP_NAME 对应
config_path = /DMDB/data/dsc01_config
port_num = 5236 #节点服务器监听通讯端口号
mal_host = 10.10.10.11
mal_port = 9340  #MAL监听端口,用于数据守护、DSC、MPP 等环境中各节点实例之间MAL链路配置
log_path = +LOG/log/dsc01_log01.log
log_path = +LOG/log/dsc01_log02.log
[GRP_DSC02] #inst_name跟dmdcr_cfg.ini中DB类型 group中DCR_EP_NAME 对应
config_path = /DMDB/data/dsc02_config
port_num = 5236
mal_host = 10.10.10.12
mal_port = 9341
log_path = +LOG/log/dsc02_log01.log
log_path = +LOG/log/dsc02_log02.log
2.4.2 初始化数据库
dminit control=/DMDB/data/dminit.ini
 scp -r dsc02_config 192.168.1.12:/dmdata/
 
 
[dmdba@dsc01 data]$ dminit control=dminit.ini 
initdb V8
db version: 0x7000b
file dm.key not found, use default license!
License will expire on 2021-09-04
 log file path: +LOG/log/dsc01_log01.log
 log file path: +LOG/log/dsc01_log02.log
 log file path: +LOG/log/dsc02_log01.log
 log file path: +LOG/log/dsc02_log02.log
write to dir [+DATA/data/dsc].
create dm database success. 2020-12-16 15:58:37

[dmdba@dsc01 data]$ ls -l
总用量 28
-rw-r--r-- 1 dmdba dinstall  319 12月 16 15:07 asmdisk.cmd
-rw-r--r-- 1 dmdba dinstall  145 12月 16 15:31 dmasvrmal.ini
-rw-r--r-- 1 dmdba dinstall 3452 12月 16 15:02 dmdcr_cfg.ini
-rw-r--r-- 1 dmdba dinstall  468 12月 16 15:32 dmdcr.ini
-rw-r--r-- 1 dmdba dinstall 1246 12月 16 15:58 dminit.ini
drwxr-xr-x 2 dmdba dinstall 4096 12月 16 15:58 dsc01_config
drwxr-xr-x 2 dmdba dinstall 4096 12月 16 15:58 dsc02_config

[dmdba@dsc01 data]$ scp -r dsc02_config 192.168.1.12:/DMDB/data/
[email protected]'s password: 
dm.ini                                                                                                            100%   49KB  48.6KB/s   00:00    
dmmal.ini                                                                                                         100%  212     0.2KB/s   00:00    
sqllog.ini                      
2.4.3 所有节点主机上配置dm_svc.conf服务名
vim /etc/dm_svc.conf
dsc=(192.168.1.11:5236,192.168.1.12:5236)
SWITCH_TIME=(10000)  #服务器之间的切换次数
SWITCH_INTERVAL=(100) #切换间隔时间100毫秒
TIME_ZONE=(480)
LANGUAGE=(cn)
2.4.4 测试手工启动数据库实例
dmserver /DMDB/data/dsc01_config/dm.ini dcr_ini=/DMDB/data/dmdcr.ini
dmserver /DMDB/data/dsc02_config/dm.ini dcr_ini=/DMDB/data/dmdcr.ini

[dmdba@dsc01 ~]$ disql SYSDBA/SYSDBA
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 11.245(ms)
disql V8
SQL> select name from v$instance;
行号     NAME     
---------- ---------
1          GRP_DSC01
已用时间: 11.573(毫秒). 执行号:497.

[dmdba@dsc02 ~]$ disql SYSDBA/SYSDBA
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 16.980(ms)
disql V8
SQL> select name from v$instance;
行号     NAME     
---------- ---------
1          GRP_DSC02
已用时间: 3.393(毫秒). 执行号:301.


SQL> select * from v$dsc_ep_info;
行号     EP_NAME   EP_SEQNO    EP_GUID              EP_TIMESTAMP         EP_MODE      EP_STATUS
---------- --------- ----------- -------------------- -------------------- ------------ ---------
1          GRP_DSC01 0           363434433            363434904            Control Node OK
2          GRP_DSC02 1           363439946            363440394            Normal Node  O


[dmdba@dsc01 ~]$ disql SYSDBA/SYSDBA@dsc
服务器[192.168.1.12:5236]:处于普通打开状态
登录使用时间 : 64.587(ms)
disql V8
SQL> select name from v$instance;
行号     NAME     
---------- ---------
1          GRP_DSC02

已用时间: 6.419(毫秒). 执行号:501.

2.5 注册服务

-- 1.注册DMCSS服务
su - root
/DMDB/app/DM8/script/root/dm_service_installer.sh -t dmcss -dcr_ini /DMDB/data/dmdcr.ini -p DmCss1
/DMDB/app/DM8/script/root/dm_service_installer.sh -t dmcss -dcr_ini /DMDB/data/dmdcr.ini -p DmCss2

[root@dsc01 ~]# /DMDB/app/DM8/script/root/dm_service_installer.sh -t dmcss -dcr_ini /DMDB/data/dmdcr.ini -p DmCss1
移动服务脚本文件(/DMDB/app/DM8/bin/DmCSSServiceDmCss1 到 /etc/rc.d/init.d/DmCSSServiceDmCss1)
创建服务(DmCSSServiceDmCss1)完成

[root@dsc02 ~]# /DMDB/app/DM8/script/root/dm_service_installer.sh -t dmcss -dcr_ini /DMDB/data/dmdcr.ini -p DmCss2
移动服务脚本文件(/DMDB/app/DM8/bin/DmCSSServiceDmCss2 到 /etc/rc.d/init.d/DmCSSServiceDmCss2)
创建服务(DmCSSServiceDmCss2)完成


-- 2.注册DMASM服务
su - root
[root@dsc01 ~]# /DMDB/app/DM8/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /DMDB/data/dmdcr.ini -p DmAsmsvr1
移动服务脚本文件(/DMDB/app/DM8/bin/DmASMSvrServiceDmAsmsvr1 到 /etc/rc.d/init.d/DmASMSvrServiceDmAsmsvr1)
创建服务(DmASMSvrServiceDmAsmsvr1)完成

[root@dsc02 ~]# /DMDB/app/DM8/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /DMDB/data/dmdcr.ini -p DmAsmsvr2
移动服务脚本文件(/DMDB/app/DM8/bin/DmASMSvrServiceDmAsmsvr2 到 /etc/rc.d/init.d/DmASMSvrServiceDmAsmsvr2)
创建服务(DmASMSvrServiceDmAsmsvr2)完成

/DMDB/app/DM8/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /DMDB/data/dmdcr.ini -p DmAsmsvr1 -y DmCSSServiceDmCss1
/DMDB/app/DM8/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /DMDB/data/dmdcr.ini -p DmAsmsvr2 -y DmCSSServiceDmCss2
# -y  设置依赖服务,此选项只针对systemd服务环境下的dmserver和dmasmsvr服务生效。即针对RHEL 7.x
#在注册DMASM服务时候,会提示/usr/lib/systemd/system/DmCSSServiceDmCss1不存在,解决办法如下:
[root@dsc01 ~]# cp -p /DMDB/app/DM8/bin/DmCSSServiceDmCss1 /usr/lib/systemd/system/
[root@dsc02 ~]# cp -p /DMDB/app/DM8/bin/DmCSSServiceDmCss2 /usr/lib/systemd/system/


-- 3.注册数据库实例启动服务
[root@dsc01 ~]# /DMDB/app/DM8/script/root/dm_service_installer.sh -t dmserver -dm_ini /DMDB/data/dsc01_config/dm.ini -dcr_ini /DMDB/data/dmdcr.ini -p GRP_DSC01 -y DmASMSvrServiceDmAsmsvr1.service
[root@dsc02 ~]# /DMDB/app/DM8/script/root/dm_service_installer.sh -t dmserver -dm_ini /DMDB/data/dsc02_config/dm.ini -dcr_ini /DMDB/data/dmdcr.ini -p GRP_DSC02 -y DmASMSvrServiceDmAsmsvr1.service

[root@dsc01 ~]# /DMDB/app/DM8/script/root/dm_service_installer.sh -t dmserver -dm_ini /DMDB/data/dsc01_config/dm.ini -dcr_ini /DMDB/data/dmdcr.ini -p GRP_DSC01
移动服务脚本文件(/DMDB/app/DM8/bin/DmServiceGRP_DSC01 到 /etc/rc.d/init.d/DmServiceGRP_DSC01)
创建服务(DmServiceGRP_DSC01)完成

[root@dsc02 ~]# /DMDB/app/DM8/script/root/dm_service_installer.sh -t dmserver -dm_ini /DMDB/data/dsc02_config/dm.ini -dcr_ini /DMDB/data/dmdcr.ini -p GRP_DSC02
移动服务脚本文件(/DMDB/app/DM8/bin/DmServiceGRP_DSC02 到 /etc/rc.d/init.d/DmServiceGRP_DSC02)
创建服务(DmServiceGRP_DSC02)完成


[root@dsc01 ~]# chkconfig --list |grep ^Dm
DmAPService     0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
DmASMSvrServiceDmAsmsvr1        0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
DmCSSServiceDmCss1      0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
DmServiceGRP_DSC01      0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

[root@dsc02 ~]# chkconfig --list |grep ^Dm
DmAPService     0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
DmASMSvrServiceDmAsmsvr2        0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
DmCSSServiceDmCss2      0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
DmServiceGRP_DSC02      0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭


2.6 数据库故障重连连接测试

[dmdba@dsc01 ~]$ disql SYSDBA/SYSDBA@dsc    
服务器[192.168.1.11:5236]:处于普通打开状态
登录使用时间 : 49.299(ms)
disql V8
SQL> select name from v$instance;
行号     NAME     
---------- ---------
1          GRP_DSC01
已用时间: 4.033(毫秒). 执行号:597.

SQL> host ps -fu dmdba
UID         PID   PPID  C STIME TTY          TIME CMD
dmdba     10784      1  0 14:28 pts/0    00:00:00 /DMDB/app/DM8/bin/dmap
dmdba     10800  10799  0 14:30 pts/0    00:00:00 -bash
dmdba     11075  10800  0 15:37 pts/0    00:00:10 dmcss DCR_INI=/DMDB/data/dmdcr.ini
dmdba     11087  11086  0 15:37 pts/1    00:00:00 -bash
dmdba     11115  11087  0 15:37 pts/1    00:00:09 dmasmsvr DCR_INI=/DMDB/data/dmdcr.ini
dmdba     11160  11159  0 15:40 pts/2    00:00:00 -bash
dmdba     11328  11160  2 16:21 pts/2    00:01:01 dmserver /DMDB/data/dsc01_config/dm.ini dcr_ini=/DMDB/data/dmdcr.ini
dmdba     11704  11703  0 16:55 pts/3    00:00:00 -bash
dmdba     11729  11704  0 16:56 pts/3    00:00:00 disql SYSDBA/SYSDBA@dsc
dmdba     11736  11729  0 16:57 pts/3    00:00:00 ps -fu dmdba

SQL> select name from v$instance;
行号     NAME     
---------- ---------
1          GRP_DSC01

已用时间: 1.304(毫秒). 执行号:598.
SQL> host kill -9 11328
SQL> select name from v$instance;
行号     NAME     
---------- ---------
1          GRP_DSC02
已用时间: 5.079(毫秒). 执行号:701.

//重启节点dsc01上的数据库实例
//原来普通节点变成控制节点角色
SQL> select * from v$dsc_ep_info;
行号     EP_NAME   EP_SEQNO    EP_GUID              EP_TIMESTAMP         EP_MODE      EP_STATUS
---------- --------- ----------- -------------------- -------------------- ------------ ---------
1          GRP_DSC01 0           364084518            364084536            Normal Node  OK
2          GRP_DSC02 1           363439946            363442581            Control Node OK

SQL> create table fstab as select id,name from sysobjects;
SQL> select count(1) from fstab;

2.7 配置DMDSC CSSM集群监视器

DMDSC 集群的运行情况可以通过 DMCSSM 监视器进行查看,也可以查询 DMDSC 相关的动态视图获取更详细的信息。
DMCSSM监视器支持一些控制命令,可以用来启动、关闭 DMDSC 集群,还可以进行手动控制节点故障处理和节点重加入。 同一个 DMDSC
集群中,允许最多同时启动 10 个监视器,建议监视器放在独立的第三方机器上, 避免由于节点间网络不稳定等原因导致监视器误判节点故障。

## /DMDB/data/dmcssm.ini
CSSM_OGUID = 63635
CSSM_CSS_IP = 10.10.10.11:9341
CSSM_CSS_IP = 10.10.10.12:9343
CSSM_LOG_PATH =/DMDB/log
CSSM_LOG_FILE_SIZE = 32
CSSM_LOG_SPACE_LIMIT = 0

//启动dmcssm监视器
dmcssm ini_path=/DMDB/data/dmcssm.ini

help 
DMCSSM使用说明:
SHOW命令中可以通过指定group_name获取指定组的信息,如果没有指定,则显示所有组的信息
---------------------------------------------------------------------------------------------
1.help                                            --显示帮助
2.show [group_name]                               --显示指定的组信息
3.show config                                     --显示配置文件信息
4.show monitor                                    --显示当前连接的监视器信息
5.set group_name auto restart on                  --打开指定组的自动拉起功能(只修改dmcss内存值)
6.set group_name auto restart off                 --关闭指定组的自动拉起功能(只修改dmcss内存值)
7.open force group_name                           --强制OPEN指定的ASM或DB组
8.ep startup group_name                           --启动指定的ASM或DB组
9.ep stop group_name                              --停止指定的ASM或DB组
10.ep halt group_name.ep_name                     --强制退出指定组的指定节点
11.extend node                                    --扩展集群节点
12.ep crash group_name.ep_name                    --设定指定节点故障
13.check crash over group_name                    --检查指定组故障处理是否结束
14.exit                                           --退出监视器

---------------------------------------------------------------------------------------------

show 

monitor current time:2020-12-16 17:53:02, n_group:3
=================== group[name = GRP_CSS, seq = 0, type = CSS, Control Node = 0] ========================================

[CSS0] global info:
[ASM0] auto restart = FALSE
[GRP_DSC01] auto restart = FALSE

[CSS1] global info:
[ASM1] auto restart = FALSE
[GRP_DSC02] auto restart = FALSE


ep:     css_time               inst_name     seqno     port    mode         inst_status        vtd_status   is_ok        active       guid              ts              
        2020-12-16 17:53:02    CSS0          0         9341    Control Node OPEN               WORKING      OK           TRUE         441383647         441391767       
        2020-12-16 17:53:02    CSS1          1         9343    Normal Node  OPEN               WORKING      OK           TRUE         441406275         441414304       

=================== group[name = GRP_ASM, seq = 1, type = ASM, Control Node = 0] ========================================

n_ok_ep = 2
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)

sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL

crash process over flag is TRUE
ep:     css_time               inst_name     seqno     port    mode         inst_status        vtd_status   is_ok        active       guid              ts              
        2020-12-16 17:53:02    ASM0          0         9349    Control Node OPEN               WORKING      OK           TRUE         441395205         441403280       
        2020-12-16 17:53:02    ASM1          1         9351    Normal Node  OPEN               WORKING      OK           TRUE         441411235         441419245       

=================== group[name = GRP_DSC, seq = 2, type = DB, Control Node = 1] ========================================

n_ok_ep = 2
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)

sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL

crash process over flag is TRUE
ep:     css_time               inst_name     seqno     port    mode         inst_status        vtd_status   is_ok        active       guid              ts              
        2020-12-16 17:53:02    GRP_DSC01     0         5236    Normal Node  OPEN               WORKING      OK           TRUE         364084518         364087364       
        2020-12-16 17:53:02    GRP_DSC02     1         5236    Control Node OPEN               WORKING      OK           TRUE         363439946         363445407       

==================================================================================================================


## 注册监视器服务
/DMDB/app/DM8/script/root/dm_service_installer.sh -t dmcssm -cssm_ini /DMDB/data/dmcssm.ini -p Dmcssm

三、实验总结

1) 启动DSC集群数据库的正确顺序
    DMCSS集群服务 --> DMASMSVR共享文件集群服务 --> DMSERVER数据库实例  
2) 关闭DSC集群数据库的正确顺序
    DMSERVER数据库实例 --> DMASMSVR共享文件集群服务 --> DMCSS集群服务 
3) DMASM服务比DMCSS的启动早一些,导致DMASM服务不能正常启动,数据库也无法正常
   启动,此时需手动启动DMASM服务,然后启动数据库服务。
4) 如果DMCSS配置DMASMSVR/DMSERVER自动拉起命令,则手动停止DMSERVER和DMASMSVR时会被拉起来,
   因此可能导致停止服务执行成功,但是集群并未停止的情况。
   此时利用集群监视器停止ASMSVR服务或者DMASMSVR服务"ep stop 集群组名",监视器会关闭相关的自动拉起命令,
   故可以确保集群的正确停止。
5) 通过在监视器执行"set group_name auto restart on/off"打开/关闭指定组的自动拉起功能,此命令只修改dmcss内存值。

猜你喜欢

转载自blog.csdn.net/ai20110304/article/details/113971682