注册
两节点主备集群 + 单节点异步备库搭建
技术分享/ 文章详情 /

两节点主备集群 + 单节点异步备库搭建

第二支羽毛 2023/06/06 1653 0 0

# 两节点主备集群 + 单节点异步备库搭建

一、DM主备集群概念(DMDataWatch+DMRWC)

1.1、DM主备集群概念:(Oracle:dataguard;MySQL:主备)

DM数据守护(Data Watch)是一种集成化的高可用、高性能数据库解决方案,是数据库异地容灾的首选方案。
DM数据守护提供多种解决方案,可以配置成实时主备、读写分离集群DMRWC、MPP主备,能满足用户关于系统可用性、数据安全性、性能等方面的综合需求。

1.2、实时主备集群:

实时主备由一个主库以及一个或者多个配置了实时(Realtime)归档的备库组成,其主要目的是保障数据库可用性,提高数据安全性。
实时主备系统中,主库提供完整的数据库功能,备库提供只读服务。
主库修改数据产生的redo日志,通过实时归档机制,在写入联机redo日志文件之前发送到备库,实时备库通过重演redo日志与主库保持数据同步。当主库出现故障时,备库在将所有redo日志重演结束后,就可以切换为主库对外提供数据库服务。
主备可以使单机,也可以是DSC、MPP。

1.3、读写分离集群:

读写分离集群由一个主库以及一个或多个配置了即时(Timely)归档的备库组成。主要目标是保障数据库可用性的基础上,实现了读、写操作的自动分离,进一步提升数据库的业务支撑能力。
读写分离集群通过即时归档机制保证主、备库数据一致性,并配合达梦数据库系统的各种接口(JDBC、DPI等),将只读操作自动分流到备库,有效降低主库的负载,提升系统吞吐量。

1.4、MPP主备:(手工维护各节点主备):

MPP主备是在MPP集群的基础上,为每一个MPP节点配置一套实时主备系统,这些实时主备系统一起构成了MPP主备系统。
一个MPP节点对应的主备系统成为一个数据守护组(Group),MPP主备系统中各个数据守护组保持相对独立,当某个MPP主节点出现故障时,在其对应的数据守护组内挑选一个备库切换为主库后,就可以确保整个MPP集群的正常使用。

1.5、DM数据守护的实现原理:

将主库(生产库)产生的redo日志传输到备库,备库接收并重新应用redo日志,从而实现备库与主库的数据同步。
DM数据守护的核心思想是监控数据库状态,获取主、备数据同步情况,为redo日志传输与重演过程中出现的各种异常情况提供一些列的解决方案。
DM数据守护系统结构:
主库、备库
Redo日志、Redo日志传输、Redo日志重演
数据守护(dmwatcher)、监听器(dmmonitor)

1.6、DM数据守护系统结构:

image.png
注意: Oracle有个很少用的第三个监控observer,因为核心库正常不允许被切换,需要的话是手工切换。
守护进程(dmwatcher):
是达梦数据守护系统不可或缺的核心部件,是数据库实例与监控器之间信息交流的桥梁;
数据库实例向本地守护进程发送消息,接收本地守护进程的消息和命令。
监视器(dmmonitor):
接收守护进程的消息,并向守护进程发送命令;
数据库实例与监视器之间没有直接的消息交互;
守护进程解析并执行监视器发起的各种命令Switchover/Takeover/Open database等),并在必要时通知数据库实例执行相应的操作。

1.7、归档:

本地归档:
Redo日志写入日志文件后,又由归档线程再写入本地服务器中的归档日志。
实时归档(Realtime):
实时归档只有在数据库模式为Primary主库才生效,是实现mpp和实时主备的基础。在redo日志写入联机日志文件之前,再通过MAL系统将redo_buf发送到备库。
即时归档(Timely):
在redo日志写入联机日志文件之后,再通过MAL系统将redo_buf发送到备库,即时归档是读写分离实现的基础,一个主库最多配8个即时备库。
远程归档:
Redo日志写入日志文件后,又由归档线程再写入远程服务器中的归档日志。
异步归档(Async):
Redo日志写入日志文件后,定时或者定期启动归档redo日志进行发送,设置定时归档必须确保至少有一个本地归档(需求:有些业务系统需要第二天才能查到数据的情况)。
视图: select * from v$arch_status;

