本章主要介绍在生产环境中(Centos7)规范化部署共享存储集群。

  1. 服务器硬件需求

按实际业务需求,选择合适的服务器,准备 2 台服务器,安装centos7.9_x86_64 ,最小化安装,最小化安装完毕后添加必要软件包。

服务器参数建议如下:

硬件

要求

物理内存

>=16 GB

交换区

Swap 空间>=物理内存

/tmp大小

>1000 MB

网络

物理机器需要 4 个网卡,2 个 public 网卡做 band,2 个 private 网卡做 band

磁盘

根据实际应用系统需要挂载合适大小磁盘

共享存储

根据实际应用系统需要挂载合适大小共享存储

时间服务器

按机房要求配置连接时间服务器

  1. 操作系统要求

    1. 必做项

      1. 操作系统版本安装

DM 数据库安装在 Linux 操作系统所需条件:glibc 2.3 以上,内核 2.6,预先安装 UnixODBC,系统性能监控等组件。

  1. 目录与存储规划

本地目录规划:

用途

目录路径

备注

数据库软件安装目录

/home/dmdba/dmdbms

可用空间>50 GB

本地归档日志存放目录

/dmarch

单独挂载磁盘

远程归档日志存放目录

/remote_arch

单独挂载磁盘

备份文件存放目录

/dmback

单独挂载磁盘

共享存储规划:

用途

磁盘/分区

备注

存放 dcr 信息

/dev/mapper/dcr01

1 GB 左右

存放 vote 信息

/dev/mapper/vote01

1 GB 左右

存放 redo 日志

/dev/mapper/redo01

50GB 左右

存放数据文件

/dev/mapper/data01

根据实际数据大小分配

  1. 用户与组

DM 数据库不应该使用 root 用户安装和维护。需要在安装之前为 DM 数据库创建一个专用的系统用户 (dmdba) 和用户组 (dinstall)。

执行以下命令,新建用户组 dinstall:

groupadd -g 2001 dinstall

执行以下命令,新建用户 dmdba:

useradd  -g dinstall -m -d /home/dmdba -s /bin/bash -u 1001  dmdba

执行以下命令,修改 dmdba 用户密码:

echo qwer1234 | passwd --stdin dmdba

  1. 用户资源限制

执行以下命令,修改 dmdba 用户资源限制:

cat >> /etc/security/limits.conf  << eof

dmdba soft core unlimited

dmdba hard core unlimited

dmdba soft nofile 65536

dmdba hard nofile 65536

dmdba soft nproc  65536

dmdba hard nproc  65536

dmdba soft stack  65536

dmdba hard stack  65536

EOF

检查配置效果

cat  /etc/security/limits.conf

如果操作系统是centos6,还需要修改

cat >>  /etc/security/limits.d/90-nproc.conf  << EOF

* - nproc 16384

EOF

查看最终配置:

cat /etc/security/limits.d/90-nproc.conf

如果操作系统是centos7,还需要修改

cat >> /etc/security/limits.d/20-nproc.conf <<EOF

* - nproc 65536

EOF

查看最终配置:

cat  /etc/security/limits.d/20-nproc.conf

  1. 用户环境变量

执行以下命令,修改 dmdba 用户环境变量:

vi /home/dmdba/.bash_profile

文件末尾添加如下内容:

export DM_HOME=/home/dmdba/dmdbms

export PATH=$PATH:$DM_HOME/bin

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin

保存并退出后,执行以下命令立即生效,使用dmdba用户执行

source ~/.bash_profile

  1. 防火墙设置

    1. 端口规划

搭建 2 节点共享存储集群,端口规划如下:(实际中可以按需要修改端口号)

主机名

public ip

private ip

实例名

端口

用途

dmdsc1

192.168.56.11

10.0.0.11

dsc1

5234

数据库实例 dmrw1 监听端口

dmdsc1

192.168.56.11

10.0.0.11

dsc1

9741

节点 1 DCR 检查数据库实例监听端口

dmdsc1

192.168.56.11

10.0.0.11

dsc1

9341

节点 1 CSS 进程 TCP 连接端口

dmdsc1

192.168.56.11

10.0.0.11

dsc1

9351

节点 1 ASM 进程 TCP 连接的端口

dmdsc1

192.168.56.11

10.0.0.11

dsc1

7236

节点 1 ASM 的 MAL 系统 TCP 连接的端口

dmdsc1

192.168.56.11

10.0.0.11

dsc1

9236

节点 1 数据库实例的 MAL 系统 TCP 连接的端口

dmdsc2

192.168.56.12

10.0.0.12

dsc2

5234

数据库实例 dmrw2 监听端口

dmdsc2

192.168.56.12

10.0.0.12

dsc2

9741

