目录

1 数据准备

1.1 配置本地归档

1.2 联机备份、脱机还原

1.3 脱机备份与还原

1.4 检查主备FILE_LSN、CUR_LSN及永久魔数

2 配置实时主备

2.1 环境说明

2.2 配置DM1

2.2.1 配置dm.ini

2.2.2 配置dmmal.ini

2.2.3 配置dmarch.ini

2.2.4 配置dmwatcher.ini

2.2.5 启动主库

2.2.6 设置OGUID

2.2.7 修改数据库模式

2.3 配置DM2

2.3.1 配置dm.ini

2.3.2 配置dmmal.ini

2.3.3 配置dmarch.ini

2.3.4 配置dmwatcher.ini

2.3.5 启动备库

2.3.6 设置OGUID

2.3.7 修改数据库模式

2.4 配置监视器

2.4.1 配置单实例监视器

2.4.2 配置多实例监视器

2.4.3 启动守护进程

2.4.4 启动监视器

3 配置异步备库

3.1 环境说明

3.2 配置主库DM1

3.2.1 配置dm.ini

3.2.2 配置dmmal.ini

3.2.3 配置dmarch.ini

3.2.4 配置dmtimer.ini

3.3 配置DM2

3.3.1 配置dm.ini

3.3.2 配置dmmal.ini

3.3.3 配置dmarch.ini

3.3.4 配置dmtimer.ini

3.4 配置异步备库DM3

3.4.1 配置dm.ini

3.4.2 配置dmmal.ini

3.4.3 配置dmarch.ini

3.4.4 配置dmwatcher.ini

3.4.5 启动异步备库

3.4.6 设置OGUID

3.4.7 修改数据库模式

3.5 配置监视器

3.5.1 配置单实例监视器

3.5.2 配置多实例监视器

3.5.3 启动守护进程

3.5.4 启动监视器


1 数据准备

1.1 配置本地归档

1)配置dm.ini,打开归档,修改参数ARCH_INI

ARCH_INI = 1

2)配置dmarch.ini

[ARCHIVE_LOCAL1]ARCH_TYPE = LOCAL ##本地归档类型ARCH_DEST = /dm8/data/DAMENG/arch ##本地归档文件存放路径ARCH_FILE_SIZE = 128 ##单位Mb,本地单个归档文件最大值ARCH_SPACE_LIMIT = 0 ##单位Mb,0表示无限制,范围1024~2147483647M

1.2 联机备份、脱机还原

1) 通过sql工具,进行联机备份数据库信息。

BACKUP DATABASE BACKUPSET '/dm8/data/DAMENG/bak/bak_full_01';

2)拷贝文件到备库

scp -r /dm8/data/DAMENG/bak/bak_full_01/ 192.168.61.137:/dm8/data/DAMENG/bak/

3)脱机恢复

#恢复备库
./dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/DAMENG/bak/bak_full_01'"./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/DAMENG/bak/bak_full_01'"./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DAMENG/dm.ini'UPDATE DB_MAGIC"

1.3 脱机备份与还原

1)正常关闭数据库

systemctl stop DmServiceDMSERVER

2)脱机备份

./dmrman CTLSTMT="BACKUP DATABASE '/dm8/data/DAMENG/dm.ini' FULL BACKUPSET '/dm8/data/DAMENG/bak/bak_full_01'"

3)拷贝文件到备库机

scp -r /dm8/data/DAMENG/bak/bak_full_01/ 192.168.61.137:/dm8/data/DAMENG/bak/

4)数据还原

./dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/DAMENG/bak/bak_full_01'"#更新永久魔数
./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC"

1.4 检查主备FILE_LSN、CUR_LSN及永久魔数

1)主备FILE_LSN、CUR_LSN

select file_lsn,cur_lsn from v$rlog;

2)永久魔数

select permanent_magic;

2 配置实时主备

2.1 环境说明

准备三台机器 DW_P、DW_S1、DW_M,DW_P 和 DW_S1 用来部署主备库,DW_M 用来部署确认监视器。其中 DW_P 和 DW_S1 配置两块网卡,一块接入内部网络交换模块,一块接入到外部交换机,DW_M 接入内部网络。

