注册
DMWatch数据守护集群搭建
技术分享/ 文章详情 /

DMWatch数据守护集群搭建

沐风 2023/06/12 2158 0 0

DMWatch数据守护集群搭建

一·环境说明

本篇文章主要讲述一主一备DMWatch数据守护集群搭建(达梦数据库最多支持一主八备)
3台虚拟机:一台监视器,一台主库,一台备库
操作系统:Kylin Linux Advanced Server V10
处理器内核总数:4
内存:8G
硬盘容量:40G
数据库版本:DM8 安全版(标准版和开发版不支持数据守护集群)
IP地址.png

主库、备库和监视器都需要安装达梦数据库,主库和备库要保证数据库名和端口号一致,实例名要不一样。监视器只需要安装数据库即可,不需要新建实例。

二·主库配置

1.关闭数据库服务,进行备份

mkdir backup
#进入数据库bin目录下,启动工具 Dmrman
./dmrman 
BACKUP DATABASE '/dm8/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dm8/backup/BACKUP_FILE_01' #主库完全备份

2.修改dm.ini参数配置

INSTANCE_NAME = DMSERVER1 
PORT_NUM = 5237
DW_INACTIVE_INTERVAL = 60 
ALTER_MODE_STATUS = 0 
ENABLE_OFFLINE_TS = 2 
MAL_INI = 1
ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64

3.创建dmmal.ini配置文件

[dmdba@~]# vi /dm8/data/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL = 60         	#MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 60		#判定MAL链路断开的时间
[MAL_INST1] 
MAL_INST_NAME =DMSERVER1		#实例名,和dm.ini里的一致
MAL_HOST = 192.168.1.18			#MAL监听的IP地址
MAL_PORT = 55102			#MAL监听的端口,可任意设置,未占用即可
MAL_INST_HOST = 192.168.117.18		#数据库实例的IP
MAL_INST_PORT = 5237			#数据库实例端口
MAL_DW_PORT = 65102			#守护进程监听的端口,可任意设置,未占用即可
MAL_INST_DW_PORT = 45102		#监听守护进程的端口,可任意设置,未占用即可
[MAL_INST2] 
MAL_INST_NAME = DMSERVER2
MAL_HOST = 192.168.1.20 
MAL_PORT = 55122 
MAL_INST_HOST = 192.168.117.20
MAL_INST_PORT = 5237
MAL_DW_PORT = 65122 
MAL_INST_DW_PORT = 45122

4.创建dmarch.ini配置文件

[dmdba@~]# vi /dm8/data/DAMENG/dmarch.ini
[ARCHIVE_REALTIME] 
ARCH_TYPE = REALTIME			#实时归档类型
ARCH_DEST = DMSERVER2			#实时归档目标实例名
[ARCHIVE_LOCAL1] 
ARCH_TYPE = LOCAL			#本地归档类型
ARCH_DEST = /dm8/arch 			#本地归档存放路径
ARCH_FILE_SIZE = 128			#单个归档文件大小
ARCH_SPACE_LIMIT = 0			#归档上限,0表示无限制

5.创建dmwatcher.ini配置文件

[dmdba@~]# vi /dm8/data/DAMENG/dmwatcher.ini
[GRP1] 
DW_TYPE = GLOBAL			#全局守护类型
DW_MODE = MANUAL			#故障手动切换模式,AUTO为自动切换
DW_ERROR_TIME = 60			#远程守护进程故障认定时间
INST_RECOVER_TIME = 60 			#本地实例故障认定时间
INST_ERROR_TIME = 10 			#主库守护进程启动恢复时间
INST_OGUID = 987321 			#守护系统唯一OGUID值,可任意设置
INST_INI = /dm8/data/DAMENG/dm.ini  	#dm.ini配置文件路径
INST_AUTO_RESTART = 1			#打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/bin/dmserver 	#命令行方式启动
RLOG_SEND_THRESHOLD = 0  		#指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 		#指定备库重演日志的时间阈值,默认关闭

6.启动主库,检查主库状态

#以mount方式启动主库
./dmserver /dm8/data/DM01/dm.ini  mount
#启动命令行工具 DIsql
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); 
SQL>sp_set_oguid(987321); 
SQL>alter database primary;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

通过disql工具查看数据库状态,如下图:
设置为主库配置状态.png
一定要以 Mount 方式启动数据库实例, 否则系统启动时会重构回滚表空间,生 成 Redo 日志; 并且,启动后应用可能连接到数据库实例进行操作,破坏主备 库的数据一致性。数据守护配置结束后,守护进程会自动 Open 数据库。

三·备库配置

1.关闭数据库服务,还原主库备份到备库

完成守护集群搭建要保证主备库一致,如果不一致,备库可能无法进入备库配置状态,所以备份还原是保证主备数据库一致的一个好方法。

