达梦数据库系列—20. 读写分离集群搭建

目录

一、配置读写分离集群

1、环境说明

2、数据准备

3、配置主库 GRP1_RWW_01

配置 dm.ini

配置 dmmal.ini

配置 dmarch.ini

配置 dmwatcher.ini

启动主库

设置 OGUID

修改数据库模式

4、配置备库 GRP1_RWW_02

配置 dm.ini

配置 dmmal.ini

配置 dmarch.ini

配置 dmwatcher.ini

启动备库

设置 OGUID

修改数据库模式

5、配置备库 GRP1_RWW_03

配置 dm.ini

配置 dmmal.ini

配置 dmarch.ini

配置 dmwatcher.ini

启动备库

设置 OGUID

修改数据库模式

6、配置监视器

配置单实例监视器

配置多实例监视器

7、启动守护进程

8、启动监视器

二、动态增加读写分离集群节点

1、数据准备

2、配置新备库

配置 dm.ini

配置 dmmal.ini

配置 dmarch.ini

配置 dmwatcher.ini

启动备库

设置 OGUID

修改数据库模式

3、动态添加 MAL 配置

4、动态添加归档配置

5、修改监视器 dmmonitor.ini

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


一、配置读写分离集群

1、环境说明

四台机器事先都安装了 DM,安装路径为'/dm',执行程序保存在'/dm/bin'目录中,数据存放路径为'/dm/data'。

配置环境说明

机器名

IP 地址

初始状态

操作系统

备注

DW_P

192.168.1.131 192.168.0.141

主库 GRP1_RWW_01

Linux rh7 x86_64 GNU/Linux

192.168.1.131 外部服务 IP;
192.168.0.141 内部通信 IP

DW_S1

192.168.1.132 192.168.0.142

备库 GRP1_RWW_02

Linux rh7 x86_64 GNU/Linux

192.168.1.132 外部服务 IP;
192.168.0.142 内部通信 IP

DW_S2

192.168.1.133 192.168.0.143

备库 GRP1_RWW_03

Linux rh7 x86_64 GNU/Linux

192.168.1.133 外部服务 IP;
192.168.0.143 内部通信 IP

DW_M

192.168.0.73

确认监视器

Linux rh7 x86_64 GNU/Linux

端口规划

实例名

PORT_NUM

MAL_INST_DW_PORT

MAL_HOST

MAL_PORT

MAL_DW_PORT

GRP1_RWW_01

32141

33141

192.168.0.141

61141

52141

GRP1_RWW_02

32142

33142

192.168.0.142

61142

52142

GRP1_RWW_03

32143

33143

192.168.0.143

61143

52143

2、数据准备

/dminit path=/dm/data

使用备份还原方式进行数据准备,举例脱机备份还原:

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

./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' UPDATE DB_MAGIC"

3、配置主库 GRP1_RWW_01

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


INSTANCE_NAME = GRP1_RWW_01


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


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次的日志发送信息

配置 dmmal.ini
MAL_CHECK_INTERVAL = 5 ##MAL链路检测时间间隔


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


[MAL_INST1]


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


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


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


MAL_INST_HOST = 192.168.1.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_RWW_02


MAL_HOST = 192.168.0.142


MAL_PORT = 61142


MAL_INST_HOST = 192.168.1.132


MAL_INST_PORT = 32142


MAL_DW_PORT = 52142


MAL_INST_DW_PORT = 33142


[MAL_INST3]


MAL_INST_NAME = GRP1_RWW_03


MAL_HOST = 192.168.0.143


MAL_PORT = 61143


MAL_INST_HOST = 192.168.1.133


MAL_INST_PORT = 32143


MAL_DW_PORT = 52143


MAL_INST_DW_PORT = 33143

配置 dmarch.ini

当前实例 GRP1_RWW_01 是主库,需要向即时备库 GRP1_RWW_02/GRP1_RWW_03 同步数据,因此即时归档的 ARCH_DEST 分别配置为 GRP1_RWW_02 和 GRP1_RWW_03。

[ARCHIVE_TIMELY1]


ARCH_TYPE = TIMELY ##即时归档类型


