安装部署报告——主备集群

参考博客
注意,为更好区分,如下黑框为主库,白框为备库


数据库规划

本地目录规划

目录用途目录路径
数据库目录/home/dmdba/dmdbms
实例目录/home/dmdba/dmdata
归档日志目录/home/dmdba/dmarch/arch
备份文件目录/home/dmdba/dmbak

IP以及实例规划

服务器ip实例名
监视器192.168.32.148-
主库192.168.32.128DM_MF
实时备库192.168.32.148DM_SYNC
异步备库192.168.32.154DM_ASYNC

端口规划

不同主机最好是相同用途的端口配置成相同的端口号,实际中也可以按需要修改端口号。端口规划如下:

端口用途
5236数据库实例监听端口
61141MAL系统监听TCP连接的端口
52141实例本地的守护进程监听TCP连接的端口
33141实例监听守护进程TCP连接的端口

数据准备

对主库进行脱机备份
在这里插入图片描述

对实时备库进行脱机还原
在这里插入图片描述
在这里插入图片描述

对异步备库进行脱机还原
在这里插入图片描述
在这里插入图片描述

添加配置文件

主库

dm.ini

INSTANCE_NAME = DM_MF  #修改实例名
MAL_INI = 1            #打开 MAL 系统
ARCH_INI = 1           #打开归档配置
TIMER_INI = 1          #打开定时器配置,除异步备库外的主备库需要
ALTER_MODE_STATUS = 0  #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2  #不允许备库 OFFLINE 表空间

dmarch.ini

实例目录下若没有就新建,添加如下内容:

[ARCHIVE_REALTIME]
ARCH_TYPE     = REALTIME  #实时归档类型
ARCH_DEST     = DM_SYNC   #实时归档目标实例名(主库侧填写备库实例名)
[ARCHIVE_LOCAL1]
ARCH_TYPE     = LOCAL #本地归档类型
ARCH_DEST     = /home/dmdba/dmarch/arch #本地归档文件存放路径
ARCH_FILE_SIZE    = 128 #单位 MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT  = 10240    #单位 MB,0 表示无限制,范围 1024~4294967294 MB

dmmal.ini

实例目录下若没有就新建,添加如下内容:

MAL_CHECK_INTERVAL   = 5  # MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL  = 5  # 判定 MAL链路断开的时间
[MAL_INST1]
  MAL_INST_NAME = DM_MF  #与 dm.ini中的 INSTANCE_NAME一致
  MAL_HOST     = 10.0.0.151  # MAL系统监听 TCP 内部网络 IP
  MAL_PORT     = 61141  # MAL系统监听 TCP连接的端口
  MAL_INST_HOST   = 192.168.163.151  #实例的对外服务 IP地址
  MAL_INST_PORT   = 5236  #与 dm.ini中的 PORT_NUM一致
  MAL_DW_PORT   = 52141  #实例对应的守护进程监听 TCP 端口
  MAL_INST_DW_PORT = 33141
[MAL_INST2]
  MAL_INST_NAME = DM_SYNC  #与 dm.ini中的 INSTANCE_NAME 一致
  MAL_HOST      = 10.0.0.152  # MAL系统监听 TCP内部网络 IP
  MAL_PORT          = 61141  # MAL系统监听 TCP连接的端口
  MAL_INST_HOST         = 192.168.163.152  #实例的对外服务 IP地址
  MAL_INST_PORT         = 5236  #与 dm.ini中的 PORT_NUM一致
  MAL_DW_PORT  = 52141  #实例对应的守护进程监听 TCP端口
  MAL_INST_DW_PORT = 33141
[MAL_INST3]
  MAL_INST_NAME = DM_ASYNC
  MAL_HOST = 10.0.0.153
  MAL_PORT  = 61141
  MAL_INST_HOST = 192.168.32.154
  MAL_INST_PORT = 5236
  MAL_DW_PORT = 52141
  MAL_INST_DW_PORT = 33141

