达梦数据守护集群搭建(1主1实时备库1同步备库1异步备库)

目录

1 环境信息 

1.1 目录信息

1.2 其他环境信息

2 环境准备

2.1 新建dmdba用户

2.2 关闭防火墙

2.3 关闭Selinux

2.4 关闭numa和透明大页

2.5 修改文件打开最大数

2.6 修改磁盘调度

2.7 修改cpufreq模式

2.8 信号量修改

2.9 修改sysctl.conf

2.10 修改 /etc/systemd/system.conf

2.11 修改/etc/pam.d/login

2.12 关闭swap

2.13 调整core文件生成路径

2.13.1打开core dump

2.13.2调整路径:

2.14 重启操作系统

2.15 创建相关目录并给权限:

2.16 挂载镜像

3 数据库软件安装

3.1 软件安装

3.2 环境变量配置:

4 数据库实例配置

4.1 配置实例

4.2 注册服务

5 集群搭建

5.1 主库使用dmrman做冷备

5.2 传输备份集到备库进行还原

5.3 主备机修改配置文件

5.3.1 修改dm.ini

5.3.2 创建dmmal.ini

5.3.3 创建dmarch.ini

5.3.4 创建dmwatcher.ini

5.3.5 创建dmtimer.ini

5.3.6 修改sqllog.ini

5.4 启动数据库,修改状态

5.4.1 启动主库,检查主库状态

5.4.2 启动备库,检查备库状态

5.5 注册并启动数据守护服务

5.6 注册并启动监视器服务

5.6.1 创建dmmonitor.ini

5.6.2 注册并启动监视器服务

6 验证数据守护是否搭建完成

7 参数优化

8 集群启停


1 环境信息 

1.1 目录信息

达梦软件安装目录

/dm8/dmdbms

数据文件目录

/dmdata

归档目录

/dmarch

备份目录

/dmbak

sql日志目录

/dm8/dmdbms/log/sqllog

1.2 其他环境信息

操作系统

Centos 7.9

CPU以及核总数

Intel x86 8C

内存

16G

硬盘容量

500G

数据库版本

DM V8.1.2.18 pack13

2 环境准备

注意

1、以下操作均是主备机都执行

2、安装前必须创建dmdba用户,禁止使用root用户安装数据库。

2.1 新建dmdba用户

创建用户所在的组:
groupadd dinstall
创建用户:
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
修改用户密码:
passwd dmdba
Dmdba123
Dmdba123

2.2 关闭防火墙

停止:systemctl stop firewalld.service
关闭开机自启:systemctl disable firewalld.service
查看状态:systemctl status firewalld.service

2.3 关闭Selinux

vi /etc/sysconfig/selinux
SELINUX=disabled
cat /etc/sysconfig/selinux

2.4 关闭numa和透明大页

vi /etc/default/grub
在GRUB_CMDLINE_LINUX后添加
numa=off transparent_hugepage=never
重新生成配置文件:
grub2-mkconfig -o /etc/grub2.cfg
重启生效(慎重)--如系统中已有业务正在运行,请申请重启窗口,谨慎操作。
验证numa:
验证1:
dmesg | grep -i numa
验证transparent_hugepage=never:
cat /sys/kernel/mm/transparent_hugepage/enabled

2.5 修改文件打开最大数

vi /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  131072
dmdba  hard  nproc  131072
dmdba  soft  nofile  131072
dmdba  hard  nofile  131072
dmdba  soft  core  unlimited
dmdba  hard  core  unlimited
dmdba  soft  data  unlimited
dmdba  hard  data  unlimited
切换到dmdba用户,查看是否生效,命令如下:
su - dmdba
ulimit -a

2.6 修改磁盘调度