1.8、OGUID:(Oracle:dbid)

数据守护唯一标识符:select OGUID from V$INSTANCE;

1.9、MAL系统:

MAL系统是基于TCP协议实现的一种内部通讯机制,具有可靠。灵活、高效的特性。
DM通过MAL系统实现redo日志传输,以及其他一些实例间的通讯。

二、主备集群安装前规划

2.1、端口规划:

image.png

端口号相关说明:
PORT_NUM:数据库实例监听端口
MAL_INST_HOST:数据库的对外服务IP地址
MAL_INST_PORT:实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_INST_DM_PORT:实例监听守护进程TCP连接的端口
MAL_DM_PORT:实例对应的守护进程监听TCP连接的端口
MAL_HOST:MAL系统监听TCP连接的IP地址
MAL_PORT:MAL系统监听TCP连接的端口

2.2、数据库初始化参数:

页大小:8K
簇大小:16页
字符集:UTF-8
字符串比较大小写敏感:否
长度以字符为单位:否
数据库名:DAMENG
实例名:DMSERVER1,DMSERVER2,DMSERVER
端口:5236,5236,5236
日志文件大小:共两个(每个256MB)
是否启用归档:是

2.3、安装部署路径规划:

image.png

2.4、环境搭建:

包括基础环境搭建 + 数据库安装 (略,可参考以下链接)
达梦官网单机搭建指南

2.5、主库:

2.5.1、数据库初始化(实例安装)

su dmdba
cd /dm8/dmdbms/bin
./dminit path=/dm8/dmdata LOG_SIZE=256 SYSDBA_PWD=dameng123 charset=1
初始化数据库:直到看到SYSTEM IS READY为止
./dmserver /dm8/dmdata/DAMENG/dm.ini
image.png

2.5.2、开启归档:

./disql sysdba/SYSDBA
ALTER DATABASE MOUNT;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dm8/dmarch,TYPE = local,FILE_SIZE=256,SPACE_LIMIT =2048';
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
select arch_mode from v$ database; #(格式要求多加个空格)
select * from v$dm_arch_ini;
exit(SQL窗口 + mount状态均退出)。

2.5.4、备份:

su dmdba
cd /dm8/dmdbms/bin
./dmrman
backup database '/dm8/dmdata/DAMENG/dm.ini' full to wjdb_full01 backupset '/dm8/dmbak/wjdb_full01'
scp -r /dm8/dmbak/wjdb_full01 192.168.142.130:/dm8/dmbak
注意:这里是新库,使用脱机备份比较完整。

2.6、备库:

2.6.1、实例安装:

su dmdba
cd /dm8/dmdbms/bin
./dminit path=/dm8/dmdata LOG_SIZE=256 SYSDBA_PWD=dameng123 charset=1

2.6.2数据库恢复:

./dmrman
restore database '/dm8/dmdata/DAMENG/dm.ini' from backupset '/dm8/dmbak/wjdb_full01'
recover database '/dm8/dmdata/DAMENG/dm.ini' from backupset '/dm8/dmbak/wjdb_full01'
recover database '/dm8/dmdata/DAMENG/dm.ini' update db_magic
注意: 这里第二台数据库服务尽量不能打开。

2.7、主库参数修改:

su - dmdba
cd /dm8/dmdata/DAMENG/

2.7.1、dm.ini(有的按下面参数修改,没有直接加):

vi dm.ini
INSTANCE_NAME = DMSERVER1 #主库实例
PORT_NUM = 5236 #数据库实例监听端口
DW_PORT = 15237 #守护环境下,监听守护进程连接端口,为上面规划表中的 MAL_INST_DW_PORT 值
DW_ERROR_TIME = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
HA_INST_CHECK_FLAG = 1 #检测是否多个实例进程同时启动
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息

2.7.2、dmmal.ini(主备库一致):

