达梦数据守护是一种主备集群, 通过数据守护可以布署高可用的数据库服务. 当主节点失效后会自动切换到可用的备库中.
集群包括集群主机, 集群备机, 以及集群监视器.
集群主机和集群备机上各运行一个达梦数据库实例以及dmwatcher实例, dmwatcher用于和监视器沟通, 以及监控实例状态.
主机和备机之间的数据交换通过实时归档进行, 并通过MAL发送数据
进行数据库操作时, 集群主机将REDO日志通过MAL发送到备机的日志重放服务中, 备机收到后会立即返回一个确认信息, 随后进行日志的重放. 主机在接收到备机返回的确认信息后开始将操作落盘.
监视器可以运行在主备机以外的任意安装了达梦数据库的主机中, 通过dmmonitor服务和集群中的的dmwatcher沟通, 手动或自动的对集群主机进行切换.
现在要布署一套数据守护系统, 设备信息和规划如下:
名称 | 数据库名 | 实例名 | PORT_NUM | MAL_INST_DW_PORT | MAL_HOST | MAL_PORT | MAL_DW_PORT |
---|---|---|---|---|---|---|---|
主机 | DM01 | DMSVR01 | 5236 | 45101 | 192.168.163.85 | 55101 | 65101 |
备机 | DM01 | DMSVR02 | 5236 | 45121 | 192.168.163.85 | 55121 | 65121 |
首先, 在两台主机上创建数据库实例, 如果主机已经有数据, 则在备机上创建.
注意数据库名和实例名要按表格中填写.
其次, 对主机进行完全备份, 可用dm管理工具或dmrman命令行工具.
备份完成后使用scp指令将备份发送到备机
scp -r /dm8/backup dmdba@192.168.163.85:/dm8/backup
发送完成后在备机上使用console还原备份. 注意需要依次进行还原, 恢复, 更新魔数.
对dm.ini的修改主备机一致, 命令行模式下可使用vim编辑器的搜索模式(/). 配置时可顺便检查一下实例名和端口配置.
修改内容如下:
ALTER_MODE_STATUS = 0 # 关闭OGUID修改
ENABLE_OFFLINE_TS= 2 # 备库不允许OFFLINE表空间, 由于主备会切换,此处自动识别主机状态
MAL_INI = 1 # 开启MAL配置, dmmal.ini
ARCH_INI = 1 # 开启归档
创建dmmal.ini, 和dm.ini同目录, 按照表格内容填写相关端口和ip信息
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DMSVR01
MAL_HOST = 192.168.163.85
MAL_PORT = 55101
MAL_INST_HOST = 192.168.163.85
MAL_INST_PORT = 5236
MAL_DW_PORT = 65101
MAL_INST_DW_PORT = 45101
[MAL_INST2]
MAL_INST_NAME = DMSVR02
MAL_HOST = 192.168.163.81
MAL_PORT = 55121
MAL_INST_HOST =192.168.163.81
MAL_INST_PORT = 5246
MAL_DW_PORT = 65121
MAL_INST_DW_PORT = 45121
主机和备机之间为实时归档, 主机的归档目标为备机, 备机的归档目标为主机
主机
[ARCHIVE_REALTIME]
ARCH_TYPE=REALTIME
ARCH_DEST=DMSALM02
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/data/DM01/arch
ARCH_FILE_SIZE = 64
ARCH_SPACE_LIMIT = 10240
ARCH_FLUSH_BUF_SIZE = 0
ARCH_HANG_FLAG = 1
备机
[ARCHIVE_REALTIME]
ARCH_TYPE=REALTIME
ARCH_DEST=DMSALM01
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/data/DM01/arch
ARCH_FILE_SIZE = 64
ARCH_SPACE_LIMIT = 10240
ARCH_FLUSH_BUF_SIZE = 0
ARCH_HANG_FLAG = 1
创建dmwatcher.ini配置, 主备机一致.
OGUID为集群标识, 必须一致.
注意INST_INI和INST_STARTUP_CMD.
[GRP1]
DW_TYPE=GLOBAL
DW_MODE=AUTO
DW_ERROR_TIME=10
INST_RECOVER_TIME=60
INST_ERROR_TIME=10
INST_OGUID=8888
INST_INI=/dm8/data/DM01/dm.ini
INST_AUTO_RESTART=1
INST_STARTUP_CMD=/dm8/bin/dmserver
RLOG_SEND_THRESHOLD=0
RLOG_APPLY_THRESHOLD=0
配置完成后要启动集群, 先启动实例到MOUNT模式, 再启动守护程序, 当集群联通时将自动启动数据库.
首先启动到配置模式
dmserver /dm8/data/DM01/dm.ini mount
再通过disql执行命令, 调整oguid和数据库状态
开启配置
SP_SET_PARA_VALUE(1,,'ALTER_MODE_STATUS',1);
设置OGUID, 和守护进程中配置相同
SP_SET_OGUID(8888);
设置服务器模式, 主机为primary模式, 备机为standby模式.
// 主机
alter database primary;
// 备机
alter database standby;
通过配置文件启动守护进程, 先启动主机再启动备机.
dmwatcher /dm8/data/DM01/dmwatcher.ini
创建dmmonitor.ini配置, MON_DW_IP值为主备的MAL_HOST和MAL_INST_DW_PORT
MON_DW_CONFIRM=1
MON_LOG_PATH=/dm8/log
MON_LOG_INTERVAL=60
MON_LOG_FILE_SIZE=32
MON_LOG_SPACE_LIMIT=0
[GRP1]
MON_INST_OGUID=8888
MON_DW_IP=192.168.163.85:65101
MON_DW_IP=192.168.163.81:65121
启动监视器
dmmonitor /dm8/dmmonitor.ini
可以通过show命令查看集群状态.
使用login命令进行登录.
login
用户名: SYSDBA
密码:
登录后可以查看备库列表和执行主备切换
choose switchover 查看选择可切换为 PRIMARY 库的备库列表
switchover 切换主库
文章
阅读量
获赞