通过lsblk命令找到数据盘对应的物理盘。
##检查sda磁盘的调度算法
cat /sys/block/vdc/queue/scheduler
##临时更改I/O调度方法,重启后失效
echo mq-deadline > /sys/block/vdc/queue/scheduler
##永久修改
##修改内核引导参数,加入elevator=deadline
vi /boot/grub/menu.lst
##更改到如下内容,在rhgb quiet前添加elevator=deadline
kernel /boot/vmlinuz-2.6.32-504.el6 ro root=LABEL=/ elevator=deadline rhgb quiet
##重新确认调度算法
[root@~]# cat /sys/block/vdc/queue/scheduler

2.7 修改cpufreq模式

cat /proc/cpuinfo   查看CPU信息,确认processor个数cpu_num。
for i in $(seq 0 $cpu_num); do
echo 'performance' >/sys/devices/system/cpu/cpu$i/cpufreq/scaling_governor
done

cpufreq是一个动态调整cpu频率的模块,系统启动时生成一个文件夹/sys/devices/system/cpu/cpu0/cpufreq/,里面有几个文件,其中:
scaling_min_freq 代表最低频率,
scaling_max_freq 代表最高频率,
scalin_governor 代表cpu频率调整模式,用它来控制CPU频率

2.8 信号量修改

vi /etc/systemd/logind.conf
RemoveIPC 修改为 no

2.9 修改sysctl.conf

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
生效:
sysctl -p
sysctl -p /etc/sysctl.conf
sysctl -q vm.swappiness

2.10 修改 /etc/systemd/system.conf

vi /etc/systemd/system.conf
添加:
DefaultLimitNOFILE = 65536
DefaultLimitNPROC = 10240

2.11 修改/etc/pam.d/login

vi /etc/pam.d/login
echo "session  required  /lib64/security/pam_limits.so" >>/etc/pam.d/login
echo "session  required  pam_limits.so" >>/etc/pam.d/login

2.12 关闭swap

swapoff -a
mount -a

2.13 调整core文件生成路径

2.13.1打开core dump

--使用 ulimit -c 命令可查看core文件的生成开关。若结果为0,则表示关闭了此功能,不会生成core文件。
--打开core dump
echo "ulimit -c unlimited" >> /etc/profile
source /etc/profile
--检查是否生效:
--再次检查:
ulimit -c

2.13.2调整路径

新建存放目录(根据磁盘实际大小规划存放)
mkdir -p /home/dmdba/core
chown -R dmdba.dinstall /home/dmdba/core
调整core文件路径
vi /etc/sysctl.conf 添加对应core文件参数
kernel.core_pattern =/home/dmdba/core-%e-%p-%s
执行 sysctl -p 进行生效

2.14 重启操作系统

2.15 创建相关目录并给权限:

主备机以及监视器均执行
mkdir -p /dm8/dmdbms
mkdir -p /dmdata
mkdir -p /dmarch
mkdir -p /dmbak
mkdir -p /dm8/dmdbms/log/sqllog
chown dmdba:dinstall -R /dm8/dmdbms
chown dmdba:dinstall -R /dmdata
chown dmdba:dinstall -R /dmarch
chown dmdba:dinstall -R /dmbak
chown dmdba:dinstall -R /dm8/dmdbms/log/sqllog
chmod -R 755 /dm8/dmdbms
chmod -R 755 /dmdata
chmod -R 755 /dmarch
chmod -R 755 /dmbak
chmod -R 755 /dm8/dmdbms/log/sqllog

2.16 挂载镜像

root用户将DM数据库的iso安装包保存在任意位置,例如/opt目录下,执行如下命令挂载镜像:

chown -R dmdba:dinstall /opt/dmsetup/dm8_20210818_x86_rh7_64_ent_8.1.2.18_pack13.iso
chmod -R 775 /opt/dmsetup/dm8_20210818_x86_rh7_64_ent_8.1.2.18_pack13.iso
mount -o loop /opt/ dm8_20210818_x86_rh7_64_ent_8.1.2.18_pack13.iso /mnt

3 数据库软件安装

主备机以及监视器都执行

3.1 软件安装

切换至 dmdba 用户下,在 /mnt 目录下使用命令行安装数据库程序,依次执行以下命令安装 DM 数据库。

