1、介绍
1.1 DSC介绍
DM 共享存储数据库集群的英文全称 DM Data Shared Cluster,简称 DMDSC。
DM共享存储数据库集群,允许多个数据库实例同时访问、操作同一数据库,具有高可用、高性能、负载均衡等特性。DMDSC 支持故障自动切换和故障自动重加入,某一个数据库实例故障后,不会导致数据库服务无法提供。
1.2 DSC架构
1.3 环境介绍
1、IP规划:
主机名 | 服务ip | 心跳ip | 实例名 | 节点用途 |
dsc01 | 192.168.10.21 | 192.168.11.21 | DSC1 | DSC节点1 |
dsc02 | 192.168.10.22 | 192.168.11.22 | DSC2 | DSC节点2 |
2、端口规划:
实例名 | 实例端口 | MAL系统端口 | CSS端口 | ASM端口 | ASM的MAL端口 | DCR检查实例端口 |
DSC1 | 5236 | 9236 | 9341 | 9351 | 7236 | 9741 |
DSC2 | 5236 | 9236 | 9341 | 9351 | 7236 | 9741 |
3、共享存储规划:
磁盘 | 裸设备名/用途 |
/dev/dm_data01(10G) | /dev/sde(数据盘) |
/dev/dm_dcr(1G) | /dev/sdb (DCR磁盘) |
/dev/dm_vote(1G) | /dev/sdc(vote磁盘) |
/dev/dm_log(5G) | /dev/sdd(redo日志磁盘) |
4、目录规划:(在对应服务器上创建目录owner为dmdba组为dinstall)
数据库软件安装目录 | /dm/dmdbms |
DSC配置文件目录 | /dm/config |
DSC1本地归档目录 | +DMDATA/dsc/dsc1/arch |
DSC1远程归档目录 | +DMDATA/dsc/dsc2/arch |
DSC2本地归档目录 | +DMDATA/dsc/dsc2/arch |
DSC2本地归档目录 | +DMDATA/dsc/dsc1/arch |
2、dsc环境配置
2.1 安装数据库软件
创建用户
groupadd dinstall
useradd -g dinstall -m -d /home/dmdba dmdba
创建数据库软件安装目录dmdbms和coredump目录core
mkdir -pv /dm/{dmdbms,core}
chown dmdba:dinstall /dm -R
配置内核参数
vi /etc/sysctl.conf
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
vm.swappiness = 0
vm.dirty_background_ratio = 3
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
kernel.core_pattern=/dm/core/%e.core.%p
配置生效
sysctl -p
配置资源限制
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 noproc 65536
dmdba hard noproc 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
安装数据库软件
./DMInstall.bin -i
根据提示进行安装。
2.2 配置udev规则
使用/usr/lib/udev/scsi_id -g -u -d /dev/sdb命令,取出sdb到sde磁盘的uuid。
编辑udev规则
vi /etc/udev/rules.d/99-dm-asmdevices.rules
KERNEL=="sd*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode ",RESULT=="3c4d373a-00bc-11ec-aedc-1c20db5677de", SYMLINK+="dm_vote",OWNER="dmdba",GROUP="dinstall",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode ",RESULT=="487717ce-00bc-11ec-aedc-1c20db5677de", SYMLINK+="dm_dcr",OWNER="dmdba",GROUP="dinstall",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode ",RESULT=="5450fea2-00bc-11ec-aedc-1c20db5677de", SYMLINK+="dm_redo",OWNER="dmdba",GROUP="dinstall",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode ",RESULT=="6737235c-00bc-11ec-aedc-1c20db5677de", SYMLINK+="dm_data001",OWNER="dmdba", GROUP="dinstall",MODE="0660"
生效编辑的udev规则
sudo udevadm control --reload
sudo udevadm trigger --type=devices --action=change
2.3 配置DCR初始化配置文件
创建配置文件存放目录,2 个节点都要执行,使用 dmdba 用户,执行以下命令:
mkdir -p /dm/config
新建 dmdcr_cfg.ini 文件,节点 1 使用 dmdba 用户,执行以下命令:
vim /dm/config/dmdcr_cfg.ini
添加以下内容:
DCR_N_GRP = 3 DCR_VTD_PATH = /dev/dm_vote DCR_OGUID = 20210909 [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.10.21 DCR_EP_PORT = 9341 [CSS] DCR_EP_NAME = CSS2 DCR_EP_HOST = 192.168.10.22 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.11.21 DCR_EP_PORT = 9351 DCR_EP_ASM_LOAD_PATH = /dev/ [ASM] DCR_EP_NAME = ASM2 DCR_EP_SHM_KEY = 93361 DCR_EP_SHM_SIZE = 500 DCR_EP_HOST = 192.168.11.22 DCR_EP_PORT = 9351 DCR_EP_ASM_LOAD_PATH = /dev/ [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 |
2.4 创建ASM磁盘
使用 dmdba 用户,执行以下命令(只需在一个节点执行)。
dmasmcmd
进入 ASM 提示符后执行以下命令:
create dcrdisk '/dev/dm_dcr' 'dcr'
create votedisk '/dev/dm_vote' 'vote'
init dcrdisk '/dev/dm_dcr' from '/dm/config/dmdcr_cfg.ini' identified by '123456'
init votedisk '/dev/dm_vote' from '/dm/config/dmdcr_cfg.ini'
create asmdisk '/dev/dm_redo' 'LOG0'
create asmdisk '/dev/dm_data001' 'DATA0'
2.5 配置ASM的MAL系统配置文件
2 个节点都需要配置,且文件内容相同,执行以下命令:
vi /dm/config/dmasvrmal.ini
添加以下内容:
[MAL_INST1] |
2.6 配置DCR启动配置文件
vi /dm/config/dmdcr.ini
节点 1(DSC1) 添加以下内容:
DMDCR_PATH = /dev/dm_dcr path=/dm/config/dsc1/dm.ini dcr_ini=/dm/config/dmdcr.ini |
节点 2(DSC2) 添加以下内容:
DMDCR_PATH = /dev/dm_dcr path=/dm/config/dsc2/dm.ini dcr_ini=/dm/config/dmdcr.ini |
2.7 启动DMCSS服务
2 个节点启动 dmcss,dmdba 用户到数据库安装目录 bin 下执行以下命令:(以前台方式启动,仅为测试部署是否成功)
dmcss dcr_ini=/dm/config/dmdcr.ini
css 服务启动后会自动拉起asm服务(出现 asm is ready 即表明启动成功)
注意:不要关闭,会面配置需要连接asm服务配置磁盘组,和初始化数据库。
2.8 创建ASM磁盘组
asm 启动成功后,节点 1 (DSC1,只需在一个节点执行即可)使用 dmdba 用户启动 dmasmtool 工具。
masmtool dcr_ini=/dm/config/dmdcr.ini
在 ASM 提示符下创建 asm 磁盘组,创建 redo 日志磁盘组,执行以下命令:
create diskgroup 'DMLOG' asmdisk '/dev/dm_redo'
创建数据文件磁盘组,执行以下命令:
create diskgroup 'DMDATA' asmdisk '/dev/dm_data001'
2.9 初始化dsc集群数据库
配置 dminit 控制文件,节点 1 使用 dmdba 用户执行以下命令:
vi /dm/config/dminit.ini
添加以下内容:
db_name = DSC system_path = +DMDATA/data system = +DMDATA/data/dsc/system.dbf system_size = 2048 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/dm_dcr #dcr磁盘路径,目前不支持asm,只能是裸设备 dcr_seqno = 0 auto_overwrite = 1 charset = 0 #字符集为gb18030 case_sensitive = 1 #大小写敏感 page_size =32 [DSC1] #inst_name跟dmdcr_cfg.ini中DB类型group中DCR_EP_NAME对应 config_path = /dm/config/dsc1 port_num = 5236 mal_host = 192.168.11.21 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 = /dm/config/dsc2 port_num = 5236 mal_host = 192.168.11.22 mal_port = 9236 log_path = +DMLOG/log/dsc2_log01.log log_path = +DMLOG/log/dsc2_log02.log |
初始化实例,节点 1 使用 dmdba 用户执行以下命令:
dminit control=/dm/config/dminit.ini
初始化完成后会在 init 控制文件配置的目录(config_path参数配置的目录)下生成 2 个实例的配置文件,需要手动将节点2的配置文件,从节点1复制到节点2对应目录。
cd /dm/config
scp -r dsc2 192.168.11.22:/dm/config/
观察两个节点的 css 窗口日志,db 会被自动启动。出现 system is ready ep real open,说明数据库实例启动成功。
2.10 注册服务
以上启动方式为前台启动,仅用于验证集群配置过程。配置成功后需要注册为系统服务,方便启动和关闭集群,以及实现开机自动启动。
2 个节点都需要注册,使用 root 用户执行,到数据库安装目录的 script/root 目录。
节点 1 执行以下命令:
sudo ./dm_service_installer.sh -t dmcss -p css1 -dcr_ini /dm/config/dmdcr.ini
节点 2 执行以下命令:
sudo ./dm_service_installer.sh -t dmcss -p css2 -dcr_ini /dm/config/dmdcr.ini
关闭前台启动的 css,以服务方式启动 css。
节点 1 使用dmdba执行以下命令:
cd /dm/dmdbms/bin
./DmCSSServicecss1 start
节点 2 使用dmdba执行以下命令:
cd /dm/dmdbms/bin
./DmCSSServicecss2 start
CSS服务启动后,会自动拉起ASM服务,自动启动数据库实例。
3、其他配置
3.1 配置归档
2个节点修改配置文件
DSC1节点修改
vi /dm/config/dsc1/dm.ini
修改ARCH_INI =1
DSC2节点修改
vi /dm/config/dsc2/dm.ini
修改ARCH_INI =1
新建归档配置文件与dm.ini同目录
DSC1节点新建:
vi /dm/config/dsc1/dmarch.ini
ARCH_LOCAL_SHARE = 1
ARCH_LOCAL_SHARE_CHECK = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/dsc/dsc1/arch
ARCH_FILE_SIZE = 64
ARCH_SPACE_LIMIT = 512
[ARCH_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC2
ARCH_INCOMING_PATH = +DMDATA/dsc/dsc2/arch
ARCH_FILE_SIZE = 64
ARCH_SPACE_LIMIT = 512
[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmarch
ARCH_FILE_SIZE = 64
ARCH_SPACE_LIMIT = 512
DSC2节点新建:
vi /dm/config/dsc2/dmarch.ini
ARCH_LOCAL_SHARE = 1
ARCH_LOCAL_SHARE_CHECK = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/dsc/dsc2/arch
ARCH_FILE_SIZE = 64
ARCH_SPACE_LIMIT = 512
[ARCH_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_INCOMING_PATH = +DMDATA/dsc/dsc1/arch
ARCH_FILE_SIZE = 64
ARCH_SPACE_LIMIT = 512
[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmarch
ARCH_FILE_SIZE = 64
ARCH_SPACE_LIMIT = 512
重启数据库开启归档模式。
3.2 配置集群监视器
任意节点新建监视器配置文件,执行以下命令:
vi /dm/config/dmcssm.ini
添加以下内容:
#和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致 |
启动监视器,dmdba 用户执行.
dmcssm ini_path=/dm/config/dmcssm.ini
3.3 启停集群
在集群监视器交互界面停止DSC,执行
ep stop DSC
执行成功后再停止ASM ,执行
ep stop ASM
执行成功后,最后停止css服务
节点 1 执行以下命令:
./DmCSSServicecss1 stop
节点 2 执行以下命令:
./DmCSSServicecss2 stop
以上完成集群的停止。
启动集群:
节点 1 执行以下命令:
./DmCSSServicecss1 start
节点 2 执行以下命令:
./DmCSSServicecss2 stop
CSS启动后会自动拉起ASM和DSC服务。
总结
更多资讯请上达梦技术社区了解:https://eco.dameng.com