机器名 IP 地址 初始状态 操作系统 备注
DW_P 192.168.61.135 192.168.61.139 主库 DM1 centOS 7.9 192.168.61.135 外部服务 IP;
192.168.61.139 内部通信 IP
DW_S1 192.168.61.136 192.168.61.137 备库 DM2 centOS 7.9 192.168.61.136 外部服务 IP;
192.168.61.137 内部通信 IP
DW_M 192.168.61.131 确认监视器 centOS 7.9

端口规划

实例名 PORT_NUM MAL_INST_DW_PORT MAL_HOST MAL_PORT MAL_DW_PORT
DM1 5237 5238 192.168.61.139 61141 2141
DM2 5239 5240 192.168.61.137 61142 2142

2.2 配置DM1

2.2.1 配置dm.ini

在 DW_P 机器上配置主库的实例名为 DM1,dm.ini 参数修改如下:

##实例名,建议使用“组名_守护环境_序号”的命名方式,总长度不能超过16INSTANCE_NAME = DM1PORT_NUM = 5237 ##数据库实例监听端口DW_INACTIVE_INTERVAL = 60 ##接收守护进程消息超时时间ALTER_MODE_STATUS = 0 ##不允许手工方式修改实例模式/状态/OGUIDENABLE_OFFLINE_TS = 2 ##不允许备库OFFLINE表空间MAL_INI = 1 ##打开MAL系统ARCH_INI = 1 ##打开归档配置RLOG_SEND_APPLY_MON = 64 ##统计最近64次的日志发送信息

2.2.2 配置dmmal.ini

配置 MAL 系统,各主备库的 dmmal.ini 配置必须完全一致,MAL_HOST 使用内部网络 IP,MAL_PORT 与 dm.ini 中 PORT_NUM 使用不同的端口值,MAL_DW_PORT 是各实例对应的守护进程之间,以及守护进程和监视器之间的通信端口,配置如下:

MAL_CHECK_INTERVAL = 5              ##MAL链路检测时间间隔MAL_CONN_FAIL_INTERVAL = 5            ##判定MAL链路断开的时间[MAL_INST1]MAL_INST_NAME = DM1       ##实例名,和dm.ini中的INSTANCE_NAME一致MAL_HOST = 192.168.61.139         ##MAL系统监听TCP连接的IP地址MAL_PORT = 61141                ##MAL系统监听TCP连接的端口MAL_INST_HOST = 192.168.61.135    ##实例的对外服务IP地址MAL_INST_PORT = 5237          ##实例的对外服务端口,和dm.ini中的PORT_NUM一致MAL_DW_PORT = 2141           ##实例本地的守护进程监听TCP连接的端口MAL_INST_DW_PORT = 5238       ##实例监听守护进程TCP连接的端口[MAL_INST2]MAL_INST_NAME = DM2MAL_HOST = 192.168.61.137MAL_PORT = 61142MAL_INST_HOST = 192.168.61.136MAL_INST_PORT = 5239MAL_DW_PORT = 2142MAL_INST_DW_PORT = 5240

2.2.3 配置dmarch.ini

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

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

当前实例 DM1 是主库,需要向DM2(实时备库)同步数据,因此实时归档的 ARCH_DEST 配置为 DM2。

[ARCHIVE_REALTIME]ARCH_TYPE = REALTIME              ##实时归档类型ARCH_DEST = DM2                ##实时归档目标实例名[ARCHIVE_LOCAL1]ARCH_TYPE = LOCAL                   ##本地归档类型ARCH_DEST = /dm8/data/DAMENG/arch  ##本地归档文件存放路径ARCH_FILE_SIZE = 128               ##单位Mb,本地单个归档文件最大值ARCH_SPACE_LIMIT = 0              ##单位Mb,0表示无限制,范围1024~2147483647M

2.2.4 配置dmwatcher.ini

修改 dmwatcher.ini 配置守护进程,配置为全局守护类型,使用自动切换模式。

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

2.2.5 启动主库

以 Mount 方式启动主库

./dmserver /dm8/data/DAMENG/dm.ini mount

