达梦数据库主备集群

这篇具有很好参考价值的文章主要介绍了达梦数据库主备集群。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1:服务器硬件需求

按实际业务需求,选择合适的服务器,准备 3 台服务器,一台主库服务器,一台备库服务器,一台监视器服务器,服务器参数建议如下:

硬件 要求
物理内存 >=16 GB
交换区 Swap 空间>=物理内存
/tmp大小 > 1000 MB
网络 物理机器需要 4 个网卡,2 个 public 网卡做 band,2 个 private 网卡做 band
磁盘 根据实际应用系统需要挂载合适大小磁盘
时间服务器 按机房要求配置连接时间服务器

操作系统版本安装

DM 数据库安装在 Linux 操作系统所需条件:glibc 2.3 以上,内核 2.6,预先安装 UnixODBC,系统性能监控等组件。这里使用Centos 7.6。

目录与存储规划

用途 目录路径 备注
数据库软件安装目录 /home/dmdba/dmdbms 可用空间>50 GB
实例安装目录 /data/dmdata 单独挂载性能最好的磁盘建议 SSD
归档日志存放目录 /data/dmarch 单独挂载磁盘
备份文件存放目录 /data/dmbak 单独挂载磁盘

用户与组

DM 数据库不应该使用 root 用户安装和维护。需要在安装之前为 DM 数据库创建一个专用的系统用户 (dmdba) 和用户组 (dinstall)。

执行以下命令,新建用户组 dinstall、新用户dmdba

groupadd dinstall
useradd  -g dinstall -m -d /home/dmdba -s /bin/bash  dmdba

执行以下命令,修改 dmdba 用户密码:
passwd dmdba

用户资源限制

执行以下命令,修改 dmdba 用户资源限制:

vim /etc/security/limits.conf
文件末尾添加如下内容:

dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft nproc  65536
dmdba hard nproc  65536
dmdba soft stack  65536
dmdba hard stack  65536

用户环境变量

执行以下命令,修改 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
端口规划

搭建 2 节点主备集群,端口规划如下:(实际中可以按需要修改端口号)

主机名 public ip private ip 实例名 端口 用途
dmdsc1 192.168.1.31 10.10.10.31 dmrw1 5236 数据库实例 dmrw1 监听端口
dmdsc1 192.168.1.31 10.10.10.31 dmrw1 61141 MAL 系统监听 TCP 连接的端口
dmdsc1 192.168.1.31 10.10.10.31 dmrw1 52141 实例本地的守护进程监听 TCP 连接的端口
dmdsc1 192.168.1.31 10.10.10.31 dmrw1 33141 实例监听守护进程 TCP 连接的端口
dmdsc2 192.168.1.32 10.10.10.32 dmrw2 5236 数据库实例 dmrw2 监听端口
dmdsc2 192.168.1.32 10.10.10.32 dmrw2 61141 MAL 系统监听 TCP 连接的端口
dmdsc2 192.168.1.32 10.10.10.32 dmrw2 52141 实例本地的守护进程监听 TCP 连接的端口
dmdsc2 192.168.1.32 10.10.10.32 dmrw2 33141 实例监听守护进程 TCP 连接的端口

防火墙集群之间需开放以上所有端口, 集群对客户端只需要开通数据库实例监听端口。

2:安装数据库

数据库软件安装详见单机规范化部署。

软件安装目录:/home/dmdba/dmdbms,实例初始化目录:/data/dmdata,初始化脚本如下:

主库和备库都需要配置实例,监视器可以不用配置
使用dmdba用户配置实例,进入达梦安装bin目录

[dmdba@dmdsc1 bin]$ pwd
/home/dmdba/dmdbms/bin

主库进入/home/dmdba/dmdbms/bin目录下执行,初始化实例:
dminit path=/data/dmdata db_name=dmrw INSTANCE_NAME=dmrw1 EXTENT_SIZE=32 PAGE_SIZE=32 LOG_SIZE=2048

