DM配置实时主备和异步主备

目录

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_P192.168.61.135 192.168.61.139主库 DM1centOS 7.9192.168.61.135 外部服务 IP;
192.168.61.139 内部通信 IP
DW_S1192.168.61.136 192.168.61.137备库 DM2centOS 7.9192.168.61.136 外部服务 IP;
192.168.61.137 内部通信 IP
DW_M192.168.61.131确认监视器centOS 7.9

端口规划

实例名PORT_NUMMAL_INST_DW_PORTMAL_HOSTMAL_PORTMAL_DW_PORT
DM152375238192.168.61.139611412141
DM252395240192.168.61.137611422142

2.2 配置DM1

2.2.1 配置dm.ini

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

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

INSTANCE_NAME = DM1

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

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.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 = DM2

	MAL_HOST = 192.168.61.137

	MAL_PORT = 61142

	MAL_INST_HOST = 192.168.61.136

	MAL_INST_PORT = 5239

	MAL_DW_PORT = 2142

	MAL_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 参数修改如下:

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

INSTANCE_NAME = DM2

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

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.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 = DM2

	MAL_HOST = 192.168.61.137

	MAL_PORT = 61142

	MAL_INST_HOST = 192.168.61.136

	MAL_INST_PORT = 5239

	MAL_DW_PORT = 2142

	MAL_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 		##每个日志文件最大32M

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

[GRP1]

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

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

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

	MON_DW_IP = 192.168.61.139:2141

	MON_DW_IP = 192.168.61.137:2142

2.4.2 配置多实例监视器 

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

MON_LOG_PATH        	= /dm8/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      = 453331

MON_DW_IP          	= 192.168.61.139:2141

MON_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_S2192.168.61.132 192.168.61.138异步备库 DM3CentO S 7.9192.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 = 2

	FREQ_MONTH_WEEK_INTERVAL = 1

	FREQ_SUB_INTERVAL = 0

	FREQ_MINUTE_INTERVAL = 0

	START_TIME = 00:00:00

	END_TIME = 00:00:00

	DURING_START_DATE = 2022-08-31 17:36:09

	DURING_END_DATE = 9999-12-31 23:59:59

	NO_END_DATE_FLAG = 1

	DESCRIBE = RT TIMER

	IS_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 = 2

	FREQ_MONTH_WEEK_INTERVAL = 1

	FREQ_SUB_INTERVAL = 0

	FREQ_MINUTE_INTERVAL = 0

	START_TIME = 00:00:00

	END_TIME = 00:00:00

	DURING_START_DATE = 2022-8-31 17:36:09

	DURING_END_DATE = 9999-12-31 23:59:59

	NO_END_DATE_FLAG = 1

	DESCRIBE = RT TIMER

	IS_VALID = 1

3.4 配置异步备库DM3

3.4.1 配置dm.ini

        配置dm.ini参数如下。

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

INSTANCE_NAME = DM3

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

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次的日志重演信息

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 = DM2

	MAL_HOST = 192.168.61.137

	MAL_PORT = 61142

	MAL_INST_HOST = 192.168.61.136

	MAL_INST_PORT = 5239

	MAL_DW_PORT = 2142

	MAL_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					##每个日志文件最大32M

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

[GRP1]

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

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

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

	MON_DW_IP = 192.168.61.139:2141

	MON_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/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       	= 453331

MON_DW_IP        		= 192.168.61.139:2141

MON_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 状态。如下图所示。

 

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值