su - dmdba
cd /mnt/
./DMInstall.bin -i
按需求选择安装语言,默认为中文。输入Key文件路径,没有正式key可不选择。(n) 安装目录输入:/dm8/dmdbms,其他为默认即可。
数据库安装大概 1~2 分钟,数据库安装完成后,显示如下:(root用户安装不显示)
[INFO] 安装达梦数据库完成。
请以root系统用户执行命令:
/dm8/dmdbms/script/root/root_installer.sh
安装结束数据库安装完成后,需要按照显示要求切换至root用户执行上图中的命令/dm8/dmdbms /script/root/root_installer.sh

3.2 环境变量配置:

vim .bash_profile
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH: /dm8/dmdbms/bin"
export DM_HOME="/dm8/dmdbms"
export PATH=$PATH:$DM HOME/bin:$DM HOME/tool
source .bash_profile

4 数据库实例配置

4.1 配置实例

dminit 命令可设置多种参数,可执行./dminit help命令查看可配置参数。

注意:页大小 (page_size)、簇大小 (extent_size)、大小写敏感 (case_sensitive)、字符集 (charset) 这四个参数,一旦确定无法修改,需谨慎设置。

具体参数信息根据实际进行调整,本文以兼容Oracle数据库,字符集GBK为例。详细参数信息请参考达梦管理员手册。
主机:
./dminit path=/dmdata PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y
CHARSET=0 DB_NAME=DMDB INSTANCE_NAME=DM01 BLANK_PAD_MODE=1 SYSDBA_PWD=Dm123123 SYSAUDITOR_PWD=Dm123123
备机:
./dminit path=/dmdata PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y
CHARSET=0 DB_NAME=DMDB INSTANCE_NAME=DM02 BLANK_PAD_MODE=1 SYSDBA_PWD=Dm123123 SYSAUDITOR_PWD=Dm123123
./dminit path=/dmdata PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y
CHARSET=0 DB_NAME=DMDB INSTANCE_NAME=DM03 BLANK_PAD_MODE=1 SYSDBA_PWD=Dm123123 SYSAUDITOR_PWD=Dm123123
./dminit path=/dmdata PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y
CHARSET=0 DB_NAME=DMDB INSTANCE_NAME=DM04 BLANK_PAD_MODE=1 SYSDBA_PWD=Dm123123 SYSAUDITOR_PWD=Dm123123

4.2 注册服务

切换到root用户
su - root
cd /dm8/dmdbms/script/root
主库:
./dm_service_installer.sh -t dmserver -p DM01 -m mount -dm_ini /dmdata/DMDB/dm.ini
实时备库:
./dm_service_installer.sh -t dmserver -p DM02 -m mount -dm_ini /dmdata/DMDB /dm.ini
同步备库:
./dm_service_installer.sh -t dmserver -p DM03 -m mount -dm_ini /dmdata/DMDB /dm.ini
异步备库:
./dm_service_installer.sh -t dmserver -p DM04 -m mount -dm_ini /dmdata/DMDB /dm.ini
检查服务是否注册成功
su - dmdba
cd /dm8/dmdbms/bin
前台启动
./dmserver /data/dmdata/DMDB/dm.ini
启动数据库后退出
exit

5 集群搭建

5.1 主库使用dmrman做冷备

切换到dmdba用户
su - dmdba
./dmrman
RMAN> BACKUP DATABASE '/dmdata/DMDB/dm.ini' BACKUPSET '/dmbak/db_full_bak_20250310';

5.2 传输备份集到备库进行还原

传输到备机
scp -r /dmbak/db_full_bak_20250310 dmdba@X.X.X.X:/dmbak
备机还原:
su - dmdba
cd /dm8/dmdbms/bin
./dmrman
RMAN> check backupset '/dmbak/db_full_bak_20250310';
RMAN> RESTORE DATABASE '/dmdata/DMDB/dm.ini' FROM BACKUPSET ' /dmbak/db_full_bak_20250310';
RMAN> RECOVER DATABASE '/dmdata/DMDB/dm.ini' FROM BACKUPSET ' /dmbak/db_full_bak_20250310';
RMAN> RECOVER DATABASE /dmdata/DMDB/dm.ini' UPDATE DB_MAGIC;