2.2.6 设置OGUID

启动命令行工具 DIsql,登录主库设置 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.2.7 修改数据库模式

启动命令行工具 DIsql,登录主库修改数据库为 Primary 模式

SQL>alter database primary;

2.3 配置DM2

2.3.1 配置dm.ini

在 DW_S1 机器上配置备库的实例名为 DM2,dm.ini 参数修改如下:

##实例名,建议使用“组名_守护环境_序号”的命名方式,总长度不能超过16INSTANCE_NAME = DM2PORT_NUM = 5239              ##数据库实例监听端口DW_INACTIVE_INTERVAL = 60       ##接收守护进程消息超时时间ALTER_MODE_STATUS = 0            ##不允许手工方式修改实例模式/状态/OGUIDENABLE_OFFLINE_TS = 2          ##不允许备库OFFLINE表空间MAL_INI = 1                   ##打开MAL系统ARCH_INI = 1                  ##打开归档配置RLOG_SEND_APPLY_MON = 64       ##统计最近64次的日志重演信息

2.3.2 配置dmmal.ini

配置 MAL 系统,各主备库的 dmmal.ini 配置必须完全一致,MAL_HOST 使用内部网络 IP,MAL_PORT 与 dm.ini 中 PORT_NUM 使用不同的端口值,MAL_DW_PORT 是各实例对应的守护进程之间,以及守护进程和监视器之间的通信端口,配置如下:

MAL_CHECK_INTERVAL = 5              ##MAL链路检测时间间隔MAL_CONN_FAIL_INTERVAL = 5            ##判定MAL链路断开的时间[MAL_INST1]MAL_INST_NAME = DM1       ##实例名,和dm.ini中的INSTANCE_NAME一致MAL_HOST = 192.168.61.139         ##MAL系统监听TCP连接的IP地址MAL_PORT = 61141                ##MAL系统监听TCP连接的端口MAL_INST_HOST = 192.168.61.135    ##实例的对外服务IP地址MAL_INST_PORT = 5237          ##实例的对外服务端口,和dm.ini中的PORT_NUM一致MAL_DW_PORT = 2141           ##实例本地的守护进程监听TCP连接的端口MAL_INST_DW_PORT = 5238       ##实例监听守护进程TCP连接的端口[MAL_INST2]MAL_INST_NAME = DM2MAL_HOST = 192.168.61.137MAL_PORT = 61142MAL_INST_HOST = 192.168.61.136MAL_INST_PORT = 5239MAL_DW_PORT = 2142MAL_INST_DW_PORT = 5240

2.3.3 配置dmarch.ini

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

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

当前实例 DM2 是备库,守护系统配置完成后,可能在各种故障处理中,DM2 切换为新的主库,正常情况下,DM1会切换为新的备库,需要向DM1同步数据,因此实时归档的 ARCH_DEST 配置为 DM1。

[ARCHIVE_REALTIME]ARCH_TYPE = REALTIME              ##实时归档类型ARCH_DEST = DM1                ##实时归档目标实例名[ARCHIVE_LOCAL1]ARCH_TYPE = LOCAL                   ##本地归档类型ARCH_DEST = /dm8/data/DAMENG/arch  ##本地归档文件路径ARCH_FILE_SIZE = 128                 ##单位Mb,本地单个归档文件最大值ARCH_SPACE_LIMIT = 0              ##单位Mb,0表示无限制,范围1024~2147483647M

2.3.4 配置dmwatcher.ini

修改 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 = /dm8/data/DAMENG/dm.ini##dm.ini配置文件路径INST_AUTO_RESTART = 1           ##打开实例的自动启动功能INST_STARTUP_CMD = /dm8/bin/dmserver ##命令行方式启动RLOG_APPLY_THRESHOLD = 0       ##指定备库重演日志的时间阈值,默认关闭

2.3.5 启动备库

以 Mount 方式启动备库

./dmserver /dm8/data/DAMENG/dm.ini mount

2.3.6 设置OGUID

启动命令行工具 DIsql,登录备库设置 OGUID 值为 453331。

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.3.7 修改数据库模式

