DM 数据守护(Data Watch)是一种集成化的高可用、高性能数据库解决方案,是数据库异地容灾的首选方案。通过部署 DM 数据守护,可以在硬件故障(如磁盘损坏)、自然灾害(地震、火灾)等极端情况下,避免数据损坏、丢失,保障数据安全,并且可以快速恢复数据库服务,满足用户不间断提供数据库服务的要求。与常规的数据库备份(Backup)、还原(Restore)技术相比,数据守护可以更快地恢复数据库服务。随着数据规模不断增长,通过还原手段恢复数据,往往需要数个小时、甚至更长时间,而数据守护基本不受数据规模的影响,只需数秒时间就可以将备库切换为主库对外提供数据库服务。
DM 数据守护提供多种解决方案,可以配置成实时主备、MPP 主备、DMDSC 主备或读写分离集群。实时主备由一个主库以及一个或者多个配置了实时(Realtime)归档的备库组成,其主要目的是保障数据库可用性,提高数据安全性。实时主备系统中,主库提供完整的数据库功能,备库提供只读服务。主库修改数据产生的 Redo 日志,通过实时归档机制,在写入联机 Redo 日志文件之前发送到备库,实时备库通过重演 Redo 日志与主库保持数据同步。当主库出现故障时, 备库在将所有 Redo 日志重演结束后 ,就可以切换为主库对外提供数据库服务。
Primary 模式,提供完整数据库服务的实例,一般来说主库是用来直接支撑应用系统的生产库。
Standby 模式,提供只读数据库服务的实例。备库除了用于容灾,还可以提供备份、查询等只读功能,并且备库还支持临时表的 Insert/Delete/Update 操作。
MAL 系统是基于 TCP 协议实现的一种内部通信机制,具有可靠、灵活、高效的特性。DM 通过 MAL 系统实现 Redo 日志传输,以及其他一些实例间的消息通讯。
Redo 日志包含了所有物理数据页的修改内容,Insert/delete/update 等 DML 操作、Create Table 等 DDL 操作,最终都会转化为对物理数据页的修改,这些修改都会反映到 Redo 日志中。
Redo 日志包(RLOG_PKG)是 DM 数据库批量保存物理事务产生的 Redo 日志的数据单元,以物理事务 PTX 为单位保存日志,一个日志包内可连续保存一个或多个 PTX。日志包具有自描述的特性,日志包大小不固定,采用固定包头和可变包头结合的方式,包头记录日志的控制信息,包括类型、长度、包序号、LSN 信息、产生日志的节点号、加密压缩信息、日志并行数等内容。
日志包生成时按照序号连续递增,相邻日志包的 LSN 顺序是总体递增的,但是在多节点集群的 DSC 环境下不一定连续。如果未开启并行日志,RLOG_PKG 包内日志的 LSN 是递增的。如果开启并行日志,一个 RLOG_PKG 包内包含多路并行产生的日志,每一路并行日志的 LSN 是递增的,但是各路之间并不能保证 LSN 有序,因此并行日志包内 LSN 具有局部有序,整体无序的特点。
物理事务提交时将 Redo 日志写入到日志包中,在数据库事务提交或日志包被写满时触发日志刷盘动作。日志刷盘线程负责将日志包中的 Redo 日志写入联机日志文件,如果配置了 Redo 日志归档,日志刷盘线程还将负责触发归档动作。DM 数据守护系统中,主库以 RLOG_PKG 为最小单位发送 Redo 日志到备库。
主备库之间的 Redo 日志传输,以日志包 RLOG_PKG 为单位,主库通过 MAL 系统发送Redo 日志到备库。各种不同数据守护类型的区别,就在于主库日志包 RLOG_PKG 的发送时机,以及备库收到 Redo 日志后的处理策略,这个后边章节会介绍(主备同步方式)。
主库的RLOG_PKG日志通过实时归档机制发送到备库后,备库将最新收到的RLOG_PKG通过重演服务保存在内存中,不马上启动重演,这个 RLOG_PKG 我们称之为 KEEP_PKG。
Redo 日志重演的过程,就是备库收到主库发送的 Redo 日志后,在物理数据页上,重新修改数据的过程。Redo 日志重演由专门的 Redo 日志重演服务完成,重演服务严格按照Redo 日志产生的先后顺序,解析 Redo 日志、修改相应的物理数据页,并且重演过程中备库会生成自身的 Redo 日志写入联机日志文件。
本地归档(Local),就是将 Redo 日志写入到本地归档日志文件的过程。本地归档在 REDO 日志写入联机日志文件后触发,由归档线程完成本地归档动作;与联机 Redo 日志文件可以被循环覆盖重用不同,本地归档日志文件不能被覆盖,写入其中的 Redo 日志信息会一直保留,直到用户主动删除;如果配置了归档日志空间上限,系统会自动删除最早生成的归档 Redo 日志文件,腾出空间
与本地归档写入保存在磁盘中的日志文件不同,实时归档(Realtime)将主库产生的Redo 日志通过 MAL 系统传递到备库,实时归档是实时主备和 MPP 主备的实现基础。实时归档只在主库生效,一个主库可以配置 1~8 个实时备库。
1、监控数据守护进程发送的消息(主、备数据库状态变化、故障切换过程中数据库模式、状态变化的完整过程);
2、用户可以在监视器上输入命令,启动、停止守护进程的监控功能,执行主备库切换、备库故障接管等操作;
3、发起故障自动接管命令,主库发生故障时,挑选符合接管条件的备库,并通知备库执行接管操作。
守护进程负责监控数据库运行状态,必要时重启数据库服务。守护进程和实例链路建立成功后,数据库实例定时发送信息到守护进程,发送到守护进程的内容包括:实例进程ID、实例名、数据库模式、数据库状态、FILE_SEQ、FILE_LSN、CUR_SEQ、CUR_LSN、MAL链路状态、归档状态、公钥、MPP控制文件等信息。守护进程更新本地记录的实例信息后,同时记录该时间戳。当检测到实例进程ID已经不存在或者超过一段时间没有收到实例消息(INST_ERROR_TIME),则会认定实例故障。如果配置了自动重启,则会将实例重新拉起。
高性能:备机收到重演日志,加到重演线程队列后响应主机,主机不需要等待备机重演完成后在响应主库。
事务一致性:备机收到重演日志,重演完成后响应主机,主机需要等待备机重演完成后响应主机。
数据守护集群的高性能与事务一致性是由归档参数ARCH_WAIT_APPLY参数控制的。
ARCH_WAIT_APPLY | 备库收到Redo日志后,是否需要重演完成后再响应主库。0表示收到马上响应(高性能模式)1表示重演完成后响应(事务一致模式) 配置为即时归档的读写分离集群时,默认值为1;配置为实时归档的读写分离集群时,默认值为0; |
---|---|
1、主节点安装数据库软件,初始化实例,并正常启动数据库一次,开启归档,启动数据库到mount状态
2、备节点安装数据库软件,初始化实例,无需正常启动数据库一次,启动数据库到mount状态
3、监控节点只安装数据库软件,有dmmonitor命令即可
4、主备节点数据库名相同,实例名不同,OGUID相同
MAL_INST_HOST(对外IP) | MAL_HOST(内网通信IP) | MAL_INST_PORT(对外端口) | MAL_INST_DW_PORT(实例守护通信端口) | MAL_PORT(MAL 系统监听 TCP 连接的端口) | MAL_DW_PORT(实例对应的守护进程监听 TCP 连接的端口) |
---|---|---|---|---|---|
192.168.80.11 | 192.168.10.11 | 5236 | 5237 | 5238 | 5239 |
192.168.80.12 | 192.168.10.12 | 5236 | 5237 | 5238 | 5239 |
192.168.80.13 | 192.168.10.12 | 5236 | 5237 | 5238 | 5239 |
#id dmdba
id: dmdba: no such user
groupadd -g 1101 dinstall
useradd -u 1101 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
echo "Dameng123" | passwd --stdin dmdba
mkdir -p /data/{dmdbms,dmdata,dmarch,dmbak}
chown -R dmdba:dinstall /data/{dmdbms,dmdata,dmarch,dmbak}
cd /data/ && ls -ld */
drwxr-xr-x 2 dmdba dinstall 6 7月 25 14:05 dmarch/ #归档
drwxr-xr-x 2 dmdba dinstall 6 7月 25 14:05 dmbak/ #备份
drwxr-xr-x 2 dmdba dinstall 6 7月 25 14:05 dmdata/ #数据
drwxr-xr-x 2 dmdba dinstall 6 7月 25 14:05 dmdbms/ #软件
达梦数据库的版本:
开发版:不能商用
标准版:小型应用
企业版:生产环境中应用最多的一个版本,三权分立
安全版:在企业版的基础上做了安全特性,增加强访问控制,四权分立。
根据服务器的软件硬件环境及应用需求选择相应安装包。
mount /dev/cdrom /mnt/
mount: /mnt: WARNING: source write-protected, mounted read-only.
cp -v /mnt/DMInstall.bin /opt/
chown dmdba:dinstall /opt/DMInstall.bin
chmod 775 /opt/DMInstall.bin
ll /opt/DMInstall.bin
-rwxr-xr-x 1 dmdba dinstall 1092293558 Jul 26 14:19 /opt/DMInstall.bin
su - dmdba
$ /opt/DMInstall.bin -i
请选择安装语言(C/c:中文 E/e:英文) [C/c]:C
设置时区:
[20]: GTM+07 =曼谷 ,河内
[21]: GTM+08 =中国标准时间
[22]: GTM+09 =汉城
[23]: GTM+10 =关岛
[24]: GTM+11 =所罗门群岛
[25]: GTM+12 =斐济
[26]: GTM+13 =努库阿勒法
[27]: GTM+14 =基里巴斯
请选择设置时区 [21]: 21
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]: 1
所需空间: 1010M
请选择安装目录 [/home/dmdba/dmdbms]:/data/dmdbms
可用空间: 11G
是否确认安装? (Y/y:是 N/n:否):Y
[INFO] 移动ant 日志文件。
2020-12-24 21:53:03
[INFO] 安装达梦数据库完成。
请以root系统用户执行命令:
/data/dmdbms/script/root/root_installer.sh
su - root
/data/dmdbms/script/root/root_installer.sh
$ dminit PATH=/data/dmdata/ PAGE_SIZE=32
initdb V8
db version: 0x7000c
License will expire on 2024-03-25
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
log file path: /data/dmdata/DAMENG/DAMENG01.log
log file path: /data/dmdata/DAMENG/DAMENG02.log
write to dir [/data/dmdata/DAMENG].
create dm database success.
su - dmdba
cat /home/dmdba/.bash_profile
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/data/dmdbms/bin"
export DM_HOME="/data/dmdbms"
export DM_DATA="/data/dmdata/DAMENG"
export DM_INI="/data/dmdata/DAMENG/dm.ini"
export PATH=$PATH:$DM_HOME/bin
$DM_HOME/bin/DmServiceDMSERVER start
$DM_HOME/bin/DmServiceDMSERVER stop
dmrman CTLSTMT="backup database '/data/dmdata/DAMENG/dm.ini' full backupset '/data/dmbak/full_bak'"
[root@NODE01 dmbak]# scp -r /data/dmbak/full_bak 192.168.10.12:/data/dmbak/
[root@NODE01 dmbak]# scp -r /data/dmbak/full_bak 192.168.10.13:/data/dmbak/
dmrman CTLSTMT="RESTORE DATABASE '/data/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/data/dmbak/full_bak'"
dmrman CTLSTMT="RECOVER DATABASE '/data/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/data/dmbak/full_bak'"
dmrman CTLSTMT="RECOVER DATABASE '/data/dmdata/DAMENG/dm.ini' UPDATE DB_MAGIC"
修改主备库参数,注意 3个库的 instance_name 参数不同。
INSTANCE_NAME = DMSERVER01
#INSTANCE_NAME = DMSERVER02
#INSTANCE_NAME = DMSERVER03
PORT_NUM = 5236 #数据库实例监听端口
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DMSERVER01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.10.11 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 5238 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.80.11 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_INST_DW_PORT = 5237 #实例监听守护进程 TCP 连接的端口
MAL_DW_PORT = 5239 #实例对应的守护进程监听 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = DMSERVER02
MAL_HOST = 192.168.10.12
MAL_PORT = 5238
MAL_INST_HOST = 192.168.80.12
MAL_INST_PORT = 5236
MAL_INST_DW_PORT = 5237
MAL_DW_PORT = 5239
[MAL_INST3]
MAL_INST_NAME = DMSERVER03
MAL_HOST = 192.168.10.13
MAL_PORT = 5238
MAL_INST_HOST = 192.168.80.13
MAL_INST_PORT = 5236
MAL_INST_DW_PORT = 5237
MAL_DW_PORT = 5239
[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 = /data/dmdata/DAMENG/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /data/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMSERVER02 #实时归档目标实例名
[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMSERVER03 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /data/dmarch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
ARCH_FLUSH_BUF_SIZE = 0
ARCH_HANG_FLAG = 1
#INSTANCE_NAME = DMSERVER01
INSTANCE_NAME = DMSERVER02
PORT_NUM = 5236 #数据库实例监听端口
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DMSERVER01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.10.11 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 5238 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.80.11 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_INST_DW_PORT = 5237 #实例监听守护进程 TCP 连接的端口
MAL_DW_PORT = 5239 #实例对应的守护进程监听 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = DMSERVER02
MAL_HOST = 192.168.10.12
MAL_PORT = 5238
MAL_INST_HOST = 192.168.80.12
MAL_INST_PORT = 5236
MAL_INST_DW_PORT = 5237
MAL_DW_PORT = 5239
[MAL_INST3]
MAL_INST_NAME = DMSERVER03
MAL_HOST = 192.168.10.13
MAL_PORT = 5238
MAL_INST_HOST = 192.168.80.13
MAL_INST_PORT = 5236
MAL_INST_DW_PORT = 5237
MAL_DW_PORT = 5239
[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 = /data/dmdata/DAMENG/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /data/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMSERVER01 #实时归档目标实例名
[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMSERVER03 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /data/dmarch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
ARCH_FLUSH_BUF_SIZE = 0
ARCH_HANG_FLAG = 1
修改主备库参数,注意 2 个库的 instance_name 参数不同。
INSTANCE_NAME = DMSERVER03
PORT_NUM = 5236 #数据库实例监听端口
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DMSERVER01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.10.11 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 5238 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.80.11 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_INST_DW_PORT = 5237 #实例监听守护进程 TCP 连接的端口
MAL_DW_PORT = 5239 #实例对应的守护进程监听 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = DMSERVER02
MAL_HOST = 192.168.10.12
MAL_PORT = 5238
MAL_INST_HOST = 192.168.80.12
MAL_INST_PORT = 5236
MAL_INST_DW_PORT = 5237
MAL_DW_PORT = 5239
[MAL_INST3]
MAL_INST_NAME = DMSERVER03
MAL_HOST = 192.168.10.13
MAL_PORT = 5238
MAL_INST_HOST = 192.168.80.13
MAL_INST_PORT = 5236
MAL_INST_DW_PORT = 5237
MAL_DW_PORT = 5239
[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 = /data/dmdata/DAMENG/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /data/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMSERVER01 #实时归档目标实例名
[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMSERVER02 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /data/dmarch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
ARCH_FLUSH_BUF_SIZE = 0
ARCH_HANG_FLAG = 1
配置普通监视器模式方便日常运维
MON_DW_CONFIRM = 0 #普通监视器模式
MON_LOG_PATH = /data/dmdbms/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.10.11:5239
MON_DW_IP = 192.168.10.12:5239
MON_DW_IP = 192.168.10.13:5239
配置确认监视器模式,实现集群故障自动切换
MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /data/dmdbms/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.10.11:5239
MON_DW_IP = 192.168.10.12:5239
MON_DW_IP = 192.168.10.13:5239
dmserver $DM_INI mount
启动命令行工具 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 值。
启动命令行工具 Disql,登录主库修改数据库为 Primary 模式
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL> alter database primary;
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
dmserver $DM_INI mount
启动命令行工具 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);
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL> alter database standby;
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
dmwatcher "$DM_DATA/dmwatcher.ini"
dmwatcher "$DM_DATA/dmwatcher.ini"
启动手工监控运维用于日常维护和观察集群状况
$ dmmonitor "$DM_HOME/dmmonitor_manual.ini"
为了日常运维方便,常常注册成服务方便管理,用root用户进入$DM_HOME/script/root目录,注册服务
cd $DM_HOME/script/root
//注册主库数据库进程服务
./dm_service_installer.sh -t dmserver -dm_ini /data/dmdata/DAMENG/dm.ini -p DMSERVER01
//注册主库守护进程服务
./dm_service_installer.sh -t dmwatcher -watcher_ini /data/dmdata/DAMENG/dmwatcher.ini -p DMSEVER01
//设置主库数据库服务开机自启动
systemctl enable DmServiceDMSEVER01
//设置主库数据库守护服务开机自启动
systemctl enable DmWatcherServiceDMSERVER01
cd $DM_HOME/script/root
//注册备库1数据库进程服务
./dm_service_installer.sh -t dmserver -dm_ini /data/dmdata/DAMENG/dm.ini -p DMSERVER02
//注册备库1守护进程服务
./dm_service_installer.sh -t dmwatcher -watcher_ini /data/dmdata/DAMENG/dmwatcher.ini -p DMSERVER02
//设置备库1数据库服务开机自启动
systemctl enable DmServiceDMSEVER02
//设置备库1数据库守护服务开机自启动
systemctl enable DmWatcherServiceDMSERVER02
cd $DM_HOME/script/root
//注册备库( 2 )数据库进程服务
./dm_service_installer.sh -t dmserver -dm_ini /data/dmdata/DAMENG/dm.ini -p DMSEVER03
//注册备库( 2 )守护进程服务
./dm_service_installer.sh -t dmwatcher -watcher_ini /data/dmdata/DAMENG/dmwatcher.ini -p DMSEVER03
//注册自动监视器服务
./dm_service_installer.sh -t dmmonitor -monitor_ini /data/dmdbms/dmmonitor_auto.ini -p DMMONITOR
//设置备库( 2 )数据库服务开机自启动
systemctl enable DmServiceDMSEVER03
//注册备库( 2 )守护进程服务开机自启动
systemctl enable DmWatcherServiceDMSERVER03
//自动监视器服务开机自启动
systemctl enable DmMonitorServiceDMMONITOR
cd $DM_HOME/script/root
./dm_service_uninstaller.sh -n DmServiceDMSEVER03
是否删除服务(DmServiceDMSEVER03)?(Y/y:是 N/n:否): y
Removed symlink /etc/systemd/system/multi-user.target.wants/DmServiceDMSEVER03.service.
删除服务文件(/usr/lib/systemd/system/DmServiceDMSEVER03.service)完成
删除服务(DmServiceDMSEVER03)完成
启动:主库实例-->备库实例-->备守护-->主守护-->确认监视器
关闭:确认监视器-->备守护-->主守护-->主库实例-->备库实例
达梦社区技术https://eco.dameng.com
文章
阅读量
获赞