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

DMv8镜像模式共享存储集群部署

环境说明

操作系统:centos7.6

服务器:2台虚拟机

达梦数据库版本:达梦V8

  • 安装前准备工作

参考文档《DM8共享存储集群》-第11、12章节

参考文档《DM8_Linux服务脚本使用手册》

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(obs3)

节点2(ocp)

数据库安装目录

/dm/dm8

/dm/dm8

集群配置文件目录

/dm/dmdsc/DSC0

/dm/dmdsc/DSC1

监视器配置文件目录

/dm/dmdsc/dmcssm.ini

/dm/dmdsc/dmcssm.ini

监视器日志文件目录

/dm/dmdsc/cssm_log

/dm/dmdsc/cssm_log

2.2 共享存储规划

DMASM镜像提供了多副本和条带化功能。多副本技术保证同一数据的多个副本会分别写入到不同的磁盘中。多个副本中只有一个作为主副本对外提供服务,其余副本均作为镜像副本。当主副本发生故障后,系统会从镜像副本中重新自动挑选一个继续提供服务。条带化技术可保证写入的数据均匀分布到磁盘组内的不同磁盘中,实现负载均衡。

DMDSC采用配置镜像功能的DMASM管理的块设备作为共享存储,当出现磁盘损坏或数据丢失时,既可以利用其他镜像副本继续提供数据库服务,又可以使用其他镜像副本进行数据恢复

磁盘组

副本数

故障组内磁盘数

单块磁盘大小(GB)

总磁盘数

SYSTEM(DCRV磁盘组)

三副本(high冗余级别)

系统磁盘组比较特殊,每个磁盘位于一个故障组中

5

3

DATA磁盘组

2副本(normal冗余级别)

2

120

4

log磁盘组

2副本(normal冗余级别)

2

100

4

归档磁盘盘

2副本(normal冗余级别)

2

80

4

2.3 端口规划

数据库服务器名称

obs3

ocp

业务服务名

dameng(v$database数据字典视图name字段值)

业务IP

192.192.103.127

192.192.103.128

内部数据交换网络

11.11.11.127

11.11.11.128

dmdcr_cfg

CSS

DCR_EP_NAME

CSS0

CSS1

DCR_EP_HOST

11.11.11.127

11.11.11.128

DCR_EP_PORT

7936

7936

ASM

DCR_EP_NAME

ASM0

ASM1

DCR_EP_HOST

11.11.11.127

11.11.11.128

DCR_EP_PORT

7536

7536

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

11.11.11.128

MAL_PORT

11266

11266

dmini

实例名

DSC0

DSC1

PORT_NUM

5236

5236

MAL_HOST

11.11.11.127

11.11.11.128

MAL_PORT

11246

11246

OGUID

210715

2.4 块设备UUID绑定(两节点操作)

Linux系统一般采用udev或者multipath方式进行绑定,建议有限选择udev方式绑定块设备。

#lsblk 查看共享块设备

--创建目录(两节点操作)

#mkdir -p /dev_DSC_HDD

#chown dmdba:dmdba /dev_DSC_HDD

--创建66-dmdevices.rules文件

#vi /etc/udev/rules.d/66-dmdevices.rules

KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29a4447d3995fe872efb10201a3",SYMLINK+="DCRV1", OWNER="dmdba",GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name;ln -s /dev/DCRV1 /dev_DSC_HDD/DCRV1'"

KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29189e172446bb90d52ac32e0b3",SYMLINK+="DCRV2", OWNER="dmdba",GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name;ln -s /dev/DCRV2 /dev_DSC_HDD/DCRV2'"

KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29aa515d0eb170ee93daf4f5304",SYMLINK+="DCRV3", OWNER="dmdba",GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name;ln -s /dev/DCRV3 /dev_DSC_HDD/DCRV3'"

KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29e10d117760f87bf6e002dc70f",SYMLINK+="MIR_DATA1", OWNER="dmdba",GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name;ln -s /dev/MIR_DATA1 /dev_DSC_HDD/MIR_DATA1'"

KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c299d73f863165abbbbd5934fe64",SYMLINK+="MIR_DATA2", OWNER="dmdba",GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name;ln -s /dev/MIR_DATA2 /dev_DSC_HDD/MIR_DATA2'"

KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c291923f2142b9869115b93a1b9e",SYMLINK+="MIR_DATA3", OWNER="dmdba",GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name;ln -s /dev/MIR_DATA3 /dev_DSC_HDD/MIR_DATA3'"

KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29489caac7c8a58b63614bfd9f4",SYMLINK+="MIR_DATA4", OWNER="dmdba",GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name;ln -s /dev/MIR_DATA4 /dev_DSC_HDD/MIR_DATA4'"

KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29322cdfd8c174d21bf42ef736d",SYMLINK+="MIR_LOG1", OWNER="dmdba",GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name;ln -s /dev/MIR_LOG1 /dev_DSC_HDD/MIR_LOG1'"

KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c297a4bf3f667bdefafcaeabcbb0",SYMLINK+="MIR_LOG2", OWNER="dmdba",GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name;ln -s /dev/MIR_LOG2 /dev_DSC_HDD/MIR_LOG2'"

KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2952d65a8bf22301f955f2b62cd",SYMLINK+="MIR_LOG3", OWNER="dmdba",GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name;ln -s /dev/MIR_LOG3 /dev_DSC_HDD/MIR_LOG3'"

KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c296ba815f91369a375e71f61219",SYMLINK+="MIR_LOG4", OWNER="dmdba",GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name;ln -s /dev/MIR_LOG4 /dev_DSC_HDD/MIR_LOG4'"

KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c294b74d7faceea5a8fb7a1e3d49",SYMLINK+="MIR_ARCH1", OWNER="dmdba",GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name;ln -s /dev/MIR_ARCH1 /dev_DSC_HDD/MIR_ARCH1'"

KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29bf66258cf360c8a478ec74f66",SYMLINK+="MIR_ARCH2", OWNER="dmdba",GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name;ln -s /dev/MIR_ARCH2 /dev_DSC_HDD/MIR_ARCH2'"

KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29aa8e32443856aed1f96b48c43",SYMLINK+="MIR_ARCH3", OWNER="dmdba",GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name;ln -s /dev/MIR_ARCH3 /dev_DSC_HDD/MIR_ARCH3'"

KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29b0480b57c661d585849e13ebc",SYMLINK+="MIR_ARCH4", OWNER="dmdba",GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name;ln -s /dev/MIR_ARCH4 /dev_DSC_HDD/MIR_ARCH4'"

##拷贝/etc/udev/rules.d/66-dmdevices.rules到2节点

--重启udev服务

#udevadm trigger --type=devices --action=change

#udevadm control --reload-rules

  • 集群搭建

2.1 创建用户、目录、安装数据库软件

obs3 和 ocp主机均将数据库安装在 /dm/dm8目录下。

2.1.1 创建用户、目录(两节点操作)

#groupadd -g 1111 dmdba

#groupadd -g dmdba -u 1111 dmdba

#echo “dmdba”|passwd --stdin dmdba

#mkdir -p /dm/{dmdsc/DSC0,dm8}  --节点1

#mkdir -p /dm/{dmdsc/DSC1,dm8}   --节点2

#chown -R dmdba:dmdba /dm

#chmod -R 777 /dm

[root@obs3 ~]# tree /dm

/dm

├── dm8

└── dmdsc

    └── DSC0

3 directories, 0 files

2.1.2 安装数据库软件(两节点操作)

--挂载镜像

#mount -o loop dm8_20240528_x86_rh7_64_ent_8.1.3.140_pack5.iso /mnt

[root@obs3 dm]# cd /mnt

[root@obs3 mnt]# ls

DM8 Install.pdf  DMInstall.bin

[root@obs3 mnt]# export DISPLAY=192.168.102.9:0.0

[root@obs3 mnt]# ./DMInstall.bin

Extract install files........

--选择安装组件

数据库软件安装程序提供四种安装方式:典型安装服务器安装客户端安装自定义安装,用户可根据实际情况灵活地选择。如下图所示:

典型安装包括:服务器、客户端、驱动、用户手册、数据库服务。
服务器安装包括:服务器、驱动、用户手册、数据库服务。
客户端安装包括:客户端、驱动、用户手册。
自定义安装包括:用户根据需求勾选组件,可以是服务器、客户端、驱动、用户手册、数据库服务中的任意组合。
生产环境可以根据实际需求选择,一般情况下选择"典型安装"即可

Root用户下执行脚本,注册DmAPService服务

[root@obs3 ~]# /dm/dm8/script/root/root_installer.sh

2.2 配置dmdcr_cfg.ini

obs3和ocp配置相同。

与普通DMDSC环境相比,镜像环境中的DCR_DISK_LOAD_PATH不再指向具体的磁盘,而是DCRV磁盘所在的目录/dev_DSC_HDD。