启动命令行工具 DIsql,登录备库修改数据库为 Standby 模式。

如果当前数据库不是 Normal 模式,需要先修改 dm.ini 中 ALTER_MODE_STATUS 值为 1,允许修改数据库模式,修改 Standby 模式成功后再改回为 0。如果是 Normal 模式,请忽略下面的第 1 步和第 3 步。

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步

2.4 配置监视器

2.4.1 配置单实例监视器

修改 dmmonitor.ini 配置确认监视器,其中 MON_DW_IP 中的 IP 和 PORT 和 dmmal.ini 中的 MAL_HOST 和 MAL_DW_PORT 配置项保持一致。

MON_DW_CONFIRM = 1          ##确认监视器模式MON_LOG_PATH = /dm8/data/log ##监视器日志文件存放路径MON_LOG_INTERVAL = 60      ##每隔60s定时记录系统信息到日志文件MON_LOG_FILE_SIZE = 32         ##每个日志文件最大32MMON_LOG_SPACE_LIMIT = 0   ##不限定日志文件总占用空间[GRP1]MON_INST_OGUID = 453331 ##组GRP1的唯一OGUID值##以下配置为监视器到组GRP1的守护进程的连接信息,以“IP:PORT”的形式配置##IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORTMON_DW_IP = 192.168.61.139:2141MON_DW_IP = 192.168.61.137:2142

2.4.2 配置多实例监视器

配置多实例监视器时 dmmonitor.ini 配置文件中的内容如下:

MON_LOG_PATH         = /dm8/data/logMON_LOG_INTERVAL        = 60MON_LOG_FILE_SIZE          = 32MON_LOG_SPACE_LIMIT        = 0MON_DW_CONFIRM          = 1MON_INST_NUM            = 3        ##实例总个数MON_HB_INTERVAL          = 60       ##通信心跳校验间隔MON_BRO_INTERVAL          = 100      ##raft协议中实例通信心跳间隔MON_VOTE_INTERVAL          = 100      ##raft协议中基础投票间隔MON_ID                   = 1        ##当前监视器在监视器系统中的IDMON_MID                = 45614    ##当前监视器系统的唯一标识[GRP1]MON_INST_OGUID      = 453331MON_DW_IP              = 192.168.61.139:2141MON_DW_IP             = 192.168.61.137:2142[MON1] MON_HOST           = 192.168.61.139       ##系统监听TCP连接的IP地址MON_PORT            = 8339             ##系统监听TCP连接的端口号MON_INST_ID          = 1                ##监视器实例在监视器系统中的ID[MON2]MON_HOST             = 192.168.61.137   ##系统监听TCP连接的IP地址 MON_PORT               = 8340                 ##系统监听TCP连接的端口号MON_INST_ID          = 2                ##监视器实例在监视器系统中的ID

2.4.3 启动守护进程

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

./dmwatcher /dm8/data/DAMENG/dmwatcher.ini

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

2.4.4 启动监视器

启动监视器:

./dmmonitor /dm8/data/dmmonitor.ini

在监视器上执行 show 命令,可以监控到所有实例都处于 Open 状态,所有守护进程也都处于 Open 状态,即为正常运行状态。如下图所示。

3 配置异步备库

3.1 环境说明

在实时主备环境下,增加一台机器用来进行异步部署。

机器名 IP 地址 初始状态 操作系统 备注
DW_S2 192.168.61.132 192.168.61.138 异步备库 DM3 CentO S 7.9 192.168.61.132 外部服务 IP;
192.168.61.138 内部通信 IP

3.2 配置主库DM1

3.2.1 配置dm.ini

只需要在实时主备基础上,修改打开定时配置。

##配置有异步归档时,打开定时器,定时同步归档到异备库TIMER_INI = 1

3.2.2 配置dmmal.ini

在实时主备基础上,增加异步备库的DM3的MAL配置。

