达梦数据库主备集群搭建原理及参数意义

搭建原理

  1. 主备架构
    • 主库(Primary模式):提供完整的数据库服务,直接支撑应用系统的生产库,修改主备库时都需要将数据库启动到mount模式:dmserver /dm8/dmdbms/data/TEST/dm.ini mount,然后设置 OGUID,在主备库分别执行:sp_set_oguid(45331),修改数据库模式主备库:alter database primary(standby),然后停止数据库正常启动(open)。
    • 备库(Standby模式):提供只读数据库服务,用于容灾、备份、查询等只读功能。备库支持临时表的Insert/Delete/Update操作。
  2. 数据同步
    • 主库产生的Redo日志会被传输到备库。
    • 备库接收Redo日志并重新应用(重演),实现与主库的数据同步。
    • 修改dm.ini的配置参数,修改参数如下:

      INSTANCE_NAME = TEST1
      PORT_NUM = 5236  #数据库实例监听端口
      ALTER_MODE_STATUS = 0  #不允许手工方式修改实例模式/状态
      ENABLE_OFFLINE_TS = 2  #不允许备库 OFFLINE 表空间
      MAL_INI = 1  #打开 MAL 系统
      ARCH_INI = 1  #打开归档配置

  3. Redo日志传输
    • 以日志包RLOG_PKG为单位,通过MAL系统(基于TCP协议的内部通信机制)发送Redo日志到备库。
    • 主库在将RLOG_PKG发送到备库后,再将RLOG_PKG写入本地联机Redo日志文件。
    • 修改归档日志,两个节点都配置,ARCH_DEST分写写对方的实例。比如当前实例 TEST1 是主库,需要向 TEST2(实时备库)同步数据,因此实时归档的ARCH_DEST 配置为 TEST2,配置文件如下:

      ARCH_WAIT_APPLY = 0  #开启高性能模式
      [ARCHIVE_REALTIME]
      ARCH_TYPE = REALTIME  #实时归档类型
      ARCH_DEST = TEST2  #实时归档目标实例名
      [ARCHIVE_LOCAL1]
      ARCH_TYPE = LOCAL #本地归档类型
      ARCH_DEST = /dm8/dmarch #本地归档文件存放路径
      ARCH_FILE_SIZE = 1024   #单位 Mb,本地单个归档文件最大值
      ARCH_SPACE_LIMIT = 10240  #单位 Mb,0 表示无限制,范围 1024~4294967294M

  4. mal系统:                                                                                                                                    1. dmmal.ini 是 MAL 配置文件。需要用到 MAL 环境的实例,所有站点 dmmal.ini 需要保            证严格一致。                                                                                                                        2.配置 dmmal.ini文件,2节点配置配置一样。具体如下:

           MAL_CHECK_INTERVAL = 5              #MAL 链路检测时间间隔
           MAL_CONN_FAIL_INTERVAL = 5       #判定 MAL 链路断开的时间
           [MAL_INST1]
           MAL_INST_NAME = TEST1               #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
           MAL_INST_HOST = 10.10.10.7         #实例的对外服务 IP 地址
           MAL_HOST = 10.0.0.7                     #MAL 系统监听 TCP 连接的 IP 地址
           MAL_INST_PORT = 5236       #实例的对外服·务端口,和 dm.ini 中的PORT_NUM 一致
           MAL_INST_DW_PORT = 5237         #实例监听守护进程TCP连接的端口
           MAL_PORT = 5238                           #MAL 系统监听 TCP 连接的端口
           MAL_DW_PORT = 5239                   #实例对应的守护进程监听 TCP 连接的端口
           [MAL_INST2]
           MAL_INST_NAME = TEST2
           MAL_INST_HOST = 10.10.10.8
           MAL_HOST = 10.0.0.8
           MAL_INST_PORT = 5236
           MAL_INST_DW_PORT = 5237
           MAL_PORT = 5238

           MAL_DW_PORT = 5239

  5. 守护进程(dmwatcher)
    • 管理数据守护系统的核心部件,负责数据库监控、故障检测、故障处理、故障恢复等功能。
    • 监控数据库状态、发送状态信息、监控其他守护进程消息、接收监视器消息等。
    • 配置dmwatcher.ini,主备都要配置,守护进程使用AUTO,自动切换模式,配置文件如下:

      [GRP1]

      DW_TYPE = GLOBAL                        #全局守护类型
      DW_MODE = AUTO                                #auto自动切换  MANUAL:手动切换
      DW_ERROR_TIME = 10                            #远程守护进程故障认定时间
      INST_RECOVER_TIME = 60                        #主库守护进程启动恢复的间隔时间
      INST_ERROR_TIME = 10                          #本地实例故障认定时间
      INST_OGUID = 45331                            #守护系统唯一 OGUID 值
      INST_INI = /dm8/dmdbms/data/TEST/dm.ini       #dm.ini 配置文件路径
      INST_AUTO_RESTART = 1                         #打开实例的自动启动功能
      INST_STARTUP_CMD = /dm8/bin/dmserver          #命令行方式启动
      RLOG_SEND_THRESHOLD = 0                       #指定主库发送日志到备库的时间阀值,默认关闭
      RLOG_APPLY_THRESHOLD = 0                      #指定备库重演日志的时间阀值,默认关闭

  6. 监视器(dmmonitor)
    • 命令行工具,是DM数据守护系统的重要组成部分。
    • 监控数据守护系统的运行情况,获取主备库状态、守护进程状态以及主备库数据同步情况等信息。
    • 提供一系列命令来管理数据守护系统,如启动、停止守护进程的监控功能,执行主备库切换、备库故障接管等操作,一些常见命令如下:                                                  1.help                  --显示帮助信息
      2.exit                  --退出监视器
      3.show version          --显示监视器自身版本信息
      4.show global info      --显示所有组的全局信息
      5.show database [group_name.]db_name  --显示指定库的详细信息
      6.show [group_name]     --显示指定组的详细信息,如果未指定组名,则显示所有组的详细信息
      7.show i[nterval] n     --每隔n秒自动显示所有组的详细信息
      8.q                     --取消自动显示
      9.list [[group_name.]db_name]  --列出指定组的库对应的守护进程配置信息,如果都未指定,则列出所有守护进程配置信息
      10.show open info [group_name.]db_name  --显示指定库的OPEN历史信息
      11.show arch send info [group_name.]db_name  --查看源库到指定组的指定库的归档同步信息(包含恢复间隔信息)
      12.show apply stat [group_name.]db_name  --查看指定组的指定库的日志重演信息
      13.show monitor [group_name[.]] [db_name]  --列出连接到指定守护进程的所有监视器信息
      14.show state   --显示当前监视器所在监视器配置组的所有监视器的状态信息
      15.tip          --查看系统当前运行状态
      16.login [/@service_name]  --登录监视器. 如果指定了/@service_name,则会使用wallet方式登录;否则为默认的交互式登录
      17.logout     --退出登录
      18.get takeover time   --获取备库开始自动接管需要延迟等待的时间
      19.startup dmwatcher [group_name]   --启动指定组的守护进程监控功能
      20.stop dmwatcher [group_name]  --关闭指定组的守护进程监控功能
      21.startup group [group_name]  --启动指定组中的所有库
      22.stop group [group_name]  --关闭指定组中的所有库
      23.kill group [group_name]  --强制杀掉指定组中的所有活动库
      24.choose switchover [group_name]  --选择可切换为PRIMARY库的备库列表
      25.choose takeover [group_name]  --选择可接管故障PRIMARY库的备库列表
      26.choose takeover force [group_name]  --选择可强制接管故障PRIMARY库的备库列表
      27.set group [group_name] auto restart on  --打开指定组中所有节点的自动拉起功能
      28.set group [group_name] auto restart off  --关闭指定组中所有节点的自动拉起功能
    • 配置确认监视器dmmonitor.ini,其中MON_DW_IP中的ip跟port要和dmmal系统的dmmal.ini配置文件里面的MAL_HOST跟MAL_DW_PORT配置项保持一致,配置文件如下:

      MON_DW_CONFIRM = 1 #确认监视器模式
      MON_LOG_PATH = /dm8/dmdbms/log #监视器日志文件存放路径
      MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
      MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
      MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
      [GRP1]            #组名需要跟dmwatcher.ini配置文件中一致
      MON_INST_OGUID = 45331  #组 GRP1 的唯一 OGUID 值
      MON_DW_IP = 10.0.0.7:5239  #根据实际情况进行修改
      MON_DW_IP = 10.0.0.8:5239

    • 注册监视器服务:/dm8/script/root/dm_service_installer.sh -t dmmonitor -monitor_ini /dm8/dmmonitor.ini -p Monitor

    • 达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值