DMv8共享存储集群部署
环境说明
操作系统:centos7.6
服务器:2台虚拟机
达梦数据库版本:达梦V8
- 安装前准备工作
参考达梦官方文档:https://eco.dameng.com/document/dm/zh-cn/ops/DSC-installation-cluster.html#%E4%B8%80%E3%80%81%E4%B8%A4%E8%8A%82%E7%82%B9%20DSC%20%E9%9B%86%E7%BE%A4%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2
1、系统环境(all nodes)
1.1 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
1.2 关闭selinux
##临时关闭 SELinux:
[root@localhost ~]# setenforce 0
##永久关闭 SELinux
改配置文件:/etc/selinux/config,修改 SELINUX=disabled
1.3 关闭swap
内存足够的情况下关闭,不足的话可以不用关闭。
1.4 关闭透明大页
(1) 查看透明大页内存
##使用下图中命令查看当前操作系统透明大页内存配置。
[root@]# grep -i huge /proc/meminfo
[root@]# cat /sys/kernel/mm/transparent_hugepage/enabled
(2) 关闭透明大页内存
##通过修改 grub 配置,在 “GRUB_CMDLINE_LINUX=” 配置参数结尾加入 “transparent_hugepage=never”,可以永久关闭透明大页内存。
[root@~]# vim /etc/default/grub
(3) 重新生成 grub 配置
##如果操作系统安装时,使用 Legacy 模式引导安装,则使用以下命令重新生成 grub。
[root@~] # grub2-mkconfig -o /boot/grub2/grub.cfg
(4) 生成 grub 后,重启操作系统查看配置
可以看到系统中目前透明大页内存为 0,并且禁用透明大页内存(never)。查看 /sys/kernel/mm/transparent_hugepage/defrag 配置文件缺省配置为 “madvise”。
1.5 调整 limits.conf 参数
##编辑 limits.conf 文件
[root@~]# vi /etc/security/limits.conf
##在最后面添加以下内容
* soft nproc 10240
* hard nproc 10240
或者指定用户
dmdba soft nproc 10240
dmdba hard nproc 10240
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba hard data unlimited
dmdba soft data unlimited
dmdba hard fsize unlimited
dmdba soft fsize unlimited
dmdba soft core unlimited
dmdba hard core unlimited
##重启操作系统
[root@]# reboot
##再次确认
[dmdba@]# ulimit –a
2、集群规划
2.1 本地磁盘规划
名称 | 节点1(obs1) | 节点2(obs2) | 备注 |
数据库安装目录 | /dm/dmdbms | /dm/dmdbms | 数据库安装路径,存放数据库运行日志等信息 |
数据库备份目录 | /dm/dmbak | /dm/dmbak | 用于存放数据库备份文件 |
数据库SQL日志目录 | /dm/dmsqllog | /dm/dmsqllog | 用于存放数据库 dmsql 日志 |
集群配置文件目录 | /dm/dsc_config/DSC0 | /dm/dsc_config/DSC1 | 用于存放数据库集群配置文件 |
系统core目录 | /dm/core | /dm/core | 用户存放系统的 core 文件 |
2.2 共享存储规划
DMDSC 集群为了实现多实例同时访问和修改数据,需要数据文件、控制文件和日志文件都放到共享存储上。DM 支持两种共享存储,裸设备和 DMASM,裸设备是未经过格式化的特殊字符设备,推荐使用 DMASM 共享存储。
其中,VOTE 是表决磁盘,一个集群一个表决磁盘。DCR 是 DM 集群注册表的简称,用于存储、维护集群配置的详细信息,一个集群一个注册表。生产环境中,共享存储一般由操作系统管理员进行划分。
名称 | 拟定配置 | 分区大小(GB) | 备注 |
Vote磁盘 | /dev/asm-dmi | 2G | 记录集群成员信息,集群通过 Voting Disk 进行心跳检测,确定集群中节点的状态 |
DCR磁盘 | /dev/asm-dmh | 2G | 用于存储、维护集群配置的详细信息,整个集群环境共享 DCR 配置信息 |
Redo日志盘 | /dev/asm-dme | 120 | 用于存储数据库集群 Redo log |
数据盘 | /dev/asm-dmd | 120 | 用于存放数据 |
归档日志盘 | /dev/asm-dmf | 120 | 用于存储数据库集群各实例的归档日志 |
2.3 端口规划
数据库服务器名称 | obs1 | obs2 | ||
业务服务名 | [db_service_name]待定 | |||
业务IP | 192.192.103.125 | 192.192.103.126 | ||
内部数据交换网络 | 11.11.11.125 | 11.11.11.126 | ||
dmdcr_cfg | CSS | DCR_EP_NAME | CSS0 | CSS1 |
DCR_EP_HOST | 11.11.11.125 | 11.11.11.126 | ||
DCR_EP_PORT | 11286 | 11286 | ||
ASM | DCR_EP_NAME | ASM0 | ASM1 | |
DCR_EP_HOST | 11.11.11.125 | 11.11.11.126 | ||
DCR_EP_PORT | 11276 | 11276 | ||
DB | DCR_EP_NAME | DSC0 | DSC1 | |
DCR_EP_PORT | 5236 | 5236 | ||
DCR_CHECK_PORT | 11256 | 11256 | ||
dmasvrmal | MAL_INST_NAME | ASM0 | ASM1 | |
MAL_HOST | 11.11.11.125 | 11.11.11.126 | ||
MAL_PORT | 11266 | 11266 | ||
dmini | 实例名 | DSC0 | DSC1 | |
PORT_NUM | 5236 | 5236 | ||
MAL_HOST | 11.11.11.125 | 11.11.11.126 | ||
MAL_PORT | 11246 | 11246 | ||
OGUID | 210715 |
2.4 块设备UUID绑定(两节点操作)
Linux系统一般采用udev或者multipath方式进行绑定,建议有限选择udev方式绑定块设备。
#lsblk 查看共享块设备
--创建脚本
#vi asmdisk.sh
for i in d e f g h i j;
do
echo "KERNEL==\"sd*\",SUBSYSTEM==\"block\",PROGRAM==\"/lib/udev/scsi_id -g -u -d /dev/\$name\",RESULT==\"`/lib/udev/scsi_id -g -u -d /dev/sd$i`\",SYMLINK+=\"asm-dm$i\",OWNER=\"dmdba\",GROUP=\"dmdba\",MODE=\"0660\""
done
--执行脚本
#chmod +x asmdisk.sh
#sh asmdisk.sh 执行后输出以下内容
#创建99-dm-asmdevices.rules文件,复制asmdisk.sh脚本执行输出的内容到文件
#vi /etc/udev/rules.d/99-dm-asmdevices.rules
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36000c29c5146cd7264c3a584c8109e97",SYMLINK+="asm-dmd",OWNER="dmdba",GROUP="dmdba",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36000c29db5ee301775480608431719aa",SYMLINK+="asm-dme",OWNER="dmdba",GROUP="dmdba",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36000c299c0abe00e06de69b82481d2af",SYMLINK+="asm-dmf",OWNER="dmdba",GROUP="dmdba",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36000c29f9bc4ec738ad7afd3694b1645",SYMLINK+="asm-dmg",OWNER="dmdba",GROUP="dmdba",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36000c296432bbbe66f645313d6f6d11c",SYMLINK+="asm-dmh",OWNER="dmdba",GROUP="dmdba",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36000c29f793b3f0fa23f4ac159ab7971",SYMLINK+="asm-dmi",OWNER="dmdba",GROUP="dmdba",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36000c2982bf7b637bf63c2a2f2bf376b",SYMLINK+="asm-dmj",OWNER="dmdba",GROUP="dmdba",MODE="0660"
--重启udev服务
udevadm trigger --type=devices --action=change
udevadm control --reload-rules
- 集群搭建
2.1 创建用户、目录、安装数据库软件
obs1 和 obs2主机均将数据库安装在 /dm/dmdbms 目录下。
2.1.1 创建用户、目录(两节点操作)
#groupadd -g 1111 dmdba
#groupadd -g dmdba -u 1111 dmdba
#echo “dmdba”|passwd --stdin dmdba
#mkdir -p /dm/{dmdbms,dsc_config/DSC0,dmbak,dmsqllog,core } --节点1
#mkdir -p /dm/{dmdbms,dsc_config/DSC1,dmbak,dmsqllog,core } --节点2
#chown -R dmdba. /dm
#chmod -R 777 /dm
2.1.2 安装数据库软件(两节点操作)
--挂载镜像
#mount -o loop dm8_20240528_x86_rh7_64_ent_8.1.3.140_pack5.iso /mnt
[root@obs1 dm]# cd /mnt
[root@obs1 mnt]# ls
DM8 Install.pdf DMInstall.bin
[root@obs1 mnt]# export DISPLAY=192.168.102.9:0.0
[root@obs1 mnt]# ./DMInstall.bin
Extract install files........
--选择安装组件
数据库软件安装程序提供四种安装方式:“典型安装”、“服务器安装”、“客户端安装”和“自定义安装”,用户可根据实际情况灵活地选择。如下图所示:
典型安装包括:服务器、客户端、驱动、用户手册、数据库服务。
服务器安装包括:服务器、驱动、用户手册、数据库服务。
客户端安装包括:客户端、驱动、用户手册。
自定义安装包括:用户根据需求勾选组件,可以是服务器、客户端、驱动、用户手册、数据库服务中的任意组合。
生产环境可以根据实际需求选择,一般情况下选择"典型安装"即可
Root用户下执行脚本,注册DmAPService服务
#/dm/dmdbms/script/root/root_installer.sh
2.2 配置dmdcr_cfg.ini
obs1和obs2配置相同。
[dmdba@obs1 ~]$ vi /dm/dsc_config/dmdcr_cfg.ini
DCR_N_GRP = 3 ##集群环境有多少个 GROUP,范围:1~16
DCR_VTD_PATH = /dev/asm-dmh ##规划为 vote 的磁盘
DCR_OGUID = 210715 ## 消息标识,一个组里面只有一个。
[GRP] #新建一个 GROUP
DCR_GRP_TYPE = CSS ##组类型(CSS/ASM/DB)
DCR_GRP_NAME = GRP_CSS ##组名
DCR_GRP_N_EP = 2 ##组内节点个数
DCR_GRP_DSKCHK_CNT = 65 ##磁盘心跳容错时间,单位:秒
[GRP_CSS]
DCR_EP_NAME = CSS0 ##CSS 节点名
DCR_EP_HOST = 11.11.11.125 ##心跳地址
DCR_EP_PORT = 11286 ##CSS 端口
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 11.11.11.126
DCR_EP_PORT = 11286
[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = GRP_ASM
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 61
[GRP_ASM]
DCR_EP_NAME = ASM0 ##ASM 节点名,和 dmasvrmal 的 MAL_INST_NAME 一致
DCR_EP_SHM_KEY = 42424 ##共享内存标识
DCR_EP_SHM_SIZE = 1024 ##共享内存大小
DCR_EP_HOST = 11.11.11.125 ##心跳地址
DCR_EP_PORT = 11276 ##ASM 端口
DCR_EP_ASM_LOAD_PATH = /dev
[GRP_ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 42425
DCR_EP_SHM_SIZE = 1024
DCR_EP_HOST = 11.11.11.126
DCR_EP_PORT = 11276
DCR_EP_ASM_LOAD_PATH = /dev
[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = GRP_DSC
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 57
[GRP_DSC]
DCR_EP_NAME = DSC0 ##实例名,和 dm.ini 的 INSTANCE_NAME 一致
DCR_EP_SEQNO = 0 ##组内序号,不能重复
DCR_EP_PORT = 5236 ##实例端口,和 dm.ini 的 PORT_NUM 一致
DCR_CHECK_PORT = 11256 ##DCR 检查端口
[GRP_DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 11256
2.3 初始化磁盘组
在 obs1 机器上进行如下操作
[dmdba@obs1 ~]$/dm/dmdbms/bin/dmasmcmd
dmasmcmd V8
ASM>create dcrdisk '/dev/asm-dmi' 'dcr'
[TRACE]The ASM initialize dcrdisk /dev/asm-dmi to name DMASMdcr
Used time: 269.520(ms).
ASM>create votedisk '/dev/asm-dmh' 'vote'
[TRACE]The ASM initialize votedisk /dev/asm-dmh to name DMASMvote
Used time: 238.499(ms).
ASM>init dcrdisk '/dev/asm-dmi' from '/dm/dsc_config/dmdcr_cfg.ini' identified by 'dmdba'
[TRACE]DG 126 alloc extent for inode (0, 0, 1)
[TRACE]DG 126 alloc 4 extents for 0xfe000002 (0, 0, 2)->(0, 0, 5)
Used time: 00:00:01.581.
ASM>init votedisk '/dev/asm-dmh' from '/dm/dsc_config/dmdcr_cfg.ini'
[TRACE]DG 125 alloc extent for inode (0, 0, 1)
[TRACE]DG 125 alloc 4 extents for 0xfd000002 (0, 0, 2)->(0, 0, 5)
Used time: 396.032(ms).
ASM>create asmdisk '/dev/asm-dmd' 'DATA0'
[TRACE]The ASM initialize asmdisk /dev/asm-dmd to name DMASMDATA0
Used time: 253.576(ms).
ASM>create asmdisk '/dev/asm-dme' 'LOG0'
[TRACE]The ASM initialize asmdisk /dev/asm-dme to name DMASMLOG0
Used time: 250.918(ms).
ASM>create asmdisk '/dev/asm-dmf' 'ARCH0'
[TRACE]The ASM initialize asmdisk /dev/asm-dmf to name DMASMARCH0
Used time: 258.515(ms).
2.4 配置 dmasvrmal.ini
[dmdba@obs1 ~]$vi /dm/dsc_config/dmasvrmal.ini
[MAL_INST0]
MAL_INST_NAME = ASM0
MAL_HOST = 11.11.11.125 #心跳地址
MAL_PORT = 11266 #MAL 监听端口
[MAL_INST1]
MAL_INST_NAME = ASM1
MAL_HOST = 11.11.11.126
MAL_PORT = 11266
将该文件分别拷贝至obs1 和obs2机器下的 /dm/dsc_config/DSC0 和 /dm/dsc_config/DSC1 目录下。
2.5 配置 dmdcr.ini 文件
- obs1机器配置 dmdcr.ini,dmdcr_seqno 为 0
[dmdba@obs1]$ vi /dm/dsc_config/dmdcr.ini
DMDCR_PATH = /dev/dm/asm-dmi
DMDCR_MAL_PATH = /dm/dsc_config/DSC0/dmasvrmal.ini
DMDCR_SEQNO = 0
DMDCR_AUTO_OPEN_CHECK = 111
DMDCR_ASM_TRACE_LEVEL = 2
##DMDCR_ASM_RESTART_INTERVAL = 60 #CSS 认定 ASM 故障重启的时间
##DMDCR_ASM_STARTUP_CMD = /dm/dsc_config/DmAsmService_DSC0 start
##DMDCR_DB_RESTART_INTERVAL = 60 ##CSS 认定 DSC 故障重启的时间,设置为 0 不自动拉起
##DMDCR_DB_STARTUP_CMD = /dm/dsc_config/DmService_DSC0 start
- obs2机器配置 dmdcr.ini,dmdcr_seqno 为 1
[dmdba@obs2]$ vi /dm/dsc_config/dmdcr.ini
DMDCR_PATH = /dev/dm/asm-dmi
DMDCR_MAL_PATH = /dm/dsc_config/DSC1/dmasvrmal.ini
DMDCR_SEQNO = 1
DMDCR_AUTO_OPEN_CHECK = 111
DMDCR_ASM_TRACE_LEVEL = 2
##DMDCR_ASM_RESTART_INTERVAL = 60
##DMDCR_ASM_STARTUP_CMD = /dm/dsc_config/DmAsmServiceDSC1 start
##DMDCR_DB_RESTART_INTERVAL = 60
##DMDCR_DB_STARTUP_CMD = /dm/dsc_config/DmServiceDSC1 start
注意
当前为手动拉起obs1机器和obs2机器的ASM和DMSERVER服务。待集群配置完成后,再修改为自动拉起(删除 dmdcr.ini 中的“##”号即可)。在实际项目中集群出现异常时需排查诱因,故在生产环境上一般不建议配置自动拉起。
2.6 启动 DMCSS、DMASM 服务
--在 2 个节点分别启动 dmcss 命令
$ nohup /dm/dmdbms/bin/dmcss DCR_INI=/dm/dsc_config/dmdcr.ini &
$ nohup /dm/dmdbms/bin/dmcss DCR_INI=/dm/dsc_config/dmdcr.ini &
--在 2 个节点分别启动dmasmsvr命令
$ nohup /dm/dmdbms/bin/dmasmsvr DCR_INI=/dm/dsc_config/dmdcr.ini &
$ nohup /dm/dmdbms/bin/dmasmsvr DCR_INI=/dm/dsc_config/dmdcr.ini &
说明:如果 DMCSS 配置有自动拉起 dmasmsvr 的功能,可以等待 DMCSS 自动拉起 dmasmsvr 程序,不需要手动启动。
2.7 创建 DMASM 磁盘组
##在obs1节点启动 dmasmtool 工具
[dmdba@obs1]$ /dm/dmdbms/bin/dmasmtool DCR_INI=/dm/dsc_config/dmdcr.ini
##输入下列语句创建 DMASM 磁盘组
##创建日志磁盘组
ASM> create diskgroup 'DMLOG' asmdisk '/dev/asm-dme'
##创建数据磁盘组
ASM> create diskgroup 'DMDATA' asmdisk '/dev/asm-dmd'
##创建归档磁盘组
ASM> create diskgroup 'DMARCH' asmdisk '/dev/asm-dmf'
##查看ASM磁盘组及磁盘信息
或者登录数据库实例,查看以下视图:
v$asmgroup、v$asmdisk、v$asmfile
2.8 初始化实例
obs1和obs2机器配置相同
##创建 dminit.ini 文件
DB_NAME = DSC
SYSDBA_PWD = SYSDBA_PWD
SYSTEM_PATH = +DMDATA/data
SYSTEM = +DMDATA/data/SYSTEM.dbf
SYSTEM_SIZE = 1024
ROLL = +DMDATA/data/ROLL.dbf
ROLL_SIZE = 10000
MAIN = +DMDATA/data/MAIN.dbf
MAIN_SIZE = 1024
CTL_PATH = +DMDATA/data/dm.ctl
CTL_SIZE = 8
LOG_SIZE = 2048
DCR_PATH = /dev/asm-dmi
DCR_SEQNO = 0
AUTO_OVERWRITE = 1
PAGE_SIZE = 32
EXTENT_SIZE = 16
BLANK_PAD_MODE = 1
[DSC0]
CONFIG_PATH = /dm/dsc_config/DSC0
PORT_NUM = 5236
MAL_HOST = 11.11.11.125
MAL_PORT = 11246
LOG_PATH = +DMLOG/DSC0_LOG01.log
LOG_PATH = +DMLOG/DSC0_LOG02.log
[DSC1]
CONFIG_PATH = /dm/dsc_config/DSC1
PORT_NUM = 5236
MAL_HOST = 11.11.11.126
MAL_PORT = 11246
LOG_PATH = +DMLOG/DSC1_LOG01.log
LOG_PATH = +DMLOG/DSC1_LOG02.log
##在obs1节点执行初始化 db 命令
[dmdba@obs1 ~]$ /dm/dmdbms/bin/dminit control=/dm/dsc_config/dminit.ini
##拷贝文件到obs2节点
[dmdba@obs1~]$ scp -r /dm/dsc_config/DSC1 dmdba@11.11.11.126:/dm/dsc_config/
2.9 配置 dmarch.ini 文件
- obs1节点
##修改 dm.ini
[dmdba@obs1 ~]$ vi /dm/dsc_config/DSC0/dm.ini
ARCH_INI = 1
##创建 dmarch.ini
[dmdba@~]$ vi /dm/dsc_config/DSC0/dmarch.ini
ARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMARCH/ARCH/DSC0/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 102400
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_INCOMING_PATH = +DMARCH/ARCH/DSC1/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 102400
- obs2节点
[dmdba@obs2 ~]$ vi /dm/dsc_config/DSC1/dm.ini
ARCH_INI
##创建 dmarch.ini
[dmdba@~]$ vi /dm/dsc_config/DSC1/dmarch.ini
ARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMARCH/ARCH/DSC1/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 102400
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC0
ARCH_INCOMING_PATH = +DMARCH/ARCH/DSC0/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 102400
2.10 启动 DMSERVER 服务
如果 DMCSS 配置有自动拉起 dmserver 的功能,可以等待 DMCSS 自动拉起实例,不需要手动启动。如果需要手动启动,可参考以下步骤:
##obs1
[dmdba@obs1 ~]$ nohup /dm/dmdbms/bin/dmserver /dm/dsc_config/DSC0/dm.ini dcr_ini=/dm/dsc_config/dmdcr.ini &
##obs2
[dmdba@obs2 ~]$ nohup /dm/dmdbms/bin/dmserver /dm/dsc_config/DSC1/dm.ini dcr_ini=/dm/dsc_config/dmdcr.ini &
2.11 注册 CSS、ASM、DMSERVER 后台服务
##obs1(root用户执行)
#/dm/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm/dsc_config/dmdcr.ini -p CSS
#/dm/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dm/dsc_config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
#/dm/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dm/dsc_config/DSC0/dm.ini -dcr_ini /dm/dsc_config/dmdcr.ini -y DmASMSvrServiceASM.service -p DSC
##obs2(root用户执行)
#/dm/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm/dsc_config/dmdcr.ini -p CSS
#/dm/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dm/dsc_config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
#/dm/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dm/dsc_config/DSC1/dm.ini -dcr_ini /dm/dsc_config/dmdcr.ini -y DmASMSvrServiceASM.service -p DSC
备注:obs1机器、obs2机器删除自启可参考以下命令。
[root@~]# /dm/dmdbms/script/root/dm_service_uninstaller.sh -n DmCSSServiceCSS
[root@~]# /dm/dmdbms/script/root/dm_service_uninstaller.sh -n DmASMSvrServiceASM
[root@~]# /dm/dmdbms/script/root/dm_service_uninstaller.sh -n DmServiceDSC
2.12 配置监视器
- 创建 dmcssm.ini
## obs1 机器、obs2机器配置相同
[dmdba@obs1 ~]$vi /dm/dmdbms/bin/dmcssm.ini
CSSM_OGUID = 210715
CSSM_CSS_IP = 11.11.11.125:11286
CSSM_CSS_IP = 11.11.11.126:11286
CSSM_LOG_PATH = ../log
CSSM_LOG_FILE_SIZE = 512
CSSM_LOG_SPACE_LIMIT = 2048
- 注册服务
[root@~]# /dm/dmdbms/script/root/dm_service_installer.sh -t dmcssm -cssm_ini /dm/dmdbms/bin/dmcssm.ini -p Monitor
##备注:删除自启
[root@~]# /dm/dmdbms/script/root/dm_service_uninstaller.sh -n DmCSSMonitorServiceMonitor
- 监视器使用
命令 | 含义 |
show | 查看所有组的信息 |
show config | 查看 dmdcr_cfg.ini 的配置信息 |
show monitor | 查看当前连接到主 CSS 的所有监视器信息 |
help | 更多指令可通过 help 命令获取 |
2.13 授权 setcap(两节点操作)
为了优化集群在操作系统假死时对节点状态的判断机制,设置 setcap 权限.
##root 用户执行:
setcap cap_net_raw,cap_net_admin=eip /dm/dmdbms/bin/dmserver
setcap cap_net_raw,cap_net_admin=eip /dm/dmdbms/bin/dmasmsvr
##验证 setcap,有输出则授权成功:
[root@obs1 ~]# getcap /dm/dmdbms/bin/dmserver
/dm/dmdbms/bin/dmserver = cap_net_admin,cap_net_raw+eip
[root@obs1 ~]# getcap /dm/dmdbms/bin/dmasmsvr
/dm/dmdbms/bin/dmasmsvr = cap_net_admin,cap_net_raw+eip
每节点依次通过“kill -11 dmserver进程号”验证core文件可正常生成。
2.14 启停服务
1. 启动监视器(两节点操作)
--前台启动:
[dmdba@~]# /dm/dmdbms/bin/dmcssm INI_PATH=/dm/dmdbms/bin/dmcssm.ini
--后台启动:
[dmdba@~]# /dm/dmdbms/bin/DmCSSMonitorServiceMonitor start
通过以上命令前台启动,进入监视器执行 show 命令,可查看 DSC 集群运行状态,如下图所示:
2. 启停集群(两节点操作)
##启动:obs1/2 机器 CSS
obs1/2机器:[dmdba@~]# /dm/dmdbms/bin/DmCSSServiceCSS start
##说明:CSS 启动后 30 秒自动拉起 ASM,60 秒自动拉起 DMSERVER。如果没有配置自动拉起asm和DMSERVER服务,则需要手动在各个节点启动ASM和DMSERVER服务,如下
obs1/2机器:[dmdba@~]# /dm/dmdbms/bin/DmASMSvrServiceASM start
obs1/2机器:[dmdba@~]# /dm/dmdbms/bin/DmServiceDSC start
##详细进程如下如所示:
##停止:依次停止obs1/2机器DMSERVER→obs1/2机器ASM→obs1/2机器CSS
obs1/2机器:[dmdba@~]# /dm/dmdbms/bin/DmServiceDSC stop
obs1/2机器:[dmdba@~]# /dm/dmdbms/bin/DmASMSvrServiceASM stop
obs1/2机器:[dmdba@~]# /dm/dmdbms/bin/DmCSSServiceCSS stop
说明:
- DSC 正常停库必须 2 节点同时停止,根据目前脚本配置,CSS 启动后 60 秒自动拉起 ASM,60 秒自动拉起 DMSERVER,所以停止 DMSERVER 和 ASM 后,要尽快停止 CSS,避免被自动拉起。
- 服务全部停止后,要检查后台进程是否全部停止。
2.15 登录集群数据库
#DSC0为控制节点,DSC为normal节点,两个节点都可以正常提供数据读写服务。
2.16 服务名方式登录
##dm_svc.conf文件默认位置在/etc/目录下
[dmdba@obs1 ~]$ ls -l /etc/dm_svc.conf
-rw-rw-r-- 1 dmdba dmdba 88 Jul 25 17:15 /etc/dm_svc.conf
修改文件,添加如下内容(需要访问的client节点都要修改该文件,当前client即数据库节点本身)
[dmdba@obs1 ~]$ vi /etc/dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(EN)
dmtest_cls=(192.192.103.125:5236,192.192.103.126:5236)
[dmdba@obs2 ~]$ vi /etc/dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(EN)
dmtest_cls=(192.192.103.125:5236,192.192.103.126:5236)
添加数据库两个节点的地址及端口,服务名自定义即可,通过服务名连接会自动使用负载均衡根据负载路由session请求连接到不同的节点。
##obs1节点通过服务名登录数据库
[dmdba@obs1 ~]$ disql sysdba/SYSDBA_PWD@dmtest_cls
Server[192.192.103.125:5236]:mode is normal, state is open
login used time : 5.526(ms)
disql V8
SQL>
## obs2节点通过服务名登录数据库
[dmdba@obs2 ~]$ disql sysdba/SYSDBA_PWD@dmtest_cls
Server[192.192.103.126:5236]:mode is normal, state is open
login used time : 10.841(ms)
disql V8
SQL>
##查看会话连接信息,如下所示