备库进入/home/dmdba/dmdbms/bin目录下执行
dminit path=/data/dmdata db_name=dmrw INSTANCE_NAME=dmrw2 EXTENT_SIZE=32 PAGE_SIZE=32 LOG_SIZE=2048

主库前台启动实例,生成实例对应文件,启动后关闭即可。

 ./dmserver /data/dmdata/dmrw/dm.ini

3:主库进行脱机备份

脱机备份前要关闭数据库实例,否则备份会出错
备份的目的是为了确保主备数据库在自动同步前数据是一致的

[dmdba@dmdsc1 bin]$ ./dmrman 
dmrman V8

RMAN> BACKUP DATABASE '/data/dmdata/dmrw/dm.ini' FULL BACKUPSET '/data/dmbak/full_database';
BACKUP DATABASE '/data/dmdata/dmrw/dm.ini' FULL BACKUPSET '/data/dmbak/full_database';
file dm.key not found, use default license!
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[39830], file_lsn[39830]
Processing backupset /data/dmbak/full_database
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]                                 
backup successfully!
time used: 00:00:03.346

主库复制备份文件到备库

[dmdba@dmdsc1 dmbak]$ scp -r full_database 192.168.1.32:/data/dmbak/

备库进入/home/dmdba/dmdbms/bin进行恢复

[dmdba@dmdsc2 bin]$ ./dmrman 
dmrman V8
RMAN> RESTORE DATABASE '/data/dmdata/dmrw/dm.ini' FROM BACKUPSET '/data/dmbak/full_database';
RESTORE DATABASE '/data/dmdata/dmrw/dm.ini' FROM BACKUPSET '/data/dmbak/full_database';
file dm.key not found, use default license!
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]                                 
restore successfully.
time used: 00:00:02.475

RMAN> RECOVER DATABASE '/data/dmdata/dmrw/dm.ini' FROM BACKUPSET '/data/dmbak/full_database';
RECOVER DATABASE '/data/dmdata/dmrw/dm.ini' FROM BACKUPSET '/data/dmbak/full_database';
Database mode = 2, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[39830], file_lsn[39830]
recover successfully!
time used: 671.697(ms)

RMAN> RECOVER DATABASE '/data/dmdata/dmrw/dm.ini' UPDATE DB_MAGIC;
RECOVER DATABASE '/data/dmdata/dmrw/dm.ini' UPDATE DB_MAGIC;
Database mode = 2, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[39830], file_lsn[39830]
recover successfully!
time used: 00:00:01.066
RMAN> 

4:配置文件设置

实例配置文件:dm.ini
归档配置文件:dmarch.ini
MAL系统配置文件:dmmal.ini
守护进程配置文件:dmwatcher.ini
监视器配置文件:dmmonitor.ini
为了便于管理,将所有配置文件都与dm.ini配置文件放在同一个目录下。 

1)实例配置文件 dm.ini

主备库进入/data/dmdata/dmrw目录下修改dm.ini文件

vi /data/dmdata/dmrw/dm.ini

主库:
INSTANCE_NAME = DMRW1  #修改实例名
MAL_INI = 1            #打开 MAL 系统
ARCH_INI = 1           #打开归档配置
ALTER_MODE_STATUS = 0  #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2  #不允许备库 OFFLINE 表空间

备库:
INSTANCE_NAME = DMRW2  #修改实例名
MAL_INI = 1            #打开 MAL 系统
ARCH_INI = 1           #打开归档配置
ALTER_MODE_STATUS = 0  #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2  #不允许备库 OFFLINE 表空间

 2)归档配置文件dmarch.ini

vi /data/dmdata/dmrw/dmarch.ini

主库:
[ARCHIVE_REALTIME]
ARCH_TYPE     = REALTIME  #归档类型
ARCH_DEST     = DMRW2      #归档目标实例名(主库侧填写备库实例名)
[ARCHIVE_LOCAL1]
ARCH_TYPE     = LOCAL     #本地归档类型
ARCH_DEST     = /data/dmarch #本地归档文件存放路径
ARCH_FILE_SIZE    = 128   #单位 MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT  = 0     #单位 MB,0 表示无限制,范围 1024~4294967294 MB