5.3 主备机修改配置文件

5.3.1 修改dm.ini

cd /dmdata/DMDB/
vi dm.ini
主机:
BAK_PATH = /dmbak
INSTANCE_NAME = DM01  
DW_INACTIVE_INTERVAL  = 60  #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0  #不允许手工方式修改实例模式/状态/
ENABLE_OFFLINE_TS = 2  #不允许备库OFFLINE表空间
MAL_INI  = 1  #打开MAL系统
ARCH_INI = 1  #打开归档配置
RLOG_SEND_APPLY_MON  = 64  #统计最近64次的日志发送信息
COMPATIBLE_MODE = 2
备机1:
BAK_PATH = /data/dmbak
INSTANCE_NAME = DM02
DW_INACTIVE_INTERVAL  = 60  #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0   #不允许手工方式修改实例模式/状态/
ENABLE_OFFLINE_TS = 2  #不允许备库OFFLINE表空间
MAL_INI  = 1  #打开MAL系统
ARCH_INI    = 1  #打开归档配置
SVR_LOG = 1
RLOG_SEND_APPLY_MON = 64  #统计最近64次的日志发送信息
COMPATIBLE_MODE = 2
备机2:
BAK_PATH = /data/dmbak
INSTANCE_NAME = DM03
DW_INACTIVE_INTERVAL  = 60  #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0   #不允许手工方式修改实例模式/状态/
ENABLE_OFFLINE_TS = 2  #不允许备库OFFLINE表空间
MAL_INI  = 1  #打开MAL系统
ARCH_INI    = 1  #打开归档配置
SVR_LOG = 1
RLOG_SEND_APPLY_MON = 64  #统计最近64次的日志发送信息
COMPATIBLE_MODE = 2
备机3:
BAK_PATH = /data/dmbak
INSTANCE_NAME = DM04
DW_INACTIVE_INTERVAL  = 60  #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0   #不允许手工方式修改实例模式/状态/
ENABLE_OFFLINE_TS = 2  #不允许备库OFFLINE表空间
MAL_INI  = 1  #打开MAL系统
ARCH_INI    = 1  #打开归档配置
SVR_LOG = 1
RLOG_SEND_APPLY_MON = 64  #统计最近64次的日志发送信息
COMPATIBLE_MODE = 2

5.3.2 创建dmmal.ini

主备一致
MAL_CHECK_INTERVAL = 10
MAL_CONN_FAIL_INTERVAL = 10
[MAL_INST1]MAL_INST_NAME= DM01MAL_HOST =主机IPMAL_PORT = 61141MAL_INST_HOST= 主机IPMAL_INST_PORT= 5236MAL_DW_PORT= 52141MAL_INST_DW_PORT = 33141
[MAL_INST2]MAL_INST_NAME= DM02MAL_HOST = 备机1的IPMAL_PORT = 61141MAL_INST_HOST= 备机1的IPMAL_INST_PORT= 5236MAL_DW_PORT= 52141MAL_INST_DW_PORT = 33141
[MAL_INST3]MAL_INST_NAME= DM03MAL_HOST = 备机2的IPMAL_PORT = 61141MAL_INST_HOST= 备机2的IPMAL_INST_PORT= 5236MAL_DW_PORT= 52141MAL_INST_DW_PORT = 33141
[MAL_INST4]MAL_INST_NAME= DM04MAL_HOST = 备机3的IPMAL_PORT = 61141MAL_INST_HOST= 备机3的IPMAL_INST_PORT= 5236MAL_DW_PORT= 52141MAL_INST_DW_PORT = 33141

5.3.3 创建dmarch.ini