[dmdba@obs3 ~]$ vi /dm/dmdsc/DSC0/dmdcr_cfg.ini

DCR_N_GRP= 3   ##集群环境有多少个 GROUP,范围:1~16

DCR_DISK_LOAD_PATH = /dev_DSC_HDD   ##规划为共享镜像磁盘所在目录

DCR_OGUID= 210715   ## 消息标识,一个组里面只有一个

[GRP]

DCR_GRP_TYPE = CSS  ##组类型(CSS/ASM/DB)

DCR_GRP_NAME = GRP_CSS  ##组名

DCR_GRP_N_EP = 2    ##组内节点个数

DCR_GRP_DSKCHK_CNT = 60  ##磁盘心跳容错时间,单位:秒

[GRP_CSS]

DCR_EP_NAME = CSS0   ##CSS 节点名

DCR_EP_HOST = 11.11.11.127   ##心跳地址

DCR_EP_PORT = 7936   ##CSS 端口

[GRP_CSS]

DCR_EP_NAME = CSS1

DCR_EP_HOST = 11.11.11.128

DCR_EP_PORT = 7936

[GRP]

DCR_GRP_TYPE= ASM

DCR_GRP_NAME= GRP_ASM

DCR_GRP_N_EP= 2

DCR_GRP_DSKCHK_CNT= 60

[GRP_ASM]

DCR_EP_NAME= ASM0   ##ASM节点名,和dmasvrmal 的 MAL_INST_NAME 一致

DCR_EP_SHM_KEY= 54730   ##共享内存标识

DCR_EP_SHM_SIZE= 1024   ##共享内存大小

DCR_EP_HOST= 11.11.11.127   ##心跳地址

DCR_EP_PORT= 7536    ##ASM 端口

[GRP_ASM]

DCR_EP_NAME= ASM1

DCR_EP_SHM_KEY= 54731

DCR_EP_SHM_SIZE= 1024

DCR_EP_HOST= 11.11.11.128

DCR_EP_PORT= 7536

[GRP]

DCR_GRP_TYPE= DB

DCR_GRP_NAME= GRP_DSC

DCR_GRP_N_EP= 2

DCR_GRP_DSKCHK_CNT= 60

[GRP_DSC]

DCR_EP_NAME= DSC0  ##实例名,和 dm.ini 的 INSTANCE_NAME 一致

DCR_EP_SEQNO= 0    ##组内序号,不能重复

DCR_EP_PORT= 5236  ##实例端口,和 dm.ini 的 PORT_NUM 一致

[GRP_DSC]

DCR_EP_NAME= DSC1

DCR_EP_SEQNO= 1

DCR_EP_PORT= 5236

拷贝dmdcr_cfg.ini到OCP节点的/dm/dmdsc/DSC1/目录下:

[dmdba@obs3 ~]$ scp /dm/dmdsc/DSC0/dmdcr_cfg.ini ocp:/dm/dmdsc/DSC1/dmdcr_cfg.ini

2.3 初始化磁盘组

在 obs3 机器上使用DMASMCMDM工具初始化所有磁盘并创建DCRV系统磁盘组。

[dmdba@obs3 ~]$/dm/dmdbms/bin/dmasmcmdm

dmasmcmd V8

ASM>create dcrvdisk '/dev_DSC_HDD/DCRV1' 'dcrv1'

create dcrvdisk '/dev_DSC_HDD/DCRV2' 'dcrv2'

create dcrvdisk '/dev_DSC_HDD/DCRV3' 'dcrv3'

create asmdisk '/dev_DSC_HDD/MIR_DATA1' 'DATA1'

create asmdisk '/dev_DSC_HDD/MIR_DATA2' 'DATA2'

create asmdisk '/dev_DSC_HDD/MIR_DATA3' 'DATA3'

create asmdisk '/dev_DSC_HDD/MIR_DATA4' 'DATA4'

create asmdisk '/dev_DSC_HDD/MIR_LOG1'  'LOG1'

create asmdisk '/dev_DSC_HDD/MIR_LOG2'  'LOG2'

create asmdisk '/dev_DSC_HDD/MIR_LOG3'  'LOG3'

create asmdisk '/dev_DSC_HDD/MIR_LOG4'  'LOG4'

create asmdisk '/dev_DSC_HDD/MIR_ARCH1' 'ARCH1'

create asmdisk '/dev_DSC_HDD/MIR_ARCH2' 'ARCH2'

