目录
简介
一、前置工作
二、配置文件
1.dm.ini
2.dmarch.ini
3.dmmal.ini
4.dmwatcher.ini
5.dmmonitor.ini
三、启动服务
1.以mount方式启动数据库实例
2.启动守护进程
四、监视器
1.查看状态
2.主备切换
DM 数据守护(Data Watch)是一种集成化的高可用、高性能数据库解决方案,是数 据库异地容灾的首选方案。通过部署 DM 数据守护,可以在硬件故障(如磁盘损坏)、自然灾害(地震、火灾)等极端情况下,避免数据损坏、丢失,保障数据安全,并且可以快速恢 复数据库服务,满足用户不间断提供数据库服务的要求。这次搭建的实时主备,实时主备由一个主库以及一个或者多个配置了实时(Realtime)归档的备库组成,其 主要目的是保障数据库可用性,提高数据安全性。
主机 | 备机 | 监视器 | |
IP | 192.168.1.101 | 192.168.1.202 | 192.168.1.2 |
数据库安装目录 | /dm8/bin | /dm8/bin | /dm8/bin |
数据文件目录 | /dm8/data | /dm8/data | --- |
实例名 | DMSVR01 | DMSVR02 | --- |
数据库名 | DMDB | DMDB |
关闭防火墙,保证主机备机监视器畅通。主机备机需要先安装数据库软件,并且初始化实例,监视器只需要安装数据库软件。如果条件不允许,监视器也可以安装在主机或者备机上面。
将主机备份,然后再备机进行还原
主库:(备份)
cd /dm8/bin
./dmrman
backup database '/dm8/data/DMDB/dm.ini' backupset '/dm8/dmbak/bakfull';
备份完成后,将备份集scp到备机合适的位置
scp -r /dm8/dmbak/bakfull 192.168.1.202:/dm8/dmdbak
备库:(还原)
restore database '/dm8/data/DMDB/dm.ini' from backupset '/dm8/dmbak/bakfull';
recover database '/dm8/data/DMDB/dm.ini' from backupset '/dm8/dmbak/bakfull';
recover database '/dm8/data/DMDB/dm.ini' update db_magic;
注:除监视器文件位于/dm8/bin下,主备库文件位于/dm8/data/DMDB下。
主库:
INSTANCE_NAME =DMSVR01 #实例名
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
备库:
INSTANCE_NAME = DMSVR02 #实例名
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
主库:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmarch #归档目录
ARCH_FILE_SIZE = 128 #归档文件大小,单位 MB
ARCH_SPACE_LIMIT = 2048 #空间大小限制,0 表示不限制
[ARCHIVE_TIMELYE]
ARCH_TYPE = TIMELY #即时归档类型
ARCH_DEST = DBSERVER2 #即时归档目标实例名(主库侧填写备库实例名)
备库:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmarch #归档目录
ARCH_FILE_SIZE = 128 #归档文件大小,单位 MB
ARCH_SPACE_LIMIT = 2048 #空间大小限制,0 表示不限制
[ARCHIVE_TIMELYE]
ARCH_TYPE = TIMELY #即时归档类型
ARCH_DEST = DBSERVER1 #即时归档目标实例名(主库侧填写备库实例名)
主库和备库都配置成一样的
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DBSERVER1 #与 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.1.101 #MAL 系统监听 TCP 内部网络 IP
MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.1.101 #实例的对外服务 IP 地址
MAL_INST_PORT = 5237 #与 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 52141 #实例对应的守护进程监听 TCP 端口
MAL_INST_DW_PORT = 33141
[MAL_INST2]
MAL_INST_NAME = DBSERVER2 #与 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.1.202 # MAL 系统监听 TCP 内部网络 IP
MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.1.202 #实例的对外服务 IP 地址
MAL_INST_PORT = 5237 #与 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 52141 #实例对应的守护进程监听 TCP 端口
主库和备库一样(如果主库和备库的安装路径和数据文件路径不一致,则需要进行修改)
[GRP_RW]
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/DMDB/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/bin/dmserver #命令行方式启动
监视器
MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /dm8/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60 s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32 MB
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP_RW]
MON_INST_OGUID = 453331 #组 GRP_RW 的唯一 OGUID 值
#以下配置为监视器到组 GRP_RW 的守护进程的连接信息,以“IP:PORT”的形式配置
#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
MON_DW_IP = 192.168.1.101:52141
MON_DW_IP = 192.168.1.202:52141
使用dmdba用户,到数据库的安装目录的bin下执行(主库,备库都需要执行,此处是前台启动,如果是脚本启动,记得将脚本文件数据库启动状态改为mount)
./dmserver /dm8/data/DMDB/dm.ini mount
主库和备库使用disql工具连接数据库
主库
SQL> sp_set_oguid(453331); ----oguid
SQL> alter database primary;
备库
SQL> sp_set_oguid(453331); ----oguid
SQL> alter database standby;
使用dmdba用户,到数据库的安装目录的bin下执行(主库和备库都需要,此处是前台启动,可以配置脚本启动)
./dmwatcher /dm8/data/DMDB/dm.ini
守护进程启动后,会将mount的实例open。
到数据库的安装目录的bin下执行
./dmmonitor dmmonitor.ini
show
守护进程状态 WSTATUS 为 OPEN,实例状态 ISTATUS 为 OPEN,归档类型 RTYPE 为 REALTIME,归档状态 RSTAT 为VALID
./dmmonitor dmmonitor.ini
show
login ---登录
switchover
show
主库和备库完成切换。(监视器更多操作,可输入help进行搜索)
(如有错误,欢迎指正)
(达梦云适配技术社区的网址:https://eco.dameng.com)