备库:
[ARCHIVE_REALTIME]
ARCH_TYPE     = REALTIME  #归档类型
ARCH_DEST     = DMRW1   	  #归档目标实例名(备库侧填写主库实例名)
[ARCHIVE_LOCAL1]
ARCH_TYPE     = LOCAL     #本地归档类型
ARCH_DEST     = /data/dmarch #本地归档文件存放路径
ARCH_FILE_SIZE    = 128   #单位 MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT  = 0     #单位 MB,0 表示无限制,范围 1024~4294967294 MB

 3)MAL系统配置文件 dmmal.ini,主库与备库内容一致

vi /data/dmdata/dmrw/dmmal.ini

MAL_CHECK_INTERVAL   = 5  # MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL  = 5  # 判定 MAL链路断开的时间
[MAL_INST1]
  MAL_INST_NAME = DMRW1  #与 dm.ini中的 INSTANCE_NAME一致
  MAL_HOST      = 192.168.1.31  # MAL系统监听 TCP 内部网络 IP
  MAL_PORT      = 61141  # MAL系统监听 TCP连接的端口
  MAL_INST_HOST = 192.168.1.31  #实例的对外服务 IP地址
  MAL_INST_PORT = 5236  #与 dm.ini中的 PORT_NUM一致
  MAL_DW_PORT   = 52141  #实例对应的守护进程监听 TCP 端口
  MAL_INST_DW_PORT = 33141
[MAL_INST2]
  MAL_INST_NAME = DMRW2  #与 dm.ini中的 INSTANCE_NAME 一致
  MAL_HOST      = 192.168.1.32  # MAL系统监听 TCP内部网络 IP
  MAL_PORT      = 61141  # MAL系统监听 TCP连接的端口
  MAL_INST_HOST = 192.168.1.32  #实例的对外服务 IP地址
  MAL_INST_PORT = 5236  #与 dm.ini中的 PORT_NUM一致
  MAL_DW_PORT   = 52141  #实例对应的守护进程监听 TCP端口
  MAL_INST_DW_PORT = 33141

 4)守护进程配置文件 dmwatcher.ini

主库与备库内容一致

vi /data/dmdata/dmrw/dmwatcher.ini

[GRP_RW] 
DW_TYPE            = GLOBAL  #全局守护类型
DW_MODE            = AUTO  #自动切换模式
DW_ERROR_TIME      = 10  #远程守护进程故障认定时间
INST_RECOVER_TIME  = 60  #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME    = 10  #本地实例故障认定时间
INST_OGUID         = 453331  #守护系统唯一 OGUID 值
INST_INI           = /data/dmdata/dmrw/dm.ini  # dm.ini 配置文件路径
INST_AUTO_RESTART  = 1   #打开实例的自动启动功能
INST_STARTUP_CMD   = /home/dmdba/dmdbms/bin/dmserver  #命令行方式启动

5)监视器配置文件 dmmonitor.ini

集群任意节点(一般在备库),配置监视器配置文件 dmmonitor.ini,本文配置在备库服务器上。 

vi /data/dmdata/dmrw/dmmonitor.ini

MON_DW_CONFIRM    = 1   #确认监视器模式
MON_LOG_PATH    = /data/dmdata/dmmonitor_auto/log #监视器日志文件存放路径
MON_LOG_INTERVAL  = 60 #每隔 60 s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE   = 32 #每个日志文件最大 32 MB
MON_LOG_SPACE_LIMIT  = 0  #不限定日志文件总占用空间

[GRP_RW] 
 MON_INST_OGUID    = 453331 #组 GRP_RW 的唯一 OGUID 值
#以下配置为监视器到组 GRP_RW 的守护进程的连接信息,以“IP:PORT”的形式配置
#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
 MON_DW_IP     = 192.168.1.31:52141
 MON_DW_IP     = 192.168.1.32:52141

