注册
达梦数据库:DM8DSC共享集群安装(超详细!!!)
专栏/技术分享/ 文章详情 /

达梦数据库:DM8DSC共享集群安装(超详细!!!)

肖鹏程 2023/09/11 1988 3 0
摘要

IP端口规划

业务IP 192.168.40.135 192.168.40.136
内部数据交换网络IP 192.168.253.128 192.168.253.129
实例名 xpcdsc1 xpcdsc2
PORT_NUM 5236
MAL_PORT(dminit.ini) 9340
MAL_PORT(dmasvrmal.ini) 7236 7237
DCR_EP_PORT (CSS) 9541 9542
DCR_EP_PORT (ASM) 9641 9642
DCR_EP_PORT (DSC) 5236
DCR_CHECK_PORT 9741 9742

共享存储规划

名称 拟定配置 分区大小 备注
表决磁盘 /dev/dm/asm-votedisk 2G 记录集群成员信息,集群通过 Voting Disk 进行心跳检测,确定集群中节点的状态
DCR盘 /dev/dm/asm-dcrdisk 2G 用于存储、维护集群配置的详细信息,整个集群环境共享 DCR 配置信息
Redo日志盘 /dev/dm/asm-logdisk1 3G 用于存储数据库集群Redo log
数据盘 /dev/dm/asm-datadisk1 5G 用于存放数据
数据盘 /dev/dm/asm-datadisk2 5G 用于存放数据

操作系统配置检查

两台机器一起做

hosts检查

echo "192.168.40.135 dsc1" >> /etc/hosts

cat /etc/hosts
echo "192.168.40.136 dsc2" >> /etc/hosts

cat /etc/hosts

image.png

语言环境检查

echo "export LANG=en_US.UTF8" >> ~/.bash_profile
cat ~/.bash_profile

image.png

资源限制参数检查

vi /etc/security/limits.conf
root               soft    nofile  1048576
root               hard    nofile  1048576
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft stack 65536
dmdba hard stack 65536

image.png

防火墙检查

systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service

image.png

SELINUX检查

echo "SELINUX=disabled" > /etc/selinux/config
echo "SELINUXTYPE=targeted" >> /etc/selinux/config
cat /etc/selinux/config
setenforce 0

image.png

资源分配限制检查

echo "session required pam_limits.so" >> /etc/pam.d/login
cat /etc/pam.d/login

image.png

透明大页、NUMA、IO调度算法

vi /etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet numa=off transparent_hugepage=never elevator=deadline" 

image.png
编译

grub2-mkconfig -o /etc/grub2.cfg

image.png

内核参数检查

vi /etc/sysctl.conf

fs.aio-max-nr = 1048576
fs.file-max = 6815744
vm.min_free_kbytes=5120   ##按照系统内存大小设置,过大可能导致虚拟机起不来
net.ipv4.ip_local_port_range = 1024 65535
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
vm.overcommit_memory=0
vm.swappiness=1

sysctl -p

image.png

用户及目录

groupadd -g 66000 dinstall
useradd  -u 66000 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
echo "dameng" |passwd --stdin dmdba

mkdir -p /dm/dmdbms/dm8
mkdir -p /dm/dmdata
mkdir -p /dm/dmarch
mkdir -p /dm/dmback
chown -R dmdba:dinstall /dm
chmod -R 775 /dm

image.png

环境变量检查

su - dmdba
vi ~/.bash_profile

export LANG=zh_CN.UTF8
export DM_INSTALL_TMPDIR=/tmp
export DM_HOME=/dm/dmdbms/dm8
export PATH=$DM_HOME/bin:$PATH:$HOME/bin

source ~/.bash_profile

image.png

共享存储配置

虚拟机1

选择虚拟机(DSC1) > 右键“设置” > 添加“硬盘” > SCSI > 创建新虚拟磁盘 > 指定磁盘容量 > 指定磁盘文件路径及命名 > 确定。依次添加5块硬盘(2G、2G、3G、5G、5G)

image.png
image.png
image.png
image.png
image.png

选择新添加得硬盘(SCSI) > 高级 > 设置设备号为 SCSI 0:1 ,模式为独立、永久。5块硬盘都要选择独立永久且scsi号要不同。

image.png

虚拟机2

