目录
一、配置读写分离集群
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; |
DW_S1 | 192.168.1.132 192.168.0.142 | 备库 GRP1_RWW_02 | Linux rh7 x86_64 GNU/Linux | 192.168.1.132 外部服务 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; |
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; |
1、数据准备
- 对主库进行联机备份操作:
SQL> BACKUP DATABASE BACKUPSET 'BACKUP_FILE_01';
- 初始化备机数据库
./dminit path=/dm/data/
- 还原恢复新增备库
拷贝生成的备份集目录 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,另外监视器配置也需要修改,因此在这里一并关闭。
关闭顺序为:
- 关闭监视器
- 关闭备库守护进程
- 关闭主库守护进程
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)的所有守护进程,最后启动监视器。
达梦技术社区:达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台
标签:dm,20,##,读写,PORT,INST,ini,MAL,达梦 From: https://blog.csdn.net/md54333/article/details/140101578