5:启动主备服务

1)启动数据库实例
主备库在/home/dmdba/dmdbms/bin目录下执行

./dmserver /data/dmdata/dmrw/dm.ini mount

[dmdba@dmdsc1 bin]$ ./dmserver /data/dmdata/dmrw/dm.ini mount
file dm.key not found, use default license!
version info: develop
DM Database Server 64 V8 03134284094-20231109-208042-20067 startup...
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
Database mode = 0, oguid = 0
License will expire on 2024-11-09
file lsn: 39830
ndct db load finished, code:0
ndct second level fill fast pool finished
ndct third level fill fast pool finished
ndct second level fill fast pool finished
ndct third level fill fast pool finished
ndct fill fast pool finished
nsvr_startup end.
uthr_pipe_create, create pipe[read:18, write:19]
uthr_pipe_create, create pipe[read:20, write:21]
uthr_pipe_create, create pipe[read:22, write:23]
uthr_pipe_create, create pipe[read:24, write:25]
uthr_pipe_create, create pipe[read:26, write:27]
uthr_pipe_create, create pipe[read:28, write:29]
uthr_pipe_create, create pipe[read:30, write:31]
uthr_pipe_create, create pipe[read:32, write:33]
uthr_pipe_create, create pipe[read:34, write:35]
uthr_pipe_create, create pipe[read:36, write:37]
uthr_pipe_create, create pipe[read:38, write:39]
uthr_pipe_create, create pipe[read:40, write:41]
uthr_pipe_create, create pipe[read:42, write:43]
uthr_pipe_create, create pipe[read:44, write:45]
uthr_pipe_create, create pipe[read:46, write:47]
uthr_pipe_create, create pipe[read:48, write:49]
aud sys init success.
aud rt sys init success.
systables desc init success.
ndct_db_load_info finished, code:0.
SYSTEM IS READY.

 另外开一个新的终端,使用 disql 工具连接数据库。

主库执行:
cd /home/dmdba/dmdbms/bin
./disql SYSDBA/SYSDBA

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL> sp_set_oguid(453331);      #修改 oguid
SQL> alter database primary;    #修改为 primary 模式
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

备库执行:
cd /home/dmdba/dmdbms/bin
./disql SYSDBA/SYSDBA

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL> sp_set_oguid(453331);      #修改 oguid
SQL> alter database standby;    #修改为 standby 模式
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

2)启动守护进程

守护进程启动后,会将 Mount 的实例 Open。主备执行相同的操作。如有报错,请参考:

 达梦数据库主从备份搭建_达梦数据库主从配置-CSDN博客

cd /home/dmdba/dmdbms/bin
[dmdba@dmdsc1 bin]$ ./dmwatcher /data/dmdata/dmrw/dmwatcher.ini
DMWATCHER[4.0] V8
DMWATCHER[4.0] IS READY

3)启动监视器

在192.168.1.32备库机器上启动监视器
重新打开一个连接,执行:./dmmonitor /data/dmdata/dmrw/dmmonitor.ini

[dmdba@dmdsc2 bin]$ ./dmmonitor /data/dmdata/dmrw/dmmonitor.ini
[monitor]         2024-01-12 17:11:56: DMMONITOR[4.0] V8
[monitor]         2024-01-12 17:11:57: DMMONITOR[4.0] IS READY.

[monitor]         2024-01-12 17:11:57: 
#--------------------------------------------------------------------------------#
GET MONITOR CONNECT INFO FROM DMWATCHER(DMRW2), THE FIRST LINE IS SELF INFO.

DW_CONN_TIME         MON_CONFIRM    MID            MON_IP                   MON_VERSION                                                     
2024-01-12 17:11:57  TRUE           129505858      ::ffff:192.168.1.106     DMMONITOR[4.0] V8
                                              
#--------------------------------------------------------------------------------#

[monitor]         2024-01-12 17:11:57: 收到守护进程(DMRW2)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2024-01-12 17:11:57  OPEN           OK        DMRW2            OPEN        STANDBY   NULL     2        39998           39998           

