(超详细版)达梦数据库:搭建实时主备集群

DM8数据守护概述


DM 数据守护(DM Data Watch)的实现原理非常简单:将主库(生产库)产生的 Redo日志传输到备库,备库接收并重新应用 Redo 日志,从而实现备库与主库的数据同步。DM数据守护的核心思想是监控数据库状态,获取主、备库数据同步情况,为 Redo 日志传输与重演过程中出现的各种异常情况提供一系列的解决方案。
DM 数据守护(Data Watch)是一种集成化的高可用、高性能数据库解决方案,是数据库异地容灾的首选方案。通过部署 DM 数据守护,可以在硬件故障(如磁盘损坏)、自然灾害(地震、火灾)等极端情况下,避免数据损坏、丢失,保障数据安全,并且可以快速恢复数据库服务,满足用户不间断提供数据库服务的要求。与常规的数据库备份(Backup)、还原(Restore)技术相比,数据守护可以更快地恢复数据库服务。随着数据规模不断增长,通过还原手段恢复数据,往往需要数个小时、甚至更长时间,而数据守护基本不受数据规模的影响,只需数秒时间就可以将备库切换为主库对外提供数据库服务。

主备集群基本构架、原理、守护进程、监视器作用

基本构架:
在这里插入图片描述
原理:
主备库通过实时归档完成数据同步,实时归档要求主库将 RLOG_PKG 发送到备库后,再将 RLOG_PKG 写入本地联机 Redo 日志文件。但要注意的是,备库确认收到主库发送的Redo 日志,并不保证备库已经完成重演这些 Redo 日志,因此主备库之间的数据同步存在一定的时间差。

守护进程:
守护进程是管理数据守护系统的核心部件,监视器(dmmonitor)负责发起命令,守
护进程负责解析、处理、转发命令。守护进程提供了数据库监控、故障检测、故障处理、故
障恢复等各种功能。

监视器:
监视器(dmmonitor)是基于监视器接口(详见 9.2 监视器接口)实现的一个命令行工具,是 DM 数据守护系统的重要组成部分。
通过监视器,可以监控数据守护系统的运行情况,获取主备库状态、守护进程状态以及主备库数据同步情况等信息。同时,监视器(dmmonitor)还提供了一系列命令来管理数据守护系统。
监视器的基本作用如下:
1.监控数据守护系统
接收守护进程发送的消息,显示主、备数据库状态变化,以及故障切换过程中,数据库模式、状态变化的完整过程。
2. 管理数据守护系统
用户可以在监视器上输入命令,启动、停止守护进程的监控功能,执行主备库切换、备库故障接管等操作。
3.确认状态信息
用于故障自动切换的数据守护系统中,主、备库进行故障处理之前,需要通过监视器进行信息确认,确保对应的备库或者主库是真的产生异常了,避免主备库之间网络故障引发脑裂。
4.发起故障自动接管命令
用于故障自动切换的数据守护系统中,主库发生故障时,挑选符合接管条件的备库,并通知备库执行接管操作。

配置文件说明

1.dm.ini 是 DM 数据库配置文件
注意:数据守护环境下不允许修改TS_MAX_ID 和TS_FIL_MAX_ID参数。

2.dmmal.ini 是 MAL 配置文件。需要用到 MAL 环境的实例,所有站点 dmmal.ini 需要保证严格一致。
注意:所有站点的MAL配置参数MAL_COMPRESS_LEVEL必须要一致,否则节点间将不能建立链路,导致系统无法运行(在服务器log日志中课看到打印提示信息)。另外配置不为0时,需要保证每个节点都能加载到对应的动态压缩库文件(snappy或zlib),如果未加载成功,则默认变成0,也可能导致链路建立不成功。

3.dmarch.ini 是 Redo 日志归档配置文件。

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

5.dmmonitor.ini 是监视器配置文件。
注意:只有在 MON_LOG_INTERVAL 配置大于 0 的情况下才会产生日志信息,并写入到日志文件中,日志文件路径请参考上述说明。
在有日志写入操作时,如果日志路径下没有日志文件,会自动创建一个新的日志文件,如果已经有日志文件,则根据设定的单个 日志文件大小(MON_LOG_FILE_SIZE)决定继续写入已有的日志文件或者创建新的日志文件写入。
创 建 新 的 日 志 文 件 时 , 根 据 设 定 的 日 志 总 空 间 大 小(MON_LOG_SPACE_LIMIT)决定是否删除创建时间最早的日志文件。

6.dmtimer.ini 用于配置定时器,可记录异步备库的定时器信息,实时主备不用配置该文件。

提醒:每个机器的ini文件最好放在同一个目录下

搭建实时主备

1.数据准备