选择虚拟机(DSC2) > 右键“设置” > 添加“硬盘” > SCSI > 使用现有虚拟磁盘 > 选择现有磁盘(浏览找到刚创建的“DMDSC.vmdk”) > 完成。

选择新添加得硬盘(SCSI) > 高级 > 设置设备号为 SCSI 0:1 ,模式为独立、永久。5块硬盘都要设置独立永久且scsi号要与(DSC1)设置的一一对应。

image.png

修改两台虚拟机的vmx配置

找到虚拟机创建路径下的vmx文件,通过记事本形式打开,结尾添加以下内容。
scsi1.sharedBus = "virtual"
disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.dataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
disk.EnableUUID = "TRUE"

image.png

操作系统查看磁盘并绑定udev

192.168.40.135

fdisk -l|grep -i dev 

image.png

使用以下脚本绑定绑定设备的 UUID,创建 uuid.sh 文件,并生成配置文件。
curr=$(cd "$(dirname "$0")";pwd)
rm -f $curr/88-dm-asmdevices.rules
for i in a b c d e;
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/asm-disk$i\",OWNER=\"dmdba\", GROUP=\"dinstall\",MODE=\"0660\"" >> $curr/88-dm-asmdevices.rules
done
##执行 uuid.sh 脚本

chmod +x uuid.sh
./uuid.sh

脚本执行成功后,会生成绑定配置文件 88-dm-asmdevices.rules,可以根据自己的需求进行修改别名 

image.png
配置部署文件。生成配置文件后,把 88-dm-asmdevices.rules 配置文件 cp 到 DSC 的每个节点上

cp 88-dm-asmdevices.rules /etc/udev/rules.d/88-dm-asmdevices.rules 
scp 88-dm-asmdevices.rules 192.168.40.136:/etc/udev/rules.d/

检查生效
(1)重启服务器,建议使用该方法
(2)如果无法重启,执行下述命令

udevadm control --reload-rules
systemctl restart systemd-udev-trigger.service

授权