[monitor]         2024-01-12 17:11:57: 收到守护进程(DMRW1)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2024-01-12 17:11:57  OPEN           OK        DMRW1            OPEN        PRIMARY   VALID    2        39998           39998           

show
2024-01-12 18:35:22 
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG  
GRP_RW           453331      TRUE            AUTO            FALSE     


<<DATABASE GLOBAL INFO:>>
DW_IP         MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT    
192.168.1.31  52141        2024-01-12 18:35:21  GLOBAL    VALID     OPEN           DMRW1            OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALID    

EP INFO:
INST_IP       INST_PORT  INST_OK   INAME            ISTATUS     IMODE     DSC_SEQNO  DSC_CTL_NODE RTYPE     RSTAT       FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG          
192.168.1.31  5236       OK        DMRW1            OPEN        PRIMARY   0          0            REALTIME  VALID       4843            40075           4843            40075           NONE                  

<<DATABASE GLOBAL INFO:>>
DW_IP         MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT    
192.168.1.32  52141        2024-01-12 18:35:21  GLOBAL    VALID     OPEN           DMRW2            OK        1     1     OPEN        STANDBY   DSC_OPEN       REALTIME  VALID    

EP INFO:
INST_IP       INST_PORT  INST_OK   INAME            ISTATUS     IMODE     DSC_SEQNO  DSC_CTL_NODE RTYPE     RSTAT       FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG          
192.168.1.32  5236       OK        DMRW2            OPEN        STANDBY   0          0            REALTIME  VALID       4843            40075           4843            40075           NONE                  

DATABASE(DMRW2) APPLY INFO FROM (DMRW1), REDOS_PARALLEL_NUM (1), WAIT_APPLY[FALSE]:
DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[4843, 4843, 4843], (RLSN, SLSN, KLSN)[40075, 40075, 40075], N_TSK[0], TSK_MEM_USE[0] 
REDO_LSN_ARR: (40075)

#================================================================================#

 监视器显示以上数据,说明主备搭建成功。需要注意的数据有WSTATUS(OPEN)、ISTATUS(OPEN)、RTYPE(REALTIME)、RSTAT(VALID)。

6:验证数据同步

主库:使用 disql 客户端登录,创建测试表,插入数据。

cd /home/dmdba/dmdbms/bin
./disql SYSDBA/SYSDBA

[dmdba@dmdsc1 bin]$ ./disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于主库打开状态
登录使用时间 : 3.624(ms)
disql V8
SQL> create table test(id int, name varchar2(20));
操作已执行
已用时间: 9.349(毫秒). 执行号:601.
SQL> insert into test values (1, 'one');
影响行数 1

已用时间: 0.938(毫秒). 执行号:602.
SQL> select * from test;

行号     ID          NAME
---------- ----------- ----
1          1           one

已用时间: 0.753(毫秒). 执行号:603.
SQL> commit;
操作已执行
已用时间: 1.702(毫秒). 执行号:604.
SQL> 

 备库:使用 disql 客户端登录,查询测试表验证。

[dmdba@dmdsc2 bin]$ ./disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于备库打开状态
登录使用时间 : 4.497(ms)
disql V8
SQL> select * from test;

行号     ID          NAME
---------- ----------- ----
1          1           one

已用时间: 1.656(毫秒). 执行号:101.
SQL> 

数据正常同步。

7:服务注册

上述服务启动都是前台启动,关闭窗口服务就会退出,可以将启动命令注册为系统服务,便于操作。

使用 root 用户,到数据库安装目录的 script/root 下,执行。

[root@dmdsc1 root]# pwd
/home/dmdba/dmdbms/script/root

#注册守护进程服务(主备库都执行)
[root@dmdsc1 root]# ./dm_service_installer.sh -t dmwatcher -p dmrw -watcher_ini /data/dmdata/dmrw/dmwatcher.ini
Created symlink from /etc/systemd/system/multi-user.target.wants/DmWatcherServicedmrw.service to /usr/lib/systemd/system/DmWatcherServicedmrw.service.
创建服务(DmWatcherServicedmrw)完成