[MAL_INST3]MAL_INST_NAME = DM3      ##实例名,和dm.ini中的INSTANCE_NAME一致MAL_HOST = 192.168.61.132             ##MAL系统监听TCP连接的IP地址MAL_PORT = 61143                    ##MAL系统监听TCP连接的端口MAL_INST_HOST = 192.168.61.138        ##实例的对外服务IP地址MAL_INST_PORT = 5236              ##实例的对外服务端口,和dm.ini中的PORT_NUM一致MAL_DW_PORT = 2143               ##实例对应的守护进程监听TCP连接的端口MAL_INST_DW_PORT = 5237           ##实例监听守护进程TCP连接的端口

3.2.3 配置dmarch.ini

在实时主备的基础上,增加异步归档的配置。

[ARCHIVE_ASYNC]ARCH_TYPE = ASYNC                ##异步归档类型ARCH_DEST = DM3        ##异步归档目标实例名ARCH_TIMER_NAME = RT_TIMER      ##定时器名称,和dmtimer.ini中的名称一致

3.2.4 配置dmtimer.ini

配置 dmtimer.ini,用于定时触发实例发送归档日志到异步备库。

下面示例中定时器配置为每天 00:00:00 触发主库发送归档日志到异步备库,可以根据实际情况调整。

[RT_TIMER] ##和dmarch.ini中的ARCH_TIMER_NAME一致TYPE = 2FREQ_MONTH_WEEK_INTERVAL = 1FREQ_SUB_INTERVAL = 0FREQ_MINUTE_INTERVAL = 0START_TIME = 00:00:00END_TIME = 00:00:00DURING_START_DATE = 2022-08-31 17:36:09DURING_END_DATE = 9999-12-31 23:59:59NO_END_DATE_FLAG = 1DESCRIBE = RT TIMERIS_VALID = 1

配置完成后,重启主备库。

3.3 配置DM2

3.3.1 配置dm.ini

在实时主备配置下,打开定时器配置。

##配置有异步归档时,打开定时器,定时同步归档到异备库TIMER_INI = 1

3.3.2 配置dmmal.ini

在dmmal.ini中添加如下信息。

[MAL_INST3]MAL_INST_NAME = DM3      ##实例名,和dm.ini中的INSTANCE_NAME一致MAL_HOST = 192.168.61.132             ##MAL系统监听TCP连接的IP地址MAL_PORT = 61143                    ##MAL系统监听TCP连接的端口MAL_INST_HOST = 192.168.61.138        ##实例的对外服务IP地址MAL_INST_PORT = 5236              ##实例的对外服务端口,和dm.ini中的PORT_NUM一致MAL_DW_PORT = 2143               ##实例对应的守护进程监听TCP连接的端口MAL_INST_DW_PORT = 5237           ##实例监听守护进程TCP连接的端口

3.3.3 配置dmarch.ini

本地守护类型的备库需要配置异步归档。

[ARCHIVE_ASYNC]ARCH_TYPE = ASYNC ##异步归档类型ARCH_DEST = DM3 ##异步归档目标实例名ARCH_TIMER_NAME = RT_TIMER ##定时器名称,和dmtimer.ini中的名称一致

3.3.4 配置dmtimer.ini

配置 dmtimer.ini,用于定时触发实例发送归档日志到异步备库。

下面示例中定时器配置为每天 00:00:00 触发主库发送归档日志到异步备库,可以根据实际情况调整。

[RT_TIMER] ##和dmarch.ini中的ARCH_TIMER_NAME一致TYPE = 2FREQ_MONTH_WEEK_INTERVAL = 1FREQ_SUB_INTERVAL = 0FREQ_MINUTE_INTERVAL = 0START_TIME = 00:00:00END_TIME = 00:00:00DURING_START_DATE = 2022-8-31 17:36:09DURING_END_DATE = 9999-12-31 23:59:59NO_END_DATE_FLAG = 1DESCRIBE = RT TIMERIS_VALID = 1

3.4 配置异步备库DM3

3.4.1 配置dm.ini

配置dm.ini参数如下。