节点 2 DCR 检查数据库实例监听端口

dmdsc2

192.168.56.12

10.0.0.12

dsc2

9341

节点 2 CSS 进程 TCP 连接端口

dmdsc2

192.168.56.12

10.0.0.12

dsc2

9351

节点 2 ASM 进程 TCP 连接的端口

dmdsc2

192.168.56.12

10.0.0.12

dsc2

7236

节点 2 ASM 的 MAL 系统 TCP 连接的端口

dmdsc2

192.168.56.12

10.0.0.12

dsc2

9236

节点 2 数据库实例的 MAL 系统 TCP 连接的端口

防火墙集群之间需开放以上所有端口,集群对客户端只需要开通数据库实例监听端口。

  1. 为共享磁盘分配权限

本文档共享存储采用iscsi方式进行提供。所以需要在服务器端安装iscsi工具,方法查看2.2.1章节。

因为采用了多路径方式进行部署,多路径软件采用centos7自带的multipath软件。multipath软件配置方法查看2.2.2章节。

重启多路径服务器,验证权限

systemctl restart multipathd.service

ls -lsa  /dev/dm-*/

  1. 时钟同步

系统内所有服务器,应该保持时间一致。以 192.168.56.11为 ntp 服务器为例,(如果没有,则不设置,正式环境建议一点要配置)设置定时任务:

时间服务器和客户端均做以下配置。

systemctl start ntpd.service

systemctl enable ntpd.service

timedatectl set-timezone Asia/Shanghai

cat  >> /etc/sysconfig/ntpd << EOF

> set SYNC_HWCLOCK=yes

> EOF

时钟服务器做以下配置

cat >> /etc/ntp.conf << EOF

restrict 192.168.56.11 nomodify notrap nopeer noquery

restrict 172.25.10.0 mask 255.255.255.0 nomodify notrap

server 127.127.1.0

fudge 127.127.1.0 stratum 10

EOF

重启服务,ntpd服务使用udp协议,123端口

ntpd服务使用udp协议,123端口

systemctl restart ntpd

firewall-cmd --permanent --zone=public --add-port=123/udp

firewall-cmd --reload

systemctl enable ntpd

客户端:

cat >> /etc/ntp.conf << EOF

server 192.168.56.11 iburst

EOF

systemctl enable ntpd

systemctl restart ntpd

  1. 安装必备软件包

yum  install -y unixODBC*

  1. 可选项

    1. 配置YUM光盘源

在配置本地YUM源前,请将centos7的安装光盘挂载到光驱。

mount /dev/sr0 /media

挂载成功后,按照以下步骤进行配置

cd /etc/yum.repos.d/

mkdir -p bk

mv *.repo bk/

cat  >>  /etc/yum.repos.d/CentOS-Base.repo << EOF

[base]

name=CentOS-$releasever - Base

baseurl=file:///media

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

EOF

  1. 安装iscsi客户端

本次搭建环境因为没有FC SAN存储,故采用ISCSI模拟,要使用iscsi存储,必须在服务器端安装iscsi客户端。

yum -y install iscsi-initiator-utils

systemctl start iscsi

systemctl start iscsid

systemctl enable iscsi

systemctl enable iscsid

iscsiadm -m discovery -t sendtargets -p 10.0.0.100:3260

此时发现了4条存储链路

之后可以执行以下命令一次扫描所有具备权限的链路。

iscsiadm -m node –-loginall=all

查看所有iscsi会话信息

iscsiadm -m session

将链路信息存储在配置文件中,避免重新开启后需要重新发现

查看原有配置文件的信息

cat /etc/iscsi/initiatorname.iscsi

替换

for i in $(iscsiadm -m session | awk '{print $4}' | sort -u)

do echo InitiatorName=$i > /etc/iscsi/initiatorname.iscsi

done

iscsiadm -m session | awk '{print $4}' | sort -u

再次验证

cat /etc/iscsi/initiatorname.iscsi

如果有新增存储磁盘映射到主机,可以执行以下命令

iscsiadm -m session -R

然后查看通道是否增加

cat /proc/scsi/scsi

如果要注销之前的链路

iscsiadm -m node -T `iscsiadm -m session | awk '{print $4}' | sort -u` -p 10.0.0.100:3260 -u

iscsiadm -m node -T `iscsiadm -m session | awk '{print $4}' | sort -u` -p 10.0.0.101:3260 -u

iscsiadm -m node -T `iscsiadm -m session | awk '{print $4}' | sort -u` -p 10.0.0.102:3260 -u

iscsiadm -m node -T `iscsiadm -m session | awk '{print $4}' | sort -u` -p 10.0.0.103:3260 -u

或者

iscsiadm -m node --logoutall=all

登录每条链路

iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.96dfe8fe9bda -p 10.0.0.100:3260 -l

iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.96dfe8fe9bda -p 10.0.0.101:3260 -l

iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.96dfe8fe9bda -p 10.0.0.102:3260 -l

iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.96dfe8fe9bda -p 10.0.0.13:3260 -l

  1. 安装配置多路径

此处选用Centos Linux操作系统自带多路径软件multipath进行说明。

  1. 安装所需软件包

rpm -ivh device-mapper-1.02.170-6.el7.x86_64.rpm

rpm -ivh device-mapper-multipath-libs-0.4.9-133.el7.x86_64.rpm

rpm -ivh  device-mapper-multipath-0.4.9-133.el7.x86_64.rpm

  1. 需要创建一个多路径配置文件

cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/multipath.conf

  1. 启动服务

systemctl list-unit-files | grep multipathd.service

systemctl enable multipathd.service

systemctl status multipathd.service

  1. 将多路径加载到内核

modprobe dm-multipath

modprobe dm-round-robin

systemctl start multipathd.service

  1. 查看多路径磁盘

multipath -ll

  1. 查看磁盘uuid的三种方式

方法1

ls -l /dev/disk/by-id

方法2

multipath -v3 | grep 14f50

方法3

cat /etc/multipath/wwids

方法4

/lib/udev/scsi_id --whitelisted --device=/dev/sd*

  1. 此时仅仅查看一条路径的磁盘大小,按照磁盘大小来规划的磁盘用途,并以此为准则,命名磁盘。
  1. 停止多路径,重新读取配置文件

multipath stop

multipath start

multipatch -F

multipath -v2

  1. 如果报错提示服务没有启动,则启动服务,然后查看多路径

systemctl start multipathd.service

multipath -ll

ls -lsa /dev/mapper/

  1. 分区信息没有同步

ls -las /dev/mapper/

  1. 再次验证

ls -lsa /dev/mapper

  1. 优化网卡过载

当操作系统网卡流量大时,网卡请求超时,centos7或者redhat7作为生产时,需要将以下服务关闭。

systemctl stop avahi-daemon.socket avahi-daemon.service

systemctl disable avahi-daemon.socket avahi-daemon.service

  1.  关闭防火墙和SElinux

永久关闭,设置后重启操作系统生效。

sed  -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config

临时关闭,不用重启操作系统。

setenforce 0

查看

getenforce

显示为permission则为临时关闭

systemctl stop firewalld.service

systemctl disable firewalld.service

  1. 安装其他系统工具

yum group install  -y "Server with GUI" "GNOME Desktop" "Compatibility Libraries" "Development Tools" "Graphical Administration Tools" "Legacy UNIX Compatibility" "System Administration Tools" "System Management"

如下软件包未安装,不一定影响数据库的运行使用,但是为了便于监控和排查,建议全部安装:

远控类:

yum install vnc  -y

yum install xterm -y

yum install ksh -y

yum install pdksh -y

分析类:

yum install perf -y

yum install kernel-devel -y

yum install kernel -y

yum install kernel-headers -y

yum install gdbm -y

yum install gdb -y

yum install cmake -y

yum install gdbm-devel -y

yum install binutils -y

yum install compat-libstdc++-33 -y

yum install elfutils-libelf -y

yum install elfutils-libelf-devel -y

yum install gcc -y

yum install gcc-c++ -y

  1. 关闭透明页

cat /sys/kernel/mm/transparent_hugepage/defrag

[always] madvise never

cat /sys/kernel/mm/transparent_hugepage/enabled

[always] madvise never

cat >> /etc/rc.d/rc.local << eof

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then

echo never > /sys/kernel/mm/transparent_hugepage/enabled

fi

if test -f /sys/kernel/mm/transparent_hugepage/defrag; then

echo never > /sys/kernel/mm/transparent_hugepage/defrag

fi

eof

chmod +x /etc/rc.d/rc.local

重启操作系统后,确保透明页不是always,如下图所示,表示成功关闭透明页。

[root@db ~]# cat /sys/kernel/mm/transparent_hugepage/defrag

always madvise [never]

[root@db ~]# cat /sys/kernel/mm/transparent_hugepage/enabled

always madvise [never]

  1. 安装数据库

软件安装目录为 /home/dmdba/dmdbms。将DM8软件包上传到服务器,解压并挂载。

  1. 配置共享存储

udev 方式绑定裸设备。

注意

共享存储需要在 2 个节点上都操作。

执行以下命令,查看磁盘。

lsblk

此处配置的共享存储是经过multipath聚合后的共享磁盘。

执行以下命令,新建 udev 规则文件:

vi /etc/udev/rules.d/90-raw.rules

添加以下内容:

for i in $(multipath -ll | grep OPNFILER | cut -d' ' -f1)