在搭建数据守护系统前,应注意数据守护系统中各实例使用的 DM 服务器版本应一致,同时还应注意各实例所在主机的操作系统位数、大小端模式、时区及时间设置都应一致,以及使用同一个用户启动 DM 服务器和守护进程 dmwatcher,以免系统在运行时出现意想不到的错误。

配置数据守护 V4.0 之前,必须先通过备份还原方式同步各数据库的数据,确保各数据的数据保持完全一致。主库可以是新初始化的数据库,也可以是正在生产、使用中的数据库。不能使用分别初始化库或者直接拷贝数据文件的方法,原因如下:
1. 每个库都有一个永久魔数(permenant_magic),一经生成,永远不会改变,主库传送日志时会判断这个值是否一样,确保是来自同一个数据守护环境中的库,否则传送不了日志。
2. 由于 dminit 初始化数据库时,会生成随机密钥用于加密,每次生成的密钥都不相同,备库无法解析采用主库密钥加密的数据。
3. 每个库都有一个数据库魔数(DB_MAGIC),每经过一次还原、恢复操作,DB_MAGIC 就会产生变化,需要通过这种方式来区分同一个数据守护环境中各个不同的库。
注意!!!如果需要使用 Huge 表,在初始化库时需要将建库参数 HUGE_WITH_DELTA 和RLOG_GEN_FOR_HUGE 都配置为 1。 对于新初始化的库,首次启动不允许使用 Mount 方式,需要先正常启动并正常退出,然后才允许 Mount 方式启动。准备数据时,如果主库是新初始化的库,先正常启动并正常退出,然后再使用备份还原方式准备备库数据。

注意!!!


如果是初始搭建环境,可以通过对主库脱机备份、对备库脱机还原的方式来准备数据,(一定要操作这部分内容!!!)
如果主库已经处于运行状态,则可以对主库进行联机备份、对备库脱机还原的方式来准备数
据。

两种方式都需要服务器配置本地归档,本地归档配置方式如下:
1.配置dm.ini,打开arch_ini参数

ARCH_INI=1                       #打开归档配置

2.配置dmarch.ini

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm/data/DAMENG/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限制,范围 1024~2147483647M

更详细操作可参考博主另一篇文章:
https://blog.csdn.net/weixin_46474599/article/details/119839537
要将主库的备份集复制到备库上
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

备库还原:
在这里插入图片描述

脱机备份、脱机还原方式

1.正常关闭数据库
2.进行脱机备份
3.拷贝备份文件到备库所在机器

./dmrman CTLSTMT="BACKUP DATABASE '/dm/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 
BACKUPSET '/dm/data/BACKUP_FILE_01'"

4.执行脱机数据库还原与恢复

./dmrman CTLSTMT="RESTORE DATABASE '/dm/data/DAMENG/dm.ini' FROM BACKUPSET
'/dm/data/BACKUP_FILE_01'"

因为脱机备份没有产生任何 REDO 日志,所以此处省略恢复数据库的操作步骤。
数据库更新:

./dmrman CTLSTMT="RECOVER DATABASE '/dm/data/DAMENG/dm.ini' UPDATE DB_MAGIC"

联机备份、脱机还原方式


1.对主库进行联机备份操作

SQL> BACKUP DATABASE BACKUPSET '/dm/data/BACKUP_FILE_01';

2.拷贝备份文件到备库所在机器
3. 执行脱机数据库还原与恢复

./dmrman CTLSTMT="RESTORE DATABASE '/dm/data/DAMENG/dm.ini' FROM BACKUPSET 
'/dm/data/BACKUP_FILE_01'"
./dmrman CTLSTMT="RECOVER DATABASE '/dm/data/DAMENG/dm.ini' FROM BACKUPSET 
'/dm/data/BACKUP_FILE_01'"
./dmrman CTLSTMT="RECOVER DATABASE '/dm/data/DAMENG/dm.ini' UPDATE DB_MAGIC"

2.配置实时主备


配置实时主备,有以下几种配置方案,可以根据实际情况部署:

  1. 只配置主库和最多 8 个实时备库。
  2. 只配置主库和最多 8 个异步备库。
  3. 配置主库、最多 8 个实时备库,和最多 8 个异步备库。

楼主只搭建一个备库,故准备三台机器,一台主库,一台备库,一台监视器,在测试环境中,可将监视器部署在主库机器或备库机器,则只需准备两台机器。
主库和备库机器要配置两张网卡,一张连接内网,一张连接外网,楼主内外网使用同一个网卡。

可根据自己实际情况设置:
在这里插入图片描述
按照自己设置,初始化库至指定目录,两个机器都要

3.配置主库GRP1_RT_01


3.配置主库GRP1_RT_01

#实例名,建议使用―组名_守护环境_序号‖的命名方式,总长度不能超过 16
INSTANCE_NAME = GRP1_RT_01 
PORT_NUM = 32141 #数据库实例监听端口
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值