##实例名,建议使用“组名_守护环境_序号”的命名方式,总长度不能超过16INSTANCE_NAME = DM3PORT_NUM = 5236                  ##数据库实例监听端口DW_INACTIVE_INTERVAL = 60           ##接收守护进程消息超时时间ALTER_MODE_STATUS = 0                ##不允许手工方式修改实例模式/状态/OGUIDENABLE_OFFLINE_TS = 2              ##不允许备库OFFLINE表空间MAL_INI = 1                       ##打开MAL系统ARCH_INI = 1                      ##打开归档配置RLOG_SEND_APPLY_MON = 64           ##统计最近64次的日志重演信息

3.4.2 配置dmmal.ini

配置dmmal.ini,如下:

MAL_CHECK_INTERVAL = 5              ##MAL链路检测时间间隔MAL_CONN_FAIL_INTERVAL = 5            ##判定MAL链路断开的时间[MAL_INST1]MAL_INST_NAME = DM1       ##实例名,和dm.ini中的INSTANCE_NAME一致MAL_HOST = 192.168.61.139         ##MAL系统监听TCP连接的IP地址MAL_PORT = 61141                ##MAL系统监听TCP连接的端口MAL_INST_HOST = 192.168.61.135    ##实例的对外服务IP地址MAL_INST_PORT = 5237          ##实例的对外服务端口,和dm.ini中的PORT_NUM一致MAL_DW_PORT = 2141           ##实例本地的守护进程监听TCP连接的端口MAL_INST_DW_PORT = 5238       ##实例监听守护进程TCP连接的端口[MAL_INST2]MAL_INST_NAME = DM2MAL_HOST = 192.168.61.137MAL_PORT = 61142MAL_INST_HOST = 192.168.61.136MAL_INST_PORT = 5239MAL_DW_PORT = 2142MAL_INST_DW_PORT = 5240
[MAL_INST3]MAL_INST_NAME = DM3         ##实例名,和dm.ini中的INSTANCE_NAME一致MAL_HOST = 192.168.61.132             ##MAL系统监听TCP连接的IP地址MAL_PORT = 61143                    ##MAL系统监听TCP连接的端口MAL_INST_HOST = 192.168.61.138        ##实例的对外服务IP地址MAL_INST_PORT = 5236              ##实例的对外服务端口,和dm.ini中的PORT_NUM一致MAL_DW_PORT = 2143               ##实例对应的守护进程监听TCP连接的端口MAL_INST_DW_PORT = 5237           ##实例监听守护进程TCP连接的端口

3.4.3 配置dmarch.ini

增加异步本地归档配置。

[ARCHIVE_LOCAL1]ARCH_TYPE = LOCAL                       ##本地归档类型ARCH_DEST = /dm8/data/DAMENG/arch      ##本地归档文件路径ARCH_FILE_SIZE = 128                     ##单位Mb,本地单个归档文件最大值ARCH_SPACE_LIMIT = 0                  ##单位Mb,0表示无限制,范围1024~4294967294M

3.4.4 配置dmwatcher.ini

修改 dmwatcher.ini 配置守护进程,配置为本地守护类型,异步备库不具备故障自动切换等功能,DW_MODE 配置并不起作用,此处配置为 MANUAL 即可。

[GRP1]DW_TYPE = LOCAL                       ##本地守护类型DW_MODE = MANUAL                       ##故障手动切换模式DW_ERROR_TIME = 10                       ##远程守护进程故障认定时间INST_ERROR_TIME = 10                 ##本地实例故障认定时间INST_OGUID = 453331                    ##守护系统唯一OGUID值INST_INI = /dm8/data/DAMENG/dm.ini       ##dm.ini配置文件路径INST_AUTO_RESTART = 1                    ##打开实例的自动启动功能INST_STARTUP_CMD = /dm8/bin/dmserver  ##命令行方式启动

3.4.5 启动异步备库

以 Mount 方式启动备库

./dmserver /dm8/data/DAMENG/dm.ini mount

一定要以 Mount 方式启动数据库实例,否则系统启动时会重构回滚表空间,生成 Redo 日志;并且,启动后应用可能连接到数据库实例进行操作,破坏主备库的数据一致性。数据守护配置结束后,守护进程会自动 Open 数据库。

3.4.6 设置OGUID

启动命令行工具 DIsql,登录异步备库设置 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);