主库:
vi dmarch.ini
[ARCHIVE_LOCAL1]ARCH_TYPE= LOCALARCH_DEST= /dmarchARCH_FILE_SIZE= 1024  ####根据实际进行调整ARCH_SPACE_LIMIT = 10240  ####根据实际进行调整
[ARCHIVE_REALTIME]  ARCH_TYPE= REALTIMEARCH_DEST= DM02
[ARCHIVE_SYNC]ARCH_TYPE = SYNCARCH_DEST = DM03ARCH_RECOVER_TIME =1
[ARCHIVE_ASYNC]ARCH_TYPE = ASYNCARCH_DEST = DM04ARCH_TIMER_NAME = RT_TIMER
实时备库:
vi dmarch.ini
[ARCHIVE_LOCAL1]ARCH_TYPE= LOCALARCH_DEST= /dmarchARCH_FILE_SIZE= 1024  ####根据实际进行调整ARCH_SPACE_LIMIT = 10240  ####根据实际进行调整
[ARCHIVE_REALTIME]  ARCH_TYPE= REALTIMEARCH_DEST= DM01
[ARCHIVE_SYNC]ARCH_TYPE = SYNCARCH_DEST = DM03ARCH_RECOVER_TIME =1
[ARCHIVE_ASYNC]ARCH_TYPE = ASYNCARCH_DEST = DM04ARCH_TIMER_NAME = RT_TIMER
同步备库和异步备库:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmarch
ARCH_FILE_SIZE = 1024  ####根据实际进行调整
ARCH_SPACE_LIMIT = 10240  ####根据实际进行调整

5.3.4 创建dmwatcher.ini

主库
vi dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL
DW_MODE= AUTO
DW_ERROR_TIME= 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME= 10
INST_OGUID= 453331
INST_INI = /dmdata/DMDB/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/dmdbms/bin/DmServiceDM01 start
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
实时备库:
vi dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL
DW_MODE= AUTO
DW_ERROR_TIME= 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME= 10
INST_OGUID= 453331
INST_INI = /dmdata/DMDB/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/dmdbms/bin/DmServiceDM02 start
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
同步备库:
vi dmwatcher.ini
[GRP1]
DW_TYPE = LOCAL
DW_MODE = MANUAL  
DW_ERROR_TIME = 10
INST_ERROR_TIME = 10
INST_OGUID = 453331  
INST_INI = /dmdata/DMDB/dm.ini
INST_AUTO_RESTART = 1  
INST_STARTUP_CMD = /dm8/dmdbms/bin/DmServiceDM03 start
异步备库:
vi dmwatcher.ini
[GRP1]
DW_TYPE = LOCAL
DW_MODE = MANUAL  
DW_ERROR_TIME = 10
INST_ERROR_TIME = 10
INST_OGUID = 453331  
INST_INI = /dmdata/DMDB/dm.ini
INST_AUTO_RESTART = 1  
INST_STARTUP_CMD = /dm8/dmdbms/bin/DmServiceDM04 start

5.3.5 创建dmtimer.ini

主库和实时备库:
vi dmtimer.ini
[RT_TIMER]TYPE = 10FREQ_MONTH_WEEK_INTERVAL = 1FREQ_SUB_INTERVAL = 0FREQ_MINUTE_INTERVAL = 0REPEAT_INTERVAL=FREQ=SECONDLY;INTERVAL=10START_TIME = 00:00:00END_TIME = 23:59:59DURING_START_DATE = 2020-02-11 17:36:09DURING_END_DATE = 9999-12-31 23:59:59NO_END_DATE_FLAG= 1DESCRIBE = RT TIMERIS_VALID = 1

5.3.6 修改sqllog.ini

主备一致
SQLLOG:
vi sqllog.ini
BUF_TOTAL_SIZE = 10240  #SQLs Log Buffer Total Size(K)(1024~1024000)
BUF_SIZE = 1024   #SQLs Log Buffer Size(K)(50~409600)
BUF_KEEP_CNT = 6  #SQLs Log buffer keeped count(1~100)
####根据实际磁盘大小和需要进行修改
[SLOG_ALL]FILE_PATH = /dm8/dmdbms/log/sqllogPART_STOR = 0SWITCH_MODE  =2SWITCH_LIMIT = 1024ASYNC_FLUSH = 1FILE_NUM = 10ITEMS = 0SQL_TRACE_MASK = 1MIN_EXEC_TIME = 0USER_MODE = 0USERS =

