注册
达梦数据库高可用监视器部署
专栏/培训园地/ 文章详情 /

达梦数据库高可用监视器部署

绝影 2024/12/02 367 0 0
摘要

1. 服务器配置要求

建议配置高可用监视器的硬件规格
cpu: 8c
内存: 16g
磁盘容量: 500G (考虑到多套系统及后续日志增长)
是否可用虚拟机: 是
网卡: 网卡个数及带宽集群环境原则要求提供不低于 1000M 的心跳网络

2. 调整操作系统参数

因操作系统存在差异性,有些操作系统没有该文件,可不用修改该参数。以操作系统实际文件为准。

1. 调整sysctl.conf
[root@~]# 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.overcommit_memory = 0
vm.swappiness = 0
vm.dirty_background_ratio = 3
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
[root@~]# sysctl -p
[root@~]# sysctl -p /etc/sysctl.conf
[root@~]# sysctl -q vm.swappiness
2. 调整limits.conf
[root@~]# ulimit -n65536
[root@~]# vi /etc/security/limits.conf
  *  soft  nice    0
  *  hard  nice    0
  *  soft  as      unlimited
  *  hard  as      unlimited
  *  soft  fsize   unlimited
  *  hard  fsize   unlimited
  *  soft  nproc   65536
  *  hard  nproc   65536
  *  soft  nofile  65536
  *  hard  nofile  65536
  *  soft  core    unlimited
  *  hard  core    unlimited
  *  soft  data    unlimited
  *  hard  data    unlimited
[root@~]# vi /etc/security/limits.d/90-nproc.conf
  *  soft  nproc  65536
[root@~]# vi /etc/profile
ulimit -SHn 65536
3. 调整login
[root@~]# vi /etc/pam.d/login
session  required  /lib64/security/pam_limits.so
session  required  pam_limits.so
关闭selinux
[root@~]# vi /etc/sysconfig/selinux
SELINUX = disabled
4. 磁盘调度
cat /sys/block/sdb/queue/scheduler			--查看当前的调度方法
lsbl										--查看实际挂载盘k
dmesg | grep -i scheduler					--查看支持的调度方法
echo deadline > /sys/block/sda/queue/scheduler	--临时更改调度方法
永久修改:
CentOS7:
grubby --update-kernel=ALL --args="elevator=deadline"
reboot
cat /sys/block/sda/queue/scheduler
noop [deadline] cfq 

CentOS6:
# vim /boot/grub/menu.lst
更改到如下内容: ## 在 rhgb quiet 前添加 elevator=deadline 
kernel /boot/vmlinuz-2.6.32-504.el6 ro root=LABEL=/ elevator=deadline rhgb quiet
5. numa检查
dmesg | grep -i numa
grep -i numa /var/log/dmesg
cat /proc/cmdline
vi /etc/default/grub								关闭numa和透明大页
在GRUB_CMDLINE_LINUX后添加
numa=off transparent_hugepage=never
重新引导:
grub2-mkconfig -o /etc/grub2.cfg					--重启生效
透明大页检查
cat /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/enabled		--临时关闭
vi /etc/default/grub								--关闭numa和透明大页
在GRUB_CMDLINE_LINUX后添加
numa=off transparent_hugepage=never
重新引导:
grub2-mkconfig -o /etc/grub2.cfg					--重启生效

6. RemoveIPC参数设置
使用麒麟v10 SP1版本时,需要检查RemoveIPC参数设置,要求为no,否则将会出现数据库信号量丢失的情况。
--------检查 RemoveIPC  参数设置  要求为no
systemctl show systemd-logind  | grep -i removeipc

--------如果不是no,用以下方法调整,
修改/etc/systemd/logind.conf配置文件中的RemoveIPC参数,将#注释去掉,并修改yes为no,
重启服务systemctl daemon-reload;systemctl restart systemd-logind
ARENA参数
请大家注意关于上线规范里的ARENA参数未来要按4进行配置,方法在数据库服务启动目录中加入如下内容:
vi DmServiceDW1_01
export MALLOC_ARENA_MAX=1

2. 规划用户及安装目录

创建用户
[root@~]# groupadd dinstall -g 1001
[root@~]# useradd -g dinstall dmdba -u 1002
[root@~]# passwd dmdba
[root@~]# <输入密码>
[root@~]# <再次输入密码>
备注:dmdba密码统一给Dameng123,现场如有要求,以现场要求为准。
创建目录及授权
选择剩余存储空间最大的目录,安装数据库及初始化实例。
[root@~]# mkdir /opt/dmdbms
[root@~]# chown dmdba.dinstall /opt/dmdbms -R;chmod 777 /opt/dmdbms -R

3. 安装数据库软件

