DMDSC安装配置

1 DM共享存储集群概念(DMDSC)

1.1 DM共享存储集群概念

在这里插入图片描述

DMDSC集群是一个多实例、单数据库的系统,具有高可用性、高吞吐量、负载均衡等特性。

多个数据库实例可以同时访问、修改同一个数据库的数据。

用户可以登录集群中的任意一个数据库实例,获得完整的数据库服务。

数据文件、控制文件在集群系统中只有一份,不论有几个节点,这些节点都平等地使用这些文件。

各个节点有自己独立的联机日志和归档日志,这些文件就保存在共享存储上。

DMDSC集群得以实现的重要基础就是共享存储。

DM支持的共享存储有两种:裸设备、DMASM。

类似于Oracle的RAC、ASM。

DMDSC集群主要由数据库和数据库实例、共享存储、本地存储、通信网络、以及集群控制软件DMCSS组成。

共享存储

DMDSC集群中,为了实现多个实例同时访问、修改数据,要求将数据文件、控制文件、日志文件保存在共享存储上。

DMDSC支持使用裸设备或DMASM文件系统作为共享存储。

配置DMDSC集群需要的DCR、voting
disk,也必须保存在共享存储上,目前仅支持裸设备存储DCR和voting disk。

本地存储

DMDSC集群中,本地存储用来保存配置文件记录数据库实例配置信息的dm.ini、dmarch.ini、dmmal.ini本地归档日志、远程归档日志。

通信网络

DMDSC集群中,网络分为内部网络和公共网络两个部分。

实际应用中一般还存在服务器到共享存储的网络。

内部网络用于数据库实例之间交换信息和数据,MAL链路使用的就是内部网络。

公共网络用于对外提供数据库服务,用户使用公共网络地址登录DMDSC集群,访问数据库。这里没有vip的说法。

DMASM

DM分布式文件系统(DMASM),来管理裸设备的磁盘和文件,DMASM存储管理的最小单位,AU的大小为1M,DMASM提供了基本的数据文件访问接口,可以有效降低DMDSC共享存储的维护难度,DMASM提供的主要功能包括:

①分布式管理(多台机器并发访问DMASM磁盘和文件,提供全局并发控制)

②磁盘组管理(支持创建和删除磁盘组,一个磁盘组可以包含一个或者多个DMASM磁盘;磁盘组支持在线增加DMASM磁盘,实现动态存储扩展)

③文件管理(支持创建、删除、截断文件,支持创建目录,支持动态扩展文件)

④完善、高效的访问接口(dmasmapi)

⑤通用功能的管理工具(dmasmtool)

心跳(voting disk)

DMCSS实例启动后,每间隔1秒向viting
disk指定区域写入心跳信息(包括自身的状态、时间戳等),表示DMCSS节点处于活动状态。

集群控制(DMCSS)

CSS(Cluster synchronization service)集群控制器

DMCSS就是一款集群控制软件,专门负责监控集群中各个节点的运行状态。

DMCSS主要功能包括:管理集群的启动和关闭控制节点故障处理以及管理节点重加入流程。

DMCSS控制节点通过一系列的集群指令,控制被监控对象的启动、故障处理、状态切换等。

如何选举DMCSS控制节点

DMCSS启动后向voting
disk写入信息,并读取其他DMCSS节点的信息,如果DMCSS集群中还没有活动的控制节点,则选举DMCSS控制节点。

DMCSS选举的原则有两条:

①先启动的DMCSS作为控制节点

②DMCSSS同时启动,则选择节点号小的节点为控制节点

选取监控对象控制节点

DMCSSS控制节点启动后,会为基于DMASM裸设备的DMDSC集群指定控制节点。DMCSS选取监控对象控制节点的原则有两条:

①只有一个活动节点,则设置活动节点为控制节点

②存在多个活动节点,则选择节点号小的节点为控制节点

节点故障处理与重新加入

DMCSS控制节点检测到实例故障后,首先向故障实例的voting
disk区域写入kill命令(所有实例一旦发现kill命令,无条件自杀),避免故障实例仍然处于活动他,引发脑裂,然后启动故障处理流程,不同类型实例的故障处理流程存在一些差异;如果检测到故障节点恢复,DMCSS会通知控制节点启动节点重加入流程。

2 DM共享存储集群安装前规划

1台(共享存储):4G内存,2CPU,100G,win2019,2块网卡,192.168.1.91/10.10.10.91

2台(DMDSC):4G内存,2/4CPU,100G,RHEL7.6,2块网卡,192.168.1.81/82,10.10.10.81/82

共享存储环境:

dcr disk:2g*1

voting disk:2g*1

log disk:3g*1

日志盘(10G+),生产环境日志磁盘与数据磁盘组建议分开放,建议100G

datadisk1:3g=3g*1 数据空间(100g,200g,2T内一个),数据盘不要超过2T一个

datadisk2:3g=3g*1 数据空间(100g,200g,2T内一个),数据盘不要超过2T一个

datadisk3~N…

数据库名:dmdsc

实例名:dmdsc1/dmdsc2

安装前的规划

操作系统:RHEL7.6

软件名称:达梦8数据库

时区:+0800

内存:4g

OS用户名/密码:root/rootroot,dmdba/Gz_dmdb2021

系统组:dinstall

数据库SID:dmdsc1/dmdsc2

数据库名称:dmdsc

归档文件(共享存储归档或者本地归档):

+dgdata01/data/dmdsc/dmarch1和+dgdata01/data/dmdsc/dmarch2

或者

/dm/dmarch

数据库版本:DM database server x64 v8