5.4 启动数据库,修改状态

5.4.1 启动主库,检查主库状态

#以mount方式启动主库
cd /dm8/dmdbms/bin
./dmserver /dmdata/DMDB/dm.ini mount
#启动命令行工具 DIsql
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(453331);
SQL>alter database primary;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
#修改后前台退出数据库
exit

5.4.2 启动备库,检查备库状态

#以mount方式启动备库
cd /dm8/dmdbms/bin
./dmserver /dmdata/DMDB/dm.ini mount
#启动命令行工具 disql
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(453331);
SQL>alter database standy;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
#修改后前台退出数据库
exit

5.5 注册并启动数据守护服务

切换到root用户
cd /dm8/dmdbms/script/root/
-数据守护服务
主库:
./dm_service_installer.sh -t dmwatcher -watcher_ini /dmdata/DMDB/dmwatcher.ini -p DM01
创建服务(DmWatcherServiceDM01)完成
实时备库:
./dm_service_installer.sh -t dmwatcher -watcher_ini /dmdata/DMDB/dmwatcher.ini -p DM02
创建服务(DmWatcherServiceDM02)完成
同步备库:
./dm_service_installer.sh -t dmwatcher -watcher_ini /dmdata/DMDB/dmwatcher.ini -p DM03
创建服务(DmWatcherServiceDM03)完成
异步备库:
./dm_service_installer.sh -t dmwatcher -watcher_ini /dmdata/DMDB/dmwatcher.ini -p DM04
创建服务(DmWatcherServiceDM04)完成
启动数据守护服务
./DmWatcherServiceDM01 start
./DmWatcherServiceDM02 start
./DmWatcherServiceDM03 start
./DmWatcherServiceDM04 start

5.6 注册并启动监视器服务

5.6.1 创建dmmonitor.ini

配置确认监视器
vi /dmdata/DMDB/dmmonitor.ini
vi dmmonitor.ini
MON_DW_CONFIRM = 1  #确认监视器模式
MON_LOG_PATH = /dm8/dmdbms/log  #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每 隔 60s 定 时 记 录 系 统 信 息 到 日 志 文 件
MON_LOG_FILE_SIZE = 32  #每个日志文件最大 32M
MON_LOG_SPACE_LIMIT = 2048  #限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453331  #组GRP1 的唯一 OGUID 值
#以下配置为监视器到组 GRP1 的守护进程的连接信息,以“IP:PORT”的形式配置#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
MON_DW_IP = 主机IP:52141
MON_DW_IP = 备机1的IP:52141
MON_DW_IP = 备机2的IP:52141
MON_DW_IP = 备机3的IP:52141
配置非确认监视器
vi dmmonitor_noc.ini
MON_DW_CONFIRM = 0  #确认监视器模式
MON_LOG_PATH = /dm8/dmdbms/log  #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每 隔 60s 定 时 记 录 系 统 信 息 到 日 志 文 件
MON_LOG_FILE_SIZE = 32  #每个日志文件最大 32M
MON_LOG_SPACE_LIMIT = 2048  #限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453331  #组GRP1 的唯一 OGUID 值
#以下配置为监视器到组 GRP1 的守护进程的连接信息,以“IP:PORT”的形式配置#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
MON_DW_IP = 主机IP:52141
MON_DW_IP = 备机1的IP:52141
MON_DW_IP = 备机2的IP:52141
MON_DW_IP = 备机3的IP:52141

5.6.2 注册并启动监视器服务

切换到root用户
su - root
cd /dm8/dmdbms/script/root/
./dm_service_installer.sh -t dmmonitor -p MONITOR -monitor_ini /dmdata/DMDB/dmmonitor.ini
创建服务(DmMonitorServiceMONITOR)完成
启动服务:
/dm8/dmdbms/bin/DmMonitorServiceMONITOR start