系统通过 OGUID 值确定一个守护进程组,由用户保证 OGUID 值的唯一性,并确保数据守护系统中,数据库、守护进程和监视器配置相同的 OGUID 值。

3.4.7 修改数据库模式

启动命令行工具 DIsql,登录异备库修改数据库为 Standby 模式。

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.5 配置监视器

3.5.1 配置单实例监视器

修改 dmmonitor.ini 配置确认监视器,增加到 DM1 守护进程的 MON_DW_IP 配置项,需要找到 dmmal.ini 中实例DM1的配置项信息,MON_DW_IP 中的 IP 信息和 dmmal.ini 配置项中的 MAL_HOST 一致,PORT 信息和 dmmal.ini 配置项中的 MAL_DW_PORT 配置项保持一致。

MON_DW_Confirm = 1                      ##确认监视器模式MON_LOG_PATH = /dm8/data/log          ##监视器日志文件存放路径MON_LOG_INTERVAL = 60                     ##每隔60s定时记录系统信息到日志文件MON_LOG_FILE_SIZE = 32                 ##每个日志文件最大32MMON_LOG_SPACE_LIMIT = 0               ##不限定日志文件总占用空间[GRP1]MON_INST_OGUID = 453331            ##组GRP1的唯一OGUID值##以下配置为监视器到组GRP1的守护进程的连接信息,以“IP:PORT”的形式配置##IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORTMON_DW_IP = 192.168.61.139:2141MON_DW_IP = 192.168.61.137:2142##新增到异步备库GRP1_LOCAL_01守护进程的连接信息MON_DW_IP = 192.168.61.132:2143

3.5.2 配置多实例监视器

配置多实例监视器时 dmmonitor.ini 配置文件中的内容如下:

MON_LOG_PATH         = /dm8/data/logMON_LOG_INTERVAL        = 60MON_LOG_FILE_SIZE          = 32MON_LOG_SPACE_LIMIT        = 0MON_DW_CONFIRM          = 1MON_INST_NUM            = 3        ##实例总个数MON_HB_INTERVAL          = 60       ##通信心跳校验间隔MON_BRO_INTERVAL          = 100      ##raft协议中实例通信心跳间隔MON_VOTE_INTERVAL          = 100      ##raft协议中基础投票间隔MON_ID                   = 1        ##当前监视器在监视器系统中的IDMON_MID                = 45614    ##当前监视器系统的唯一标识[GRP1]MON_INST_OGUID          = 453331MON_DW_IP              = 192.168.61.139:2141MON_DW_IP             = 192.168.61.137:2142##新增到异步备库GRP1_LOCAL_01守护进程的连接信息MON_DW_IP              = 192.168.61.132:2143[MON1] MON_HOST           = 192.168.61.139       ##系统监听TCP连接的IP地址MON_PORT            = 8339             ##系统监听TCP连接的端口号MON_INST_ID          = 1                ##监视器实例在监视器系统中的ID

3.5.3 启动守护进程

启动异步备库的守护进程:

./dmwatcher /dm8/data/DAMENG/dmwatcher.ini

守护进程启动后,进入 Startup 状态,此时实例处于 Mount 状态,异步备库的守护进程会将本地实例自动 Open,并切换守护进程自身为 Open 状态。

3.5.4 启动监视器

修改监视器配置后,需要重新启动监视器:

./dmmonitor /dm8/data/dmmonitor.ini

监视器提供一系列命令,支持当前守护系统状态查看以及故障处理,可输入 help 命令,查看各种命令说明使用,结合实际情况选择使用。

在搭建步骤和各项配置都正确的情况下,在监视器上执行 show 命令,可以监控到异步备库实例和异步备库守护进程都处于 Open 状态。如下图所示。

详细信息请到达梦数据库官方网站查看:

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