vi dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DMSERVER1 # 实 例 名 , 和 dm.ini 中 的INSTANCE_NAME 一致
MAL_HOST = 192.168.142.129 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 15239 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.142.129 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的PORT_NUM 一致
MAL_INST_DW_PORT = 15237 #实例监听守护进程 TCP 连接的端口
MAL_DW_PORT = 15238 #实例对应的守护进程监听 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = DMSERVER2 # 实 例 名 , 和 dm.ini 中 的INSTANCE_NAME 一致
MAL_HOST = 192.168.142.130 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 25239 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.142.130 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的PORT_NUM 一致
MAL_INST_DW_PORT = 25237 #实例监听守护进程 TCP 连接的端口
MAL_DW_PORT = 25238 #实例对应的守护进程监听 TCP 连接的端口

2.7.3、dmarch.ini :

两节点都配置,ARCH_DEST 分写写对方的实例。
vi dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMSERVER2 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm8/dmarch #本地归档文件存放路径
ARCH_FILE_SIZE = 256 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 2048 # 单 位 Mb , 0 表 示 无 限 制 , 范 围1024~4294967294M

2.7.4、dmwatcher.ini :

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

scp -r /dm8/dmdata/DAMENG/dmmal.ini 192.168.142.130:/dm8/dmdata/DAMENG --注意IP
scp -r /dm8/dmdata/DAMENG/dmwatcher.ini 192.168.142.130:/dm8/dmdata/DAMENG --注意IP

2.8、从库参数配置:

su - dmdba
cd /dm8/dmdata/DAMENG/

2.7.1、dm.ini(有的按下面参数修改,没有直接加):

vi dm.ini
INSTANCE_NAME = DMSERVER2 #主库实例
PORT_NUM = 5236 #数据库实例监听端口
DW_PORT = 25237 #守护环境下,监听守护进程连接端口,为上面规划表中的 MAL_INST_DW_PORT 值
DW_ERROR_TIME = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
HA_INST_CHECK_FLAG = 1 #检测是否多个实例进程同时启动
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息

2.8.2、dmarch.ini :

vi dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMSERVER1 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm8/dmarch #本地归档文件存放路径
ARCH_FILE_SIZE = 256 #单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 2048 # 单位Mb,0表示无限制,范围1024~4294967294M
注意: 从库只需要配置dmarch.ini、dm.ini,其余dmmal.ini、dmwatcher.ini已经从主库中发送过来。

2.9、主库注册服务:

root用户:
cd /dm8/dmdbms/script/root/
./dm_service_installer.sh -t dmserver -dm_ini /dm8/dmdata/DAMENG/dm.ini -p DAMENG
./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/dmdata/DAMENG/dmwatcher.ini -p DAMENG
手工启动数据库至mount状态:
su dmdba
cd /dm8/dmdbms/bin
./dmserver /dm/dmdata/DAMENG/dm.ini mount
直到看到SYSTEM IS READY为止
image.png
修改参数:
su dmdba
[dmdba@linux129 ~]$ cd /dm8/dmdbms/bin
./disql SYSDBA/SYSDBA
select status$ from v$database;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(453331);
alter database primary;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
exit;
主库mount状态退出:
手动起服务和守护进程:
[dmdba@linux129 bin]$ ./DmServiceDAMENG start
[dmdba@linux129 bin]$ ./DmWatcherServiceDAMENG start
截止到现在主库配置已完成.

2.10、备库注册服务:

root用户:
cd /dm8/dmdbms/script/root/
./dm_service_installer.sh -t dmserver -dm_ini /dm8/dmdata/DAMENG/dm.ini -p DAMENG
./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/dmdata/DAMENG/dmwatcher.ini -p DAMENG
手工启动数据库至mount状态:
su dmdba
cd /dm8/dmdbms/bin
./dmserver /dm/dmdata/DAMENG/dm.ini mount
直到看到SYSTEM IS READY为止
su dmdba
cd /dm8/dmdbms/bin
./disql SYSDBA/SYSDBA
select status$ from v$database;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(453331);
alter database standby;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
exit;
从库mount状态退出:
手动起服务和守护进程:
[dmdba@linux130 bin]$ ./DmServiceDAMENG start
[dmdba@linux130 bin]$ ./DmWatcherServiceDAMENG start

2.11、monitor 服务器配置:

