在数字化时代,数据已成为企业的核心资产。确保数据的安全性和业务的连续性至关重要。达梦数据守护集群作为一款强大的数据库解决方案,为企业提供了可靠的高可用保障。本文将深入探讨达梦数据守护集群的概念、原理、搭建及优势,助您全面了解这一关键技术。
一、达梦数据守护集群概述
达梦数据守护(Data Watch)是一种集成化的高可用、高性能数据库解决方案,是数据库异地容灾的首选方案。通过部署 DM 数据守护,可在硬件故障(如磁盘损坏)、自然灾害(地震、火灾)等极端情况下,避免数据损坏、丢失,保障数据安全,并且能快速恢复数据库服务,满足用户不间断提供数据库服务的要求。
与常规的数据库备份(Backup)、还原(Restore)技术相比,数据守护在恢复数据库服务方面具有显著优势。随着数据规模不断增长,通过还原手段恢复数据往往需要数个小时甚至更长时间,而数据守护基本不受数据规模的影响,只需数秒时间就可以将备库切换为主库对外提供数据库服务。
二、达梦数据守护集群的原理
(一)核心组件
1.主库与备库:主库提供完整的数据库功能,是直接支撑应用系统的生产库。备库提供只读服务,通过重演主库发送的 REDO 日志与主库保持数据同步。可切换备库是指主备库之间数据完全同步,主库发生故障、备库切换为主库后,不会造成任何数据丢失的备库。
2.REDO 日志:主库修改数据产生的 REDO 日志,是备库与主库保持数据同步的关键。实时主备系统中,主库在写入联机 REDO 日志文件之前,会将 REDO 日志发送到备库。
3.守护进程(dmwatcher):数据守护系统的核心工具,监控数据库实例的运行状态和主备库数据同步情况,在出现故障时启动各种处理预案。守护进程是各种消息的中转站,接收数据库实例、其他守护进程、以及监视器发送的各种消息;同时,守护进程也会将收到的数据库实例消息转发给其他守护进程和监视器。守护进程必须和被守护的数据库实例部署在同一台机器上。
4.监视器(dmmonitor):用来监控守护系统内守护进程、数据库实例信息,执行用户输入命令、监控实例故障、实现自动切换等。
(二)数据同步机制
DM 数据守护的实现原理是将主库产生的 REDO 日志传输到备库,备库接收并重新应用 REDO 日志,从而实现备库与主库的数据同步。在实时主备系统中,主备库通过实时归档完成数据同步。实时归档要求主库将 RLOG_PKG 发送到备库后,再将 RLOG_PKG 写入本地联机 REDO 日志文件。
(三)故障处理机制
当主库出现故障时,守护进程会检测到异常,并通知监视器。监视器可通过 Takeover 命令,将备库切换为主库,继续对外提供服务。同时,守护进程会在历史数据同步后,修改主库的实时归档状态为 Valid,恢复实时备库功能。
三、达梦数据守护集群的搭建步骤
(一)环境准备
1.准备至少两台服务器,分别作为主库和备库,服务器环境需保持一致,包括操作系统、硬件配置等。
2.确保两台服务器之间网络畅通,配置好相应的防火墙规则,开放必要的端口。
3.在每台服务器上创建好数据库安装目录、实例安装目录、归档日志存放目录和备份文件存放目录等,并确保有足够的磁盘空间。
(二)数据库安装与初始化
1.在主库和备库服务器上分别安装达梦数据库软件,安装过程与单机安装基本一致。
2.初始化主库和备库,指定实例路径等参数,确保主备库初始化参数保持一致。
(三)配置主库
1.修改 dm.ini 文件:配置实例名称、端口号、接收守护进程消息超时时间、是否允许手工修改实例模式等参数。例如:
INSTANCE_NAME = GRP1_RT_01
PORT_NUM = 5236
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64
1.配置 dmmal.ini 内部通信配置文件:设置 MAL 系统相关参数,如 MAL_HOST(服务器 IP)、MAL_PORT(通信端口)等。
2.配置 dmarch.ini 归档配置文件:配置本地归档和实时归档。当前实例为主库,需要向实时备库同步数据,因此实时归档的 ARCH_DEST 配置为备库实例名。例如:
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_RT_02
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /DM/dmarch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 20480
1.配置 dmwatcher.ini 守护配置文件:设置守护类型、切换模式、故障认定时间、实例 OGUID 值等参数。例如:
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453331
INST_INI = /DM/dmdata/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /DM/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
1.以 mount 方式启动主库服务,并修改节点模式为 primary,同时设置 ogudi 值。
(四)配置备库
1.按照主库的配置方式,修改备库的 dm.ini、dmmal.ini、dmarch.ini、dmwatcher.ini 等文件,注意部分参数如实例名称、端口号等需与主库区分,但 INST_OGUID 值必须相同,组名必须相同。例如,备库的 dm.ini 可配置为:
INSTANCE_NAME = GRP1_RT_02
PORT_NUM = 5236
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64
备库的 dmarch.ini 中实时归档目标实例名应指向主库实例名:
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_RT_01
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /DM/dmarch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 20480
1.以 mount 方式启动备库服务,并修改节点模式为 standby,同时设置 ogudi 值。
(五)配置监视器
监视器最好放在第三台机器上。配置 dmmonitor.ini 文件,设置是否为确认监视器模式、监视器日志文件存放路径、定时记录系统信息到日志文件的间隔时间、每个日志文件最大大小、组的唯一 OGUID 值以及监视器到守护进程的连接信息等。例如:
MON_DW_CONFIRM = 1
MON_LOG_PATH = /DM/dmdata/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0
[GRP1]
MON_INST_OGUID = 453331
MON_DW_IP = 192.168.100.101:52141
MON_DW_IP = 192.168.100.102:52142
(六)启动集群
1.启动主库实例。
2.启动主库守护进程。
3.启动备库实例。
4.启动备库守护进程。
5.启动监视器。
(七)集群测试
在主库创建测试表并插入数据,提交事务后,到备库查看是否能查询到相同的数据,以验证主备库数据同步是否正常。例如,在主库 disql 登录后执行:
create table test(id int);
insert into test values (1);
commit;
然后在备库 disql 登录执行:
select * from test;
若能查询到数据,则说明集群搭建成功。
四、达梦数据守护集群的优势
(一)高可用性
通过实时主备机制,在主库出现故障时,备库可快速切换为主库,继续对外提供服务,确保数据库服务的连续性,有效避免因硬件故障、软件异常等导致的业务中断。
(二)数据安全性
主备库之间通过实时归档保持数据同步,且可切换备库能保证在主库故障切换时不会造成数据丢失,为数据安全提供了双重保障。
(三)易于部署与管理
达梦数据守护集群的部署相对简单,只需对主、备机进行一些文件的配置即可搭建完成。同时,通过监视器可实时监控主、备数据库的状态和数据同步情况,便于管理和维护。
(四)支持滚动升级
在保证应用不宕机的情况下,可依次实现对主备机的 DM8 数据库版本升级,降低了系统升级对业务的影响。
五、总结
达梦数据守护集群凭借其高可用性、数据安全性、易于部署与管理等优势,为企业提供了可靠的数据库解决方案。在当今数据驱动的时代,它能有效保障企业数据的安全和业务的连续性,助力企业在数字化浪潮中稳健前行。无论是应对日常的系统维护,还是面对突发的硬件故障、自然灾害,达梦数据守护集群都能成为企业数据的坚实守护者。
文章
阅读量
获赞