达梦主备守护集群安装部署

67 阅读5分钟

一、准备硬件环境(虚拟机)

1.1 操作系统、处理器、内存和磁盘

主机和备机建议一致。

操作系统:Kylin-Server-V10-SP3-2403-Release-20240426-X86_64

处理器内核、内存、磁盘大小如下图:

图片1.1.png

图 1.1

根据硬件环境,下载安装DM数据库,具体参考。完成安装后,不配置实例也不注册服务。

1.2 网络IP配置

配置项主机备机
业务IP及内网192.168.116.135192.168.116.134
实例名GRP1_RT_01GRP1_RT_02
实例端口52365236
MAL端口53365336
MAL守护进程端口53465346
守护进程端口55565556
OGUID171100171100
守护组GRP1GRP1
安装目录/home/dmdba/dmdbms/home/dmdba/dmdbms
实例目录/dmdata/data/DAMENG/dmdata/data/DAMENG
归档上限4G4G

监视器IP:192.168.116.133

二、配置过程

2.1配置主库

2.1.1 数据库

数据库版本:dm8_20251021_x86_kylin10_sp3_64

配置实例:

[dmdba@localhost bin]$ ./dminit PATH=/dmdata/data/ INSTANCE_NAME=GRP1_RT_01 PAGE_SIZE=32 EXTENT_SIZE=32 SYSDBA_PWD=Jimao1017 SYSAUDITOR_PWD=Jimao1017

注册实例:

[root@localhost ~]# cd /home/dmdba/dmdbms/script/root

[root@localhost root]# ./dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/DAMENG/dm.ini -p DAMENG

2.1.2 修改OGUID

图片2.1.png

图 2.1

2.1.3 归档与备份

在数据库归档模式下,若数据库突发故障时,系统可以利用归档日志恢复数据库到故障发生的前一刻,而备份是则是保存数据库当前一刻的所有数据至备份集中。联机备份需要数据库在归档模式下。

使用DM管理工具,连接数据库,转换为“配置”模式,进行归档,如下图。

图片2.2.png

图 2.2

点击“归档”,点击加号,选择归档目录,如下图。

图片2.3.png

图 2.3

完成归档,进行数据库备份,转换数据为“打开”模式,如下图。

图片2.4.png

图 2.4

选择“库备份”,进行完全备份,选择目录为“/dmdata/dmbak”。

图片2.5.png

图 2.5

2.1.5 修改dm.ini的参数

图片2.6.png

图 2.6

参数解释:

ALTER_MODE_STATUS:是否允许手动修改服务器的模式,选择不允许。

ENABLE_OFFLINE_TS:是否运行OFFLINE表空间,选择备库不允许。

MAL_INI:是否启用MAL系统,启用。

2.1.6 配置文件

1、关闭实例服务

图片2.7.png

图 2.7

2、修改dmarch.ini

[dmdba@localhost DAMENG]$ vi dmarch.ini

图片2.8.png

图 2.8

注意:[ARCHIVE_REALTIME1]配置不能少,否则dmWatcher进程会启动失败

归档上限修改为4096MB,即4G,当归档文件大小超出4G时,便会删除最早的归档文件。

ARCH_WAIT_APPLY参数配置为0,则该主备集群为高性能模式。高性能模式下,备库收到主库的REDO日志后,会先响应主库,再启动日志重演,这会导致备库的数据对比主库的数据会存在一定的延迟,但保证了数据库服务提供的性能更高;若该参数配置为1,即为事务一致模式,当备库收到主库的REDO日志后,会完成日志重演后再响应主库,这能保证主备库的数据是同步的,但若面对大量的业务数据写入时,将要花费较多的时间等待数据写入和备库日志重演完成。

3、创建dmmal.ini

[dmdba@localhost DAMENG]$ vi dmmal.ini

图片2.9.png

图 2.9

4、创建dmwatcher.ini

[dmdba@localhost DAMENG]$ vi dmwatcher.ini

图片2.10.png

图 2.10

5、注册心跳进程服务

[root@localhost root]# ./dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dmdata/data/DAMENG/dmwatcher.ini

6、拷贝文件至备机

[dmdba@localhost dmbak]$ scp -r DB_DAMENG_FULL_2025_11_17_14_30_09 <dmdba@192.168.116.134:/dmdata/dmbak>

2.2配置备库

2.2.1 数据库

数据库版本:dm8_20251021_x86_kylin10_sp3_64

配置实例:

[dmdba@localhost bin]$ ./dminit PATH=/dmdata/data/ INSTANCE_NAME=GRP1_RT_02 PAGE_SIZE=32 EXTENT_SIZE=32 SYSDBA_PWD=Jimao1017 SYSAUDITOR_PWD=Jimao1017

注意:若实例中的MAL_FLAG和ARCH_FLAG参数在初始化时设置为1,会到导致dm.ini中的MAL_INI参数也设置为1,便会启动MAL系统,但由于初始在实例目录下不存在“dmmal.ini”文件,所以该实例restart会失败。

2.2.2 还原文件

[dmdba@localhost bin]$ ./dmrman CTLSTMT="RESTORE DATABASE'/dmdata/data/DAMENG/dm.ini'FROM BACKUPSET '/dmdata/dmbak/DB_DAMENG_FULL_2025_11_17_22_55_26'"

 

[dmdba@localhost bin]$ ./dmrman CTLSTMT="RECOVER DATABASE'/dmdata/data/DAMENG/dm.ini'FROM BACKUPSET '/dmdata/dmbak/DB_DAMENG_FULL_2025_11_17_22_55_26'"

 

