DMv8共享存储集群部署

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

业务服务名

dmtest_cls(与2.16节dm_svc.conf配置服务名相同)

业务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>

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1488621.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Java面试八股之什么是spring boot starter

什么是spring boot starter Spring Boot Starter是Spring Boot项目中的一个重要概念。它是一种依赖管理机制,用于简化Maven或Gradle配置文件中的依赖项声明。Spring Boot Starter提供了一组预定义的依赖关系,这些依赖关系被封装在一个单一的包中&#x…

昇思25天学习打卡营第22天|munger85

LSTMCRF序列标注 我们希望得到这个模型来对词进行标注,B是开始,I是实体词的非开始,O是非实体词。 我们首先需要lstm对序列里token的记忆,和计算每个token发到crf的分数,发完了再退出来,最后形成1模型。那么…

海山数据库(He3DB)技术解析:海山Redis定时任务与持久化管控设计

文章目录 引言一、背景介绍二、具体实现1、多副本容灾功能2、主备切换后任务断点续做功能3、持久化管控编排功能 三、总结作者 引言 云Redis数据库服务是目前广泛应用的模式,其数据持久化方案是现在研究的热点内容,数据持久化操作主要由参数设置自动触发…

500元左右有好用的开放式耳机吗?百元开放式耳机推荐

正所谓授人以鱼不如授人以渔,在此大圣分享一下我选开放式耳机的的一切技巧。 在挑选开放式耳机的时候,我主要会考察以下这些点: 1-音质表现 关注频响范围,确保能涵盖您常听音乐类型所需的频率。 留意声音的清晰度、层次感和失…

halcon_C#联合halcon打开摄像头

1. 创建halcon项目 -> 2.测试连接 -> 3. 在halcon中打开摄像头成功 -> 4. 插入代码 -> 5. 导出为.cs文件 6. 创建VS项目 -> 7.将action部分代码嵌入winform -> 8. 编写代码 -> // 导入HalconDotNet命名空间,这是用于Halcon图像处理的…

IF=8.5 MIMIC-IV高阶玩法!中国用新指标SHR+机器学习拿一区top,思路太牛了

‍ MIMIC-IV 发文难?那是你还没遇到对的思路!如今机器学习数据库挖掘的文章层出不穷,今天介绍的这篇文章是在MIMIC-IV数据库的基础上,用了一个新指标—应激性高血糖比(SHR),结合机器学习构建预测…

【网络流】——初识(最大流)

网络流-最大流 基础信息引入一些概念基本性质 最大流定义 Ford–Fulkerson 增广Edmons−Karp算法Dinic 算法参考文献 基础信息 引入 假定现在有一个无限放水的自来水厂和一个无限收水的小区,他们之间有多条水管和一些节点构成。 每一条水管有三个属性&#xff1a…

土耳其云手机提升TikTok电商效率

在数字化飞速发展的今天,TikTok不仅是一个社交平台,更是一个巨大的电商市场。随着TikTok电商功能在全球范围内的扩展,土耳其的商家和内容创作者正面临着前所未有的机遇。本文将详细介绍土耳其云手机怎样帮助商家抓住机遇,实现业务…

内置命令和外置命令(用户组配置文件)

通过cat /etc/group来查看用户组的权限,/etc/group文件包含了系统上所有用户组的信息。每一行代表一个用户组。 用户组配置文件格式如下: group_name:password:GID:user_list group_name:用户组的名称。password:用户组的密码。…

达门如何用虚拟现实辅助工程技术造船?

在当代造船以及海事行业中,虚拟现实辅助工程(VR Aided Engineering)技术的使用,正在快速演进并提供新的工业应用案例。该技术改变了从设计阶段到建造,再到船舶运营各个阶段的工作流程,进而提高效率、优化性…

旗晟机器人仪器仪表识别AI智慧算法

在当今迅猛发展的工业4.0时代,智能制造和自动化运维已然成为工业发展至关重要的核心驱动力。其中智能巡检运维系统扮演着举足轻重的角色。工业场景上不仅要对人员行为监督进行监督,对仪器仪表识别分析更是不可缺少的一个环节。那么我们说说旗晟仪器仪表识…

商场导航系统:从电子地图到AR导航,提升顾客体验与运营效率的智能解决方案

商场是集娱乐、休闲、社交于一体的综合性消费空间,随着商场规模的不断扩大和布局的日益复杂,顾客在享受丰富选择的同时,也面临着寻路难、店铺曝光率低以及商场管理效率低下等挑战。商场导航系统作为提升购物体验的关键因素,其重要…

canvas画两个相交的圆(React)

需求:展示两个模块及交集,以两个圆相交的方式,如下图: 一开始画,总会一个圆压住另一个圆,最后看到了paper.js,就可以了,好用,center是圆心,第一个值是X轴坐标…

四、GD32 MCU 常见外设介绍(8)SPI 模块介绍

串行外设接口(Serial Peripheral Interface,缩写为 SPI) 提供了基于SPI 协议的数据发送和接收功能, 可以工作于主机或从机模式。 SPI 接口支持具有硬件 CRC 计算和校验的全双工和单工模式。 8.1.SPI 基础知识 SPI 物理层 SPI接…

【AIGC】构建自己的谷歌搜索引擎服务并使用

一、谷歌 谷歌的搜索引擎需要自己创建服务才能启用检索api。(需自行翻墙和创建自己的谷歌账号) 1.1 API服务创建 1)登陆https://console.cloud.google.com/: 2) 选择新建项目,取号项目名即可(比如:Olin…

钉钉 钉钉打卡 钉钉定位 2024 免费试用 保用

打卡助手定位 如图,表示开启成功,软件已定位到钉钉打卡位置。 测试显示,高德地图位置已成功修改。 开启助手定位后,观察效果,打卡按钮由无法打卡变为可打卡状态,照片还显示打卡地点。 伙伴们担心作弊行为会…

Redis使用场景-热点数据缓存

什么是缓存? 为了把一些经常访问的数据放入缓存中已减少对数据库的访问,从而减少数据库的压力,提高程序的性能。【内存中存储】-效率快 缓存的原理 什么样的数据适合放入缓存中? 1.查询频率高且修改频率低 2.数据安全性低 哪些组件…

数字看板:跨行业需求下的创新与升级

在当今这个数据驱动的时代,数字看板作为信息展示与决策支持的重要工具,正逐步渗透到各行各业之中。从智慧城市到智能制造,从金融分析到医疗健康,数字看板以其直观、动态、高效的特点,成为了连接数据与决策者的桥梁。本…

Mysql 集群搭建 05

文章目录 1. Mysql主从复制集群搭建1.1 主库配置1.2 从库配置 2. 分库分表2.1 拆分策略2.2 实现技术2.2.1 MyCat概述2.2.2 MyCat入门2.2.3 配置 schema.xml 3. 双主双从4. 双主双从读写分离 1. Mysql主从复制集群搭建 主从复制是指将主数据库的 DDL 和 DML 操作通过二进制日志…

阿里云服务器安装Anaconda后无法检测到

前言 问题如标题所言,就是conda -V验证错误,不过后来发现其实就是虽然安装时,同意了写入环境变量,但是其实还没有写入,需要手动写入。下面也会重复一遍安装流程。 安装 到[Anaconda下载处](Download Now | Anaconda)查…