#启动工具 Dmrman
RESTORE DATABASE '/dm8/data/DMDW/dm.ini' FROM BACKUPSET '/dm8/backup'     #把主库备份恢复到备库
RECOVER DATABASE '/dm8/data/DMDW/dm.ini' FROM BACKUPSET '/dm8/backup'	  #还原备份
RECOVER DATABASE '/dm8/data/DMDW/dm.ini' UPDATE DB_MAGIC 		 #还原魔数

2.修改dm.ini参数配置

INSTANCE_NAME = DMSERVER2
PORT_NUM = 5237
DW_INACTIVE_INTERVAL = 60 
ALTER_MODE_STATUS = 0 
ENABLE_OFFLINE_TS = 2 
MAL_INI = 1
ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64

3.创建dmmal.ini配置文件

[dmdba@~]# vi /dm8/data/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL = 60 
MAL_CONN_FAIL_INTERVAL = 60  
[MAL_INST1] 
MAL_INST_NAME = DMSERVER1  
MAL_HOST = 192.168.117.18 
MAL_PORT = 55102 
MAL_INST_HOST = 192.168.117.18
MAL_INST_PORT = 5237
MAL_DW_PORT = 65102  
MAL_INST_DW_PORT = 45102 
[MAL_INST2] 
MAL_INST_NAME = DMSERVER2
MAL_HOST = 192.168.117.20
MAL_PORT = 55122 
MAL_INST_HOST = 192.168.117.20
MAL_INST_PORT = 5237 
MAL_DW_PORT = 65122 
MAL_INST_DW_PORT = 45122 

4.创建dmarch.ini配置文件

[dmdba@~]# vi /dm8/data/DAMENG/dmarch.ini
[ARCHIVE_REALTIME] 
ARCH_TYPE = REALTIME 
ARCH_DEST = DMSERVER1  
[ARCHIVE_LOCAL1] 
ARCH_TYPE = LOCAL 
ARCH_DEST = /dm8/arch  
ARCH_FILE_SIZE = 128  
ARCH_SPACE_LIMIT = 0 

5.创建dmwatcher.ini配置文件

[dmdba@~]# vi /dm8/data/DAMENG/dmwatcher.ini
DW_TYPE = GLOBAL 
DW_MODE = MANUAL 
DW_ERROR_TIME = 60 
INST_RECOVER_TIME = 60 
INST_ERROR_TIME = 10  
INST_OGUID = 987321
INST_INI = /dm8/data/DAMENG/dm.ini 
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver 
RLOG_APPLY_THRESHOLD = 0 

6.启动备库,检查备库状态

#以mount方式启动主库
./dmserver /dm8/data/DM01/dm.ini  mount
#启动命令行工具 DIsql
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); 
SQL>sp_set_oguid(987321); 
SQL>alter database standby;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

通过disql工具查看数据库状态,如下图:
设置为备库配置状态.png

四·启动数据守护

1.启动主库守护进程,检查数据库状态

#进入数据库bin目录下,启动数据守护进程
./dmwatcher  /dm8/data/DAMENG/dmwatcher.ini

通过disql工具查看数据库状态,如下图:
主库打开状态.png

2.启动备库守护进程,检查数据库状态

./dmwatcher  /dm8/data/DAMENG/dmwatcher.ini

通过disql工具查看数据库状态,如下图:
备库为打开状态.png

3.配置监视器dmmonitor.ini文件,启动监视器

[dmdba@~]# vi /dm8/dmmonitor.ini
MON_DW_CONFIRM = 1 
MON_LOG_PATH = /dm8/log  
MON_LOG_INTERVAL = 60 
MON_LOG_FILE_SIZE = 32 
MON_LOG_SPACE_LIMIT = 0 
[GRP1] 
MON_INST_OGUID = 987321 
MON_DW_IP = 192.168.117.18:65102
MON_DW_IP = 192.168.117.20:65122

4.创建dm_svc.conf

Linux环境:dm_svc.conf放在应用服务器/etc目录下。
Windows32环境:dm_svc.conf放在应用服务器System32目录下。
Windows64环境:dm_svc.conf放在应用服务器System32和SysWOW64目录下

TIME_ZONE=(+8:00)
LANGUAGE=(cn)
DM1=(192.168.117.18:5237,192.168.117.20:5237)
[DW1]
LOGIN_MODE=(1)
SWITCH_TIME=(300)
SWITCH_INTERVAL=(200)

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

#进入数据库bin目录下,启动监视器
./dmmonitor.ini  /dm8/dmmonitor.ini

启动监视器查看进程.png
通过上图我们可以看到2个守护进程都已被监听到,都处于OPEN状态,说明数据守护集群已经搭建完成。值得注意的是,数据守护集群只有主库能进行读写操作,备库只能进行读操作,当开启故障自动切换时,主库故障,将自动切换到备库,备库接替成为主库,直至主库恢复正常。
为了方便维护,我们可以将守护进程服务注册到服务,这样关机开机可以自动完成自启,同时,监视器也可以加入到服务,开机自启。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服