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://xiahunao.cn/news/3266398.html

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

相关文章

深度模型中的优化 - 基本算法篇

序言 在深度学习中,模型优化是提升模型性能与训练效率的关键环节。深度模型通过优化算法不断调整其内部参数,以最小化损失函数,从而实现对复杂数据的有效拟合与预测。本篇章将简要概述深度模型中的几种基本优化算法,包括梯度下降…

I2C framework

/dev/i2cX是i2c总线设备驱动文件。I2C总线是一种字符设备。 先来看驱动drivers/i2c/i2c-core-base.c 驱动drivers/i2c/i2c-core-base.c注册了i2c总线类i2c_bus_type,我们说的i2c0等具体的i2c总线需要注册到这个i2c_bus_type.

传知代码-智慧医疗:纹理特征VS卷积特征(论文复现)

代码以及视频讲解 本文所涉及所有资源均在传知代码平台可获取 论文链接:https://www.sciencedirect.com/science/article/abs/pii/S1076633223003537?__cf_chl_rt_tkJ9Aipfxyk5d.leu48P20ePFNd4B2aunaSmzVpXCg.7g-1721292386-0.0.1.1-6249 论文概述 今天我们把视线…

idea启动项目报:the command line via JAR manifest or via a classpath file and rerun.

解决方案 1.打开Edit Configurations,进去编辑,如下: 笔记配置 2.选择Modfiy options,点击Shorten command line 3.在新增的Shorten command line选项中选择JAR manifest或classpath file 4.点击保存后即可

建立两个基于域名访问的网站

题目 1、配置web服务器,当访问网站www.haha.com时显示:haha 2、配置web服务器,当访问网站www.xixi.com/secret/显示:this is secret 一、 ① # 恢复快照,关闭安全软件 # 安装所需软件 [rootserver ~] # yum install …

mac怎样清理photoshop垃圾的方法 ps清理缓存和垃圾 苹果电脑暂存盘已满怎么清理

很多使用过ps,尤其是Adobe全家桶的小伙伴会发现,这些软件占用缓存很多,而且随着使用时间的增长,缓存也会越多,并不会自动清理。那么mac系统怎么清理ps暂存盘呢?mac又该怎么最高效清理磁盘空间呢&#xff1f…

删除的视频怎样才能恢复?详尽指南

在日常生活中,我们有时会不小心删除一些重要的视频文件,或者在整理存储空间时不慎丢失了珍贵的记忆片段。这时候,我们可以通过一些数据恢复工具和技巧,找回这些被删除的视频。本文将详细介绍几种常见且有效的视频恢复方法&#xf…

【数据结构】顺序表(杨辉三角、简单的洗牌算法)

🎇🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔 💪💪💪 谢谢你这么帅…

纬创软件赞助 | 两岸曲艺青年汇在台湾会馆举办

7月6日下午,北京台湾会馆处处洋溢着掌声、笑声、欢呼声。由中国曲艺家协会、北京市台联主办,北京国际和平文化基金会、相声天团、吴兆南相声剧艺社、北京德云社文化传播有限公司等协办的“艺道同欢”两岸曲艺青年汇在这里隆重举办。纬创软件赞助了本次活…

生成式人工智能代理 AI Agent:从思维到行动的技术飞跃

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

利用换元法计算积分的常见题型(考研高数复习)

考研中常见的几种换元法积分计算题 (1)被积式仅包含一个根式:根号下为有 a a a 和 x x x 的平方和/平方差 此种类型的积分题型,可以通过构造单个锐角大小为 t t t 的直角三角形,利用勾股定理和三角函数进行代换。 平方和的情况 形如 ∫…

opencascade AIS_ManipulatorOwner AIS_MediaPlayer源码学习

前言 AIS_ManipulatorOwner是OpenCascade中的一个类,主要用于操纵对象的交互控制。AIS_ManipulatorOwner结合AIS_Manipulator类,允许用户通过可视化工具(如旋转、平移、缩放等)来操纵几何对象。 以下是AIS_ManipulatorOwner的基…

32单片机开发bootloader程序

一,单片机为什么要使用bootloader 1、使用bootloader的好处 1) 程序隔离:可以同时存在多个程序,只要flash空间够大,或者通过外挂flash,可以实现多个程序共存,在多个程序之间切换使用。 2)方便程…

JavaWeb学习——请求响应、分层解耦

目录 一、请求响应学习 1、请求 简单参数 实体参数 数组集合参数 日期参数 Json参数 路径参数 总结 2、响应 ResponseBody&统一响应结果 二、分层解耦 1、三层架构 三层架构含义 架构划分 2、分层解耦 引入概念 容器认识 3、IOC&DI入门 4、IOC详解 …

STM32-寄存器DMA配置指南

配置步骤 在STM32F0xx中文参考手册中的DMA部分在开头给出了配置步骤 每个通道都可以在外设寄存器固定地址和存储器地址之间执行 DMA 传输。DMA 传输的数据 量是可编程的,最大达到 65535。每次传输之后相应的计数寄存器都做一次递减操作,直到 计数为&am…

PHP基础语法-Part1

脚本格式 PHP脚本以<?php开头&#xff0c;以?>结尾&#xff1b; PHP语句以分号结尾&#xff08;;&#xff09; PHP是解释型语言&#xff1b; 输入和输出 获取用户的输入&#xff1a; $input readline("input:"); echo $input; echo "input:";…

MySQL作业五

1. 创建表goods&#xff0c;orders 2. 向商品表中插入商品记录 3. 触发器操作 3.1 建立触发器&#xff0c;订单表中增加订单数量后&#xff0c;商品表商品数量同步减少对应的商品订单出数量,并测试 3.2 建立触发器&#xff0c;实现功能:客户取消订单&#xff0c;恢复商品表对应…

物联网精密空调监控指标解读:佳力图(MEAUO702M)

监控易作为一款功能强大的IT和物联网设备监控软件&#xff0c;能够实时监控各类IT资源和物联网设备的运行状态&#xff0c;为用户提供准确、及时的监控数据&#xff0c;确保系统的稳定运行。在物联网精密空调领域&#xff0c;监控易对佳力图(MEAUO702M)精密空调进行了全面的监控…

【中项】系统集成项目管理工程师-第5章 软件工程-5.3软件设计

前言&#xff1a;系统集成项目管理工程师专业&#xff0c;现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试&#xff0c;全称为“全国计算机与软件专业技术资格&#xff08;水平&#xff09;考试”&…

崖山异构数据库迁移利器YMP初体验-Oracle迁移YashanDB

前言 首届YashanDB「迁移体验官」开放后&#xff0c;陆续收到「体验官」们的投稿&#xff0c;小崖在此把优秀的投稿文章分享给大家~今天分享的用户文章是《崖山异构数据库迁移利器YMP初体验-Oracle迁移YashanDB》&#xff08;作者&#xff1a;小草&#xff09;&#xff0c;满满…