个人笔记006之达梦主备集群DMDataWatch及日常维护

在介绍DM主备集群之前先简单介绍下相关的概念:

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

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、备1组成一个数据守护组;节点2、备2是一个组;节点3、备3是一个组。

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

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

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

在这里插入图片描述

注意:Oracle有个很少用的第三个监控observer,因为核心库正常不允许被切换,需要的话是手工切换。

守护进程(dmwatcher):
是达梦数据守护系统不可或缺的核心部件,是数据库实例与监控器之间信息交流的桥梁;
数据库实例向本地守护进程发送消息,接收本地守护进程的消息和命令。
监视器(dmmonitor):
接收守护进程的消息,并向守护进程发送命令;
数据库实例与监视器之间没有直接的消息交互(中间商式交互);
守护进程解析并执行监视器发起的各种命令Switchover/Takeover/Open database等),并在必要时通知数据库实例执行相应的操作。

1.7、归档:

本地归档:
Redo日志写入日志文件后,又由归档线程再写入本地服务器中的归档日志。
实时归档(Realtime):
实时归档只有在数据库模式为Primary主库才生效,是实现mpp和实时主备的基础。在redo日志写入联机日志文件之前,再通过MAL系统将redo_buf发送到备库。
即时归档(Timely):
在redo日志写入联机日志文件之后,再通过MAL系统将redo_buf发送到备库,即时归档是读写分离实现的基础,一个主库最多配8个即时备库。
注意:说白了只有即时归档是在写入内存之后就发送过去了,并未发生IO,其余模式是写到磁盘之后再发送。
这里说的归档之前说过了,所以就简单介绍下,不做过多赘述。
远程归档:
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、端口规划:

实例名PORT_NUMMAL_INST_HOSTMAL_INST_PORTMAL_INST_DM_PORTMAL_DM_PORTMAL_HOSTMAL_PORT
wjdb115236192.168.114.131152361523715238192.168.114.13115239
wjdb225236192.168.114.132252362523725238192.168.114.13225239
dmmontior192.168.114.134

端口号相关说明:
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、数据库初始化参数:

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

2.3、安装部署路径规划:

实例名wjdb1wjdb2
IP地址192.168.114.131192.168.114.132
安装路径/dm/dmdbms/dm8/dm/dmdbms/dm8
实例路径/dm/dmdata/wjdb/dm/dmdata/wjdb
归档路径/dm/dmarch/wjdb/dm/dmarch/wjdb
备份路径/dm/dmback/dm/dmback
日志路径/dm/dmdbms/dm8/log/dm/dmdbms/dm8/log

2.4、环境搭建:

2.4.1、基础环境搭建(主库+备库+monitor)(略)

2.4.2、数据库安装(主库+备库+monitor):

su - dmdba
cd /mnt/
./DMInstall.bin -i
在这里插入图片描述
在这里插入图片描述
[root@DM8 mnt]# /dm8/script/root/root_installer.sh
在这里插入图片描述

2.5、主库:

2.5.1、实例安装:

./dminit path=/dm/dmdata db_name=wjdb instance_name=wjdb1 port_num=15236 LOG_SIZE=256 SYSDBA_PWD=dameng123 EXTENT_SIZE=16 PAGE_SIZE=16 charset=1
在这里插入图片描述

初始化数据库:直到看到SYSTEM IS READY为止
在这里插入图片描述
在这里插入图片描述

2.5.2、执行disql 脚本,优化参数:

[dmdba@linux131 tool]$ ./disql sysdba/dameng123@192.168.114.131:15236
call SF_SET_SYSTEM_PARA_VALUE ('MAX_OS_MEMORY',95,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('MAX_SESSIONS',1000,1,2);
call SF_SET_SYSTEM_PARA_VALUE('MAX_SESSION_STATEMENT',5000,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('BUFFER',1024,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('MAX_BUFFER',1024,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('BUFFER_POOLS',2,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('RECYCLE',512,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('RECYCLE_POOLS',1,1,2);
call SF_SET_SYSTEM_PARA_VALUE('HJ_BUF_GLOBAL_SIZE',500,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('HJ_BUF_SIZE',300,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('DICT_BUF_SIZE',50,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('TEMP_SIZE',200,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('VM_POOL_SIZE',256,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('SESS_POOL_SIZE',256,1,2);
call SF_SET_SYSTEM_PARA_VALUE('CACHE_POOL_SIZE',200,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('WORKER_THREADS',2,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('TASK_THREADS',2,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('USE_PLN_POOL',1,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('OLAP_FLAG',2,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('OPTIMIZER_MODE',1,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('VIEW_PULLUP_FLAG',1,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('COMPATIBLE_MODE',2,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('ENABLE_MONITOR',0,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('SVR_LOG',0,1,2);

在这里插入图片描述
在这里插入图片描述

2.5.3、开启归档:

ALTER DATABASE MOUNT;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dm/dmarch/wjdb,TYPE = local,FILE_SIZE=256,SPACE_LIMIT = 0';
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
select arch_mode from v$database;
select * from v$dm_arch_ini;

在这里插入图片描述
在这里插入图片描述

2.5.4、备份:

su dmdba
cd /dm/dmdbms/dm8/bin
./dmrman

backup database '/dm/dmdata/wjdb/dm.ini' full to wjdb_full01 backupset '/dm/dmback/wjdb_full01'

在这里插入图片描述

scp -r /dm/dmback/wjdb_full01 192.168.114.132:/dm/dmback
在这里插入图片描述

注意:这里是新库,使用脱机备份比较完整。

2.6、备库:

2.6.1、实例安装:

su - dmdba
cd /dm/dmdbms/dm8/bin

./dminit path=/dm/dmdata db_name=wjdb instance_name=wjdb2 port_num=25236 LOG_SIZE=256 SYSDBA_PWD=dameng123 EXTENT_SIZE=16 PAGE_SIZE=16 charset=1

在这里插入图片描述

2.6.2数据库恢复:

./dmrman
restore database '/dm/dmdata/wjdb/dm.ini' from backupset '/dm/dmback/wjdb_full01'
recover database '/dm/dmdata/wjdb/dm.ini' from backupset '/dm/dmback/wjdb_full01'
recover database '/dm/dmdata/wjdb/dm.ini' update db_magic

在这里插入图片描述
注意:这里第二台数据库千万不能打开。

2.7、主库参数修改:

su - dmdba
cd /dm/dmdata/wjdb

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

vi dm.ini
INSTANCE_NAME = wjdb1 #主库实例
PORT_NUM = 15236 #数据库实例监听端口
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 = wjdb1 # 实 例 名 , 和 dm.ini 中 的INSTANCE_NAME 一致
MAL_HOST = 192.168.114.131 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 15239 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.114.131 #实例的对外服务 IP 地址
MAL_INST_PORT = 15236 #实例的对外服务端口,和 dm.ini 中的PORT_NUM 一致
MAL_INST_DW_PORT = 15237 #实例监听守护进程 TCP 连接的端口
MAL_DW_PORT = 15238 #实例对应的守护进程监听 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = wjdb2 # 实 例 名 , 和 dm.ini 中 的INSTANCE_NAME 一致
MAL_HOST = 192.168.114.132 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 25239 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.114.132 #实例的对外服务 IP 地址
MAL_INST_PORT = 25236 #实例的对外服务端口,和 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 = wjdb2 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm/dmarch/wjdb #本地归档文件存放路径
ARCH_FILE_SIZE = 256 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 # 单 位 Mb , 0 表 示 无 限 制 , 范 围1024~4294967294M

2.7.4、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 = /dm/dmdata/wjdb/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm/dmdbms/dm8/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭

在这里插入图片描述

2.8、从库参数配置:

su - dmdba
cd /dm/dmdata/wjdb

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

vi dm.ini
INSTANCE_NAME = wjdb2 #主库实例
PORT_NUM = 25236 #数据库实例监听端口
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、dmmal.ini(主备库一致)

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

2.8.3、dmarch.ini

vi dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = wjdb1 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm/dmarch/wjdb #本地归档文件存放路径
ARCH_FILE_SIZE = 256 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 # 单 位 Mb , 0 表 示 无 限 制 , 范 围1024~4294967294M

2.8.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 = /dm/dmdata/wjdb/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm/dmdbms/dm8/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭

2.9、主库注册服务:

root用户:

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

手工启动数据库至mount状态:
su dmdba

cd /dm/dmdbms/dm8/bin
./dmserver /dm/dmdata/wjdb/dm.ini mount

在这里插入图片描述
修改参数:

su - dmdba
[dmdba@linux131 ~]$ cd /dm/dmdbms/dm8/bin
./disql SYSDBA/dameng123@192.168.114.131:15236
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@linux131 bin]$ ./DmServicewjdb start
[dmdba@linux131 bin]$ ./DmWatcherServicewjdb start

在这里插入图片描述
截止到现在主库配置已完成。

2.10、备库注册服务:

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

启动至mount状态:

su dmdba
cd /dm/dmdbms/dm8/bin
./dmserver /dm/dmdata/wjdb/dm.ini mount

在这里插入图片描述

su dmdba
cd /dm/dmdbms/dm8/bin
./disql SYSDBA/dameng123@192.168.114.132:25236
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;

参数优化:

call SF_SET_SYSTEM_PARA_VALUE ('MAX_OS_MEMORY',95,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('MAX_SESSIONS',1000,1,2);
call SF_SET_SYSTEM_PARA_VALUE('MAX_SESSION_STATEMENT',5000,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('BUFFER',1024,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('MAX_BUFFER',1024,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('BUFFER_POOLS',2,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('RECYCLE',512,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('RECYCLE_POOLS',1,1,2);
call SF_SET_SYSTEM_PARA_VALUE('HJ_BUF_GLOBAL_SIZE',500,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('HJ_BUF_SIZE',300,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('DICT_BUF_SIZE',50,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('TEMP_SIZE',200,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('VM_POOL_SIZE',256,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('SESS_POOL_SIZE',256,1,2);
call SF_SET_SYSTEM_PARA_VALUE('CACHE_POOL_SIZE',200,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('WORKER_THREADS',2,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('TASK_THREADS',2,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('USE_PLN_POOL',1,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('OLAP_FLAG',2,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('OPTIMIZER_MODE',1,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('VIEW_PULLUP_FLAG',1,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('COMPATIBLE_MODE',2,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('ENABLE_MONITOR',0,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('SVR_LOG',0,1,2);

主库mount状态退出:
手动起服务和守护进程:

[dmdba@linux131 bin]$ ./DmServicewjdb start
[dmdba@linux131 bin]$ ./DmWatcherServicewjdb start
在这里插入图片描述

2.11、monitor 服务器配置:

2.11.1、monitor参数配置:

su dmdba
mkdir /dm/dmdbms/dm8/data
vi /dm/dmdbms/dm8/data/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
MAL_DW_PORTMON_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 中的MAL_DW_PORT

2.11.2、注册服务:

su - root
cd /dm/dmdbms/dm8/script/root
./dm_service_installer.sh -t dmmonitor -monitor_ini /dm/dmdbms/dm8/data/dmmonitor.ini -p wjdb

后台启动或关闭:

su dmdba
cd /dm/dmdbms/dm8/bin
./DmMonitorServicewjdb start
./DmMonitorServicewjdb stop

前台启动:

/dm/dmdbms/dm8/bin/dmmonitor path=/dm/dmdbms/dm8/data/dmmonitor.ini

在这里插入图片描述
show 命令查看信息:
在这里插入图片描述
exit退出;
注意:当日常无操作的情况下放在后台起,如果想要操作的话,前台起.

2.12、主备集群检验:同oracle一样

验证建用户、建表空间、建索引、建表、添加数据;

disql SYSDBA/dameng123@192.168.114.131:15236
create tablespace wj20220609 datafile '/dm/dmdata/wjdb/wj2022060901.dbf' size 100 autoextend off;
create tablespace index_idx datafile '/dm/dmdata/wjdb/wj20220609_idx01.dbf' size 100 autoextend off;
create user "wj" identified by "wj123456789" default tablespace wj20220609 default index tablespace index_idx ;
grant dba to "wj" ;
select PATH from v$datafile;
conn wj/wj123456789@192.168.114.131:15236
create table test001 (id int,name varchar(50),create_date date);
insert into test001 values(1,'老哥','2021-04-01');
insert into test001 values(2,'数据库','2021-04-02');
insert into test001 values(3,'教程','2021-04-03');
insert into test001 values(4,'f.net.cn','2021-04-04');
insert into test001 values(5,'wx','2021-04-05');
insert into test001 values(6,'itpux-com','2021-04-06');
insert into test001 values(7,'wx-gzh','2021-04-07');
insert into test001 values(8,'itpux_com','2021-04-08');
insert into test001 values(9,'oracle','2021-04-09');
insert into test001 values(10,'mysql','2021-03-01');
insert into test001 values(11,'nosql','2021-03-02');
insert into test001 values(12,'数据库','2021-03-03');
insert into test001 values(13,'开源数据库','2021-03-04');
insert into test001 values(14,'高端','2021-03-05');
insert into test001 values(15,'mongodb','2021-03-06');
insert into test001 values(16,'redis','2021-03-07');
insert into test001 values(17,'greenplum','2021-03-08');
insert into test001 values(18,'postgresql','2021-03-09');
insert into test001 values(19,'es','2021-05-01');
insert into test001 values(20,'tidb','2021-05-02');
insert into test001 values(21,'db2','2021-05-03');
insert into test001 values(22,'sqlserver','2021-05-04');
insert into test001 values(23,'etl','2021-05-05');
insert into test001 values(24,'clickhouse','2021-05-06');
insert into test001 values(25,'hadoop','2021-06-01');
insert into test001 values(26,'hive','2021-06-02');
insert into test001 values(27,'hbase','2021-06-03');
insert into test001 values(28,'bigdata','2021-06-04');
insert into test001 values(29,'nbu','2021-06-05');
insert into test001 values(30,'linux','2021-06-06');
commit;

在这里插入图片描述
在这里插入图片描述

2.13、模拟故障:

2.13.1、主库131直接挂掉,reboot

在这里插入图片描述

重启之前的monitor状态:

在这里插入图片描述
reboot
在这里插入图片描述
monitor监视器变化:

在这里插入图片描述

再次登录主库131服务器,发现自动切换为备库:
在这里插入图片描述
再次登录原备库132服务器,发现自动切换为主库:
在这里插入图片描述
备库(131)模式下无法修改数据:
在这里插入图片描述

当前主库132建表,插数据:

在这里插入图片描述
查看备库131表信息:即时是实时的,再未提交状态下,备库依然无法查看到:
在这里插入图片描述

2.13.2、主库(原备库132)挂掉,reboot

观察monitor监视器信息变化:
在这里插入图片描述

此时131服务器自动回切(上阶段备库变主库):
在这里插入图片描述

此时132服务器自动回切(上阶段主库变备库):
在这里插入图片描述
再次登录监视器确认主备库状态:
在这里插入图片描述

2.13.3、无故障情况下主备手动切换:

choose switchover grp1
switchover grp1.WJDB2(这里需要先登录一下,然后再switchover)
在这里插入图片描述
在这里插入图片描述

2.13.4、故障情况下切换:

choose takeover grp1
takeover WJDB1

2.14、主备日常维护启停流程:

ps -ef|grep dmserver
ps -ef|grep dmwatcher
ps -ef|grep dmmonitor

在这里插入图片描述
在这里插入图片描述
查看主库:
在这里插入图片描述

注释:
open状态(status = 4)下: ROLE 1 代表主库;2代表备库 ;0 代表普通库
启动集群顺序:
主库实例服务-备库实例服务-主库守护服务-备库守护服务-监视器服务
停止集群顺序:
停监视器-主库守护进程服务-备库守护进程服务-主库实例服务-备库实例服务

更多知识尽在达梦交流社区:https://eco.dameng.com/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值