DM配置实时主备和异步主备相关推荐

  1. DM MPP集群(两节点主备)

    1. 前言 DM 大规模并行处理 MPP 是基于达梦数据库管理系统研发的完全无对等共享式集群,在 DM MPP 集群中支持对各 DM 数据库实例同时运行并构建一个 大规模的并行计算网络,向外界为不同应 ...

  2. DG Broker配置、日志传输、备库管理与主备切换

    DG Broker配置.日志传输.备库管理与主备切换 DG Broker的配置与启用 启动DG Broker 配置DG Broker 使用DG Broker查看数据库信息 使用DG Broker管理日 ...

  3. 双机热备(双主模式)——实现数据库的高可用

    1.搭建双主机 <总说明:实现此功能需要用到mycat> 问题:如果根据如下的配置实现数据库的代理,如果数据库主库宕机,则直接影响整个程序的执行.所以需要实现高可用机制. 高可用实现的问题 ...

  4. 【转载】mysql主键的缺少导致备库hang

    最近线上频繁的出现slave延时的情况,经排查发现为用户在删除数据的时候,由于表主键的主键的缺少,同时删除条件没有索引,或或者删除的条件过滤性极差,导致slave出现hang住,严重的影响了生产环境的 ...

  5. mysql 备库 hang住_mysql主键的缺少导致备库hang住

    最近线上频繁的出现slave延时的情况,经排查发现为用户在删除数据的时候,由于表主键的主键的缺少,同时删除条件没有索引,或或者删除的条件过滤性极差,导致slave出现hang住,严重的影响了生产环境的 ...

  6. 从足球看--主主、主从、主备

    今天学习了mysql的主从复制,有很多的概念性东西:主主,主从,主备,因为自己是一个足球迷,然后突然觉的这几个概念性的东西可以用足球来解释,有说错的地方望各位读者指出批评,一起探讨. 我排出的是一个4 ...

  7. mysql 主从,主主,主主复制时的主键冲突解决

    原理:slave 的i/o thread ,不断的去master抓取 bin_log, 写入到本地relay_log 然后sql thread不断的更新slave的数据 把主服务器所有的数据复制给从服 ...

  8. 5双机配置_CentOS 7 高可用双机热备实现

    一.服务器准备 两个linux版本为 CentOS7 x64, mysql 版本为 5.5.31 , 详细安装步骤参考: CentOS7 环境 编译安装mysql源码 二. Mysql 建立主-从服务 ...

  9. 单主复制与多主复制入门

    单主复制 单主复制,也称主从复制.写入主节点的数据都需要复制到从节点,即存储数据库副本的节点.当客户要写入数据库时,他们必须将请求发送给主节点,而后主节点将这些数据转换为复制日志或修改数据流发送给其所 ...

最新文章

  1. EZ430 Chronos 自带程序源码:test 示范程序
  2. 一、安装Docker CE
  3. php魔术方法例子,PHP中魔术方法的使用举例
  4. Redis 是如何执行的?
  5. Orchard详解--第八篇 拓展模块及引用的预处理
  6. Oracle10g在Win2008R2下因版本无法安装问题的解决
  7. 解决办法:error: ‘unordered_map’ in namespace ‘std’ does not name a template type
  8. 为什么计算机连不上无线网络,电脑连不上wifi怎么办
  9. 单片机原理及应用c语言版课后答案魏鸿磊,单片机原理及应用
  10. Java工具集-数学(圆柱体,椎体工具类)
  11. 乒乓球技术要领总结(保持更新)
  12. 什么是REST风格? 什么是RESTFUL?(一篇全读懂)
  13. c++贪吃蛇源代码 完整版
  14. Android中Assets文件路径
  15. VSCODE 全局搜索失效
  16. hive中如何判断字符串是否是数字
  17. 10 EPC与物联网
  18. 【陈工笔记】# Latex中,%如何处理? #
  19. 国家开发银行 续贷声明
  20. 在程序中设置[硬件加速 级别]

热门文章

  1. git移除不需要版本控制文件
  2. 数据中台:中台设计四步走
  3. Scrapy-Redis之RedisSpider与RedisCrawlSpider
  4. C语言中exit的简单用法
  5. Android开发之无线遥控器
  6. 【shell】万能解压脚本
  7. http://www.360doc.com/content/18/0406/16/15102180_743316618.shtml
  8. 明日之后1.0(完整版)
  9. 今天下班公交车上碰到的一件事
  10. 天津理工大学邮箱服务器,天津理工大学信息门户