#注册数据库实例服务(主备库都执行)。
[root@dmdsc1 root]# ./dm_service_installer.sh -t dmserver -p dmrw -dm_ini /data/dmdata/dmrw/dm.ini
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServicedmrw.service to /usr/lib/systemd/system/DmServicedmrw.service.
创建服务(DmServicedmrw)完成

#注册监视器服务(只需在监视器服务器上执行),执行以下命令:
[root@dmdsc2 root]# ./dm_service_installer.sh -t dmmonitor -p confirm -monitor_ini /data/dmdata/dmrw/dmmonitor.ini
Created symlink from /etc/systemd/system/multi-user.target.wants/DmMonitorServiceconfirm.service to /usr/lib/systemd/system/DmMonitorServiceconfirm.service.
创建服务(DmMonitorServiceconfirm)完成

服务方式启动

启动数据库实例,执行以下命令(主备执行):
systemctl start DmServicedmrw

启动守护进程,执行以下命令(主备执行):
systemctl start DmWatcherServicedmrw

启动监视器,执行以下命令(在监视器节点执行):
systemctl start DmMonitorServiceconfirm

 8:参数优化

集群部署完成后,需要优化 dm.ini 参数主备库都需要修改。参数值优化详见参数优化部分。

9:重启集群

主备集群重启有顺序要求:

关闭监视器:systemctl stop DmMonitorServiceconfirm
关闭主库守护进程:systemctl stop DmWatcherServicedmrw
关闭备库守护进程:systemctl stop DmWatcherServicedmrw
关闭主库实例:systemctl stop DmServicedmrw
关闭备库实例:systemctl stop DmServicedmrw
启动主库实例:systemctl start DmServicedmrw
启动备库实例:systemctl start DmServicedmrw
启动主库守护进程:systemctl start DmWatcherServicedmrw
启动备库守护进程:systemctl start DmWatcherServicedmrw
启动监视器:systemctl start DmMonitorServiceconfirm

注意启动和关闭顺序!!

启动:主备库实例 → 主备库守护进程 → 监视器

关闭:监视器 → 主备库守护进程 → 主备库实例

10:客户端连接集群

客户端主机上需要配置 dm_svc.conf 文件(未安装 DM 数据库的机器新建即可),文件路径:

32 位的 DM 安装在 Win32 操作平台下,此文件位于 %SystemRoot%\system32 目录;
64 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\system32 目录;
32 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\SysWOW64 目录;
在 Linux 平台下,此文件位于/etc 目录。

文件内容:

# 以#开头的行表示是注释
# 全局配置区
DMRW=(192.168.1.31:5236,192.168.1.32:5236)
TIME_ZONE=(+480) #表示+8:00 时区
LOGIN_ENCRYPT=(0)
DIRECT=(Y)
# 服务配置区
[DMRW]
TIME_ZONE=(+540) #表示+9:00 时区
LOGIN_MODE=(1)
SWITCH_TIME=(3)
SWITCH_INTERVAL=(10)

 客户端程序连接数据库时,需要指定 IP 端口处替换为服务名即可,例如:

disql SYSDBA/SYSDBA@DMRW

注意:当修改了 dm_svc.conf 内容后,需要重启客户端程序,修改的配置才能生效。

11:故障切换

通过上述配置,达梦数据库在主库故障后,会自动切换到备库。故障恢复后会自动加入到集群中,不过不再是主库,而是备库。

参考文档:

主备集群规范化部署 | 达梦技术文档

达梦数据库主从备份搭建_达梦数据库主从配置-CSDN博客文章来源地址https://www.toymoban.com/news/detail-794397.html

