基于DMASM的DMDSC共享存储集群部署

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

业务服务名

DSC(同dminit.ini里DB_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 文件

  1. 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

  1. 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

说明

  1. DSC 正常停库必须 2 节点同时停止,根据目前脚本配置,CSS 启动后 60 秒自动拉起 ASM,60 秒自动拉起 DMSERVER,所以停止 DMSERVER 和 ASM 后,要尽快停止 CSS,避免被自动拉起。
  2. 服务全部停止后,要检查后台进程是否全部停止。

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>

##查看会话连接信息,如下所示

  • 16
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

king_harry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值