DM_HOME目录:/home/dmdba/dmdbms

数据库监听端口:5236

数据库字符集:GB18030

数据库用户/密码:sysdba/Gz_dmdba2021

页大小:8k

日志组:3个256M

3 DM共享存储安装与配置

生产环境禁用使用一个盘过来分多个区

3.1 安装存储服务器

配置之前在81、82、91的虚拟机配置文件中添加如下信息,然后启动虚拟机:

disk.locking=“FALSE”

disk.EnableUUID=“TRUE”

3.2 安装存储服务器

打开wind2019机器,打开控制面板–>程序和功能–>启动或关闭windows功能–>下一步–>下一步–>下一步–>勾选"文件和iscsi服务、文件存储服务、iscsi目标存储提供程序(VDS和VSS硬件提供程序)、iscsi目标服务器"

在这里插入图片描述
–>下一步–>下一步–>安装–>关闭

3.3 创建共享磁盘

3.3.1 创建DCR(DM Cluster Registry集群配置信息/注册表)磁盘

服务器管理器–>文件和存储服务–>iscsi–>点击"若要创建iscsi虚拟磁盘,请自动新建iscsi虚拟磁盘向导"

在这里插入图片描述

–>选中"D盘"

在这里插入图片描述

–>下一步–>名称:dcr,描述:dcrdisk–>下一步–>大小:2G,勾选"固定大小"–>下一步–>勾选"新建iscsi目标"–>下一步–>名称:dmdb–>下一步–>点击"添加"–>勾选"输入选定类型的值(类型:IP地址,值:10.10.10.91)"

在这里插入图片描述

–>确定–>下一步–>下一步–>创建–>关闭

3.3.2 创建votedisk磁盘

在这里插入图片描述

右键"新建iscsi虚拟磁盘"–>选中"D盘"–>下一步–>名称:votedisk,描述:votedisk–>下一步–>大小:2G,勾选"固定大小"–>下一步–>勾选"现有iscsi目标"–>下一步–>创建–>关闭

3.3.3 创建logdisk磁盘

右键"新建iscsi虚拟磁盘"–>选中"D盘"–>下一步–>名称:logdisk,描述:logdisk–>下一步–>大小:3G,勾选"固定大小"–>下一步–>勾选"现有iscsi目标"–>下一步–>创建–>关闭

3.3.4 创建datadisk1磁盘

右键"新建iscsi虚拟磁盘"–>选中"D盘"–>下一步–>名称:datadisk1,描述:datadisk1–>下一步–>大小:3G,勾选"固定大小"–>下一步–>勾选"现有iscsi目标"–>下一步–>创建–>关闭

3.3.5 创建datadisk2磁盘

右键"新建iscsi虚拟磁盘"–>选中"D盘"–>下一步–>名称:datadisk2,描述:datadisk2–>下一步–>大小:3G,勾选"固定大小"–>下一步–>勾选"现有iscsi目标"–>下一步–>创建–>关闭
在这里插入图片描述

创建完成后往下拖,选中iscsi目标下方的名称–>右键"属性"–>发起程序

–>“添加”–>勾选"输入选定类型的值",把10.10.10.81/82添加进去–>确定–>应用

在这里插入图片描述

3.4 配置DSC服务器连接存储

(学习和生产均用,但生产建议用光纤网络,不建议用ip iscsi)

192.168.1.81/82操作:

systemctl enable iscsi

systemctl start iscsi

ping 10.10.10.91

iscsiadm -m discovery -t st -p 10.10.10.91

10.10.10.91:3260,1 iqn.1991-05.com.microsoft:dm91-dmdb-target

192.168.1.91:3260,1 iqn.1991-05.com.microsoft:dm91-dmdb-target

iscsiadm -m node -T iqn.1991-05.com.microsoft:dm91-dmdb-target -p
10.10.10.91:3260 -l --登录第2台时会卡,重启另一台主机

开机自动挂载,如果开机不自动挂载需要将命令写入/etc/rc.local。因为默认自动挂载,重启服务可能会出现盘符漂移问题。

vim /etc/rc.local

#将命令按顺序写入到rc.local

iscsiadm -m discovery -t st -p 10.10.10.91

iscsiadm -m node -T iqn.1991-05.com.microsoft:dm91-dmdb-target -p
10.10.10.91:3260 -l

touch /var/lock/subsys/local

tail -200f /var/log/messages

cd /var/lib/iscsi/nodes/

ls -1R

iscsiadm -m session -P 3

iscsiadm -m session -P 3|grep “Attached”

3.5 配置映射ASM磁盘

fdisk -l /dev/sdf |grep “Disk /dev/sd”

fdisk -l /dev/sdg |grep “Disk /dev/sd”

fdisk -l /dev/sdh |grep “Disk /dev/sd”

fdisk -l /dev/sdi |grep “Disk /dev/sd”

fdisk -l /dev/sdj |grep “Disk /dev/sd”

cat /proc/partitions |grep sdd

for i in `cat /proc/partitions | awk ‘{print$4}’ |grep sd | grep [f-n]$`;
do echo “### $i: `/lib/udev/scsi_id --whitelisted --device=/dev/$i`”;
done

### sdf: 360003ff44dc75adcb2cc2715ed52f28f

### sdg: 360003ff44dc75adc88c552a08031a241

### sdh: 360003ff44dc75adc89af8575fae21ae8

### sdi: 360003ff44dc75adc8a19a7ca93a6e8a1

### sdj: 360003ff44dc75adc8b8fa622a23e0e2b

ls -l /dev/disk/by-id