do str1="$i:`udevadm info --query=all --name=/dev/mapper/$i | grep DM_UUID`"; str2=${str1#*=}

echo "KERNEL==\"dm-*\",ENV{DM_UUID}==\"${str2}\",SYMLINK+=\"asmdisk/asm-${i}\",OWNER=\"dmdba\",GROUP=\"dinstall\",MODE=\"0660\"" >> /etc/udev/rules.d/90-dm.rules

done

执行以下命令,使 udev 生效:

udevadm control --reload-rules

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

执行以下命令,检查是否配置成功:

ls -l /dev/asmdisk/*

ls -l /dev/dm*

注意

如果查看不到配置的裸设备,请重启服务器再验证。

  1. 配置 DCR 初始化配置文件

创建配置文件存放目录,2 个节点都要执行,使用 dmdba 用户,执行以下命令:

mkdir -p /home/dmdba/config

新建 dmdcr_cfg.ini 文件,节点 1 使用 dmdba 用户,执行以下命令:

vim /home/dmdba/config/dmdcr_cfg.ini

或者直接执行

cat >>  /home/dmdba/config/dmdcr_cfg.ini << EOF

DCR_N_GRP             = 3

DCR_VTD_PATH          = /dev/asmdisk/asm-vote01

DCR_OGUID         = 63635

[GRP]

DCR_GRP_TYPE         = CSS

DCR_GRP_NAME         = CSS

DCR_GRP_N_EP         = 2

DCR_GRP_DSKCHK_CNT   = 60                                               #磁盘心跳机制,容错时间,单位秒,缺省 60S,取值范围 5~600

[CSS]

DCR_EP_NAME          = CSS1

DCR_EP_HOST          = 10.0.0.10

DCR_EP_PORT          = 9341

[CSS]

DCR_EP_NAME          = CSS2

DCR_EP_HOST          = 10.0.0.11

DCR_EP_PORT          = 9341

[GRP]

DCR_GRP_TYPE         = ASM

DCR_GRP_NAME         = ASM

DCR_GRP_N_EP         = 2

DCR_GRP_DSKCHK_CNT   = 60

[ASM]

DCR_EP_NAME          = ASM1

DCR_EP_SHM_KEY       = 93360

DCR_EP_SHM_SIZE      = 10

DCR_EP_HOST          = 10.0.0.10

DCR_EP_PORT          = 9351

DCR_EP_ASM_LOAD_PATH  = /dev/asmdisk

[ASM]

DCR_EP_NAME          = ASM2

DCR_EP_SHM_KEY       = 93361

DCR_EP_SHM_SIZE      = 10

DCR_EP_HOST          = 10.0.0.11

DCR_EP_PORT          = 9351

DCR_EP_ASM_LOAD_PATH  = /dev/asmdisk

[GRP]

DCR_GRP_TYPE         = DB

DCR_GRP_NAME         = DSC

DCR_GRP_N_EP         = 2

DCR_GRP_DSKCHK_CNT   = 60

[DSC]

DCR_EP_NAME         = DSC1

DCR_EP_SEQNO                 = 0

DCR_EP_PORT         = 5234

DCR_CHECK_PORT            = 9741

[DSC]

DCR_EP_NAME         = DSC2

DCR_EP_SEQNO                 = 1

DCR_EP_PORT         = 5234

DCR_CHECK_PORT            = 9741

EOF

使用说明:

  1. 在用 dmasmcmd 工具执行 init votedisk disk_path from dcr_cfg_path时,指定的 disk_path 必须和 dcr_cfg_path 里面配置的 DCR_VTD_PATH 相同。
  2. 如果配置 dmcssm,dmcssm 的 OGUID 必须和 DCR_OGUID 保持一致。
  3. DCR_N_GRP 必须和实际配置的组数目保持一致。
  4. CSS 和 ASM 组的 DCR_GRP_N_EP 要相等,DB 的 DCR_GRP_N_EP 要小于等于CSS/ASM 的 DCR_GRP_N_EP。
  5. ASM 节点的 DCR_EP_NAME 必须和 DMASM 系统使用的 dmasvrmal.ini 配置文件里的 MAL_INST_NAME 保持一致。
  6. DB 节点的 DCR_EP_NAME 必须和数据库实例使用 dmmal.ini 配置文件里的

MAL_INST_NAME、以及 dm.ini 配置文件里的 INSTANCE_NAME 保持一致。

  1. 所有 DB 节点的 DCR_EP_NAME 都不能重复,DB 组内的 DCR_EP_SEQNO 不能重复。
  2. dmdcr_cfg.ini 配置文件中的所有路径均不支持中文路径。
    1. 创建 ASM 磁盘

使用 dmdba 用户,到 DM 数据库软件安装目录的 bin 目录执行以下命令(只需在一个节点执行)。

./dmasmcmd

进入 ASM 提示符后执行以下命令:

create dcrdisk '/dev/asmdisk/asm-dcr01' 'dcr'

create votedisk '/dev/asmdisk/asm-vote01' 'vote'

create asmdisk '/dev/asmdisk/asm-redo01' 'LOG0'

create asmdisk '/dev/asmdisk/asm-data01' 'DATA0'

使用编辑好的 dmdcr_cfg.ini 配置文件初始化 dcrdisk 和 votedisk,并在 ASM 提示符执行以下命令:

init dcrdisk '/dev/asmdisk/asm-dcr01' from '/home/dmdba/config/dmdcr_cfg.ini' identified by '123456'

init votedisk '/dev/asmdisk/asm-vote01' from '/home/dmdba/config/dmdcr_cfg.ini'

注意

DMASMCMD工具中执行命令结尾不要加分号。

  1. 配置ASM的MAL系统配置文件

2 个节点都需要配置,且文件内容相同,执行以下命令:

vi /home/dmdba/config/dmasvrmal.ini

或者直接用以下代码添加以下内容:

cat >>  /home/dmdba/config/dmasvrmal.ini << EOF

[MAL_INST1]

MAL_INST_NAME              = ASM1

MAL_HOST                    = 10.0.0.10

MAL_PORT                    = 7236

[MAL_INST2]

MAL_INST_NAME              = ASM2

MAL_HOST                    = 10.0.0.11

MAL_PORT                    = 7236

EOF

  1. 配置 DCR 启动配置文件

vi /home/dmdba/config/dmdcr.ini

或者直接用以下代码,在节点 1 添加以下内容:

cat >> /home/dmdba/config/dmdcr.ini << EOF

DMDCR_PATH     = /dev/asmdisk/asm-dcr01

DMDCR_MAL_PATH =/home/dmdba/config/dmasvrmal.ini  #dmasmsvr 使用的 MAL 配置文件路径

DMDCR_SEQNO   = 0

#ASM 重启参数,命令行方式启动

DMDCR_ASM_RESTART_INTERVAL =0

DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr  dcr_ini=/home/dmdba/config/dmdcr.ini

#DB 重启参数,命令行方式启动

DMDCR_DB_RESTART_INTERVAL = 0

DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver  path=/home/dmdba/config/dsc1/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini

EOF

节点 2 添加以下内容:

cat >> /home/dmdba/config/dmdcr.ini << EOF

DMDCR_PATH     = /dev/asmdisk/asm-dcr01

DMDCR_MAL_PATH =/home/dmdba/config/dmasvrmal.ini  #dmasmsvr 使用的 MAL 配置文件路径

DMDCR_SEQNO   = 1

#ASM 重启参数,命令行方式启动

DMDCR_ASM_RESTART_INTERVAL =0

DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr  dcr_ini=/home/dmdba/config/dmdcr.ini

#DB 重启参数,命令行方式启动

DMDCR_DB_RESTART_INTERVAL = 0

DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver  path=/home/dmdba/config/dsc2/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini

EOF

警告

两个节点的 DMDCR_SEQNO 参数不能相同要唯一,DMDCR_DB_STARTUP_CMD 中启动脚本路径和配置文件路径要配置准确。如果不配置 css 自动启动 asm 和 db 则需要配置 DMDCR_ASM_RESTART_INTERVAL 和DMDCR_DB_RESTART_INTERVAL 为 0

  1. 启动集群
  2. 启动 DMCSS 服务

2 个节点启动 dmcss,dmdba 用户到数据库安装目录 bin 下执行以下命令:

./dmcss dcr_ini=/home/dmdba/config/dmdcr.ini

提示

手动拉起时,没步骤安装以下步骤启动,分别前台启动ABC机器的CSS、ASM服务

[root@dsc01 ~] ./dmcss dcr_ini=/home/dmdba/config/dmdcr.ini

[root@dsc02 ~] ./dmcss dcr_ini=/home/dmdba/config/dmdcr.ini

[root@dsc01 ~] ./dmasmsvr dcr_ini=/home/dmdba/config/dmdcr.ini

[root@dsc02 ~] ./dmasmsvr dcr_ini=/home/dmdba/config/dmdcr.ini

先启动的节点是控制节点,本次实验配置了 css 自动启动 asm 和 db,等待 css 启动 asm 和 db 即可。

css 启动 asm 成功,(出现 asm is ready 即表明启动成功)。

  1. 创建 ASM 磁盘组

asm 启动成功后,节点 1 使用 dmdba 用户启动 dmasmtool 工具。

[root@dsc01 ~] ./dmasmtool dcr_ini=/home/dmdba/config/dmdcr.ini

在 ASM 提示符下创建 asm 磁盘组,创建 REDO 日志磁盘组,执行以下命令:

create diskgroup 'DMLOG' asmdisk '/dev/asmdisk/asm-redo01'

创建数据文件磁盘组,执行以下命令:

create diskgroup 'DMDATA' asmdisk '/dev/asmdisk/asm-data01'

asm 磁盘组创建成功,执行以下命令:

  1. 初始化共享存储集群数据库实例

配置 dminit 控制文件,节点 1 使用 dmdba 用户执行以下命令:

vi /home/dmdba/config/dminit.ini

或者直接用以下代码添加以下内容:

[root@dsc01 ~] cat >> /home/dmdba/config/dminit.ini << EOF

db_name        = DSC

system_path       = +DMDATA/data

system        = +DMDATA/data/dsc/system.dbf

system_size       = 128

roll     = +DMDATA/data/dsc/roll.dbf

roll_size     = 128

main     = +DMDATA/data/dsc/main.dbf

main_size     = 128

ctl_path     = +DMDATA/data/dsc/dm.ctl

ctl_size     = 8

log_size     = 1024

dcr_path     = /dev/asmdisk/asm-dcr01   #dcr 磁盘路径,目前不支持 asm,只能是裸设备

dcr_seqno     = 0

auto_overwrite   = 1

[DSC1] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应

config_path    = /home/dmdba/config/dsc1

port_num     = 5234

mal_host     = 10.0.0.10

mal_port     = 9236

log_path     = +DMLOG/log/DSC1_log01.log

log_path     = +DMLOG/log/DSC1_log02.log

[DSC2] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应

config_path    = /home/dmdba/config/dsc2

port_num     = 5234

mal_host     = 10.0.0.11

mal_port     = 9236

log_path     = +DMLOG/log/DSC2_log01.log

log_path     = +DMLOG/log/DSC2_log02.log

EOF

初始化实例,节点 1 使用 dmdba 用户执行以下命令:

[root@dsc01 ~] ./dminit control=/home/dmdba/config/dminit.ini

初始化完成后会在 init 控制文件配置的目录下生成 2 个实例的配置文件:

将 dsc2 目录复制到节点 2 上对应的目录下。

[root@dsc01 ~]  scp -r /home/dmdba/config/dsc2 192.168.101.11:/home/dmdba/config/

启动DB

[root@dsc01 ~] ./dmserver /home/dmdba/config/dsc1/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini

[root@dsc02 ~]./dmserver /home/dmdba/config/dsc2/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini

观察 窗口日志出现 system is ready ep real open,说明数据库实例启动成功。

观察 css 窗口日志,db 会被自动启动。出现 system is ready ep real open,说明数据库实例启动成功。

  1. 注册服务

在注册成系统服务前,开启集群自动拉起功能。在DB日志前台窗口中输入exit,退出前台启动,然后依次在ASM,CSS前台日志中输入exit,仅需在一个节点操作即可。

退出后修改两个节点的dmdcr.ini中的ASM和DB启动选项。

自动启动 asm 和 db 则需要配置 DMDCR_ASM_RESTART_INTERVAL 和DMDCR_DB_RESTART_INTERVAL 的值为 非0。

以上启动方式为前台启动,仅用于验证集群配置过程。配置成功后需要注册为系统服务,方便启动和关闭集群,以及实现开机自动启动。

2 个节点都需要注册,使用 root 用户执行,到数据库安装目录的 script/root 目录。

节点 1 执行以下命令:

cd /home/dmdba/dmdbms/script/root

./dm_service_installer.sh -t dmcss -p css1 -dcr_ini /home/dmdba/config/dmdcr.ini

节点 2 执行以下命令:

cd /home/dmdba/dmdbms/script/root

./dm_service_installer.sh -t dmcss -p css2 -dcr_ini /home/dmdba/config/dmdcr.ini

关闭前台启动的 css,以服务方式启动 css。

节点 1 执行以下命令:

systemctl start DmCSSServicecss1

节点 2 执行以下命令:

systemctl start DmCSSServicecss2

  1. 验证集群状态

    1. 配置监视器查看

任意节点新建监视器配置文件,执行以下命令:

vi /home/dmdba/config/dmcssm.ini

添加以下内容:

cat >> /home/dmdba/config/dmcssm.ini << EOF

#和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致

CSSM_OGUID = 63635

#配置所有 CSS 的连接信息,

#和 dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致

CSSM_CSS_IP = 10.0.0.11:9341

CSSM_CSS_IP = 10.0.0.12:9341

CSSM_LOG_PATH =/home/dmdba/dmdbms/log #监视器日志文件存放路径

CSSM_LOG_FILE_SIZE = 1024 #每个日志文件最大 1024 MB

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

EOF

启动监视器,dmdba 用户执行,到数据库软件安装目录 bin 下执行以下命令:

./dmcssm ini_path=/home/dmdba/config/dmcssm.ini

输入 show 命令,查看 css、asm 和 db 的状态。

以 db 为例,inst_status 字段为 OPEN,vtd_status 字段为 WORKING,active 字段为 TRUE 说明 db 服务正常。

  1. 客户端验证

任意节点配置 dm_svc.conf 文件,执行以下命令:

Copy

vi /etc/dm_svc.conf

添加以下内容:

cat >> /etc/dm_svc.conf << EOF

dmdsc=(192.168.56.11:5234,192.168.56.12:5234)

EOF

使用 disql 工具登录集群(数据库安装目录的 bin 下):

./disql SYSDBA/SYSDBA@dmdsc

查询视图 v$dsc_ep_info,查看集群状态,执行以下命令:

select * from v$dsc_ep_info;

  1. 验证故障自动重连

以上 disql 连接不断开的情况下(连接的是节点 1 实例),关闭节点 1 服务器,再次查询。

  1. 故障节点重新加入

启动节点 1 服务器后,再次查询。

  1. 参数优化
    1. 重启集群
  1. 关闭数据库:监视器中执行 ep stop dsc
  2. 关闭 asm:监视器中执行 ep stop asm
  3. 关闭 css:各节点关闭各自的 css 服务 systemctl stop DmCSSServicecss1/DmCSSServicecss2
  4. 启动 css: 各节点启动各自的 css 服务 systemctl start DmCSSServicecss1/DmCSSServicecss2
  5. 启动 asm:配置了自动拉起,等待 asm 自动启动
  6. 启动数据库:配置了自动拉起,等待数据库自动启动
    1. 归档配置

生产环境必须开启归档日志,且必须限制归档日志保留量,限制方法:

  1. 设置归档空间大小限制即指定 SPACE_LIMIT 参数(单位是 MB)。
  2. 定期删除归档日志(设置定时作业)。

共享存储集群归档需要配置本地归档和远程归档(保证每个节点都有所有归档日志)。

实例 dsc1 上配置,执行以下命令:

Copy

alter database mount;

alter database archivelog;

alter database add archivelog 'DEST=/dmarch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=102400';

alter database add archivelog 'DEST=dsc2, TYPE=REMOTE, FILE_SIZE=1024, SPACE_LIMIT=102400, INCOMING_PATH=/remote_arch';

alter database open;

实例 dsc2 上配置,执行以下命令:

Copy

alter database mount;

alter database archivelog;

alter database add archivelog 'DEST=/dmarch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=102400';

alter database add archivelog 'DEST=dsc1, TYPE=REMOTE, FILE_SIZE=1024, SPACE_LIMIT=102400, INCOMING_PATH=/remote_arch';

alter database open;

  1. 定制备份策略

备份与单机部署相同,详见定制备份策略部分。

  1. 客户端连接集群

客户端主机上需要配置 dm_svc.conf 文件(未安装 DM 数据库的机器新建即可),文件路径:

  1. 32 位的 DM 安装在 Win32 操作平台下,此文件位于 %SystemRoot%\system32 目录;
  2. 64 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\system32 目录;
  3. 32 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\SysWOW64 目录;
  4. 在 Linux 平台下,此文件位于/etc 目录。

文件内容:

Copy

以#开头的行表示是注释

# 全局配置区 DMDSC=(192.168.10.100:5234,192.168.10.101:5234)

TIME_ZONE=(+480) #表示+8:00 时区

LOGIN_ENCRYPT=(0)

DIRECT=(Y)

# 服务配置区

[DMDSC]

CLUSTER=(DSC) #表示集群为 DSC 集群

EP_SELECTOR=(1) #表示第一节点正常时只连第一个节点

AUTO_RECONNECT=(2)#第一个节点故障恢复后自动重连第一个节点

SWITCH_TIME=(3) #在服务器之间切换的次数

SWITCH_INTERVAL=(10) #在服务器之间切换的时间间隔,单位为毫秒

客户端程序连接数据库时,需要指定 IP 端口处替换为服务名即可,例如:

disql SYSDBA/SYSDBA@DMDSC

注意

当修改了 dm_svc.conf 内容后,需要重启客户端程序,修改的配置才能生效。

达梦数据库 - 新一代大型通用关系型数据库 | 达梦云适配中心 (dameng.com)

DM8 DSC 结合multipath共享集群搭建相关推荐

  1. 虚拟机搭建达梦dsc共享集群

    1.使用VMware Workstation 虚拟机,两台安装linux7 ,并且配置共享磁盘. 这几块磁盘设置独立 永久的.在另外一个节点也加上这些盘. 2.虚拟机的配置文件xxxx.vmx 加上 ...

  2. 达梦数据库DSC集群搭建

    目录 1 DMDSC集群介绍 1.1 概述 1.2 系统特性 2 环境准备 2.1 创建共享磁盘 2.2 使用裸设备搭建 2 节点 DMDSC 3 安装达梦数据库 4 配置文件 4.1 dmdcr_c ...

  3. DM共享存储集群搭建

    文章目录 一.相关概念 1.CSS服务 2.ASM服务 二.配置共享磁盘 二.搭建集群 1.安装前准备 2.存储准备 3.搭建DSC 4.配置监视器 5.启停服务 总结 一.相关概念 1.CSS服务 ...

  4. DM8数据守护集群搭建

    DM8数据守护集群搭建 1.安装规划 1.1 环境说明 1.2 端口配置 2.准备主库 2.1. 修改dm.ini参数 2.2. 配置dmmal.ini 2.3 配置dmwatcher.ini 3.备 ...

  5. 第二章 DMDSC集群搭建

    第二章 DMDSC集群搭建 第一章 DMDSC集群介绍 文章目录 第二章 DMDSC集群搭建 五.DMDSC部署 5.1集群规划 5.2.存储规划 5.2.1划分存储(虚拟机一共分配了60G) 5.2 ...

  6. DM数据库数据守护集群搭建

    目录 1.环境说明 2.数据准备 (1)正常关闭数据库:前台+后台 (2)进行脱机备份 (3)拷贝备份文件到备机 (4)备机进行脱机数据库还原与恢复 3.配置主库DMDB1 3.1 配置dm.ini ...

  7. 疯狂Spring Cloud连载(5)Eureka集群搭建

    2019独角兽企业重金招聘Python工程师标准>>> 本文节选自<疯狂Spring Cloud微服务架构实战> 京东购买地址:https://item.jd.com/1 ...

  8. mycat mysql好可用架构_想要学会MyCat高可用集群搭建,但是这些知识点却还玩不明白?...

    一.集群架构 1.MyCat实现读写分离架构 在我前面的文章, 我已经讲解过了通过MyCat来实现MySQL的读写分离, 从而完成MySQL集群的负载均衡 , 如下面的结构图: 但是以上架构存在问题 ...

  9. Hadoop-2.8.5的HA集群搭建

    一.Hadoop HA 机制的学习 1.1.Hadoop 2.X 的架构图 2.x版本中,HDFS架构解决了单点故障问题,即引入双NameNode架构,同时借助共享存储系统来进行元数据的同步,共享存储 ...

最新文章

  1. Android Service学习之本地服务
  2. 服务器磁盘状态,宝塔面板:服务器状态“磁盘100%”标红 解决方法
  3. 来,拆一堆芯片看看!
  4. Android--------从一个包中的Avtivity创建另外另外一个包的Context
  5. HR搬程序员椅子拍老板马屁,开怼的程序员被开?
  6. intellij HTTP状态 404 - 未找到_IntelliJ静态分析竟有代码检测优化,删除冗余等功能...
  7. Sentinel 流控规则,降级规则(服务熔断),热点key 限流,系统规则 ,持久化。 超详细讲解
  8. linux挂载ipsan存储,centos系统ISCSI挂载IPSAN存储
  9. 数据库系统的结构/三级模式结构
  10. Linux下用rar压缩和解压文件
  11. win10 pycharm小写变大写,键盘输入错乱
  12. powerquery分组_Power Query中的Table.Group函数详细分析
  13. 鼎捷软件携手华为助力产业数智化,荣获两大“优秀伙伴”殊荣
  14. postgresql使用过程中字段转换
  15. COMSOL中内置数学函数及内置运算符
  16. 个人能否有所发展,在很大程度上要看你是否重视贡献--读书笔记
  17. 重装oracle需要卸载吗,oracle完全卸载重装历程
  18. centOS安装dock
  19. 健身饮食计划:增肌人群
  20. 假如把二维码类似的标签识别技术做成语音片段,优势劣势有哪些?

热门文章

  1. Spring源码深度解析(郝佳)-学习-ASM 类字节码解析
  2. 设计模式--简化解释(二)——结构型设计模式
  3. CAD2021安装教程
  4. 618 系列篇丨电商平台大促期间精准营销“五步”走法则
  5. 华科计算机考研分数分布,华科计算机考研分数线
  6. 阿尔山采用区块链,打造供应链金融产业生态
  7. wps中查找出现问题
  8. Prometheus黑盒监测之blackbox_exporter
  9. 武汉光华芯CJC4344 DAC替CS4344
  10. Robot Framework ui自动化中级-unittest(四)