目录
-
概述
实时主备系统由主库、实时备库、守护进程和监视器组成。通过部署实时主备系统,可以及时检测并处理各种硬件故障、数据库实例异常,确保持续提供数据库服务。
DM 数据守护(DM Data Watch)的实现原理非常简单:将主库(生产库)产生的 Redo日志传输到备库,备库接收并重新应用 Redo 日志,从而实现备库与主库的数据同步。DM数据守护的核心思想是监控数据库状态,获取主、备库数据同步情况,为 Redo 日志传输与重演过程中出现的各种异常情况提供一系列的解决方案。
DM 数据守护系统主要由主库、备库、Redo 日志、Redo 日志传输、 Redo 日志重演、守护进程(dmwatcher)、监视器(dmmonitor)组成。
DM 数据守护系统结构官方参考图
-
环境准备阶段
-
软件版本
-
操作系统: Linux version 4.19.90-24.4.v2101.ky10.x86_64
数据库版本:dm8
-
-
建立dmdba用户
-
创建用户所在的组,命令如下
groupadd dinstall
创建用户,命令如下
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
修改用户密码,命令如下
passwd dmdba
-
-
修改文件打开最大数
-
重启服务器后永久生效
使用 vi 编辑器打开 /etc/security/limits.conf 文件,命令如下:
vi /etc/security/limits.conf
在最后添加四条语句,需添加的语句如下:
dmdba hard nofile 65536
dmdba soft nofile 65536
dmdba hard stack 32768
dmdba soft stack 16384
切换到 dmdba 用户,查看是否生效,命令如下:
su - dmdba
ulimit -a
设置参数临时生效
可使用 dmdba 用户执行如下命令,使设置临时生效:
ulimit -n 65536
-
-
关闭防火墙及SELinux
-
systemctl status firewalld.service #查看防火墙状态
systemctl stop firewalld.service #临时关闭防火墙
systemctl disable firewalld.service #开机不自启防火墙
关闭SELinux,查看是否开启了SELinux,如果显示为Enforcing,需要改为Disabled,再重启系统使配置生效。
getenforce
vi /etc/selinux/config
进入文件后修改 SELINUX = disabled
保存退出文件
reboot
-
-
挂载镜像
-
切换到 root 用户,将 DM 数据库的 iso 安装包保存在任意位置,例如 /opt 目录下,执行如下命令挂载镜像:
mount -o loop /soft/dmdata_setup_rh7_64_ent_8.1.1.45_20191121.iso /mnt
-
-
建立安装目录
-
虚机增加磁盘并挂载到/dmdata
#mount /dev/vdb1 /dmdata
在根目录下创建 /dmdata 文件夹,用来安装 DM 数据库。命令如下:
mkdir /dmdata
修改安装目录权限
将新建的安装路径目录权限的用户修改为 dmdba,用户组修改为 dinstall。命令如下:
chown dmdba:dinstall -R /dmdata/
给安装路径下的文件设置 755 权限。命令如下:
chmod -R 755 /dmdata
注意:
使用 root 用户建立文件夹,待 dmdba 用户建立完成后需将文件所有者更改为 dmdba 用户,否则无法安装到该目录下。
-
-
数据库安装
-
DM 数据库在 Linux 环境下支持命令行安装和图形化安装
1.命令行安装
切换至 dmdba 用户下,在 /mnt 目录下使用命令行安装数据库程序,依次执行以下命令安装 DM 数据库。
su - dmdba
cd /soft/
/home/dmdba/dmdbms/bin/DMInstall.bin –i
[dmdba@dm3 mnt]$ ./DMInstall.bin -i 安装语言: [1]: 简体中文 [2]: English 请选择安装语言 [1]:1 解压安装程序.......... 欢迎使用达梦数据库安装程序 是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n 是否设置时区? (Y/y:是 N/n:否) [Y/y]: 设置时区: [ 1]: (GTM-12:00) 日界线西 [ 2]: (GTM-11:00) 萨摩亚群岛 [ 3]: (GTM-10:00) 夏威夷 [ 4]: (GTM-09:00) 阿拉斯加 [ 5]: (GTM-08:00) 太平洋时间(美国和加拿大) [ 6]: (GTM-07:00) 亚利桑那 [ 7]: (GTM-06:00) 中部时间(美国和加拿大) [ 8]: (GTM-05:00) 东部部时间(美国和加拿大) [ 9]: (GTM-04:00) 大西洋时间(美国和加拿大) [10]: (GTM-03:00) 巴西利亚 [11]: (GTM-02:00) 中大西洋 [12]: (GTM-01:00) 亚速尔群岛 [13]: (GTM) 格林威治标准时间 [14]: (GTM+01:00) 萨拉热窝 [15]: (GTM+02:00) 开罗 [16]: (GTM+03:00) 莫斯科 [17]: (GTM+04:00) 阿布扎比 [18]: (GTM+05:00) 伊斯兰堡 [19]: (GTM+06:00) 达卡 [20]: (GTM+07:00) 曼谷,河内 [21]: (GTM+08:00) 中国标准时间 [22]: (GTM+09:00) 首尔 [23]: (GTM+10:00) 关岛 [24]: (GTM+11:00) 所罗门群岛 [25]: (GTM+12:00) 斐济 [26]: (GTM+13:00) 努库阿勒法 [27]: (GTM+14:00) 基里巴斯 请选择时区 [21]: 安装类型: 1 典型安装 2 服务器 3 客户端 4 自定义 请选择安装类型的数字序号 [1 典型安装]:1 所需空间: 2037M 请选择安装目录 [/home/dmdba/dmdbms]: 目录(/home/dmdba/dmdbms)下不为空,请选择其他目录。 请选择安装目录 [/home/dmdba/dmdbms]: 可用空间: 35G 是否确认安装路径(/home/dmdba/dmdbms)? (Y/y:是 N/n:否) [Y/y]:y 安装前小结 安装位置: /home/dmdba/dmdbms 所需空间: 2037M 可用空间: 35G 版本信息: 有效日期: 安装类型: 典型安装 是否确认安装? (Y/y:是 N/n:否):y 配置文件/etc/dm_svc.conf已存在,是否进行替换? (Y/y,N/n) [Y/y]:y 2024-01-22 08:58:46 [INFO] 安装达梦数据库... 2024-01-22 08:58:47 [INFO] 安装 基础 模块... 2024-01-22 08:58:49 [INFO] 安装 服务器 模块... 2024-01-22 08:58:50 [INFO] 安装 客户端 模块... 2024-01-22 08:58:52 [INFO] 安装 驱动 模块... 2024-01-22 08:58:53 [INFO] 安装 手册 模块... 2024-01-22 08:58:53 [INFO] 安装 服务 模块... 2024-01-22 08:58:55 [INFO] 移动日志文件。 2024-01-22 08:58:56 [INFO] 安装达梦数据库完成。 请以root系统用户执行命令: /home/dmdba/dmdbms/script/root/root_installer.sh 安装结束 安装完成后配置环境变量 |
-
-
配置环境变量
-
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
切换至 dmdba 用户下,.bash_profile把上面记录加入profile文件中,使环境变量生效。
su - dmdba
source .bash_profile
-
达梦数据守护集群配置过程
-
-
主备端口配置
-
说明 | 配置名 | 主机 | 备机 |
数据库名称 | DM | DMPROD | DMPROD |
实例名称 | MAL_INST_NAME | DMPROD1 | DMPROD2 |
业务IP | MAL_INST_HOST | 10.224.60.221 | 10.224.60.222 |
MAL主机名 | MAL_HOST | 10.10.10.221 | 10.10.10.222 |
实例端口 | MAL_INST_PORT | 15236 | |
MAL端口 | MAL_PORT | 15336 | |
MAL进程守护端口 | MAL_INST_DW_PORT | 15536 | |
实例监听守护进程 | MAL_DW_PORT | 5536 | |
OGUID | 66666 | 66666 | |
安装目录 | /home/dmdba | ||
实例目录 | /dmdata/data | ||
守护组 | GRP1 | ||
监视器IP | dmmonitor |
-
-
初始化主库实例(dmdba用户)
-
su - dmdba
/home/dmdba/dmdbms/bin/dminit path=/dmdata/data db_name=DMPROD instance_name= DMPROD1 port_num=15236 SYSDBA_PWD=Dameng123
注册数据库服务(root用户)
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/DMPROD/dm.ini -p DMPROD1
--创建测试用户和表空间及表数据
cd /home/dmdba/dmdbms/bin
连接数据库:
/home/dmdba/dmdbms/bin/disql sysdba/Dameng123:15236
创建表测试表空间
create tablespace test datafile 'TEST01.DBF' size 128 autoextend on next 2 maxsize 10240;
create user test identified by Dameng123 default tablespace test;
--grant dba to test;
--conn test/Dameng123:15236
创建表
CREATE TABLE test1(
id bigint identity,
name varchar(20),
birth date,
math int,
chinaese int
)STORAGE ( ON TEST );
--插入一些基础数据
insert into test1
select
dbms_random.string('1',trunc(dbms_random.value(3,8))),
current_date()-365*20+dbms_random.value(-365,365),
trunc(dbms_random.value(30,100)),
trunc(dbms_random.value(30,100))
from dual
connect by level <=500;
commit;
-
-
初始化备库实例(dmdba用户)
-
/home/dmdba/dmdbms/bin/dminit path=/dmdata/data db_name=DMPROD instance_name=DMPROD2 port_num=15236 SYSDBA_PWD=Dameng123
注册数据库服务(root用户)
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/DMPROD/dm.ini -p DMPROD2
-
-
主库备份
-
关闭主库
systemctl stop DmServiceDMPROD1.service
备份主库
/home/dmdba/dmdbms/bin/dmrman
BACKUP DATABASE '/dmdata/data/DMPROD/dm.ini' FULL BACKUPSET '/dmdata/bak/'
拷贝备份文件到备库
scp /dmdata/bak/* 10.10.10.222:/dmdata/bak/
-
-
备库还原
-
关闭备库
systemctl stop DmServiceDMPROD2.service
还原备库
/home/dmdba/dmdbms/bin/dmrman
RMAN>RESTORE DATABASE '/dmdata/data/DMPROD/dm.ini' FROM BACKUPSET '/dmdata/bak';
RMAN>RECOVER DATABASE '/dmdata/data/DMPROD/dm.ini' FROM BACKUPSET '/dmdata/bak';
RMAN>RECOVER DATABASE '/dmdata/data/DMPROD/dm.ini' UPDATE DB_MAGIC;
-
-
主库配置(10.10.10.221)
-
修改配置dm.ini文件
-
-
修改vi dm.ini
INSTANCE_NAME = DMPROD1 #实例名
PORT_NUM = 15236 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
查看配置修改配置:
grep –E ‘ARCH_INI| MAL_INI| ENABLE_OFFLINE_TS| ALTER_MODE_STATUS| PORT_NUM| INSTANCE_NAME’ dm.ini
-
-
-
dmmal.ini 配置
-
-
配置 MAL 系统,各主备库的 dmmal.ini 配置必须完全一致
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1] #主库MAL配置
MAL_INST_NAME = DMPROD1 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 10.10.10.221 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 15536 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 10.224.60.221 #实例的对外服务 IP 地址
MAL_INST_PORT = 15236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 5536 #实例本地的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 15336 #实例监听守护进程 TCP 连接的端口
[MAL_INST2] #备库MAL配置
MAL_INST_NAME = DMPROD2 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 10.10.10.222 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 15536 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 10.224.60.222 #实例的对外服务 IP 地址
MAL_INST_PORT = 15236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 5536 #实例本地的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 15336 #实例监听守护进程 TCP 连接的端口
-
-
-
dmarch.ini配置
-
-
配置本地归档和实时归档dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMPROD2 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dmdata/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限制,范围 1024~2147483647M
-
-
-
dmwatcher.ini配置
-
-
创建dmwatcher.ini配置守护进程,配置为全局守护类型,使用自动切换模式。
[GRPPROD]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 88888 #守护系统唯一 OGUID 值
INST_INI = /dmdata/data/DMPROD/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
-
-
-
以mount方式启动主库
-
-
一定要以 Mount 方式启动数据库实例,否则系统启动时会重构回滚表空间,生成 Redo 日志;并且,启动后应用可能连接到数据库实例进行操作,破坏主备库的数据一致性。数据守护配置结束后,守护进程会自动Open 数据库。
/home/dmdba/dmdbms/bin/dmserver /dmdata/data/DMPROD/dm.ini mount
修改数据守护唯一标识码OGUID
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(88888);
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
修改为PRIMARY模式
SQL>alter database primary;
-
-
备库配置(10.10.10.222)
-
Dm.ini配置
-
-
修改vi dm.ini
INSTANCE_NAME = DMPROD2 #实例名,
PORT_NUM = 15236 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
-
-
-
dmmal.ini 配置
-
-
配置 MAL 系统,各主备库的 dmmal.ini 配置必须完全一致
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1] #主库MAL配置
MAL_INST_NAME = DMPROD1 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 10.10.10.221 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 15536 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 10.10.10.221 #实例的对外服务 IP 地址
MAL_INST_PORT = 15236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 5536 #实例本地的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 15336 #实例监听守护进程 TCP 连接的端口
[MAL_INST2] #备库MAL配置
MAL_INST_NAME = DMPROD2 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 10.10.10.222 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 15536 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 10.10.10.222 #实例的对外服务 IP 地址
MAL_INST_PORT = 15236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 5536 #实例本地的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 15336 #实例监听守护进程 TCP 连接的端口
-
-
-
dmarch.ini配置
-
-
配置本地归档和实时归档 dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMPROD1 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dmdata/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限制,范围 1024~2147483647M
-
-
-
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 = 88888 #守护系统唯一 OGUID 值
INST_INI = /dmdata/data/DMPROD/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dmdata/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
-
-
-
以 Mount 方式启动备库
-
-
一定要以 Mount 方式启动数据库实例,否则系统启动时会重构回滚表空间,生成 Redo 日志;并且,启动后应用可能连接到数据库实例进行操作,破坏主备库的数据一致性。数据守护配置结束后,守护进程会自动Open 数据库。
/home/dmdba/dmdbms/bin/dmserver /dmdata/data/DMPROD/dm.ini mount
修改数据守护唯一标识码OGUID
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(88888);
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
修改为STANDBY模式
SQL>alter database standby;
-
-
-
主备库守护进程启动(10.10.10.221、222)
-
-
启动主库守护进程
/home/dmdba/dmdbms/bin/dmwatcher /dmdata/data/DMPROD/dmwatcher.ini
启动备库守护进程
/home/dmdba/dmdbms/bin/dmwatcher /dmdata/data/DMPROD/dmwatcher.ini
-
-
监视器配置(10.10.10.223)
-
由于主库和实时备库的守护进程配置为自动切换模式,因此这里选择配置确认监视器。 和普通监视器相比,确认监视器除了相同的命令支持外,在主库发生故障时,能够自动通知 实时备库接管为新的主库,具有自动故障处理的功能。
修改 dmmonitor.ini配置确认监视器,其中 MON_DW_IP 中的 IP 和 PORT 和 dmmal.ini 中的 MAL_HOST 和 MAL_DW_PORT 配置项保持一致。
MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /dmdata/data/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 88888 #组 GRP1 的唯一 OGUID 值
#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
MON_DW_IP = 10.10.10.221:5536
MON_DW_IP = 10.10.10.222:5536
启动监视器
/home/dmdba/dmdbms/bin/dmmonitor /home/dmdba/dmmonitor1.ini
show 查看主备运行状态
主库状态OPEN,模式PRIMARY
备库状态OPEN,模式STANDBY
-
-
校验主备数据同步
-
主库建表、写数据
create table test.a(a int);
insert t_ test.a values(1);
insert t_ test.a values(2);
commit;
查询备库同步数据,成功。
-
-
主备库切换
-
主备库正常运行过程中,可以通过监视器的 Switchover 命令,一键完成主备库角色转换。主备库切换功能可以确保在软、硬件升级,或系统维护时,提供不间断的数据库服务。
login登录监视器
switchover进行主备切换
切换完毕show查看切换状态
可以看到主库切换为DMPROD2,备库切换为DMPROD1。
重新校验新主备的同步
主库DMPROD2建表写数据
create table test.test02(id int,name varchar(20));
insert test.test02 values(1,'test1');
insert test.test02 values(2,'test2');
insert test.test02 values(3,'test3');
commit;
查询切换后的备库
数据同步成功!
-
-
注册服务
-
生产环境中可将实例服务、数据守护、监视服务注册到操作系统中。
切换目录 cd /dmdata/script/root
注册数据守护(主备操作 root用户)
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p DMWATCHER -watcher_ini /dmdata/data/DMPROD/dmwatcher.ini
主机:
备机
注册监视服务
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p DMMONITOR -monitor_ini /home/dmdba/dmmonitor1.ini
-
-
主备库的启动关闭顺序
-
停止集群:
方法一 (dmdba用户操作)
关闭确认监视器
/home/dmdba/dmdbms/bin/DmMonitorServiceDMMONITOR stop
关闭备库守护进程:
/home/dmdba/dmdbms/bin/DmWatcherServiceDMPROD2 stop
关闭主库守护进程:
/home/dmdba/dmdbms/bin/DmWatcherServiceDMPROD1 stop
关闭备库数据库服务:
/home/dmdba/dmdbms/bin/DmServiceDMPROD2 stop
关闭主库数据库服务:
/home/dmdba/dmdbms/bin/DmServiceDMPROD1 stop
(方法二root用户操作)
关闭确认监视器
Systemctl stop DmMonitorServiceDMMONITOR
关闭备库守护进程:
Systemctl stop DmWatcherServiceDMPROD2
关闭主库守护进程:
Systemctl stop DmWatcherServiceDMPROD1
关闭备库数据库服务:
Systemctl stop DmServiceDMPROD2
关闭主库数据库服务:
Systemctl stop DmServiceDMPROD1
启动集群:
方法一 (dmdba用户操作)
启动主库数据库服务:
/home/dmdba/dmdbms/bin/DmServiceDMPROD1 start
启动备库数据库服务:
/home/dmdba/dmdbms/bin/DmServiceDMPROD2 start
启动主库守护进程:
/home/dmdba/dmdbms/bin/DmWatcherServiceDMPROD1 start
启动备库守护进程:
/home/dmdba/dmdbms/bin/DmWatcherServiceDMPROD2 start
启动确认监视器:
/home/dmdba/dmdbms/bin/DmMonitorServiceDMMONITOR start
启动非确认监视器查看状态:
Dmmonitor2.ini
/home/dmdba/dmdbms/bin/dmmonitor /home/dmdba/dmmonitor2.ini
MON_DW_CONFIRM修改成0 就可以查看了
(方法二root用户操作)
启动主库数据库服务:
Systemctl start DmServiceDMPROD1
启动备库数据库服务:
Systemctl start DmServiceDMPROD2
启动主库守护进程:
systemctl stop DmWatcherServiceDMPROD
启动备库守护进程:
Systemctl stop DmWatcherServiceDMPROD
启动确认监视器:
Systemctl start DmMonitorServiceDMMONITOR
启动非确认监视器查看状态:
/home/dmdba/dmdbms/bin/dmmonitor /home/dmdba/dmmonitor2.ini
在监视服务器启动监视器,命令如下:
通过show命令查看主备状态:
下面将show 命令输出内容的字段含义进行介绍:
组全局字段信息
GROUP:守护进程组名。
OGUID:守护进程组配置的唯一 OGUID 值。
MON_CONFIRM:监视器是否配置为确认模式,值为 TRUE 或 FALSE。当前是非确认模式就是不能接管故障进行自动切换。
MODE:当前配置的切换模式,AUTO 表示故障自动切换模式,MANUAL 表示故障手动切换模式。
MPP_FLAG:当前是否为 MPP 主备环境,值为 TRUE 或 FALSE。因当前环境是主备架构所以此项值为FALSE。
库全局字段信息
守护进程和监视器是以库为单位进行管理的,以下信息属于库的全局信息,部分守护进程相关的信息直接取自控制守护进程。
显示这个集群有两个数据库,对应字段含义如下:
DW_IP:守护进程的 IP 地址,取自控制守护进程。可以理解为集群内部IP地址。
MAL_DW_PORT:守护进程的监听端口,取自控制守护进程。
INST_IP 是数据库对外服务IP地址。
INST_PORT 是数据库对外服务端口。
简单总结上面信息是数据库(主、备)的内网和外网IP地址和对应的监听端口。
守护进程信息
下面以0.10.10.222 守护进程输出字段进行介绍:
WTIME:守护进程本地的当前时间,取自控制守护进程。
WTYPE:守护进程配置的守护类型,包括 LOCAL/GLOBAL 两种类型,取自控制守护进程。
WCTLSTAT:守护进程控制文件状态,包括 Valid/Split/Invalid 三种状态,对于配置为本地守护类型的实例,由于不需要有守护进程控制文件,该字段值为 NULL。
WSTATUS:守护进程状态,取自控制守护进程。当前守护进程状态值是OPEN。
INAME:库名称,取自控制节点实例名。当前值是GRP1_RT_02,和上面集群规划实例名字匹配。
N_EP:库的节点个数。当前值是1、
N_OK:此字段对 DMDSC 集群内的节点有效,表示 DMDSC 集群内 OK 节点个数。
ISTATUS:数据库状态,包括 Startup/After Redo/Mount/Open/Suspend/,当前数据库状态是OPEN。
IMODE:数据库模式,包括 Unknown/Normal/Primary/Standby 这四种模式,当前是主库状态,由控制守护进程综合当前所有节点实例的模式得出。
RTYPE:数据库配置的归档类型,只统计 REALTIME/TIMELY/SYNC 这三种归档类型,如果这三种归档都没有配置,则显示为 NONE。
RSTAT:此字段对备库有效,表示主库到备库的归档状态,可能为 Valid/Invalid/Async_send/Unknown,其中 Async_send 为同步备库特有的归档状态。
对于除同步备库之外的本地守护类型备库,此字段为 NULL,对于主库本身,此字段值为 Valid。该字段值要从备库对应的主库实例上取,
如果当前没有活动主库或者备库无法确认对应的主库,则该字段显示为 Unknown。
数据库实例信息
EP INFO:
INST_IP INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG
10.224.60.222 15236 OK DMPROD2 OPEN STANDBY 0 0 REALTIME VALID 4893 43347 4893 43347 NONE
INST_PORT:节点实例的监听端口。
INST_OK:控制守护进程认定的节点实例状态,OK 或 ERROR。
INAME:节点实例名称。
ISTATUS:节点实例状态,包括 Startup/After Redo/Mount/Open/Suspend/Shutdown 这几种状态。
IMODE:节点实例模式,包括 Normal/Primary/Standby 这三种模式。
DSC_SEQNO:此字段对单节点可忽略,只对 DMDSC 集群内的节点有意义,表示节点在 DMDSC 集群内的序号。
DSC_CTL_NODE:此字段对单节点可忽略,只对 DMDSC 集群内的节点有意义,表示 DMDSC 集群内控制节点的序号。
RTYPE:节点实例配置的归档类型,只统计 REALTIME/TIMELY/SYNC 这三种归档类型,如果这三种归档都没有配置,则显示为 NONE。
RSTAT:此字段对备库控制节点有效,表示主库到备库控制节点的归档状态,可能为 Valid/Invalid/Async_send/Unknown,
其中 Async_send 为同步备库特有的归档状态。对于除同步备库之外的本地守护类型备库,此字段为 NULL,对于主库本身,此字段值为 Valid。
该字段值要从备库对应的主库实例上取,如果当前没有活动主库或者备库无法确认对应的主库,则该字段显示为 Unknown。
FSEQ:节点实例已经写入联机日志的RLOG_PKG包序号。
FLSN:节点实例的文件LSN,指已经写入联机日志文件的最大LSN值。
CSEQ:节点实例的系统当前PKG_SEQNO,指当前数据库最新产生的RLOG_PKG包的序号。
CLSN:节点实例的系统当前LSN,指当前数据库最新产生的LSN值。
DW_STAT_FLAG:节点当前的执行标记。
综上介绍,查看集群状态应该状态关注的字段有INST_OK,ISTATUS,IMODE三个字段。
INST_OK值都为ok为正常;
ISTATUS值都为open为正常;
IMODE值为Primary/Standby两种模式。
查看守护进程的配置信息。
查看所有实例组的信息。
查看集群当前运行状态。
主机正常:查看可切换为主机的实例列表。
命令 | 含义 |
Login | 登录监视器 |
Logout | 退出登录 |
-
-
监视器HELP
-