ARCH_DEST = GRP1_RWW_02 ##即时归档目标实例名


[ARCHIVE_TIMELY2]


ARCH_TYPE = TIMELY ##即时归档类型


ARCH_DEST = GRP1_RWW_03 ##即时归档目标实例名


[ARCHIVE_LOCAL1]


ARCH_TYPE = LOCAL ##本地归档类型


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


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


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


DW_TYPE = GLOBAL ##全局守护类型


DW_MODE = AUTO ##自动切换模式


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


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


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


INST_OGUID = 453332 ##守护系统唯一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 ##指定备库重演日志的时间阈值,默认关闭
启动主库

以 Mount 方式启动主库

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


SQL>sp_set_oguid(453332);


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

SQL>alter database primary;

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

4、配置备库 GRP1_RWW_02

配置 dm.ini

各主备库的 dmmal.ini 配置必须完全一致.

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


INSTANCE_NAME = GRP1_RWW_02


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


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次的日志重演信息
配置 dmmal.ini
MAL_CHECK_INTERVAL = 5 ##MAL链路检测时间间隔


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


[MAL_INST1]


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


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


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


MAL_INST_HOST = 192.168.1.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_RWW_02


MAL_HOST = 192.168.0.142


MAL_PORT = 61142


MAL_INST_HOST = 192.168.1.132


MAL_INST_PORT = 32142


MAL_DW_PORT = 52142


MAL_INST_DW_PORT = 33142


[MAL_INST3]


MAL_INST_NAME = GRP1_RWW_03


MAL_HOST = 192.168.0.143


MAL_PORT = 61143


MAL_INST_HOST = 192.168.1.133


MAL_INST_PORT = 32143


MAL_DW_PORT = 52143


MAL_INST_DW_PORT = 33143

配置 dmarch.ini
[ARCHIVE_TIMELY1]


ARCH_TYPE = TIMELY ##即时归档类型


ARCH_DEST = GRP1_RWW_01 ##即时归档目标实例名


[ARCHIVE_TIMELY2]


ARCH_TYPE = TIMELY ##即时归档类型


ARCH_DEST = GRP1_RWW_03 ##即时归档目标实例名


[ARCHIVE_LOCAL1]


ARCH_TYPE = LOCAL               ##本地归档类型


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


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


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


DW_TYPE =GLOBAL ##全局守护类型


DW_MODE = AUTO ##自动切换模式


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


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


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


INST_OGUID = 453332 ##守护系统唯一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 ##指定备库重演日志的时间阈值,默认关闭
启动备库
./dmserver /dm/data/DAMENG/dm.ini mount
设置 OGUID
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL>sp_set_oguid(453332);

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
修改数据库模式
SQL\>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); //第1步

SQL\>alter database standby; //第2步

SQL\>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0); //第3步

5、配置备库 GRP1_RWW_03

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


INSTANCE_NAME = GRP1_RWW_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次的日志重演信息
配置 dmmal.ini
MAL_CHECK_INTERVAL = 5 ##MAL链路检测时间间隔


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


[MAL_INST1]


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


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


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


MAL_INST_HOST = 192.168.1.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_RWW_02


MAL_HOST = 192.168.0.142


MAL_PORT = 61142


MAL_INST_HOST = 192.168.1.132


MAL_INST_PORT = 32142


MAL_DW_PORT = 52142


MAL_INST_DW_PORT = 33142


[MAL_INST3]


MAL_INST_NAME = GRP1_RWW_03


MAL_HOST = 192.168.0.143


MAL_PORT = 61143


MAL_INST_HOST = 192.168.1.133


MAL_INST_PORT = 32143


MAL_DW_PORT = 52143


MAL_INST_DW_PORT = 33143
配置 dmarch.ini

修改 dmarch.ini,配置本地归档和即时归档。

除了本地归档外,其他归档配置项中的 ARCH_DEST 表示实例是 Primary 模式时,需要同步归档数据的目标实例名

[ARCHIVE_TIMELY1]


ARCH_TYPE = TIMELY ##即时归档类型