dmwatcher.ini

[GRP_RW]
DW_TYPE    = GLOBAL  #全局守护类型
DW_MODE    = AUTO  #自动切换模式
DW_ERROR_TIME     = 10  #远程守护进程故障认定时间
INST_RECOVER_TIME  = 60  #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME   = 10  #本地实例故障认定时间
INST_OGUID         = 453331  #守护系统唯一 OGUID 值
INST_INI           = /home/dmdba/dmdata/DM_MF/dm.ini  # dm.ini 配置文件路径
INST_AUTO_RESTART  = 1   #打开实例的自动启动功能
INST_STARTUP_CMD   = /home/dmdba/dmdbms/bin/dmserver  #命令行方式启动

dmtimer.ini

[RT_TIMER]  #和 dmarch.ini 中的 ARCH_TIMER_NAME 一致
TYPE = 2
FREQ_MONTH_WEEK_INTERVAL = 1
FREQ_SUB_INTERVAL = 0
FREQ_MINUTE_INTERVAL = 0
START_TIME = 11:00:00
END_TIME = 11:01:00
DURING_START_DATE = 2023-7-24 17:00:00
DURING_END_DATE = 9999-12-31 23:59:59
NO_END_DATE_FLAG = 1
DESCRIBE = RT TIMER
IS_VALID = 1

此处定时器配置为每天 11:00:00 触发主库和实时备库发送归档日志到异步备库,起始日期时间是 2023-07-24 15:00 。具体可以根据实际情况再做调整。

实时备库

dm.ini

INSTANCE_NAME = DM_SYNC  #修改实例名
MAL_INI = 1            #打开 MAL 系统
ARCH_INI = 1           #打开归档配置
TIMER_INI = 1          #打开定时器配置,除异步备库外的主备库需要
ALTER_MODE_STATUS = 0  #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2  #不允许备库 OFFLINE 表空间

dmarch.ini

[ARCHIVE_REALTIME]
ARCH_TYPE     = REALTIME  #实时归档类型
ARCH_DEST     = DM_MF  #实时归档目标实例名(备库侧填写主库实例名)
[ARCHIVE_LOCAL1]
ARCH_TYPE     = LOCAL  #本地归档类型
ARCH_DEST     = /home/dmdba/dmarch/arch  #本地归档文件存放路径
ARCH_FILE_SIZE    = 128  #单位 MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT  = 10240  #单位 MB,0 表示无限制,范围 1024~4294967294 MB

dmmal.ini

与主库一致

dmwatcher.ini

[GRP_RW]
DW_TYPE    = GLOBAL  #全局守护类型
DW_MODE    = AUTO  #自动切换模式
DW_ERROR_TIME     = 10  #远程守护进程故障认定时间
INST_RECOVER_TIME  = 60  #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME   = 10  #本地实例故障认定时间
INST_OGUID         = 453331  #守护系统唯一 OGUID 值
INST_INI           = /home/dmdba/dmdata/DM_SYNC/dm.ini  # dm.ini 配置文件路径
INST_AUTO_RESTART  = 1   #打开实例的自动启动功能
INST_STARTUP_CMD   = /home/dmdba/dmdbms/bin/dmserver  #命令行方式启动

dmtimer.ini

与主库一致,异步备库不需要

dmmonitor.ini

可以配置在其他备库上

MON_DW_CONFIRM    = 1
MON_LOG_PATH    = /home/dmdba/dmdata/DM_SYNC/log  #监视器日志文件存放路径
MON_LOG_INTERVAL  = 60  #每隔 60 s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE   = 32  #每个日志文件最大 32 MB
MON_LOG_SPACE_LIMIT  = 0  #不限定日志文件总占用空间
[GRP_RW]
MON_INST_OGUID    = 453331  #组 GRP_RW 的唯一 OGUID 值 
#以下配置为监视器到组 GRP_RW 的守护进程的连接信息,以“IP:PORT”的形式配置
#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
 MON_DW_IP     = 10.0.0.151:52141
 MON_DW_IP     = 10.0.0.152:52141
 MON_DW_IP     = 10.0.0.153:52141