for i in f g h i j;

do

echo “sd$i” "`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace
–device=/dev/sd$i` ";

done

sdf 360003ff44dc75adcb2cc2715ed52f28f dcrdisk

sdg 360003ff44dc75adc88c552a08031a241 votedisk

sdh 360003ff44dc75adc89af8575fae21ae8 logdisk1

sdi 360003ff44dc75adc8a19a7ca93a6e8a1 datadisk1

sdj 360003ff44dc75adc8b8fa622a23e0e2 datadisk2

for i in f g h i j;

do

echo “KERNEL==\“sd?\”,SUBSYSTEM==\“block\”,
PROGRAM==\”/usr/lib/udev/scsi_id --whitelisted --replace-whitespace
–device=/dev/\$name\“,RESULT==\”`/usr/lib/udev/scsi_id --whitelisted
–replace-whitespace --device=/dev/sd$i`\“,
SYMLINK+=\“dm-disk$i\”,OWNER=\“dmdba\”,
GROUP=\“dinstall\”,MODE=\“0660\””

done

192.168.1.81/82:

vi /etc/udev/rules.d/99-dm-devices.rules

KERNEL==“sd?”,SUBSYSTEM==“block”, PROGRAM==“/usr/lib/udev/scsi_id --whitelisted
–replace-whitespace
–device=/dev/$name”,RESULT==“360003ff44dc75adcb2cc2715ed52f28f”,
SYMLINK+=“dm-dcrdisk”,OWNER=“dmdba”, GROUP=“dinstall”,MODE=“0660”

KERNEL==“sd?”,SUBSYSTEM==“block”, PROGRAM==“/usr/lib/udev/scsi_id --whitelisted
–replace-whitespace
–device=/dev/$name”,RESULT==“360003ff44dc75adc88c552a08031a241”,
SYMLINK+=“dm-votedisk”,OWNER=“dmdba”, GROUP=“dinstall”,MODE=“0660”

KERNEL==“sd?”,SUBSYSTEM==“block”, PROGRAM==“/usr/lib/udev/scsi_id --whitelisted
–replace-whitespace
–device=/dev/$name”,RESULT==“360003ff44dc75adc89af8575fae21ae8”,
SYMLINK+=“dm-logdisk1”,OWNER=“dmdba”, GROUP=“dinstall”,MODE=“0660”

KERNEL==“sd?”,SUBSYSTEM==“block”, PROGRAM==“/usr/lib/udev/scsi_id --whitelisted
–replace-whitespace
–device=/dev/$name”,RESULT==“360003ff44dc75adc8a19a7ca93a6e8a1”,
SYMLINK+=“dm-datadisk1”,OWNER=“dmdba”, GROUP=“dinstall”,MODE=“0660”

KERNEL==“sd?”,SUBSYSTEM==“block”, PROGRAM==“/usr/lib/udev/scsi_id --whitelisted
–replace-whitespace
–device=/dev/$name”,RESULT==“360003ff44dc75adc8b8fa622a23e0e2b”,
SYMLINK+=“dm-datadisk2”,OWNER=“dmdba”, GROUP=“dinstall”,MODE=“0660”

/sbin/udevadm control --reload-rules

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

ls -lsa /dev/dm*

ls -lsa /dev/sd* --权限是dmdba:dinstall

[root@dm81 ~]# ls -lsa /dev/dm*

0 lrwxrwxrwx 1 root root 3 May 16 20:21 /dev/dm-datadisk1 -> sdm

0 lrwxrwxrwx 1 root root 3 May 16 20:21 /dev/dm-datadisk2 -> sdn

0 lrwxrwxrwx 1 root root 3 May 16 20:21 /dev/dm-logdisk1 -> sdl

0 lrwxrwxrwx 1 root root 3 May 16 20:21 /dev/dm-dcrdisk -> sdf

0 lrwxrwxrwx 1 root root 3 May 16 20:21 /dev/dm-votedisk -> sdi

ls -lsa /dev/sd*

3.6 配置raw设备

在官方文档raw的配置是写入到/etc/udev/rules.d/60-raw.rules文件(如果不绑定UUID,容易乱盘),但因为我们之前配置了UDEV规则,所有我么这里把raw配置写入到/etc/rc.local中,以防映射失败。

------------------------官方的要求------------------------------

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

ACTION==“add”, KERNEL==“sdb1”, RUN+=“/bin/raw /dev/raw/raw1 %N”

ACTION==“add”, KERNEL==“sdb2”, RUN+=“/bin/raw /dev/raw/raw2 %N”

ACTION==“add”, KERNEL==“sdb3”, RUN+=“/bin/raw /dev/raw/raw3 %N”

ACTION==“add”, KERNEL==“sdb4”, RUN+=“/bin/raw /dev/raw/raw4 %N”

ACTION==“add”, KERNEL==“raw[1-4]”, OWNER=“dmdba”, GROUP=“dinstall”, MODE=“660”

注意:

(1)部署前要规划好磁盘的大小,一般dcr和vote盘都变化不大,固定100M-200M即可。log磁盘预算每个节点4组,每组2g大小,假如是两节点dsc,预计分配20g足够。其余磁盘空间都可以分配给数据盘。

(2)磁盘的权限必须用户是dmdba,属主是dinstall。

(3)以上裸设备的绑定方式,要根据实际情况而定。

两个节点上都运行以下两条语句,完成裸设备的绑定:

partprobe /dev/sdb

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

ls -lsa /dev/dm*

0 lrwxrwxrwx 1 root root 3 May 24 21:48 /dev/dm-dcrdisk -> sdf

0 lrwxrwxrwx 1 root root 3 May 24 21:48 /dev/dm-votedisk -> sdg

0 lrwxrwxrwx 1 root root 3 May 24 21:48 /dev/dm-logdisk1 -> sdh

0 lrwxrwxrwx 1 root root 3 May 24 21:48 /dev/dm-datadisk1 -> sdi

0 lrwxrwxrwx 1 root root 3 May 24 21:48 /dev/dm-datadisk2 -> sdj

本课程:

192.168.1.81/82:

vi /etc/rc.d/rc.local

sleep 1

#dcrdisk

raw /dev/raw/raw1 /dev/dm-dcrdisk

#votingdisk

raw /dev/raw/raw2 /dev/dm-votedisk

#logdisk

raw /dev/raw/raw3 /dev/dm-logdisk1

#datadisk

raw /dev/raw/raw4 /dev/dm-datadisk1

raw /dev/raw/raw5 /dev/dm-datadisk2

sleep 2

#chown+chmod

chown dmdba:dinstall /dev/raw/raw1

chown dmdba:dinstall /dev/raw/raw2

chown dmdba:dinstall /dev/raw/raw3

chown dmdba:dinstall /dev/raw/raw4

chown dmdba:dinstall /dev/raw/raw5

chmod 660 /dev/raw/raw1

chmod 660 /dev/raw/raw2

chmod 660 /dev/raw/raw3

chmod 660 /dev/raw/raw4

chmod 660 /dev/raw/raw5

#touch /var/lock/subsys/local

#注意这里必须放在最后一行,否则开机不会自动映射raw设备。

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

reboot --有个节点会卡住一会。或者配置多路径就不会产生卡主

ls -lsa /dev/raw/raw*

raw -qa --如果找不到要手工连接

/dev/raw/raw1: bound to major 8, minor 80

/dev/raw/raw2: bound to major 8, minor 96

/dev/raw/raw3: bound to major 8, minor 112

/dev/raw/raw4: bound to major 8, minor 128

/dev/raw/raw5: bound to major 8, minor 144

blockdev --getsize64 /dev/raw/raw1

blockdev --getsize64 /dev/raw/raw2

blockdev --getsize64 /dev/raw/raw3

blockdev --getsize64 /dev/raw/raw4

blockdev --getsize64 /dev/raw/raw5

4 DM共享存储集群安装配置

4.2 上传安装程序

192.168.1.81/82:

root:

umount /mnt

mount -o loop /root/dm8_setup_rh7_64_ent_8.1.1.48_20191129.iso /mnt

4.2 命令行安装过程

192.168.1.81/82:

su - dmdba

cd /mnt

./DMInstall.bin -i

root执行脚本:/home/dmdba/dmdbms/script/root/root_installer.sh

安装完成不要创建实例

4.3 配置dmdcr_cfg.ini文件

DCR(DM Cluster Registry集群配置信息/注册表)

使用dmdba用户,进行编辑配置文件

准备配置文件dmdcr_cfg.ini,保存在/home/dmdba/dmdbms/data/dmdcr_cfg.ini下

192.168.1.81/82:

su - dmdba

mkdir /home/dmdba/dmdbms/data/

vi /home/dmdba/dmdbms/data/dmdcr_cfg.ini

DCR_N_GRP = 3

DCR_VTD_PATH = /dev/raw/raw2 #vote盘,是第2个裸设备

DCR_OGUID = 63635

[GRP] #[GRP]表示新建一个Group

DCR_GRP_TYPE = CSS

DCR_GRP_NAME = dmcss

DCR_GRP_N_EP = 2

DCR_GRP_DSKCHK_CNT = 60

[dmcss] #[]里的是组名,与DCR_GRP_NAME对应

DCR_EP_NAME = dmcss1

DCR_EP_HOST = 10.10.10.81

DCR_EP_PORT = 9541

[dmcss] #[]里的是组名,与DCR_GRP_NAME对应

DCR_EP_NAME = dmcss2

DCR_EP_HOST = 10.10.10.82

DCR_EP_PORT = 9542

[GRP] #[GRP]表示新建一个Group

DCR_GRP_TYPE = ASM

DCR_GRP_NAME = dmasm

DCR_GRP_N_EP = 2

DCR_GRP_DSKCHK_CNT = 60

[dmasm] #[]里的是组名,与DCR_GRP_NAME对应

DCR_EP_NAME = dmasm1

DCR_EP_SHM_KEY = 93360

DCR_EP_SHM_SIZE = 10 #最小10,最大1024

DCR_EP_HOST = 10.10.10.81

DCR_EP_PORT = 9641

DCR_EP_ASM_LOAD_PATH = /dev/raw

[dmasm] #[]里的是组名,与DCR_GRP_NAME对应

DCR_EP_NAME = dmasm2

DCR_EP_SHM_KEY = 93361

DCR_EP_SHM_SIZE = 10

DCR_EP_HOST = 10.10.10.82

DCR_EP_PORT = 9642

DCR_EP_ASM_LOAD_PATH = /dev/raw

[GRP] #[GRP]表示新建一个Group

DCR_GRP_TYPE = DB

DCR_GRP_NAME = dmdsc #数据库名,要根据业务去改

DCR_GRP_N_EP = 2

DCR_GRP_DSKCHK_CNT = 60

[dmdsc] #[]里的是组名,与DCR_GRP_NAME对应

DCR_EP_NAME = dmdsc1 #实例名

DCR_EP_SEQNO = 0

DCR_EP_PORT = 5236 #注意这个配置参数,为数据库端口号

DCR_CHECK_PORT = 9741

[dmdsc]

DCR_EP_NAME = dmdsc2 #实例名

DCR_EP_SEQNO = 1

DCR_EP_PORT = 5236 #注意这个配置参数,为数据库端口号

DCR_CHECK_PORT = 9742

4.4 使用DMASMCMD工具初始化

在任意一台节点上用dmasmcmd工具执行如下命令:

su - dmdba

[dmdba@dm81 ~]$ dmasmcmd

DMASMCMD V8

ASM>

listdisks ‘/dev/raw/’

校验DCR磁盘:

–check dcrdisk ‘/dev/raw/raw1’

导出dcr的配置文件:

–export dcrdisk ‘/dev/raw/raw1’ to ‘/tmp/dmdcr_cfg.ini’

create dcrdisk ‘/dev/raw/raw1’ ‘dcr’

create votedisk ‘/dev/raw/raw2’ ‘vote’

create asmdisk ‘/dev/raw/raw3’ ‘logdisk1’

create asmdisk ‘/dev/raw/raw4’ ‘datadisk1’

create asmdisk ‘/dev/raw/raw5’ ‘datadisk2’

init dcrdisk ‘/dev/raw/raw1’ from ‘/home/dmdba/dmdbms/data/dmdcr_cfg.ini’
identified by ‘dmdsc’

init votedisk ‘/dev/raw/raw2’ from ‘/home/dmdba/dmdbms/data/dmdcr_cfg.ini’

4.5 准备DMASM的MAL配置(dmasvrmal.ini)

准备DMASM的MAL配置文件(命名为dmasvrmal.ini),使用DMASM的所有节点都要配置,内容完全一样

192.168.1.81/82:

vi /home/dmdba/dmdbms/data/dmasvrmal.ini

[MAL_INST1]

MAL_INST_NAME = dmasm1 #asm实例1

MAL_HOST = 10.10.10.81

MAL_PORT = 7236

[MAL_INST2]

MAL_INST_NAME = dmasm2 #asm实例2

MAL_HOST = 10.10.10.82

MAL_PORT = 7237

4.6 准备dmdcr.ini配置文件

dmdcr.ini是dmcss、dmasmsvr、dmasmtool工具的输入参数,记录了当前节点序列号以及DCR磁盘路径。

配置文件,保存到/dm/dmdmbs/data/目录下面

DMASM的两个节点分别配置dmdcr.ini dmdcr_path相同

vi /home/dmdba/dmdbms/data/dmdcr.ini

DMDCR_PATH = /dev/raw/raw1

#dmasmsvr使用的MAL配置文件路径

DMDCR_MAL_PATH =/home/dmdba/dmdbms/data/dmasvrmal.ini

DMDCR_SEQNO = 0

#第一台为0,第二台改为1

#DMDCR_SEQNO = 1

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

DMDCR_ASM_RESTART_INTERVAL = 0 #先设置为0,不自动拉起本地ASM实例

DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr
DCR_INI=/home/dmdba/dmdbms/data/dmdcr.ini

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

DMDCR_DB_RESTART_INTERVAL = 0 #先设置为0,不自动拉起本地实例

DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path =
/home/dmdba/dmdbms/data/dmdsc1_config/dm.ini
DCR_INI=/home/dmdba/dmdbms/data/dmdcr.ini

#第二台:

#DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
path=/home/dmdba/dmdbms/data/dmsc2_config/dm.ini
DCR_INI=/home/dmdba/dmdbms/data/dmdcr.ini

#注意第一台与第二台配置有区别

4.7 关闭virbro

虚拟机要关闭virbro

192.168.1.81/82:

关闭virbr0:

ifconfig,检查是不是有virbr0,一定要禁用,否则影响后面的使用:

virbr0是KVM默认创建的一个Bridge,其作用是为连接其上的虚机网卡提供NAT访问外网的功能。

virbr0默认分配了一个IP 192.168.122.1,并为连接其上的其他虚拟网卡

提供DHCP服务。

禁用端口

su - root

# ifconfig virbr0 down

删除端口

# brctl delbr virbr0

virbr0是由libvirtd服务创建,关闭服务:

#systemctl disable libvirtd

4.8 分别在2个节点注册DMCSS和DMASM服务

root:

192.168.1.81:

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini
/home/dmdba/dmdbms/data/dmdcr.ini -p dmdsc1 #以实例名命名dmdsc1

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini
/home/dmdba/dmdbms/data/dmdcr.ini -p dmdsc1 -y DmCSSServicedmdsc1

#意思就是启动asm前提是启动css服务(依赖css服务)

192.168.1.82:

注意:在注册第二台主机服务之前需要配置/home/dmdba/dmdbms/data/dmdcr.ini配置文件,如06所示:

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini
/home/dmdba/dmdbms/data/dmdcr.ini -p dmdsc2

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini
/home/dmdba/dmdbms/data/dmdcr.ini -p dmdsc2 -y DmCSSServicedmdsc2

#意思就是启动asm前提是启动css服务(依赖css服务)

启动CSS和ASM服务

192.168.1.81:

root:

systemctl start DmCSSServicedmdsc1

systemctl start DmASMSvrServicedmdsc1

or:

su - dmdba

DmCSSServicedmdsc1 start

DmCSSServicedmdsc1 status

DmASMSvrServicedmdsc1 start

DmASMSvrServicedmdsc1 status

192.168.1.82:

root:

systemctl start DmCSSServicedmdsc2

systemctl start DmASMSvrServicedmdsc2

or:

su - dmdba

DmCSSServicedmdsc2 start

DmCSSServicedmdsc2 status

DmASMSvrServicedmdsc2 start

DmASMSvrServicedmdsc2 status

4.9 创建DMASM磁盘组

在任意节点使用dmasmtool工具创建DMASM磁盘组。

su - dmdba

[dmdba@dm81 ~]$ dmasmtool DCR_INI=/home/dmdba/dmdbms/data/dmdcr.ini

DMASMTOOL V8

ASM>

lsdg

lsdsk

create diskgroup ‘dglog’ asmdisk ‘/dev/raw/raw3’

create diskgroup ‘dgdata01’ asmdisk ‘/dev/raw/raw4’

alter diskgroup ‘dgdata01’ add asmdisk ‘/dev/raw/raw5’

#裸设备和vote盘是不能用asm磁盘组的,数据盘和日志盘可以使用磁盘组

4.10 准备dminit.ini配置文件

在2个节点的/home/dmdba/dmdbms/data目录下创建dminit.ini配置文件,添加如下内容,在2个节点都创建。

vi /home/dmdba/dmdbms/data/dminit.ini

db_name = dmdsc

system_path = +dgdata01/data

system = +dgdata01/data/dmdsc/system.dbf

system_size = 128

roll = +dgdata01/data/dmdsc/roll.dbf

roll_size = 128

main = +dgdata01/data/dmdsc/main.dbf

main_size = 128

ctl_path = +dgdata01/data/dmdsc/dm.ctl

ctl_size = 8

log_size = 256

#dcr磁盘路径,目前不支持asm,只能是裸设备

dcr_path = /dev/raw/raw1

dcr_seqno = 0

auto_overwrite = 1

[dmdsc1]

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

config_path = /home/dmdba/dmdbms/data/dmdsc1_config

port_num = 5236

mal_host = 10.10.10.81

mal_port = 9340

log_path = +dglog/log/dmdsc1_log01.log

log_path = +dglog/log/dmdsc1_log02.log

[dmdsc2]

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

config_path = /home/dmdba/dmdbms/data/dmdsc2_config

port_num = 5236

mal_host = 10.10.10.82

mal_port = 9341

log_path = +dglog/log/dmdsc2_log01.log

log_path = +dglog/log/dmdsc2_log02.log

4.11 使用dmini初始化DB环境

在任意节点启动dminit工具初始化数据库。

dminit执行完成后,会在config_path目录(/home/dmdba/dmdbms/data/dmdsc1_config和/home/dmdba/dmdbms/data/dmdsc2_config)下生成配置文件dm.ini和dmmal.ini

192.168.1.81:

dminit control=/home/dmdba/dmdbms/data/dminit.ini

#将DSC1的配置文件复制过去:

scp -r /home/dmdba/dmdbms/data/dmdsc2_config dm82:/home/dmdba/dmdbms/data/

4.12 启动数据库服务器

192.168.1.81:

root:

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini
/home/dmdba/dmdbms/data/dmdsc1_config/dm.ini -dcr_ini
/home/dmdba/dmdbms/data/dmdcr.ini -p dmdsc1 -y DmASMSvrServicedmdsc1

systemctl start DmServicedmdsc1

or:

su - dmdba

DmServicedmdsc1 start

192.168.1.82:

root:

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini
/home/dmdba/dmdbms/data/dmdsc2_config/dm.ini -dcr_ini
/home/dmdba/dmdbms/data/dmdcr.ini -p dmdsc2 -y DmASMSvrServicedmdsc2

systemctl start DmServicedmdsc2

or:

su - dmdba

DmServicedmdsc1 start

如果DMCSS配置有自动拉起dmserver/dmasm的功能,可以等待DMCSS自动拉起实例,不需要手动启动。

注意:搭建成功后修改两节点配置文件dmdcr.ini,将DMDCR_ASM_RESTART_INTERVAL与DMDCR_DB_RESTART_INTERVAL修改为10即可

192.168.1.81/82:

vim /home/dmdba/dmdbms/data/dmdcr.ini

DMDCR_PATH = /dev/raw/raw1

#dmasmsvr使用的MAL配置文件路径

DMDCR_MAL_PATH =/home/dmdba/dmdbms/data/dmasvrmal.ini

DMDCR_SEQNO = 0

#第一台为 0,第二台改为 1

#DMDCR_SEQNO = 1

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

DMDCR_ASM_RESTART_INTERVAL = 10

DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr
DCR_INI=/home/dmdba/dmdbms/data/dmdcr.ini

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

DMDCR_DB_RESTART_INTERVAL = 10

DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
path=/home/dmdba/dmdbms/data/dmdsc1_config/dm.ini
DCR_INI=/home/dmdba/dmdbms/data/dmdcr.ini

#第二台:

#DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
path=/home/dmdba/dmdbms/data/dmsc2_config/dm.ini
DCR_INI=/home/dmdba/dmdbms/data/dmdcr.ini

4.13 连接数据库验证

使用disql或者manager执行以下代码可查看集群信息

disql --登录时没有用户也没有密码

alter user sysdba identified by Gz_dmdba2021;

select * from v$dsc_ep_info;

select instance_name from v$instance;

select group_id,disk_id,disk_name,disk_path,size/1024 from V$ASMDISK;

select group_id,group_name,au_size,total_size from v$asmgroup;

set pagesize 200

set linesize 200

select file_id,path,size_bytes/1024/1024 from v$asmfile;

select path from v$datafile;

select * from v$rlogfile;

select * from v$rlog;

5 DM共享存储集群日常管理

5.1 配置DSC连接服务名

Linux上测试:

192.168.1.81/82:

vi /etc/dm_svc.conf

#dmdsc=(10.10.10.81:5236,10.10.10.82:5236)

dmdsc=(192.168.1.81:5236,192.168.1.82:5236)

SWITCH_INTERVAL=(3)

SWITCH_TIME=(10000)

TIME_ZONE=(480)

LANGUAGE=(cn)

dm_svc.conf配置文件包含如下配置选项:

1.SERVERNAME:连接服务名,用户通过连接服务名访问数据库。

2.IP:数据库所在的IP地址,如果是IPv6地址,为了区分端口,需要用[]封闭IP地址。

3.PORT:数据库使用的TCP连接端口,可选配置,不配置则使用连接上指定的端口。

4.SWITCH_INTERVAL:检测到数据库实例故障时,接口在服务器之间切换的次数;超过设置次数没有连接到有效数据库时,断开连接并报错。有效值范围
1~9223372036854775807,默认值为 3。

5.SWITCH_TIME:表示在服务器之间切换的时间间隔,单位为毫秒,有效值范围
1~9223372036854775807,默认值为200。

5.2 负载均衡测试

[dmdba@dm82 ~]$ disql SYSDBA/Gz_dmdba2021@dmdsc --多次退出再连接测试

select * from v$dsc_ep_info;

window测试:

Windows上配置文件:

64位的DM安装在Win64操作平台下,此文件位于%SystemRoot%\system32

dm_svc.conf:

#dmdsc=(10.10.10.81:5236,10.10.10.82:5236)

dmdsc=(192.168.1.81:5236,192.168.1.82:5236)

SWITCH_INTERVAL=(10)

SWITCH_TIME=(10000)

TIME_ZONE=(480)

LANGUAGE=(cn)

D:\dmdbms\bin>disql sysdba/Gz_dmdba2021@dmdsc

5.3 故障切换测试

杀掉数据库进程dmserver,再连接测试(再次连接时等待的时间会比较长)

disql sysdba/Gz_dmdba2021@dmdsc

或者

D:\dmdbms\bin>disql sysdba/Gz_dmdba2021@dmdsc

select instance_name from v$instance;

创建数据测试两台主机数据是否一致

select * from v$dsc_ep_info;

create tablespace dm datafile ‘+dgdata01/data/dmdsc/dm01.dbf’ size 100
autoextend off;

create tablespace dm_idx datafile ‘+dgdata01/data/dmdsc/dm_idx01.dbf’ size 100
autoextend off;

create user “dm” identified by “dm123456789” default tablespace dm default index
tablespace dm_idx;

grant dba to dm;

conn dm/dm123456789;

create table dm (id int,name varchar(50),create_date date);

insert into dm values(1,‘李哥’,‘2021-04-01’);

insert into dm values(2,‘王哥’,‘2021-04-02’);

insert into dm values(3,‘行测’,‘2021-04-03’);

commit;

select count(*) from dm;

5.4 DMDSC集群归档配置

dmdsc1:

vi /home/dmdba/dmdbms/data/dmdsc1_config/dmarch.ini

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /dm/dmarch/dmdsc1

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

[ARCH_REMOTE1]

ARCH_TYPE = REMOTE

ARCH_DEST = dmdsc2

ARCH_INCOMING_PATH = /dm/dmarch/dmdsc2

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

或者配置到共享存储:

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

#ARCH_DEST = /dm/dmarch/dmdsc1

ARCH_DEST = +dgdata01/data/dmdsc/dmarch1

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

[ARCH_REMOTE1]

ARCH_TYPE = REMOTE

ARCH_DEST = dmdsc2

#ARCH_INCOMING_PATH = /dm/dmarch/dmdsc2

ARCH_INCOMING_PATH = +dgdata01/data/dmdsc/dmarch2

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

编辑dm.ini文件,设置参数ARCH_INI=1,保存。

vi /home/dmdba/dmdbms/data/dmdsc1_config/dm.ini

ARCH_INI=1

dmdsc2:

vi /home/dmdba/dmdbms/data/dmdsc2_config/dmarch.ini

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /dm/dmarch/dmdsc2

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

[ARCH_REMOTE1]

ARCH_TYPE = REMOTE

ARCH_DEST = dmdsc1

ARCH_INCOMING_PATH = /dm/dmarch/dmdsc1

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

或者配置到共享存储:

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

#ARCH_DEST = /dm/dmarch/dmdsc2

ARCH_DEST = +dgdata01/data/dmdsc/dmarch2

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

[ARCH_REMOTE1]

ARCH_TYPE = REMOTE

ARCH_DEST = dmdsc1

#ARCH_INCOMING_PATH = /dm/dmarch/dmdsc1

ARCH_INCOMING_PATH = +dgdata01/data/dmdsc/dmarch1

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

编辑dm.ini文件,设置参数ARCH_INI=1,保存。

vi /home/dmdba/dmdbms/data/dmdsc2_config/dm.ini

ARCH_INI=1

5.5 DMDSC相关参数配置优化

另外,生产环境参数按照实际的环境去调整优化(我的是测试环境参数优化如下)

call SF_SET_SYSTEM_PARA_VALUE (‘MAX_OS_MEMORY’,95,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘MAX_SESSIONS’,1000,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘MAX_SESSION_STATEMENT’,5000,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘BUFFER’,1024,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘MAX_BUFFER’,1024,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘BUFFER_POOLS’,2,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘RECYCLE’,512,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘RECYCLE_POOLS’,1,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘HJ_BUF_GLOBAL_SIZE’,500,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘HJ_BUF_SIZE’,300,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘DICT_BUF_SIZE’,50,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘TEMP_SIZE’,200,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘VM_POOL_SIZE’,256,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘SESS_POOL_SIZE’,256,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘CACHE_POOL_SIZE’,200,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘WORKER_THREADS’,2,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘TASK_THREADS’,2,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘USE_PLN_POOL’,1,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘OLAP_FLAG’,2,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘OPTIMIZER_MODE’,1,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘VIEW_PULLUP_FLAG’,1,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘COMPATIBLE_MODE’,2,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘ENABLE_MONITOR’,0,1,2);

call SF_SET_SYSTEM_PARA_VALUE (‘SVR_LOG’,0,1,2);

重启数据库:

DmServicedmdsc1 stop

DmServicedmdsc2 stop

DmServicedmdsc1 start

DmServicedmdsc2 start

然后检查:

disql sysdba/Gz_dmdba2021

select arch_mode from v$database;

select * from v$dm_arch_ini;

SELECT NAME,FIRST_TIME,NEXT_TIME,FIRST_CHANGE#,NEXT_CHANGE# FROM
V$ARCHIVED_LOG;

5.6 DMDSC启动与关闭流程

生产环境建议把这些服务设置为开机手工启动

启动顺序:

DMCSS–>DMASMSVR–>DMSERVER

#如果前面参数配置,这里只需要启动css服务,其它asm和db都会被自动带起来

192.168.1.81:

systemctl start DmCSSServicedmdsc1

192.168.1.82:

systemctl start DmCSSServicedmdsc2

以下是详细的启动流程:

192.168.1.81:

root:

systemctl disable DmCSSServicedmdsc1

systemctl disable DmASMSvrServicedmdsc1

systemctl disable DmServicedmdsc1

systemctl start DmCSSServicedmdsc1

systemctl start DmASMSvrServicedmdsc1

systemctl start DmServicedmdsc1

or:

su - dmdba

DmCSSServicedmdsc1 start

DmASMSvrServicedmdsc1 start

DmServicedmdsc1 start

192.168.1.82:

root:

systemctl disable DmCSSServicedmdsc2

systemctl disable DmASMSvrServicedmdsc2

systemctl disable DmServicedmdsc2

systemctl start DmCSSServicedmdsc2

systemctl start DmASMSvrServicedmdsc2

systemctl start DmServicedmdsc2

or:

su - dmdba

DmCSSServicedmdsc2 start

DmASMSvrServicedmdsc2 start

DmServicedmdsc2 start

停止顺序:

DMSERVICE—>DMASMSVR—>DMCSS

192.168.1.81:

root:

systemctl stop DmServicedmdsc1

systemctl stop DmASMSvrServicedmdsc1

systemctl stop DmCSSServicedmdsc1

or:

su - dmdba

DmServicedmdsc1 stop

DmASMSvrServicedmdsc1 stop

DmCSSServicedmdsc1 stop

192.168.1.82:

root:

systemctl stop DmServicedmdsc2

systemctl stop DmASMSvrServicedmdsc2

systemctl stop DmCSSServicedmdsc2

or:

su - dmdba

DmServicedmdsc2 stop

DmASMSvrServicedmdsc2 stop

DmCSSServicedmdsc2 stop

然后重启主机,检查是否可以自动启动

5.7 备份

DSC集群因为共享一份数据,所以只需要在其中一个节点做备份即可。备份策略可以根据实际情况来制定,比如:每天增备,每周全备,每周逻辑全导出,或只导出核心表。备份数据也不要放到共享存储,可以放到其他存储或者本地磁盘。
l start DmCSSServicedmdsc1

192.168.1.82:

systemctl start DmCSSServicedmdsc2

以下是详细的启动流程:

192.168.1.81:

root:

systemctl disable DmCSSServicedmdsc1

systemctl disable DmASMSvrServicedmdsc1

systemctl disable DmServicedmdsc1

systemctl start DmCSSServicedmdsc1

systemctl start DmASMSvrServicedmdsc1

systemctl start DmServicedmdsc1

or:

su - dmdba

DmCSSServicedmdsc1 start

DmASMSvrServicedmdsc1 start

DmServicedmdsc1 start

192.168.1.82:

root:

systemctl disable DmCSSServicedmdsc2

systemctl disable DmASMSvrServicedmdsc2

systemctl disable DmServicedmdsc2

systemctl start DmCSSServicedmdsc2

systemctl start DmASMSvrServicedmdsc2

systemctl start DmServicedmdsc2

or:

su - dmdba

DmCSSServicedmdsc2 start

DmASMSvrServicedmdsc2 start

DmServicedmdsc2 start

停止顺序:

DMSERVICE—>DMASMSVR—>DMCSS

192.168.1.81:

root:

systemctl stop DmServicedmdsc1

systemctl stop DmASMSvrServicedmdsc1

systemctl stop DmCSSServicedmdsc1

or:

su - dmdba

DmServicedmdsc1 stop

DmASMSvrServicedmdsc1 stop

DmCSSServicedmdsc1 stop

192.168.1.82:

root:

systemctl stop DmServicedmdsc2

systemctl stop DmASMSvrServicedmdsc2

systemctl stop DmCSSServicedmdsc2

or:

su - dmdba

DmServicedmdsc2 stop

DmASMSvrServicedmdsc2 stop

DmCSSServicedmdsc2 stop

然后重启主机,检查是否可以自动启动

社区地址:https://eco.dameng.com

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值