严禁使用root用户安装数据库及数据库相关操作。必须使用dmdba用户执行安装以及数据库相关操作。

命令行方式
安装数据库
数据库安装路径:/opt/dmdbms
[dmdba@~]# /opt/dmsetup/DMInstall.bin -i
请选择安装语言(C/c:中文 E/e:英文) [C/c]:C
解压安装程序..........
欢迎使用达梦数据库安装程序

是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:Y
请输入Key文件的路径地址 [dm.key]:/opt/dmsetup/dm.key
有效日期: 2025-16-25
服务器颁布类型: 企业版
发布类型: 试用版
用户名称: 武汉达梦公司疫情期间临时授权
授权用户数: 无限制
并发连接数: 无限制

是否设置时区? (Y/y:是 N/n:否) [Y/y]:Y
设置时区:
[ 1]: GTM-12=日界线西
[ 2]: GTM-11=萨摩亚群岛
[ 3]: GTM-10=夏威夷
[ 4]: GTM-09=阿拉斯加
[ 5]: GTM-08=太平洋时间(美国和加拿大)
[ 6]: GTM-07=亚利桑那
[ 7]: GTM-06=中部时间(美国和加拿大)
[ 8]: GTM-05=东部部时间(美国和加拿大)
[ 9]: GTM-04=大西洋时间(美国和加拿大)
[10]: GTM-03=巴西利亚
[11]: GTM-02=中大西洋
[12]: GTM-01=亚速尔群岛
[13]: GTM=格林威治标准时间
[14]: GTM+01=萨拉热窝
[15]: GTM+02=开罗
[16]: GTM+03=莫斯科
[17]: GTM+04=阿布扎比
[18]: GTM+05=伊斯兰堡
[19]: GTM+06=达卡
[20]: GTM+07=曼谷,河内
[21]: GTM+08=中国标准时间
[22]: GTM+09=汉城
[23]: GTM+10=关岛
[24]: GTM+11=所罗门群岛
[25]: GTM+12=斐济
[26]: GTM+13=努库阿勒法
[27]: GTM+14=基里巴斯
请选择设置时区 [21]:21

安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:1
所需空间: 1010M

请选择安装目录 [/home/dmdba/dmdbms]:/opt/dmdbms
可用空间: 11G

是否确认安装路径(/opt/dmdbms)? (Y/y:是 N/n:否)  [Y/y]:Y
安装前小结
安装位置: /opt/dmdbms
所需空间: 1010M
可用空间: 11G
版本信息: 企业版
有效日期: 2025-16-25
安装类型: 典型安装

是否确认安装? (Y/y:是 N/n:否):Y
2024-11-25 21:52:38 
[INFO] 安装达梦数据库...
2024-11-25 21:52:39 
[INFO] 安装 基础 模块...
2024-11-25 21:52:48 
[INFO] 安装 服务器 模块...
2024-11-25 21:52:48 
[INFO] 安装 客户端 模块...
2024-11-25 21:52:56 
[INFO] 安装 驱动 模块...
2024-11-25 21:52:58 
[INFO] 安装 手册 模块...
2024-11-25 21:53:00 
[INFO] 安装 服务 模块...
2024-11-25 21:53:02 
[INFO] 移动ant日志文件。
2024-11-25 21:53:03 
[INFO] 安装达梦数据库完成。

请以root系统用户执行命令:
/opt/dmdbms/script/root/root_installer.sh

安装结束

[dmdba@~]# su - root
密码:<输入密码>
[root@~]# /opt/dmdbms/script/root/root_installer.sh
移动 /opt/dmdbms/bin/dm_svc.conf 到/etc目录
修改服务器权限
创建DmAPService服务
Created symlink from /etc/systemd/system/multiuser.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service
创建服务(DmAPService)完成
启动DmAPService服务

4. 监视器高可用部署方案(3节点)

配置统一文件存放路径:/opt/dmdbms/bin
日志文件统一存放路径:/home/dmdba

1.监视器主机
dmdba用户配置ini文件
vi /opt/dmdbms/bin/dmmonitor1.ini

MON_DW_CONFIRM=1
MON_LOG_PATH=/home/dmdba/monlog
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT =2048

MON_INST_NUM=3 ###监视器实例数量
MON_HB_INTERVAL=60
MON_BRO_INTERVAL=100
MON_VOTE_INTERVAL=100
MON_ID=1 ###监视器在监视器系统中的id
MON_MID=202401 ###监视器唯一标识

[GDW1] ##数据库组名
MON_INST_OGUID = 45331   ##数据库组号
MON_DW_IP                = 192.168.128.31:5436  
MON_DW_IP                = 192.168.128.32:5436
MON_DW_IP                = 192.168.128.33:5436  
MON_DW_IP                = 192.168.128.34:5436

