文章目录
1、部署规划
本次部署为2节点DSC集群
IP规划
主机名 | 服务IP | 心跳IP | 实例名 | 节点用途 |
---|---|---|---|---|
stsz180050 | 192.168.8.100 | 192.168.3.100 | DSC1 | DSC节点1 |
stsz180051 | 192.168.8.101 | 192.168.3.101 | DSC2 | DSC节点2 |
端口规划
实例名 | 实例端口 | MAL系统端口 | CSS端口 | ASM端口 | ASM的MAL端口 | DCR检查实例端口 |
---|---|---|---|---|---|---|
DSC1 | 5236 | 9236 | 9341 | 9351 | 7236 | 9741 |
DSC2 | 5236 | 9236 | 9341 | 9351 | 7236 | 9741 |
共享存储规划
实际地址 | udev映射地址 |
---|---|
/dev/sdc(5G) | /dev/rac1/asmdisk1(数据磁盘) |
/dev/sde(5G) | /dev/rac1/asmdisk2(DCR磁盘) |
/dev/sdd(5G) | /dev/rac1/asmdisk4(vote磁盘) |
/dev/sdf(1G) | /dev/rac1/asmdisk3(redo日志磁盘) |
注:
redo日志磁盘大小为1G,会影响log_size参数大小(日志个数*日志大小< 1024)
目录规划(部署目录owner为dmdba,属组为dinstall)
目录名 | 路径 |
---|---|
数据库软件安装目录 | /home/dmdba/dmdbms |
DSC配置文件目录 | /home/dmdba/config |
DSC1本地归档目录 | +DMDATA/dsc/dsc1/arch |
DSC1远程归档目录 | +DMDATA/dsc/dsc2/arch |
DSC2本地归档目录 | +DMDATA/dsc/dsc2/arch |
DSC2远程归档目录 | +DMDATA/dsc/dsc1/arch |
备份目录 | /dmbak |
2、数据库软件安装
2个节点上安装数据库软件
在节点1安装好数据库软件,再克隆一份(作为节点2)
操作系统配置
修改内核参数
vi /etc/sysctl.conf
添加以下内容
vm.swappiness=10
vm.dirty_background_ratio = 0
使参数生效
sysctl -p
新建数据库管理用户和组
groupadd dinstall -g 2001
useradd -G dinstall -m -d /home/dmdba -s /bin/bash dmdba -u 2001
passwd dmdba
修改用户资源限制
vim /etc/security/limits.conf
文件末尾添加如下内容:
dmdba soft nice 0
dmdba hard nice 0
dmdba soft as unlimited
dmdba hard as unlimited
dmdba soft fsize unlimited
dmdba hard fsize unlimited
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft data unlimited
dmdba hard data unlimited
注:
检查/etc/security/limits.d/目录下是否有其他限制资源的配置文件,如果有也需要修改
修改 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
网卡配置
vmwae配置
服务网卡配置
ip addr
cd /etc/sysconfig/network-scripts
vi ifcfg-ens33
修改并添加
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.8.101
NETMASK=255.255.255.0
GATEWAY=192.168.8.2
DNS1=8.8.8.8
心跳网卡配置
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.3.101
注意:
使用克隆的方式,需删除配置文件里的UUID
重启网络
systemctl stop network
systemctl start network
关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
数据库软件安装
使用 dmdba 用户安装软件(所有节点都安装软件)
执行 DMInstall.bin 文件开始安装,选择【-i】参数以命令行方式安装。
./DMInstall.bin -i
选择安装程序的语言 c/C 为中文,e/E 为英文。
提示是否安装 key 文件,输入 N 跳过。
选择时区,21 即东 8 区。
选择安装类型,默认典型安装(包含所有内容)。
选择软件安装目录,默认/home/dmdba/dmdbms
确认安装
安装完成提示使用 root 执行脚本:
/home/dmdba/dmdbms/script/root/root_installer.sh
注意:
此处不需要初始化实例,安装数据库软件即可
安装完后,开始克隆节点2
3、DSC集群部署
多路径配置multipath
两台主机上都需要配置
sdc-sdf 是需要配置的共享磁盘,使用多路径绑定为
data_lun01,dcr_lun01,redo_lun01,vote_lun01
虚拟机添加共享磁盘
两个主机都关机,主机1创建磁盘,主机2添加已存在的磁盘,最终配置如下:
注:
也可以只创建一个较大的磁盘,后续通过分区的方式,分成sdb1、sdb2、sdb3、sdb4
修改两台虚拟机的配置文件(.vmx)
文件末尾添加
disk.locking = "FALSE"
disk.EnableUUID = "TRUE"
scsi1:1.SharedBus = "Virtual"
scsi1:2.SharedBus = "Virtual"
scsi1:3.SharedBus = "Virtual"
scsi1:4.SharedBus = "Virtual"
注:
添加后,才能两台虚拟机才能同时运行,否则会有锁。
挂载镜像
mount -o loop /dev/sr0 /mnt
配置本地yum源
vi /etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
初始化yum
yum repolist all
yum clean all
yum makecache
下载multipath
yum list|grep multipath
yum -y install device-mapper-multipath.x86_64
查看磁盘uuid
lsscsi -i
将共享存储的uuid写入下面的文件中
vi /etc/multipath/wwids
/36000c29820c422ac7ea6d0fa5cd70394/
/36000c290083a3ced85315a053050f16d/
/36000c29d4d8d500efa811c7d7d2d70d6/
/36000c29acf6c3a168fa92a9200922852/
编写配置文件/etc/multipath.conf
find / -name "multipath.conf"
cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc
vi /etc/multipath.conf
末尾添加
multipaths {
multipath {
wwid 36000c29820c422ac7ea6d0fa5cd70394
alias data_lun01
}
multipath {
wwid 36000c290083a3ced85315a053050f16d
alias dcr_lun01
}
multipath {
wwid 36000c29d4d8d500efa811c7d7d2d70d6
alias vote_lun01
}
multipath {
wwid 36000c29acf6c3a168fa92a9200922852
alias redo_lun01
}
}
重启multipathd
systemctl restart multipathd.service
systemctl enable multipathd.service
systemctl status multipathd.service
开启多路径
multipath -v3
查看多路径是否成功
multipath -ll
udev配置
新建udev规则文件
vi /etc/udev/rules.d/99-dm-asmdevices.rules
ACTION=="add|change",ENV{DM_UUID}=="mpath-36000c29820c422ac7ea6d0fa5cd70394",SYMLINK+="rac1/asmdisk1",OWNER="dmdba",GROUP="dinstall",MODE="0660",OPTIONS="nowatch"
ACTION=="add|change",ENV{DM_UUID}=="mpath-36000c290083a3ced85315a053050f16d",SYMLINK+="rac1/asmdisk2",OWNER="dmdba",GROUP="dinstall",MODE="0660",OPTIONS="nowatch"
ACTION=="add|change",ENV{DM_UUID}=="mpath-36000c29d4d8d500efa811c7d7d2d70d6",SYMLINK+="rac1/asmdisk4",OWNER="dmdba",GROUP="dinstall",MODE="0660",OPTIONS="nowatch"
ACTION=="add|change",ENV{DM_UUID}=="mpath-36000c29acf6c3a168fa92a9200922852",SYMLINK+="rac1/asmdisk3",OWNER="dmdba",GROUP="dinstall",MODE="0660",OPTIONS="nowatch"
使udev生效
udevadm control --reload
udevadm trigger --type=devices --action=change
partprobe
检查配置是否成功
ll /dev/rac1/asm\*
注:
如果查看不到配置的裸设备,请重启服务器再验证
配置DCR初始化配置文件
创建配置文件存放目录(2个节点都执行,dmdba用户)
mkdir -p /home/dmdba/config
新建dmdcr_cfg.ini(节点1,dmdba用户)
vim /home/dmdba/config/dmdcr_cfg.ini
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/rac1/asmdisk4
DCR_OGUID = 63635
[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = CSS
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.3.100
DCR_EP_PORT = 9341
[CSS]
DCR_EP_NAME = CSS2
DCR_EP_HOST = 192.168.3.101
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 = 500
DCR_EP_HOST = 192.168.3.100
DCR_EP_PORT = 9351
DCR_EP_ASM_LOAD_PATH = /dev/rac1
[ASM]
DCR_EP_NAME = ASM2
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 500
DCR_EP_HOST = 192.168.3.101
DCR_EP_PORT = 9351
DCR_EP_ASM_LOAD_PATH = /dev/rac1
[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 = 5236
DCR_CHECK_PORT = 9741
[DSC]
DCR_EP_NAME = DSC2
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741
创建ASM磁盘
使用 dmdba 用户,执行以下命令(只需在一个节点执行)
dmasmcmd
进入 ASM 提示符后执行以下命令
create dcrdisk '/dev/rac1/asmdisk2' 'dcr'
create votedisk '/dev/rac1/asmdisk4' 'vote'
create asmdisk '/dev/rac1/asmdisk3' 'LOG0'
create asmdisk '/dev/rac1/asmdisk1' 'DATA0'
init dcrdisk '/dev/rac1/asmdisk2' from '/home/dmdba/config/dmdcr_cfg.ini' identified by '123456'
init votedisk '/dev/rac1/asmdisk4' from '/home/dmdba/config/dmdcr_cfg.ini'
配置ASM的MAL系统配置文件
2个节点都执行,dmdba用户
vi /home/dmdba/config/dmasvrmal.ini
[MAL_INST1]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.3.100
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM2
MAL_HOST = 192.168.3.101
MAL_PORT = 7236
配置DCR启动配置文件
vi /home/dmdba/config/dmdcr.ini
节点1,dmdba用户
DMDCR_PATH = /dev/rac1/asmdisk2
DMDCR_MAL_PATH =/home/dmdba/config/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL =10
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/config/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 30
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/config/dsc1/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini
节点2,dmdba用户
DMDCR_PATH = /dev/rac1/asmdisk2
DMDCR_MAL_PATH =/home/dmdba/config/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 1
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL =10
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/config/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 30
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/config/dsc2/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini
启动DMCSS服务
2 个节点启动 dmcss,dmdba 用户到数据库安装目录 bin 下执行以下命令:
以前台方式启动,仅为测试部署是否成功
dmcss dcr_ini=/home/dmdba/config/dmdcr.ini
注:
此窗口不要关闭,后续检查部署是否成功使用!
css 服务启动后会自动拉起 asm 服务(出现 asm is ready)
成功标志:
the ASM server is Ready.
检查ASM
ps -ef\|grep asm
创建ASM磁盘
asm 启动成功后,节点 1 (DSC1,只需在一个节点执行即可)使用 dmdba
用户启动dmasmtool 工具。
dmasmtool dcr_ini=/home/dmdba/config/dmdcr.ini
创建redo日志磁盘组、数据文件磁盘组
create diskgroup 'DMLOG' asmdisk '/dev/rac1/asmdisk3'
create diskgroup 'DMDATA' asmdisk '/dev/rac1/asmdisk1'
初始化DSC集群数据库实例
配置 dminit 控制文件(节点 1,dmdba 用户)
vi /home/dmdba/config/dminit.ini
添加以下内容:
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 = 128
dcr_path = /dev/rac1/asmdisk2 #dcr 磁盘路径,目前不支持 asm,只能是裸设备
dcr_seqno = 0
auto_overwrite = 1
charset =1 #字符集为 utf8
page_size =32
[DSC1] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/dmdba/config/dsc1
port_num = 5236
mal_host = 192.168.3.100
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 = 5236
mal_host = 192.168.3.101
mal_port = 9236
log_path = +DMLOG/log/dsc2_log01.log
log_path = +DMLOG/log/dsc2_log02.log
初始化实例(节点1,dmdba用户)
dminit control=/home/dmdba/config/dminit.ini
初始化DSC集群数据库实例成功后显示:
write to dir \[+DMDATA/data/DSC\].
create dm database success. 2021-10-18 21:55:12
若初始化失败,出现以下报错:
create ini file /home/dmdba/config/dsc1/dm.ini success.
create ini file /home/dmdba/config/dsc2/dm.ini success.
create rlog file +DMLOG/log/dsc1_log01.log failed, code: -7013.
fail to init db.
可能的原因是:
log_size设置过大,此处需要创建4个log,故log_size必须小于+DMLOG磁盘组总大小的四分之一
初始化完成后会在 init 控制文件配置的目录(config_path参数配置的目录)下生成 2 个实例的配置文件
将节点2的配置文件目录,从节点1复制到节点2
cd /home/dmdba/config
scp -r dsc2 192.168.3.101:/home/dmdba/config/
观察两个节点的 css 窗口日志,db 会被自动启动。
出现 system is ready ep real open,说明数据库实例启动成功。
css窗口日志
SYSTEM IS READY.
check CSS cmd: EP OPEN, cmd_seq: 17
iid page's trxid[5013]
NEXT TRX ID = 6017.
check CSS cmd: EP REAL OPEN, cmd_seq: 20
注册服务
以上启动方式为前台启动,仅用于验证集群配置过程。
配置成功后需要注册为系统服务,方便启动和关闭集群,以及实现开机自动启动。
2 个节点都需要注册,使用 root 用户执行,到数据库安装目录的 script/root
cd /home/dmdba/dmdbms/script/root
节点1执行,root用户
./dm_service_installer.sh -t dmcss -p css1 -dcr_ini /home/dmdba/config/dmdcr.ini
节点2执行,root用户
./dm_service_installer.sh -t dmcss -p css2 -dcr_ini /home/dmdba/config/dmdcr.ini
关闭前台启动的css,以服务方式启动css
节点1执行,root用户
systemctl start DmCSSServicecss1.service
节点2执行,root用户
systemctl start DmCSSServicecss2.service
CSS 服务启动后,会自动拉起 ASM 服务,自动启动数据库实例。
DSC部署检查
成功部署后,执行以下命令输出如下:
disql SYSDBA/SYSDBA
select * from v$dsc_ep_info;
达梦云适配中心:
https://eco.dameng.com