2.11.1、monitor参数配置:

su dmdba
cd /dm8/
mkdir dmmonitor
vi dmmonitor.ini
MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /dm/dmdbms/dm8/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453331 #组 GRP1 的唯一 OGUID 值
MON_DW_IP = 192.168.114.131:15238
MON_DW_IP = 192.168.114.132:25238
#配置为监视器到组 GRP1 的守护进程的连接信息,以“IP:PORT”的形式配置
#IP 对应 dmmal.ini 中的 MAL_HOST, PORT 对应 dmmal.ini 中的

建立非确认监视器:
cp dmmonitor.ini dmmonitor0.ini
vi dmmonitor0.ini
MON_DW_CONFIRM = 0 #非确认监视器模式

2.11.2、注册服务:

su root
cd /dm8/dmdbms/script/root
./dm_service_installer.sh -t dmmonitor -monitor_ini /dm8/dmmonitor/dmmonitor.ini -p DAMENG
后台启动或关闭:
su dmdba
cd /dm8/dmdbms/bin
./DmMonitorServiceDAMENG start
./DmMonitorServiceDAMENG stop
前台启动:
./dmmonitor /dm8/dmmonitor/dmmonitor.ini
注意: 当日常无操作的情况下放在后台起,如果想要操作的话,前台起.
至此,主备集群搭建完成。

三、主备集群添加节点(异步):

3.1、异步节点前安装规划 + 安装前准备 + 实例安装(上述已经简述过,略):

3.2、主库备份拷贝数据库:

cd /dm8/dmdbms/bin
./disql SYSDBA/SYSDBA
backup database full backupset '/dm8/dmbak/wjfull02';
exit;
image.png
scp -r /dm8/dmbak/wjfull02 192.168.142.131:/dm8/dmbak

3.3、异步节点恢复数据库:

cd /dm8/dmdbms/bin
./dmrman
restore database '/dm8/dmdata/DAMENG/dm.ini' from backupset '/dm8/dmbak/wjfull02'
recover database '/dm8/dmdata/DAMENG/dm.ini' from backupset '/dm8/dmbak/wjfull02'
recover database '/dm8/dmdata/DAMENG/dm.ini' update db_magic

3.4、主/备库参数修改:

su dmdba
cd /dm8/dmdata/DAMENG

A.dm.ini
vi dm.ini
TIMER_INI = 1 #配置有异步归档时,打开定时器,定时同步归档到异步备库
B.dmmal.ini
两个实例参数一样
在配置 dmmal.ini 的基础上,增加异步备库 DMSERVER3 的 MAL 配置项)
vi dmmal.ini
[MAL_INST3]
MAL_INST_NAME = DMSERVER3 # 实 例 名 , 和 dm.ini 中 的INSTANCE_NAME 一致
MAL_HOST = 192.168.142.131 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 35239 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.142.131 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的PORT_NUM 一致
MAL_INST_DW_PORT = 35237 #实例监听守护进程 TCP 连接的端口
MAL_DW_PORT = 35238 #实例对应的守护进程监听 TCP 连接的端口
C.dmarch.ini
(在配置 dmarch.ini 的基础上,增加异步归档的配置项)
vi dmarch.ini
[ARCHIVE_ASYNC]
ARCH_TYPE = ASYNC #异步归档类型
ARCH_DEST = DMSERVER3 #异步归档目标实例名
ARCH_TIMER_NAME = RT_TIMER #定时器名称,和 dmtimer.ini 中的名称一致
D.dmtimer.ini
dmtimer.ini(配置 dmtimer.ini,用于定时触发实例发送归档日志到异步备
库)
异步归档的最小触发间隔是 1 分钟,定时器调度类型:
1:执行一次
2:按日执行
3:按周执行
4:按月执行的第几天
5:按月执行的第一周
6:按月执行的第二周
7:按月执行的第三周
8:按月执行的第四周
9:按月执行的最后一周
下面示例中定时器配置为每天分钟触发主库发送归档日志到异步备库,可
以根据实际情况再做调整
vi dmtimer.ini
[RT_TIMER]
#和 dmarch.ini 中的 ARCH_TIMER_NAME 一致
TYPE = 2 #2 按日执行
FREQ_MONTH_WEEK_INTERVAL = 1 #间隔月或周数
FREQ_SUB_INTERVAL = 0 #间隔天数
FREQ_MINUTE_INTERVAL = 1 #间隔分钟数
START_TIME = 00:00:00 #开始时间
END_TIME = 00:00:00 #结束时间
DURING_START_DATE = 2021-5-15 12:00:00 #开始时间点
DURING_END_DATE = 9999-12-31 23:59:59 #结束时间点
NO_END_DATE_FLAG = 1 #是否结束标记
DESCRIBE = RT_TIMER #定时器描述
IS_VALID = 1 #0:表示关闭定时器,1:表示启用定时器