到了这里,关于达梦数据库主备集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大数据之LibrA数据库系统告警处理(ALM-12010 Manager主备节点间心跳中断)

    告警解释 当主Manager节点在7秒内没有收到备Manager节点的心跳信号时,产生该告警。 当主Manager节点收到备Manager节点的心跳信号后,告警恢复。 告警属性 告警参数 对系统的影响 如果主Manager进程异常,主备倒换无法进行,影响业务。 可能原因 主备Manager节点间链路异常。 处理

    2024年02月06日
    浏览(44)
  • 达梦数据库安装教程

    目录 安装教程 安装前准备 新建dmdba用户 修改文件打开最大数 挂载镜像 新建安装目录 数据库安装 配置环境变量 配置实例 注册服务 启动停止服务 启动 查看端口 停止 数据库目录结构介绍 数据库安装目录 DM8下载地址产品下载 | 达梦数据库 (dameng.com) 安装环境:centos7.9 新建

    2024年02月06日
    浏览(69)
  • 达梦数据库的使用

    官网文档:https://eco.dameng.com/docs/zh-cn/faq/faq-import-export.html 达梦数据库安装成功后,会显示如下客户端 用于建立连接,建表,查询等操作,可在模式下查看建立的数据库信息 在库中建表,表名只能大写,或者查询时报错 用于启动停止服务 用于导入导出数据 建立迁移任务,选

    2024年01月23日
    浏览(55)
  • 达梦数据库导入导出

    说明(默认值) USERID 用户名/口令 FILE 导出文件 (dexp.dmp) DIRECTORY 导出文件所在目录 FULL 整库导出 (N) OWNER 以用户方式导出 格

    2024年02月14日
    浏览(75)
  • 达梦数据库权限管理

    在对数据库权限进行分配时,对于某些人员只能给部分的访问和操作权限。那么在DM数据库中我们该如何去配置相应的权限呢? 我们下面来进行详细解析。 我们的测试环境是 DM8 。 1、我们首先来建立一个测试用户test; SQLcreate user test identified by test123456; 2、接下来看一下TEST用

    2024年02月09日
    浏览(85)
  • 达梦数据库 模式 研究

    数据库模式 达梦数据库支持三种模式 normal, primary, standby 普通模式 normal 为数据库的普通模式,当数据库启动后,默认为该模式 该模式下,用户可以 正常进行 数据库操作 正常生成 本地归档, 但不发送实时归档、即时归档 和 异步归档 转换命令 备库模式 该模式下,只能进行

    2024年02月01日
    浏览(40)
  • 达梦数据库死锁阻塞检查

    1.检查死锁 其中blocker是阻塞源,waiter是被阻塞。 2.查看事务状态 查看阻塞源的事务状态,一般情况很容易出现阻塞源事务没有提交,导致阻塞其他会话。 表上锁后,但没有阻塞其它事务,在v$trxwait表中是没有记录的

    2024年02月11日
    浏览(40)
  • 达梦数据库手工注入笔记

    前言 随着信创产业的逐步普及,很多小伙伴在渗透实战时会越来越多的遇到国产化数据库,如达梦、人大金仓等。如果使用该类数据库的站点存在sql注入漏洞,用sqlmap等工具无法支持我们直接得到想要的数据,我们需要理解这些数据库的语法才能更好的进行手工注入。本文总

    2024年02月16日
    浏览(51)
  • 达梦(DM)数据库存储加密

    这里主要讲述DM数据库存储加密中比较常用也比较容易理解的非透明加密相关内容。 引用官方的话说:DM 对非透明加密的支持是通过对用户提供加解密接口实现的。用户在使用非透明加密时,需要提供密钥并调用加解密接口。采用非透明加密可以保证个人私密数据不被包括

    2024年04月29日
    浏览(45)
  • Linux达梦数据库安装

    说明: 达梦官方推荐是创建新的用户进行安装,但是在公司自己私创用户是违规的,也可以直接使用root用户进行安装,新用户和使用root安装不同点我会标注出来。 a、创建用户组dinstall.   groupadd dinstall  b、创建安装用户dmdba.   useradd -g dinstall -m -d /home/dmdba -s /bin/bash d

    2024年02月09日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包