chown dmdba:dinstall /dev/dm/asm-* -R
ll /dev/dm/*

image.png

检查生效

blockdev --getsize64 /dev/dm/asm-datadisk1
blockdev --getsize64 /dev/dm/asm-datadisk2
blockdev --getsize64 /dev/dm/asm-dcrdisk 
blockdev --getsize64 /dev/dm/asm-logdisk1
blockdev --getsize64 /dev/dm/asm-votedisk

image.png

192.168.40.136

image.png

检查生效

blockdev --getsize64 /dev/dm/asm-datadisk1
blockdev --getsize64 /dev/dm/asm-datadisk2
blockdev --getsize64 /dev/dm/asm-dcrdisk 
blockdev --getsize64 /dev/dm/asm-logdisk1
blockdev --getsize64 /dev/dm/asm-votedisk

image.png

安装数据库软件

只需要安装数据库软件,暂不需要安装数据库实例

mount /dev/cdrom /mnt
su - dmdba
cd /mnt
./DMInstall.bin -i
/dm/dmdbms/dm8/script/root/root_installer.sh

两节点DSC部署

配置dmdcr_cfg.ini

两个节点都要执行

su - dmdba
cd /dm/dmdbms/dm8/
mkdir data

vi /dm/dmdbms/dm8/data/dmdcr_cfg.ini

DCR_N_GRP = 3
DCR_VTD_PATH = /dev/dm/asm-votedisk  
DCR_OGUID = 63635

[GRP]  
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = xpc_css 
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60

[xpc_css]
DCR_EP_NAME = xpccss1 
DCR_EP_HOST = 192.168.253.128
DCR_EP_PORT = 9541

[xpc_css]
DCR_EP_NAME = xpccss2 
DCR_EP_HOST = 192.168.253.129
DCR_EP_PORT = 9542

[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = xpcasm 
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60

[xpcasm]
DCR_EP_NAME = xpcasm1 
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 192.168.253.128
DCR_EP_PORT = 9641
DCR_EP_ASM_LOAD_PATH = /dev/dm


[xpcasm]
DCR_EP_NAME = xpcasm2 
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 192.168.253.129
DCR_EP_PORT = 9642
DCR_EP_ASM_LOAD_PATH = /dev/dm

[GRP] 
DCR_GRP_TYPE = DB
DCR_GRP_NAME = xpcdsc 
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60

[xpcdsc]
DCR_EP_NAME = xpcdsc1 
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741


[xpcdsc]
DCR_EP_NAME = xpcdsc2 
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9742

image.png
image.png

初始化磁盘组

只需在一个节点上执行

# dmasmcmd
#asm script file
create dcrdisk '/dev/dm/asm-dcrdisk' 'dcr'
create votedisk '/dev/dm/asm-votedisk' 'vote'
init dcrdisk '/dev/dm/asm-dcrdisk' from '/dm/dmdbms/dm8/data/dmdcr_cfg.ini' identified by 'dmdsc'
init votedisk '/dev/dm/asm-votedisk' from '/dm/dmdbms/dm8/data/dmdcr_cfg.ini'
create asmdisk '/dev/dm/asm-datadisk1' 'datadisk1'
create asmdisk '/dev/dm/asm-logdisk1' 'logdisk1'
create asmdisk '/dev/dm/asm-datadisk2' 'datadisk2'

image.png

配置dmasvrmal.ini文件

两个节点都要执行

vi /dm/dmdbms/dm8/data/dmasvrmal.ini 

[MAL_INST1]
MAL_INST_NAME = xpcasm1 
MAL_HOST = 192.168.253.128
MAL_PORT = 7236

[MAL_INST2]
MAL_INST_NAME = xpcasm2 
MAL_HOST = 192.168.253.129
MAL_PORT = 7237

配置dmdcr.ini文件

节点1 dmdcr_seqo为0:

vi /dm/dmdbms/dm8/data/dmdcr.ini

DMDCR_PATH = /dev/dm/asm-dcrdisk
DMDCR_MAL_PATH = /dm/dmdbms/dm8/data/dmasvrmal.ini  
DMDCR_SEQNO = 0

DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm/dmdbms/dm8/bin/dmasmsvr DCR_INI=/dm/dmdbms/dm8/data/dmdcr.ini

DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm/dmdbms/dm8/bin/dmserver path=/dm/dmdbms/dm8/data/xpcdsc1_config/dm.ini DCR_INI=/dm/dmdbms/dm8/data/dmdcr.ini

image.png
节点2 dmdcr_seqo为1:

vi /dm/dmdbms/dm8/data/dmdcr.ini

DMDCR_PATH = /dev/dm/asm-dcrdisk
DMDCR_MAL_PATH = /dm/dmdbms/dm8/data/dmasvrmal.ini  
DMDCR_SEQNO = 1

DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm/dmdbms/dm8/bin/dmasmsvr DCR_INI=/dm/dmdbms/dm8/data/dmdcr.ini

DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm/dmdbms/dm8/bin/dmserver path=/dm/dmdbms/dm8/data/xpcdsc2_config/dm.ini DCR_INI=/dm/dmdbms/dm8/data/dmdcr.ini

image.png

关闭virbr0:

两个节点都要操作

在虚拟机里检查是不是有virbr0,一定要禁用,否则影响后面的使用

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

virbr0 默认分配了一个IP 192.168.122.1,并为连接其上的其他虚拟网卡提供 DHCP 服务
image.png
禁用端口

ifconfig virbr0 down

删除端口

brctl delbr virbr0

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

systemctl disable libvirtd 

image.png

注册服务

192.168.40.135

/dm/dmdbms/dm8/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm/dmdbms/dm8/data/dmdcr.ini -p xpcdsc1

/dm/dmdbms/dm8/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dm/dmdbms/dm8/data/dmdcr.ini -p xpcdsc1 -y DmCSSServicexpcdsc1

image.png
image.png
192.168.40.136

/dm/dmdbms/dm8/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm/dmdbms/dm8/data/dmdcr.ini -p xpcdsc2

/dm/dmdbms/dm8/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dm/dmdbms/dm8/data/dmdcr.ini -p xpcdsc2 -y DmCSSServicexpcdsc2

image.png
image.png

启动DMCSS、DMASM服务

192.168.40.135

root:
systemctl start DmCSSServicexpcdsc1 
systemctl start DmASMSvrServicexpcdsc1 

systemctl status DmCSSServicexpcdsc1
systemctl status DmASMSvrServicexpcdsc1
or:
su - dmdba 
DmCSSServicexpcdsc1 start 
DmASMSvrServicexpcdsc1 start

image.png
192.168.40.136

root:
systemctl start DmCSSServicexpcdsc2 
systemctl start DmASMSvrServicexpcdsc2 

systemctl status DmCSSServicexpcdsc2
systemctl status DmASMSvrServicexpcdsc2
or:
su - dmdba 
DmCSSServicexpcdsc2 start 
DmASMSvrServicexpcdsc2 start

image.png

dmasmtool 工具创建 DMASM 磁盘组

选择一个节点,启动 dmasmtool 工具

su - dmdba
dmasmtool DCR_INI=/dm/dmdbms/dm8/data/dmdcr.ini

image.png
输入下列语句创建 DMASM 磁盘组

 #创建日志磁盘组
create diskgroup 'dglog' asmdisk '/dev/dm/asm-logdisk1'
 #创建数据磁盘组
create diskgroup 'dgdata01' asmdisk '/dev/dm/asm-datadisk1'

image.png
image.png

准备dminit.ini配置文件

在两个节点的/dm/dmdbms/dm8/data/ 下创建dminit.ini文件,添加如下内容:

vi /dm/dmdbms/dm8/data/dminit.ini

db_name = xpcdsc 
system_path = +dgdata01/data
system = +dgdata01/data/xpcdsc/system.dbf 
system_size = 128
roll = +dgdata01/data/xpcdsc/roll.dbf 
roll_size = 128
main = +dgdata01/data/xpcdsc/main.dbf 
main_size = 128
ctl_path = +dgdata01/data/xpcdsc/dm.ctl 
ctl_size = 8
log_size = 256
dcr_path = /dev/dm/asm-dcrdisk 
dcr_seqno = 0
auto_overwrite = 1

[xpcdsc1]
#inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME对应
config_path = /dm/dmdbms/dm8/data/xpcdsc1_config 
port_num = 5236
mal_host = 192.168.253.128
mal_port = 9340
log_path = +dglog/log/xpcdsc1_log01.log 
log_path = +dglog/log/xpcdsc1_log02.log


[xpcdsc2]
#inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME对应
config_path = /dm/dmdbms/dm8/data/xpcdsc2_config 
port_num = 5236
mal_host = 192.168.253.129
mal_port = 9340
log_path = +dglog/log/xpcdsc2_log01.log 
log_path = +dglog/log/xpcdsc2_log02.log

image.png
image.png

使用dminit初始化DB环境

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

dminit control=/dm/dmdbms/dm8/data/dminit.ini
scp -r /dm/dmdbms/dm8/data/xpcdsc2_config 192.168.40.136:/dm/dmdbms/dm8/data/

image.png
image.png

启动集群

192.168.40.135

root:

/dm/dmdbms/dm8/script/root/dm_service_installer.sh -t dmserver -dm_ini /dm/dmdbms/dm8/data/xpcdsc1_config/dm.ini -dcr_ini /dm/dmdbms/dm8/data/dmdcr.ini -p xpcdsc1 -y DmASMSvrServicexpcdsc1
systemctl start DmServicexpcdsc1 
systemctl status DmServicexpcdsc1 
or:
su - dmdba 
DmServicexpcdsc1 start

image.png
192.168.40.136

root:

/dm/dmdbms/dm8/script/root/dm_service_installer.sh -t dmserver -dm_ini /dm/dmdbms/dm8/data/xpcdsc2_config/dm.ini -dcr_ini /dm/dmdbms/dm8/data/dmdcr.ini -p xpcdsc2 -y DmASMSvrServicexpcdsc2
systemctl start DmServicexpcdsc2
systemctl status DmServicexpcdsc2
or:
su - dmdba 
DmServicexpcdsc2 start

image.png

更改自动重启参数
两个节点都需要更改

vi /dm/dmdbms/dm8/data/dmdcr.ini

image.png

登录验证

disql  ##初始化的时候没有指定密码,登录时连续输入两次空格

image.png
修改密码

alter user sysdba identified by dameng123;

image.png
检查集群信息

select * from v$dsc_ep_info;select group_id,disk_id,disk_name,disk_path,size/1024 from V$ASMDISK;select path from v$datafile;

节点1:
image.png
image.png
节点2:
image.png
image.png

https://eco.dameng.com

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服