达梦数据库系列—19. 动态增加实时备库

目录

动态增加实时备库

1、数据准备

2 、配置新备库

2.1配置 dm.ini

2.2配置 dmmal.ini

2.3 配置 dmarch.ini

2.4 配置 dmwatcher.ini

2.5 启动备库

2.6 设置 OGUID

2.7 修改数据库模式

3、 动态添加 MAL 配置

4、 动态添加归档配置

5、 修改监视器 dmmonitor.ini

6、 启动所有守护进程以及监视器


先搭建好实时主备集群,参考:

17. 配置主备集群-实时主备

动态增加实时备库

增加一个备库,实例名为 GRP1_RT_03。

配置环境

机器名

IP 地址

初始状态

操作系统

备注

DW_S2

192.168.64.133 192.168.169.143

备库 GRP1_RT_03

Linux rh7 x86_64

192.168.64.133 外部服务 IP; 192.168.169.143 内部通信 IP

1、数据准备

   对主库进行联机备份操作:

SQL> BACKUP DATABASE BACKUPSET '/dm/data/BACKUP_FILE_02';
  1. 初始化备机数据库
./dminit path=/dm/data/
  1. 还原恢复新增备库

拷贝生成的备份集目录 BACKUP_FILE_02 到 143 上/dm/data/目录,使用 DMRMAN 工具脱机还原。

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

2 、配置新备库

2.1配置 dm.ini

在 DW_S3 机器上配置备库的实例名为 GRP1_RT_03

##实例名,建议使用“组名_守护环境_序号”的命名方式,总长度不能超过16


INSTANCE_NAME = GRP1_RT_03


PORT_NUM = 32143 ##数据库实例监听端口


DW_INACTIVE_INTERVAL = 60 ##接收守护进程消息超时时间


ALTER_MODE_STATUS = 0 ##不允许手工方式修改实例模式/状态/OGUID


ENABLE_OFFLINE_TS = 2 ##不允许备库OFFLINE表空间


MAL_INI = 1 ##打开MAL系统


ARCH_INI = 1 ##打开归档配置


RLOG_SEND_APPLY_MON = 64 ##统计最近64次的日志重演信息
2.2配置 dmmal.ini

拷贝一份原系统dmmal.ini文件,并加上自己一项,最终配置如下:

MAL_CHECK_INTERVAL = 5 ##MAL链路检测时间间隔


MAL_CONN_FAIL_INTERVAL = 5 ##判定MAL链路断开的时间


[MAL_INST1]


MAL_INST_NAME = GRP1_RT_01 ##实例名,和dm.ini中的INSTANCE_NAME一致


MAL_HOST = 192.168.169.141 ##MAL系统监听TCP连接的IP地址


MAL_PORT = 61141 ##MAL系统监听TCP连接的端口


MAL_INST_HOST = 192.168.64.131  ##实例的对外服务IP地址


MAL_INST_PORT = 32141 ##实例的对外服务端口,和dm.ini中的PORT_NUM一致


MAL_DW_PORT = 52141 ##实例本地的守护进程监听TCP连接的端口


MAL_INST_DW_PORT = 33141 ##实例监听守护进程TCP连接的端口


[MAL_INST2]


MAL_INST_NAME = GRP1_RT_02


MAL_HOST = 192.168.169.142


MAL_PORT = 61142


MAL_INST_HOST = 192.168.64.132


MAL_INST_PORT = 32142


MAL_DW_PORT = 52142


MAL_INST_DW_PORT = 33142


[MAL_INST3]


MAL_INST_NAME = GRP1_RT_03


MAL_HOST = 192.168.169.143


MAL_PORT = 61143


MAL_INST_HOST = 192.168.64.133


MAL_INST_PORT = 32143


MAL_DW_PORT = 52143


MAL_INST_DW_PORT = 33143
2.3 配置 dmarch.ini
[ARCHIVE_REALTIME]


ARCH_TYPE = REALTIME ##实时归档类型


ARCH_DEST = GRP1_RT_01 ##实时归档目标实例名


[ARCHIVE_REALTIME2]


ARCH_TYPE = REALTIME ##实时归档类型


ARCH_DEST = GRP1_RT_02 ##实时归档目标实例名


[ARCHIVE_LOCAL1]