6 验证数据守护是否搭建完成

进入数据库bin目录下,启动非确认监视器

cd /dm8/dmdbms/bin
./dmmonitor /dm8/DMDB/dmmonitor_noc.ini
show

 启动后参考如下图:

7 参数优化

使用达梦已提供的参数优化脚本,根据服务器实际配置优化即可。

8 集群启停

启动:
./DmServiceDM01 start
./DmServiceDM02 start
./DmServiceDM03 start
./DmServiceDM04 start
./DmWatcherServiceDM01 start
./DmWatcherServiceDM02 start
./DmWatcherServiceDM03 start
./DmWatcherServiceDM04 start
./DmMonitorServiceMONITOR start
停止集群:关确认监视器,关备守、主守,关主server、关备server
./DmMonitorServiceMONITOR stop
./DmWatcherServiceDM04 stop
./DmWatcherServiceDM03 stop
./DmWatcherServiceDM02 stop
./DmWatcherServiceDM01 stop
./DmServiceDM01 stop
./DmServiceDM02 stop
./DmServiceDM03 stop
./DmServiceDM04 stop

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/91825.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/91825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电感与电容充、放电极性判断和电感选型

目录 一、电感 二、电容 三、电感选型 一、电感 充电:左右-为例 放电:极性相反,左-右 二、电容 充电:左右-为例 放电:左右-(与充电极性一致) 三、电感选型 主要考虑额定电流和饱和电流。…

新建模范式Mamba——“Selectivity is All You Need?”

目录 一、快速走进和理解Mamba建模架构 (一)从Transformer的统治地位谈起 (二)另一条道路:结构化状态空间模型(SSM) (三)Mamba 的核心创新:Selective SSM…

Python实现Word文档中图片的自动提取与加载:从理论到实践

在现代办公和文档处理中,Word文档已经成为最常用的文件格式之一。这些文档不仅包含文本内容,还经常嵌入各种图片、图表和其他媒体元素。在许多场景下,我们需要从Word文档中提取这些图片,例如进行内容分析、创建图像数据库、或者在…

Kafka、RabbitMQ 与 RocketMQ 高可靠消息保障方案对比分析

Kafka、RabbitMQ 与 RocketMQ 高可靠消息保障方案对比分析 在分布式系统中,消息队列承担着异步解耦、流量削峰、削峰填谷等重要职责。为了保证应用的数据一致性和业务可靠性,各大消息中间件都提供了多种高可靠消息保障机制。本文以Kafka、RabbitMQ和Rock…

四足机器人远程视频与互动控制的全链路方案

随着机器人行业的快速发展,特别是四足仿生机器人在巡检、探测、安防、救援等复杂环境中的广泛部署,如何实现高质量、低延迟的远程视频监控与人机互动控制,已经成为制约其应用落地与规模化推广的关键技术难题。 四足机器人常常面临以下挑战&a…

把leetcode官方题解自己简单解释一下

自用自用!!!leetcode hot 100

hive的sql优化思路-明白底层运行逻辑

一、首先要明白底层map、shuffle、reduce的顺序之中服务器hdfs数据文件在内存与存储之中是怎么演变的,因为hive的性能瓶颈基本在内存,具体参考以下他人优秀文章: 1.Hive SQL底层执行过程详细剖析 2.Hive JOIN性能调优 二是要明白hive对应的…

驱动隔离芯片在现代工业上的卓越贡献

在智能时代的精密齿轮中,驱动隔离芯片如同一位精通跨界语言的“安全架构师”,在高压与低压、危险与精密的交界处重构秩序。它不生产数据,却是信息的守门人;不创造能量,却是电流的驯兽师。从钢铁丛林到生命方舟&#xf…

使用MATLAB探索圆周率π的奇妙计算之旅

在数学的璀璨星河中,圆周率π无疑是最耀眼的明星之一。这个看似简单的无理数蕴含着宇宙的奥秘,吸引着无数科学家和数学爱好者探索其计算方法。今天,我们将使用MATLAB这一强大的科学计算工具,踏上π的计算之旅,体验从古典算法到现代技巧的奇妙过程。 1. 蒙特卡洛法:随机的…