异步备库

dm.ini

INSTANCE_NAME = DM_ASYNC  #修改实例名
MAL_INI = 1            #打开 MAL 系统
ARCH_INI = 1           #打开归档配置
ALTER_MODE_STATUS = 0  #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2  #不允许备库 OFFLINE 表空间

dmarch.ini

[ARCHIVE_LOCAL1]
ARCH_TYPE     = LOCAL
ARCH_DEST     = /home/dmdba/dmarch/arch
ARCH_FILE_SIZE    = 128
ARCH_SPACE_LIMIT  = 0

dmmal.ini

与主库一致

dmwatcher.ini

[GRP_RW]
DW_TYPE    = LOCAL  #本地守护类型
DW_MODE    = MANUAL  #手动切换模式
DW_ERROR_TIME     = 10
INST_ERROR_TIME   = 10
INST_OGUID         = 453331
INST_INI           = /home/dmdba/dmdata/DM_ASYNC/dm.ini
INST_AUTO_RESTART  = 1
INST_STARTUP_CMD   = /home/dmdba/dmdbms/bin/dmserver

启动集群

启动实例

  1. 主备库同时启动到mount状态

    //主库
    ./dmserver /home/dmdba/dmdata/DM_MF/dm.ini mount
    //实时备库
    ./dmserver /home/dmdba/dmdata/DM_SYNC/dm.ini mount
    //异步备库
    ./dmserver /home/dmdba/dmdata/DM_ASYNC/dm.ini mount
    
  2. 使用disql修改模式和oguid
    主库

    SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
    SQL> sp_set_oguid(453331);      #修改 oguid
    SQL> alter database primary;    #修改为 primary 模式
    SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
    

    在这里插入图片描述

    实时备库、异步备库

    SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
    SQL> sp_set_oguid(453331);      #修改 oguid
    SQL> alter database standby;    #修改为 standby 模式
    SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
    

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

启动守护进程

主备库都执行:

./dmwatcher /home/dmdba/dmdata/dmrw/dmwatcher.ini

在这里插入图片描述

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

启动监视器

./dmmonitor /home/dmdba/dmdata/dmrw/dmmonitor.ini

在这里插入图片描述
监视器启动后可以看到各个主机的启动状态

验证数据同步

验证实时同步

  1. 主库创建测试表,插入数据
    在这里插入图片描述

  2. 备库查询(commit前后)
    在这里插入图片描述

  3. 输入show需要关注的信息有:

    在这里插入图片描述
    监视器输入show可以发现invalid,可能导致同步不成功,此处需要修改错误
    参见
    在这里插入图片描述

    主库和实时备库的 FLSN 和 CLSN 的值会随时间增长而同步增长,而异步备库的这两个值一般不变,只有等触发定时器后才会更新。

验证主备切换后数据同步

  1. 切换主备库,监视进程输入login switchover
    在这里插入图片描述
    在这里插入图片描述
    再次输入show查看:
    在这里插入图片描述

  2. 原本的实时备库插入数据:
    在这里插入图片描述

  3. 原本的主库查询:
    在这里插入图片描述

  4. 再次输入switchover切换主备,恢复原状

验证异步同步

  1. 定时器时间设置为18:24
  2. 监视器查看异步备库的归档日志接收信息(18:24前后)

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

  1. disql查询(18:24前后)
    在这里插入图片描述
    在这里插入图片描述

  2. 到相应路径下查看归档日志
    在这里插入图片描述
    这里一定要注意系统时间的问题,最开始主库一直不发送,查看show发现系统时间不对,修改过来就可以了
    修改前:
    在这里插入图片描述
    修改后:
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值