create asmdisk '/dev_DSC_HDD/MIR_ARCH3' 'ARCH3'

create asmdisk '/dev_DSC_HDD/MIR_ARCH4' 'ARCH4'

CREATE SYSTEM DISKGROUP ASMDISK '/dev_DSC_HDD/DCRV1','/dev_DSC_HDD/DCRV2','/dev_DSC_HDD/DCRV3' ATTRIBUTE CONFIG='/dm/dmdsc/DSC0/dmdcr_cfg.ini', passwd='dmdba'

2.4 配置 dmasvrmal.ini

[dmdba@obs3 ~]$vi /dm/dmdsc/DSC0/dmasvrmal.ini

[MAL_INST0]

MAL_INST_NAME            = ASM0

MAL_HOST                  = 11.11.11.127  #心跳地址

MAL_PORT                  = 11266  #MAL 监听端口

[MAL_INST1]

MAL_INST_NAME            = ASM1

MAL_HOST                  = 11.11.11.128

MAL_PORT                  = 11266

将该文件分别拷贝至obs3 和ocp机器下的/dm/dmdsc/DSC0//dm/dmdsc/DSC1/目录下:

[dmdba@obs3 ~]$ scp /dm/dmdsc/DSC0/dmasvrmal.ini ocp:/dm/dmdsc/DSC1/dmasvrmal.ini

2.5 配置 dmdcr.ini 文件

  1. obs3机器配置 dmdcr.ini,dmdcr_seqno 为 0

[dmdba@obs3]$ vi /dm/dmdsc/DSC0/dmdcr.ini

DMDCR_PATH= /dev_DSC_HDD

DMDCR_SEQNO= 0

DMDCR_MAL_PATH= /dm/dmdsc/DSC0/dmasvrmal.ini

DMDCR_ASM_RESTART_INTERVAL= 0

DMDCR_ASM_STARTUP_CMD= /dm/dm8/bin/dmasmsvrm dcr_ini=/dm/dmdsc/DSC0/dmdcr.ini

DMDCR_DB_RESTART_INTERVAL= 0

DMDCR_DB_STARTUP_CMD= /dm/dm8/bin/dmserver path=/dm/dmdsc/DSC0/dm.ini dcr_ini=/dm/dmdsc/DSC0/dmdcr.ini

DMDCR_IPC_CONTROL = 2

#DMDCR_LINK_CHECK_IP=192.192.103.129   ##可选,第三方确认的IP,确认机器可以为集群各节点都访问到的、DMDSC之外的一台独立主机

  1. ocp机器配置 dmdcr.ini,dmdcr_seqno 为 1

[dmdba@ocp]$ vi /dm/dmdsc/DSC1/dmdcr.ini

DMDCR_PATH= /dev_DSC_HDD

DMDCR_SEQNO= 1

DMDCR_MAL_PATH= /dm/dmdsc/DSC1/dmasvrmal.ini

DMDCR_ASM_RESTART_INTERVAL= 0

DMDCR_ASM_STARTUP_CMD= /dm/dm8/bin/dmasmsvrm dcr_ini=/dm/dmdsc/DSC1/dmdcr.ini

DMDCR_DB_RESTART_INTERVAL= 0

DMDCR_DB_STARTUP_CMD= /dm/dm8/bin/dmserver path=/dm/dmdsc/DSC1/dm.ini dcr_ini=/dm/dmdsc/DSC1/dmdcr.ini

DMDCR_IPC_CONTROL = 2

DMDCR_LINK_CHECK_IP=192.192.103.129

设置了DMDCR_LINK_CHECK_IP,须为各节点的DMSERVER和DMASMSVRM赋予ping权限。

[root@obs3 ~]# setcap cap_net_raw,cap_net_admin=eip /dm/dm8/bin/dmserver

[root@obs3 ~]# setcap cap_net_raw,cap_net_admin=eip /dm/dm8/bin/dmasmsvrm

[root@ocp ~]# setcap cap_net_raw,cap_net_admin=eip /dm/dm8/bin/dmserver

[root@ocp ~]# setcap cap_net_raw,cap_net_admin=eip /dm/dm8/bin/dmasmsvrm

2.6 启动 DMCSS、DMASM 服务

在镜像环境中对应的执行码为DMCSS,DMASMSVRM。

-- 2 个节点分别启动 dmcss 命令

$ nohup /dm/dm8/bin/dmcss dcr_ini=/dm/dmdsc/DSC0/dmdcr.ini &