ARCH_DEST = GRP1_RWW_01 ##即时归档目标实例名


[ARCHIVE_TIMELY2]


ARCH_TYPE = TIMELY ##即时归档类型


ARCH_DEST = GRP1_RWW_02 ##即时归档目标实例名


[ARCHIVE_LOCAL1]


ARCH_TYPE = LOCAL ##本地归档类型


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


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


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


DW_TYPE = GLOBAL ##全局守护类型


DW_MODE = AUTO ##自动切换模式


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


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


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


INST_OGUID = 453332 ##守护系统唯一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 ##指定备库重演日志的时间阈值,默认关闭
启动备库
./dmserver /dm/data/DAMENG/dm.ini mount
设置 OGUID
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL>sp_set_oguid(453332);

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

SQL>alter database standby; //第2步

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0); //第3步

6、配置监视器

由于主库和实时备库的守护进程配置为自动切换模式,因此这里必须配置确认监视器。和普通监视器相比,确认监视器除了相同的命令支持外,在主库发生故障时,能够自动通知实时备库接管为新的主库,具有自动故障处理的功能。

配置单实例监视器
MON_DW_Confirm = 1 ##确认监视器模式


MON_LOG_PATH = /dm/data/log ##监视器日志文件存放路径


MON_LOG_INTERVAL = 60 ##每隔60s定时记录系统信息到日志文件


MON_LOG_FILE_SIZE = 32 ##每个日志文件最大32M


MON_LOG_SPACE_LIMIT = 0 ##不限定日志文件总占用空间


[GRP1]


MON_INST_OGUID = 453332 ##组GRP1的唯一OGUID值


##以下配置为监视器到组GRP1的守护进程的连接信息,以“IP:PORT”的形式配置


##IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT


MON_DW_IP = 192.168.0.141:52141


MON_DW_IP = 192.168.0.142:52142


MON_DW_IP = 192.168.0.143:52143
配置多实例监视器
MON_LOG_PATH         = /dm/data/log

MON_LOG_INTERVAL       = 60

MON_LOG_FILE_SIZE       = 32

MON_LOG_SPACE_LIMIT     = 0

MON_DW_CONFIRM        = 1

MON_INST_NUM         = 3      #实例总个数

MON_HB_INTERVAL        = 60      #通信心跳校验间隔

MON_BRO_INTERVAL       = 100     #raft协议中实例通信心跳间隔

MON_VOTE_INTERVAL       = 100     #raft协议中基础投票间隔

MON_ID            = 1       #当前监视器在监视器系统中的ID

MON_MID            = 45614    #当前监视器系统的唯一标识


[GRP1]

MON_INST_OGUID        = 453332

MON_DW_IP           = 192.168.0.141:52141

MON_DW_IP           = 192.168.0.142:52142

MON_DW_IP           = 192.168.0.143:52143


[MON1]

MON_HOST               = 192.168.0.141 #系统监听TCP连接的IP地址

MON_PORT               = 8339 #系统监听TCP连接的端口号

MON_INST_ID = 1 #监视器实例在监视器系统中的ID

[MON2]

MON_HOST               = 192.168.0.141 #系统监听TCP连接的IP地址

MON_PORT               = 8340 #系统监听TCP连接的端口号

MON_INST_ID = 2 #监视器实例在监视器系统中的ID

 [MON3]

MON_HOST               = 192.168.0.141 #系统监听TCP连接的IP地址

MON_PORT               = 8341 #系统监听TCP连接的端口号

MON_INST_ID = 3 #监视器实例在监视器系统中的ID

7、启动守护进程

启动各个主备库上的守护进程:

./dmwatcher /dm/data/DAMENG/dmwatcher.ini

守护进程启动后,进入 Startup 状态,此时实例都处于 Mount 状态。守护进程开始广播自身和其监控实例的状态信息,结合自身信息和远程守护进程的广播信息,守护进程将本地实例 Open,并切换为 Open 状态。

8、启动监视器

./dmmonitor /dm/data/dmmonitor.ini