[MON1]
MON_HOST=192.168.128.41
MON_PORT=8339 ##监视器端口号
MON_INST_ID=1

[MON2]
MON_HOST=192.168.128.42
MON_PORT=8339
MON_INST_ID=2

[MON3]
MON_HOST=192.168.128.43
MON_PORT=8339
MON_INST_ID=3
root用户注册监视器服务
/opt/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p MONITOR1 -monitor_ini /opt/dmdbms/bin/dmmonitor1.ini
2.监视器备机1
dmdba用户配置ini文件
vi /opt/dmdbms/bin/dmmonitor2.ini

MON_DW_CONFIRM=1
MON_LOG_PATH=/home/dmdba/monlog
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT =2048

MON_INST_NUM=3 ###监视器实例数量
MON_HB_INTERVAL=60
MON_BRO_INTERVAL=100
MON_VOTE_INTERVAL=100
MON_ID=2 ###监视器在监视器系统中的id
MON_MID=202401 ###监视器唯一标识

[GDW1] ##数据库组名
MON_INST_OGUID = 45331   ##数据库组号
MON_DW_IP                = 192.168.128.31:5436  
MON_DW_IP                = 192.168.128.32:5436
MON_DW_IP                = 192.168.128.33:5436  
MON_DW_IP                = 192.168.128.34:5436

[MON1]
MON_HOST=192.168.128.41
MON_PORT=8339 ##监视器端口号
MON_INST_ID=1

[MON2]
MON_HOST=192.168.128.42
MON_PORT=8339
MON_INST_ID=2

[MON3]
MON_HOST=192.168.128.43
MON_PORT=8339
MON_INST_ID=3
root用户注册监视器服务
/opt/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p MONITOR2 -monitor_ini /opt/dmdbms/bin/dmmonitor2.ini
3.监视器备机2
dmdba用户配置ini文件
vi /opt/dmdbms/bin/dmmonitor3.ini

MON_DW_CONFIRM=1
MON_LOG_PATH=/home/dmdba/monlog
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT =2048

MON_INST_NUM=3 ###监视器实例数量
MON_HB_INTERVAL=60
MON_BRO_INTERVAL=100
MON_VOTE_INTERVAL=100
MON_ID=3 ###监视器在监视器系统中的id
MON_MID=202401 ###监视器唯一标识

[GDW1] ##数据库组名
MON_INST_OGUID = 45331   ##数据库组号
MON_DW_IP                = 192.168.128.31:5436  
MON_DW_IP                = 192.168.128.32:5436
MON_DW_IP                = 192.168.128.33:5436  
MON_DW_IP                = 192.168.128.34:5436

[MON1]
MON_HOST=192.168.128.41
MON_PORT=8339 ##监视器端口号
MON_INST_ID=1

[MON2]
MON_HOST=192.168.128.42
MON_PORT=8339
MON_INST_ID=2

[MON3]
MON_HOST=192.168.128.43
MON_PORT=8339
MON_INST_ID=3
root用户注册监视器服务
/opt/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p MONITOR3-3 -monitor_ini /opt/dmdbms/bin/dmmonitor3.ini
  • 前台启动监视器检测配置是否正常
    监视器主机
    /opt/dmdbms/bin/dmmonitor1.ini
    图2.png
    监视器备机1
    /opt/dmdbms/bin/dmmonitor2.ini
    图3.png
    监视器备机2
    /opt/dmdbms/bin/dmmonitor3.ini
    4.png
  • 后台启动监视器服务--先启主机再启备机
    监视器主机
    /opt/dmdbms/bin/DmMonitorServiceMonitor1 start
    监视器备机1
    /opt/dmdbms/bin/ DmMonitorServiceMonitor2 start
    监视器备机2
    /opt/dmdbms/bin/ DmMonitorServiceMonitor3 start
  • 状态确认
    将监视器注册服务在后台启动时可以通过日志查看状态,判断哪个是leader节点
    Leader节点日志中每隔一分钟会刷新集群状态信息
    5.png
    Ready节点日志没有信息刷新,显示处于ready状态
    6.png

6. 场景测试

  1. 监视器集群中只有leader节点可用提供服务,另外两个节点处于ready状态,当leader故障时则随机切换到两个ready节点中的一个
  2. 监视器高可用必须保证三个节点正常启动,否则无法提供监视器集群故障切换服务

场景一:如果三个节点中只有一个节点正常启动,则监视器始终处于ready状态,无作用
7.png
场景二:如果三个节点中有只两个节点正常启动,可以正常提供服务,但当监视器集群本身无法实现故障自动接管功能
场景三:ready节点故障不影响leader节点的使用
8.png

9.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服