$ nohup /dm/dm8/bin/dmcss dcr_ini=/dm/dmdsc/DSC1/dmdcr.ini &

-- 2 个节点分别启动dmasmsvrm命令

$ nohup /dm/dm8/bin/dmasmsvrm dcr_ini=/dm/dmdsc/DSC0/dmdcr.ini  &

$ nohup /dm/dm8/bin/dmasmsvrm dcr_ini=/dm/dmdsc/DSC1/dmdcr.ini  &

2.7 创建 DMASM 磁盘组

##在obs3节点启动 dmasmtoolm 工具

[dmdba@obs3]$ /dm/dm8/bin/dmasmtoolm dcr_ini=/dm/dmdsc/DSC0/dmdcr.ini

##创建一个DATA磁盘组、一个LOG磁盘组和一个ARCH磁盘组,每个磁盘组包含2个副本。

#创建DATA磁盘组

CREATE DISKGROUP 'DMDATA' NORMAL REDUNDANCY FAILGROUP 'fdata1' asmdisk '/dev_DSC_HDD/MIR_DATA1','/dev_DSC_HDD/MIR_DATA2' FAILGROUP 'fdata2' asmdisk '/dev_DSC_HDD/MIR_DATA3','/dev_DSC_HDD/MIR_DATA4' ATTRIBUTE AU_SIZE=32, REDO_SIZE=128

#创建LOG磁盘组

CREATE DISKGROUP 'DMLOG' NORMAL REDUNDANCY FAILGROUP 'flog1' asmdisk '/dev_DSC_HDD/MIR_LOG1','/dev_DSC_HDD/MIR_LOG2' FAILGROUP 'flog2' asmdisk '/dev_DSC_HDD/MIR_LOG3','/dev_DSC_HDD/MIR_LOG4' ATTRIBUTE AU_SIZE=32, REDO_SIZE=128

#创建ARCH磁盘组

CREATE DISKGROUP 'DMARCH' NORMAL REDUNDANCY FAILGROUP 'farch1' asmdisk '/dev_DSC_HDD/MIR_ARCH1','/dev_DSC_HDD/MIR_ARCH2' FAILGROUP 'farch2' asmdisk '/dev_DSC_HDD/MIR_ARCH3','/dev_DSC_HDD/MIR_ARCH4' ATTRIBUTE AU_SIZE=32, REDO_SIZE=128

##查看ASM磁盘组及磁盘信息

或者登录数据库实例,查看以下视图:

v$asmgroup、v$asmdisk、v$asmfile

2.8 初始化实例

obs3和ocp机器配置相同

准备DMINIT.INI配置文件,保存到/dm/dmdsc/DSC0目录下,这里创建2副本的数据和联机日志文件,且数据文件使用32K的条带化粒度,联机日志文件使用64K的条带化粒度。

##创建 dminit.ini 文件

$ vi /dm/dmdsc/DSC0/dminit.ini

DB_NAME= dameng

SYSTEM_PATH= +DMDATA/data

SYSTEM= +DMDATA/data/dameng/system.dbf

SYSTEM_SIZE= 4096

ROLL= +DMDATA/data/dameng/roll.dbf

ROLL_SIZE= 10000

MAIN= +DMDATA/data/dameng/main.dbf

MAIN_SIZE= 2048

CTL_PATH= +DMDATA/data/dameng/dm.ctl

LOG_SIZE= 2048

DCR_PATH= /dev_DSC_HDD

DCR_SEQNO= 0

AUTO_OVERWRITE= 2

PAGE_SIZE = 32

EXTENT_SIZE = 16

DATA_MIRROR = 2

LOG_MIRROR = 2

DATA_STRIPING = 32

LOG_STRIPING = 64

[DSC0]

CONFIG_PATH= /dm/dmdsc/DSC0

PORT_NUM = 5236

MAL_HOST= 11.11.11.127

MAL_PORT= 11246

LOG_PATH= +DMLOG/log/DSC0_log1.log

LOG_PATH= +DMLOG/log/DSC0_log2.log

[DSC1]

CONFIG_PATH= /dm/dmdsc/DSC1

PORT_NUM = 5236

MAL_HOST= 11.11.11.128

MAL_PORT= 11246

LOG_PATH= +DMLOG/log/DSC1_log1.log

LOG_PATH= +DMLOG/log/DSC1_log2.log

##传输dminit.ini文件到其他节点:

[dmdba@obs3 log]$ scp /dm/dmdsc/DSC0/dminit.ini ocp:/dm/dmdsc/DSC1/dminit.ini

##在obs3节点执行初始化 db 命令

[dmdba@obs3 ~]$ /dm/dm8/bin/dminit control=/dm/dmdsc/DSC0/dminit.ini

使用拷贝的方式配置另外一个节点的数据库环境。

将obs3上初始化库时产生的DSC1节点的配置文件(整个/dm/dmdsc/DSC1文件夹)复制到ocp机器的/dm/dmdsc/DSC1/目录下。

[dmdba@obs3 DSC1]$ scp -r /dm/dmdsc/DSC1/* ocp:/dm/dmdsc/DSC1

2.9 启动 DMSERVER 服务

分别两个节点启动数据库

##obs3

[dmdba@obs3 ~]$ nohup /dm/dm8/bin/dmserver dcr_ini=/dm/dmdsc/DSC0/dmdcr.ini /dm/dmdsc/DSC0/dm.ini &

##ocp

[dmdba@ocp ~]$ nohup /dm/dm8/bin/dmserver dcr_ini=/dm/dmdsc/DSC1/dmdcr.ini /dm/dmdsc/DSC1/dm.ini &

注意:

如果启动过程中,提示lsnrctl启动失败,如下:

请检查dmmal.ini文件,检查mal_port是否设置正确。

2.10 配置监视器

  • 创建 dmcssm.ini

## obs3 机器、ocp机器配置相同

[dmdba@obs3 ~]$vi /dm/dmdsc/dmcssm.ini

CSSM_OGUID = 210715

CSSM_CSS_IP = 11.11.11.127:7936

CSSM_CSS_IP = 11.11.11.128:7936

CSSM_LOG_PATH = /dm/dmdsc/cssm_log   ##监视器日志文件存放路径,没有的话需要创建

CSSM_LOG_FILE_SIZE = 32       ##每个日志文件最大 32M

CSSM_LOG_SPACE_LIMIT = 0      ##不限定日志文件总占用空间

  • 注册服务

[root@obs3 DSC0]## /dm/dm8/script/root/dm_service_installer.sh -t dmcssm -cssm_ini /dm/dmdsc/dmcssm.ini -p Monitor

[root@ocp DSC1]# /dm/dm8/script/root/dm_service_installer.sh -t dmcssm -cssm_ini /dm/dmdsc/dmcssm.ini -p Monitor

##备注:删除自启

[root@~]#/dm/dm8/script/root/dm_service_uninstaller.sh -n DmCSSMonitorServiceMonitor

  • 启动服务

##两节点操作

[root@obs3 ]# /dm/dm8/bin/DmCSSMonitorServiceMonitor start

[root@ocp ]# /dm/dm8/bin/DmCSSMonitorServiceMonitor start

通过以上命令前台启动,进入监视器执行 show 命令,可查看 DSC 集群运行状态,如下图所示:

[root@obs3 DSC0]# /dm/dm8/bin/dmcssm ini_path=/dm/dmdsc/dmcssm.ini

  • 监视器使用

命令

含义

show

查看所有组的信息

show config

查看 dmdcr_cfg.ini 的配置信息

show monitor

查看当前连接到主 CSS 的所有监视器信息

help

更多指令可通过 help 命令获取

2.11 校验是否搭建成功

DMDSC搭建完成后,可通过下面三种方式检验是否搭建成功。下面的示例基于DMASM镜像的DMDSC为例进行操作。

一、使用DMASMTOOLM登录到ASM文件系统,通过ls命令查看磁盘组信息是否正确。

[dmdba@obs3 ~]$ /dm/dm8/bin/dmasmtoolm  dcr_ini=/dm/dmdsc/DSC0/dmdcr.ini

  • 通过lsdsk命令查看磁盘详细信息是否正确
  • 通过DIsql工具登录服务器查看V$ASMDISK视图中的信息是否正确。

[dmdba@obs3 ~]$ /dm/dm8/bin/disql sysdba/SYSDBA@192.192.103.127:5236

2.12 登录集群数据库

#DSC0为控制节点,DSC1为normal节点,两个节点都可以正常提供数据读写服务。

2.13 服务名方式登录

##dm_svc.conf文件默认位置在/etc/目录下

[dmdba@obs3 ~]$ ls -l /etc/dm_svc.conf

-rw-rw-r-- 1 dmdba dmdba 88 Jul 25 17:15 /etc/dm_svc.conf

修改文件,添加如下内容(需要访问的client节点都要修改该文件,当前client即数据库节点本身)

[dmdba@obs3 ~]$ vi /etc/dm_svc.conf

TIME_ZONE=(480)

LANGUAGE=(EN)

dmtest_cls=(192.192.103.127:5236,192.192.103.128:5236)

[dmdba@ocp ~]$ vi /etc/dm_svc.conf

TIME_ZONE=(480)

LANGUAGE=(EN)

dmtest_cls=(192.192.103.127:5236,192.192.103.128:5236)

添加数据库两个节点的地址及端口,服务名自定义即可,通过服务名连接会自动使用负载均衡根据负载路由session请求连接到不同的节点。

##obs3节点通过服务名登录数据库

[dmdba@obs3 ~]$ disql sysdba/SYSDBA_PWD@dmtest_cls

Server[192.192.103.127:5236]:mode is normal, state is open

login used time : 5.526(ms)

disql V8

SQL>

## ocp节点通过服务名登录数据库

[dmdba@ocp ~]$ disql sysdba/SYSDBA_PWD@dmtest_cls

Server[192.192.103.128:5236]:mode is normal, state is open

login used time : 10.841(ms)

disql V8

SQL>

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

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

相关文章

黄景仁,笔墨间的一抹清寒

黄景仁,字汉镛,一字仲则,号鹿菲子,生于乾隆十四年(公元1749年),卒于乾隆四十八年(公元1783年),享年仅35岁。他是宋代大诗人黄庭坚的后裔,出生于常…

【C++】初识C++基础篇·一(命名空间,函数重载,缺省参数,引用);

文章目录 前言1.输入与输出输出输入cin和scanf的对比 2.命名空间2.1namespace存在的意义2.2namespace的使用3.缺省参数4.函数重载重载函数的调用规则 5.引用 前言 我们先通过一段简单的代码来拉开C的序幕&#xff1b; //text.cpp #include<iostream> #include<stdio…

链路聚合加单臂路由

一、实验目的及拓扑 实验目的&#xff1a;在路由器及交换机之间建立链接聚合&#xff0c;交换机接入两台主机并通过路由器子接口自动分配IP地址&#xff0c;通过单臂路由实现两台主机互联 二、基本配置 1、交换机配置 [S1]vlan batch 10 20 [S1-Eth-Trunk1]dis th # interf…

matlab simulink 混合式VTOL-UAV动力学模型

1、内容简介 略 可以交流、咨询、答疑 2、内容说明 略混合式VTOL UAV是简单的将四旋翼和固定翼无人机结合在一起,不仅具备四旋翼飞行器的垂直起降,可悬停的特点,还具备固定翼飞行器的航程远,平飞速度快等特点,具有很重要的应用价值,在该飞行器布局中,四旋翼负责提供升力,工作…

《昇思25天学习打卡营第6天|ResNet50图像分类》

写在前面 从本次开始&#xff0c;接触一些上层应用。 本次通过经典的模型&#xff0c;开始本次任务。这里开始学习resnet50网络模型&#xff0c;应该也会有resnet18&#xff0c;估计18的模型速度会更快一些。 resnet 通过对论文的结论进行展示&#xff0c;说明了模型的功能&…

Ubuntu 22.04如何设置中文输入法

前言 近期整理了一下之前在ubuntu 22.04 中如何设置中文输入法的过程&#xff0c;对于本人比较适应读中文写中文来说&#xff0c;这是我安装后的第一步。 一、流程 1.1 安装中文语言包&#xff08;如果还未安装&#xff09; 首先是安装中文语言包&#xff0c;直接在终端输入…

全能Ai助手:写作到设计,宝藏神器帮你事半功倍

今天&#xff0c;就让我们一起踏上这场寻找“隐藏”宝藏的旅程&#xff0c;探索这些AI工具如何改变我们的生活&#xff01; 一、高效生产力的提升之道 1. 文案创作助手 案例&#xff1a;某位自媒体博主使用了一款智能写作工具&#xff0c;不仅大大节省了写作时间&#xff0c;…

数据库(MySQL)-视图、存储过程、触发器

一、视图 视图的定义、作用 视图是从一个或者几个基本表&#xff08;或视图&#xff09;导出的表。它与基本表不同&#xff0c;是一个虚表。但是视图只能用来查看表&#xff0c;不能做增删改查。 视图的作用&#xff1a;①简化查询 ②重写格式化数据 ③频繁访问数据库 ④过…

【React学习打卡第四天】

ReactRouter 一、概念二、创建路由开发环境三、快速开始四、抽象路由模块实际开发中的router配置 五、路由导航1.声明式导航2.编程式导航 六、路由导航传参1.searchParams 传参2.params 传参 七、嵌套路由配置八、默认二级路由九、404路由配置十、俩种路由模式 一、概念 一个路…

使用Python爬虫采集亚马逊新品榜商品数据

一、引言 1.1 亚马逊新品榜的重要性 亚马逊是全球最大的电商平台之一&#xff0c;亚马逊新品榜展示了最新上架并受欢迎的产品。对于电商卖家和市场分析师来说&#xff0c;了解这些新品榜单可以帮助他们捕捉市场趋势&#xff0c;了解消费者喜好&#xff0c;从而优化产品策略和营…

视频怎么加密?常见的四种视频加密方法和软件

视频加密是一种重要的技术手段&#xff0c;用于保护视频内容不被未经授权的用户获取、复制、修改或传播。在加密过程中&#xff0c;安企神软件作为一种专业的加密工具&#xff0c;可以发挥重要作用。 以下将详细介绍如何使用安企神软件对视频进行加密&#xff0c;并探讨视频加密…

block_size设置过大错误分析(查看CUDA设备线程块大小)

block_size设置过大错误分析&#xff08;查看CUDA设备线程块大小&#xff09; 1 问题描述2 问题分析3 解决方法4 调试和验证5 查看设备线程块大小 1 问题描述 本人作为CUDA编程初学者&#xff0c;在学习编写使用CUDA计算矩阵相乘代码时发现&#xff0c;如果我的 block_size &g…

可能是最好的工具网站

前些苏音在刷视频&#xff0c;发现了一堆好用的宝藏网站&#xff0c;这就赶快分享给大家。 工具网站 这个网站类似于网址导航&#xff0c;集合了包括工具类、资源类、软件类、AI类的合集 并且站长表示励志做体验感最好的工具网&#xff0c;聚焦最快解决用户的需求 首先就是办…

数据库安全综合治理方案(可编辑54页PPT)

引言&#xff1a;数据库安全综合治理方案是一个系统性的工作&#xff0c;需要从多个方面入手&#xff0c;综合运用各种技术和管理手段&#xff0c;确保数据库系统的安全稳定运行。 方案介绍&#xff1a; 数据库安全综合治理方案是一个综合性的策略&#xff0c;旨在确保数据库系…

【8月EI会议推荐】第四届区块链技术与信息安全国际会议

一、会议信息 大会官网&#xff1a;http://www.bctis.nhttp://www.icbdsme.org/ 官方邮箱&#xff1a;icbctis126.com 组委会联系人&#xff1a;杨老师 19911536763 支持单位&#xff1a;中原工学院、西安工程大学、齐鲁工业大学&#xff08;山东省科学院&#xff09;、澳门…

一天搞定React(3)——Hoots组件【已完结】

Hello&#xff01;大家好&#xff0c;今天带来的是React前端JS库的学习&#xff0c;课程来自黑马的往期课程&#xff0c;具体连接地址我也没有找到&#xff0c;大家可以广搜巡查一下&#xff0c;但是总体来说&#xff0c;这套课程教学质量非常高&#xff0c;每个知识点都有一个…

数据结构经典测试题4

1. #include <stdio.h> int main() { char *str[3] {"stra", "strb", "strc"}; char *p str[0]; int i 0; while(i < 3) { printf("%s ",p); i; } return 0; }上述代码运行结果是什么&#xff1f; A: stra strb strc B: s…

Rocky/Centos Linux安装Code-server,并注册成服务自启动

文章目录 Rocky/Centos Linux安装Code-server&#xff0c;并注册成服务自启动介绍安装1. 下载压缩包2. 解压缩3. 执行启动命令4. 浏览器访问5. 开机自启动 Rocky/Centos Linux安装Code-server&#xff0c;并注册成服务自启动 介绍 VS Code Server是微软推出的VSCode风格的Web…

谷歌AI拿下IMO奥数银牌!6道题轻松解出4道~

本周四&#xff0c;谷歌DeepMind团队宣布了一项令人瞩目的成就&#xff1a;&#xff1a;用 AI 做出了今年国际数学奥林匹克竞赛 IMO 的真题&#xff0c;并且距拿金牌仅一步之遥。这一成绩不仅标志着人工智能在数学推理领域的重大突破&#xff0c;也引发了全球范围内的广泛关注和…