ARCH_TYPE = LOCAL ##本地归档类型


ARCH_DEST = /dm/data/DAMENG/arch ##本地归档文件存放路径


ARCH_FILE_SIZE = 128 ##单位Mb,本地单个归档文件最大值


ARCH_SPACE_LIMIT = 0 ##单位Mb,0表示无限制,范围1024~4294967294M
2.4 配置 dmwatcher.ini
[GRP1]


DW_TYPE = GLOBAL ##全局守护类型


DW_MODE = AUTO ##自动切换模式


DW_ERROR_TIME = 10 ##远程守护进程故障认定时间


INST_RECOVER_TIME = 60 ##主库守护进程启动恢复的间隔时间


INST_ERROR_TIME = 10 ##本地实例故障认定时间


INST_OGUID = 453331 ##守护系统唯一OGUID值


INST_INI = /dm/data/DAMENG/dm.ini ##dm.ini配置文件路径


INST_AUTO_RESTART = 1 ##打开实例的自动拉起功能


INST_STARTUP_CMD = /dm/bin/dmserver ##命令行方式启动


RLOG_SEND_THRESHOLD = 0 ##指定主库发送日志到备库的时间阈值,默认关闭


RLOG_APPLY_THRESHOLD = 0 ##指定备库重演日志的时间阈值,默认关闭
2.5 启动备库

以 Mount 方式启动备库

./dmserver /dm/data/DAMENG/dm.ini mount
2.6 设置 OGUID
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL>sp_set_oguid(453331);

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
2.7 修改数据库模式
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL>alter database standby;

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

3、 动态添加 MAL 配置

分别连接原系统中每个实例单独执行:

动态增加 MAL 中 GRP1_RT_03 的相关配置信息:

SF_MAL_CONFIG(1,0);

SF_MAL_INST_ADD('MAL_INST3','GRP1_RT_03','192.168.169.143',61143,'192.168.64.133',32143,52143,0,33143);

SF_MAL_CONFIG_APPLY();

SF_MAL_CONFIG(0,0);

4、 动态添加归档配置

1.关闭守护进程和监视器

动态添加归档要求数据库处于 MOUNT 状态,守护进程处于活动状态下不允许用户手动修改模式状态,因此需要先关闭守护进程,同时也是为了防止手动切换 MOUNT 状态后又被守护进程通知自动 Open,另外监视器配置也需要修改,因此在这里一并关闭。

  1. 关闭监视器
  2. 关闭备库守护进程
  3. 关闭主库守护进程
  1. 手动修改原系统中所有实例为 MOUNT 状态

必须先修改主库,再修改备库,否则可能会引发主备数据同步失败导致主库挂起。

//临时修改ALTER_MODE_STATUS,允许用户手动修改模式状态,动态添加完毕后需要再改回原值

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); 

//临时关闭守护进程活动状态检测,允许用户手动修改模式状态,动态添加完毕后需要再改回原值

SQL> SP_SET_PARA_VALUE(1, 'DW_INACTIVE_INTERVAL', 0);

//修改数据库为MOUNT状态

SQL> ALTER DATABASE MOUNT;
  1. 动态添加归档节点

分别连接原系统中的所有实例,动态添加 dmarch.ini 中归档节点。

SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST= GRP1_RT_03, TYPE= REALTIME';
  1. 手动修改原系统中所有实例为 OPEN 状态

必须先修改备库,再修改主库,否则可能会引发主备数据同步失败导致主库挂起。

//修改数据库为OPEN状态

SQL> ALTER DATABASE OPEN FORCE;

//将ALTER_MODE_STATUS改回原值
 

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

//将DW_INACTIVE_INTERVAL改回原值,本例中为60

SQL> SP_SET_PARA_VALUE(1, 'DW_INACTIVE_INTERVAL', 60);

5、 修改监视器 dmmonitor.ini

在 dmmonitor.ini 中添加新增的备库 GRP1_RT_03:

MON_DW_IP = 192.168.169.143:52143

6、 启动所有守护进程以及监视器

分别启动主库和备库(包括 GRP1_RT_03)的所有守护进程,最后启动监视器。达梦技术社区:https://eco.dameng.com/

  • 18
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奥德彪的蕉

天不生我奥德彪,非洲无人拉香蕉

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值