[dmdba@localhost bin]$ ./dmrman CTLSTMT="RECOVER DATABASE'/dmdata/data/DAMENG/dm.ini' UPDATE DB_MAGIC"

 

2.2.3 创建dmarch.ini

[dmdba@localhost DAMENG]$ vi dmarch.ini

图片2.11.png

图 2.11

2.2.4 修改dm.ini配置****

[dmdba@localhost DAMENG]$ vi dm.ini

图片dm.ini配置1.png

ALTER_MODE_STATUS参数取值为0,表示用户不可通过SQL语句切换主备库模式。

图片dm.ini配置2.png

ENABLE_OFFLINE_TS参数取值为2,表示备库不允许下线表空间。

图片dm.ini配置3.png

MAL_INI参数取值为1,表示开启MAL系统传输。

ARCH_INI参数取值为1,表示启用归档。

2.2.5 创建dmmal.ini

[dmdba@localhost DAMENG]$ vi dmmal.ini

图片2.12.png

图 2.12

2.2.6 创建dmwatcher.ini****

[dmdba@localhost DAMENG]$ vi dmwatcher.ini

图片2.13.png

图 2.13

2.2.7 注册服务****

[root@localhost root]# ./dm_service_installer.sh -t dmserver -p GRP1_RT_02 -dm_ini /dmdata/data/DAMENG/dm.ini -m mount

 

[root@localhost root]# ./dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dmdata/data/DAMENG/dmwatcher.ini

 

2.3配置监视器

在IP地址为192.168.116.133的服务器上配置监视器

2.3.1配置确认监视器

在节点的bin目录下配置监视器

[dmdba@localhost bin]$ vi dmmonitor.ini

图片2.14.png

图 2.14

该确认监视器的MON_DW_CONFIRM参数配置为1,为自动切换模式。当监视器检测到主库出现故障时,会自动切换至备库,保证正常提供数据库服务。若该参数配置为0,若当前提供数据库服务的数据库出现故障,则需要手动进行切换。

2.3.2配置非确认监视器

[dmdba@localhost bin]$ vi dmmonitor_manual.ini

图片2.15.png

图 2.15

在整个集群中,监视器部署的作用是,获取整个集群中所有节点守护进程的信息,数据库实例信息,判断每个节点数据库实例的状态。若需要根据节点状态自动进行主库和备库的切换,则建议在第三台服务上配置确认监视器。

在整个集群中,确认监视器只能部署一台,非确认监视器没有部署限制,可以部署在集群的每一个服务节点中,也可以不部署在集群中,也可以部署在不同的操作系统中。

通过前台的方式可以启动非确认监视器。其作用在于,在不影响确认监视器工作的情况下,用户可以使用它来执行用户的命令。通过help指令,可以获取监视器的控制命令,例如观察集群所有实例的情况(show)、查看集群当前状态(tip)、使用实例用户登录监视器(login)、登出监视器(logout)、分离某个数据库实例(detach database)、加入某个数据库实例(attach database)等。

非确认监视器无法自动接管,主要作用在于观察集群的状态并执行用户的操作。下图为主库服务被杀死时,非确认监视提示的警告信息。

图片2.16.png

图 2.16

2.3.3 注册监视器

[root@localhost bin]# ./dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /home/dmdba/dmdbms/bin/dmmonitor.ini

 

三、开启服务

开启服务前,建议先关闭主机和备机的防火墙,或添加以上涉及的端口通道。

3.1 开启主机守护进程

[dmdba@localhost bin]$ ./dmwatcher /dmdata/data/DAMENG/dmwatcher.ini

图片主机守护进程.png

3.2 开启备机守护进程****

[dmdba@localhost bin]$ ./dmwatcher /dmdata/data/DAMENG/dmwatcher.ini

图片备机守护进程.png

3.3 开启监视器

[dmdba@localhost bin]$ ./dmmonitor dmmonitor_manual.ini

以上命令开启的非确认监视器。

通过show命令,可以查看集群内的实例,如下图。

图片3.1.png

图 3.1

图中最上方可以看到该集群的详细信息,唯一标识的OGUID,故障自动切换模式等。下方可以看到,该集群两个节点的watcher服务(心跳进程)和数据库服务都是正常打开的,并且IP地址为192.168.116.135的两项服务是主服务,另外一个是备服务。

通过tip命令,可以看到集群中是否有问题出现,如下图。

图片3.2.png

图 3.2

四、验证集群运行状态

通过 kill 命令杀死主库的数据库实例进程,观察集群情况。

图片kill命令.png

集群变化如下图。

图片4.1.png

图 4.1

可以观察到,IP地址为192.168.116.134的两项服务变为了主服务,故障自动切换服务正常运行。

五、总结

部署并启动主备集群主要分为以下五步。

第一,关闭主库的数据库服务、修改OGUID并归档备份;

第二,配置主库及备库的dmarch.ini(redo日志归档配置文件)、dmmal.ini(MAL配置文件)、dmwatcher.ini(守护进程配置文件);

第三,使用主库的备份文件还原所有备库;

第四,注册主库守护进程、备库数据库实例及备库守护进程;

第五,在第三台服务器上配置监视器,观察并管理该主备集群;

第六,启动主库数据库实例、主库守护进程、备库数据库实例、备库守护进程、监视器服务。

在部署过程中,有二个点需要注意。第一个是,在对主库进行归档操作前,使用SP_SET_OGUID()系统函数将OGUID值设置好,且要保证主备库的dmwatcher.ini文件中的INST_OGUID参数与其一致,这个参数保证这些数据库在一个集群中;第二个是,在还原备库时要使用最新的主库完全备份文件。