3.5、修改monitor参数:

su dmdba
vi /dm8/dmmonitor/dmmonitor.ini
MON_DW_IP = 192.168.142.131:35238

3.6、主/备数据库操作:

cd /dm8/dmdbms/bin
./DmServiceDAMENG stop
./DmWatcherServiceDAMENG stop
设置 mount 状态:
nohup ./dmserver /dm8/dmdata/DAMENG/dm.ini mount &
启动守护进程:
./DmWatcherServiceDAMENG start

3.7、修改异步节点参数:

su dmdba
cd /dm8/dmdata/DAMENG

A.dm.ini
vi dm.ini
INSTANCE_NAME = DMSERVER3 #异步备库实例
PORT_NUM = 5236 #数据库实例监听端口
DW_PORT = 35237 #守护环境下,监听守护进程连接端口,为上面规划表中的 MAL_INST_DW_PORT 值
DW_ERROR_TIME = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
HA_INST_CHECK_FLAG = 1 #检测是否多个实例进程同时启动
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息

B.dmmal.ini
几个实例参数一样
vi dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DMSERVER1 # 实 例 名 , 和 dm.ini 中 的INSTANCE_NAME 一致
MAL_HOST = 192.168.142.129 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 15239 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.142.129 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的PORT_NUM 一致
MAL_INST_DW_PORT = 15237 #实例监听守护进程 TCP 连接的端口
MAL_DW_PORT = 15238 #实例对应的守护进程监听 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = DMSERVER2 # 实 例 名 , 和 dm.ini 中 的INSTANCE_NAME 一致
MAL_HOST = 192.168.142.130 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 25239 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.142.130 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的PORT_NUM 一致
MAL_INST_DW_PORT = 25237 #实例监听守护进程 TCP 连接的端口
MAL_DW_PORT = 25238 #实例对应的守护进程监听 TCP 连接的端口
[MAL_INST3]
MAL_INST_NAME = DMSERVER3 # 实 例 名 , 和 dm.ini 中 的INSTANCE_NAME 一致
MAL_HOST = 192.168.142.131 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 35239 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.142.131 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的PORT_NUM 一致
MAL_INST_DW_PORT = 35237 #实例监听守护进程 TCP 连接的端口
MAL_DW_PORT = 35238 #实例对应的守护进程监听 TCP 连接的端口

C.dmarch.ini
vi dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm8/dmarch #本地归档文件存放路径
ARCH_FILE_SIZE = 256 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 2048 # 单 位 Mb , 0 表 示 无 限 制 , 范 围1024~4294967294M

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

3.8、root用户注册服务:

cd /dm8/dmdbms/script/root/
./dm_service_installer.sh -t dmserver -dm_ini /dm8/dmdata/DAMENG/dm.ini -p DAMENG
./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/dmdata/DAMENG/dmwatcher.ini -p DAMENG

3.9、异步节点修改状态:

su dmdba
cd /dm8/dmdbms/bin
nohup ./dmserver /dm/dmdata/wjdb/dm.ini mount &
./disql SYSDBA/SYSDBA
select status$ from v$database;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(453331);
alter database standby;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
exit;
MOUNT节点退出。
cd /dm8/dmdbms/bin
./DmServiceDAMENG start
./DmWatcherServiceDAMENG start

3.10、启动监视器查看状态:

su dmdba
cd /dm8/dmdbms/bin
./dmmonitor /dm8/dmmonitor/dmonitor.ini
show
image.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服