React 服务器组件 (RSC)

文章目录前言1. 什么是服务器组件 (Server Components)?2. 服务器组件的核心规则(1) 异步性 (async/await)(2) 无客户端交互(3) 渲染限制3. 与客户端组件的协作组合模式Props 传递规则4. 使用场景5. 文件命名约定6. 常见误区7. 示例代码服务端组件(获取数据&#x…

如何解决AttributeError: ‘NoneType‘ object has no attribute问题

如何解决AttributeError: ‘NoneType’ object has no attribute问题 问题背景与概述 在 Python 项目开发和调试过程中,经常会碰到这样一个异常信息: AttributeError: NoneType object has no attribute foo这意味着你尝试访问或调用某个对象的属性&a…

量子计算与AI融合的技术突破与实践路径

量子计算与人工智能的融合正开启一个全新的技术纪元,这种"量智融合"不是简单的技术叠加,而是多领域、多学科的横向连接,通过协同创新实现非线性增长。本文将深入探讨这一领域的最新进展、技术实现路径以及行业应用案例。电子-光子-…

xss的利用

目录 一、XSS的原理和分类 二、常见的XSS标签和属性 三、Xss漏洞分类 1. 反射性xss 反射性 XSS 典型攻击场景 基于 URL 参数的反射性 XSS 基于表单参数的反射性 XSS 利用 HTML 标签属性的反射性 XSS 2.存储型XSS 存储型XSS的高频攻击场景 社交平台评论区 论坛发帖与…

开源Docmost知识库管理工具

Docmost知识库管理工具Docmost是什么核心功能安装应用报错镜像拉取报错使用Docmost是什么 Docmost 是一个开源的协作 wiki 和文档软件。它是 Confluence 和 Notion 的开源替代方案。 核心功能 主开发语言:主要使用 TypeScript 开发(性能好,扩…

Elastic Search 8.x 分片和常见性能优化

目录索引分片写入原理概念索引写入流程常见性能优化背景常见性能优化硬件资源优化分片和副本优化索引分片写入原理 概念 分片(shard) 分片是将索引数据分割成更小的、可分布式存储和处理的单元每个索引都由一个或多个分片组成,每个分片都是一…

Java+Vue搭建资产设备全生命周期管理系统,移动端随时操作,后台管理高效精准,覆盖资产全周期,提供完整源码

前言:在当今企业运营中,资产设备作为重要的生产要素,其高效管理和合理利用直接关系到企业的生产效率、成本控制和竞争力。资产设备全生命周期管理涵盖了从设备的采购规划、采购实施、入库存储、使用维护到报废处置的整个过程。为了实现对资产…

Vue rem回顾

Vue 渐进式JavaScript 框架 基于Vue2的学习笔记 - Vue rem回顾(初学者简单笔记) 目录 rem回顾 移动端适配 等比例缩放 下载插件 总结 rem回顾 实现自适应的rem布局。 通过把屏幕划分成几个等份,作为html字体的大小,当设备变…

C#语法基础总结(超级全面)(二)

文章目录c#语法基本元素关键字操作符(operator)类型转换标识符(Identifier)语句try语句迭代语句(循环语句)索引器文本(字面值)五大数据类型引用类型:值类型:变…

MyBatis分页神器PageHelper深度解析

PageHelper 是一个优秀的 MyBatis 分页插件,它通过简单的拦截器机制,实现了对 MyBatis 查询的物理分页(而非内存分页),极大简化了分页代码的编写。而 PageHelper 扩展 通常指的是在其核心功能基础上,为特定…

【2025/07/19】GitHub 今日热门项目

GitHub 今日热门项目 🚀 每日精选优质开源项目 | 发现优质开源项目,跟上技术发展趋势 📋 报告概览 📊 统计项📈 数值📝 说明📅 报告日期2025-07-19 (周六)GitHub Trending 每日快照&#x1f55…