至此读写分离集群搭建完毕,在搭建步骤和各项配置都正确的情况下,在监视器上执行 show 命令,可以监控到所有实例都处于 Open 状态,所有守护进程也都处于 Open 状态,即为正常运行状态。

二、动态增加读写分离集群节点

配置环境说明

机器名

IP 地址

初始状态

操作系统

备注

DW_S3

192.168.1.134 192.168.0.144

备库 GRP1_RWW_04

Linux rh7 x86_64

192.168.1.134 外部服务 IP;
192.168.0.144 内部通信 IP

1、数据准备

  1. 对主库进行联机备份操作:
SQL> BACKUP DATABASE BACKUPSET 'BACKUP_FILE_01';
  1. 初始化备机数据库
./dminit path=/dm/data/
  1. 还原恢复新增备库

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

./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、配置新备库

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


INSTANCE_NAME = GRP1_RWW_04


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


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次的日志重演信息
配置 dmmal.ini
MAL_CHECK_INTERVAL = 5 ##MAL链路检测时间间隔


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


[MAL_INST1]


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


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


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


MAL_INST_HOST = 192.168.1.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_RWW_02


MAL_HOST = 192.168.0.142


MAL_PORT = 61142


MAL_INST_HOST = 192.168.1.132


MAL_INST_PORT = 32142


MAL_DW_PORT = 52142


MAL_INST_DW_PORT = 33142


[MAL_INST3]


MAL_INST_NAME = GRP1_RWW_03


MAL_HOST = 192.168.0.143


MAL_PORT = 61143


MAL_INST_HOST = 192.168.1.133


MAL_INST_PORT = 32143


MAL_DW_PORT = 52143


MAL_INST_DW_PORT = 33143


[MAL_INST4]


MAL_INST_NAME = GRP1_RWW_04


MAL_HOST = 192.168.0.144


MAL_PORT = 61144


MAL_INST_HOST = 192.168.1.134


MAL_INST_PORT = 32144


MAL_DW_PORT = 52144


MAL_INST_DW_PORT = 33144
配置 dmarch.ini
[ARCHIVE_TIMELY1]


ARCH_TYPE = TIMELY ##即时归档类型


ARCH_DEST = GRP1_RWW_01 ##即时归档目标实例名


[ARCHIVE_TIMELY2]


ARCH_TYPE = TIMELY ##即时归档类型


ARCH_DEST = GRP1_RWW_02 ##即时归档目标实例名


[ARCHIVE_TIMELY3]


ARCH_TYPE = TIMELY ##即时归档类型


    ARCH_DEST = GRP1_RWW_03 ##即时归档目标实例名


[ARCHIVE_LOCAL1]


ARCH_TYPE = LOCAL ##本地归档类型


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


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


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


DW_TYPE = GLOBAL ##全局守护类型


DW_MODE = AUTO ##自动切换模式


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


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


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


INST_OGUID = 453332 ##守护系统唯一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 ##指定备库重演日志的时间阈值,默认关闭
启动备库

以 Mount 方式启动备库

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

SQL>sp_set_oguid(453332);

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
修改数据库模式
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 配置

需要分别连接原系统中每个数据库单独执行

SF_MAL_CONFIG(1,0);

SF_MAL_INST_ADD('MAL_INST4','GRP1_RWW_04','192.168.0.144',61144,'192.168.1.134',32144,52144,0,33144);

SF_MAL_CONFIG_APPLY();

SF_MAL_CONFIG(0,0);

4、动态添加归档配置

1.关闭原系统中所有数据库的守护进程和监视器

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

关闭顺序为:

  1. 关闭监视器
  2. 关闭备库守护进程
  3. 关闭主库守护进程

2.手动修改原系统中所有数据库为 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;

3.动态添加归档节点

分别连接原系统中的所有数据库执行

SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST=GRP1_RWW_04, TYPE=TIMELY';

4.手动修改原系统中所有数据库为 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_RWW_04:

MON_DW_IP = 192.168.0.144:52144

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

分别启动主库和备库(包括 GRP1_RWW_04)的所有守护进程,最后启动监视器。

达梦技术社区:达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

你可能感兴趣的:(达梦,数据库,服务器,oracle,sql,运维)