| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 达梦数据库数据守护与读写分离集群节点脑裂故障的恢复 -> 正文阅读 |
|
[大数据]达梦数据库数据守护与读写分离集群节点脑裂故障的恢复 |
一、前言? ? ? ?用于解决由于硬件故障、自然灾害等原因导致的数据库服务长时间中断问题,提供不间断数据库服务,达梦数据库推出了达梦数据守护集群软件(DM Data Watch)和达梦读写分离集群(DMRWC)。 ? ? ? ?达梦数据守护集群软件(DM Data Watch)是一种集成化的高可靠性解决方案,该方案基于数据库REDO日志,不依赖于第三方软件和存储,用于解决由于硬件故障、自然灾害等原因导致的数据库服务长时间中断问题,提供不间断数据库服务,可同时满足用户对数据安全性和高可用性的要求。数据守护包含的主要部件有:主数据库、备数据库、联机REDO日志系统、本地REDO日志归档服务、实时REDO日志归档服务、REDO日志重做服务、MAL系统、守护进程和监视器。其中,守护进程和监视器是两个独立的工具,其他部件集成在DM8数据库服务器DMSERVER中。 ? ? ? ?达梦读写分离集群(DMRWC)是DM8提供的一个用于提升并发事务处理性能的集群组件。在一个高并发的事务型系统中,当写事务占的比例相对读事务较小时,DM8提供的这种独具创新的方案DMRWC,可通过客户端来实现读、写事务的自动分离,读事务在备机执行,写事务在主机执行,减轻主机的负载。 二、数据库集群状态? ? ? 截止目前,达梦读写分离集群已经大面积使用在各级机构,但有关读写分离集群的故障处理资料并不多。本编文章主要讨论某一节点数据库服务出现脑裂,在不影响对外继续提供服务的情况下的集群恢复进行具体分析。 用于测试的数据库环境规划:
? ? ?通过确认监视器(192.168.237.115)查看集群服务状态: cd /dm8/bin ./dmmonitor /dm8/bin/dmmonitor.ini show ? ? ? ? 如图,通过确认监视可以看出两台数据库的状态,当数据库出现以上内容,表示集群中节点正常: WCTLSTAT=VALID,表示守护进程控制文件状态为有效的; WSTATUS=OPEN,表示守护进程状态为打开; INAME=DMSVR01/DMSVR02,两台数据库实例名 INST_OK=OPEN,节点的实例状态为打开 ISTATUS=OPEN,数据库状态为打开 IMODE=PRIMARY/STANDBY,节点的实例模式为主/备; 三、数据库脑裂状态示例? ? ? ?同样,通过确认监视器查看数据库状态,发现节点2的数据库守护进程脑裂状态(WCTLSTAT=SPLIT),数据库处于mount状态(ISTATUS=MOUNT),具体如下图所示 ? ? ? ? 尝试打开2节点数据库(DMSVR02)失败,如下图 ? ? ? ? 登录2节点数据库,数据库处于mount状态,不能正常应用,如下图: 四、数据库修复过程? ? ? ?针对出现脑裂状态的达梦主备和读写分离的数据库,同时保证主节点正常应用,恢复过程需要以下步骤:
4.1 关闭确认监视器服务登录确认监视器服务器192.168.237.115,执行以下命令 ps -ef|grep dmmonitor Kill -9 XXXX 4.2 关闭备节点dmwatcher服务登录备节点数据库192.168.237.114,执行以下命令: systemctl stop DmWatcherServiceDMWATCHER 确认服务是否关闭: ps -ef|grep dmwatcher 登录备节点数据库192.168.237.114,执行以下命令: ps -ef|grep dmserver 一般此时,备节点dmserver为关闭状态,如果存在,需要关闭dmserver服务 4.4 确认主节点服务是否正常???登录主节点数据库192.168.237.113,通过DISQL登录数据库,查看是否运行正常 ??? ?4.5 主节点联机备份 ???登录主节点数据库192.168.237.113,通过DISQL登录数据库,执行备份命令 ???backup database full backupset ‘/dm8/dmbak/full_bak_03’; ??? ???将备份文件传输至备节点 4.6 备份备节点配置文件登录备节点数据库192.168.237.114,对dmmal.ini\dmwatcher.ini\dmarch.ini\dm.ini。 [dmdba@localhost DM01]$ cp dmmal.ini /opt/bak/ [dmdba@localhost DM01]$ cp dmwatcher.ini /opt/bak/ [dmdba@localhost DM01]$ cp dmarch.ini /opt/bak/ [dmdba@localhost DM01]$ cp dm.ini /opt/bak/ 4.7 删除备节点数据库,并按照主节点数据库初始化,并恢复数据库4.7.1删除备节点数据库[root@localhost tool]# cd /dm8/tool/ [root@localhost tool]# ./dbca.sh 4.7.2按照原备节点重新初始化数据库
4.7.3 按照主节点备份恢复数据库./dmrman RESTORE DATABASE '/dm8/data/DM01/dm.ini' FROM BACKUPSET '/dm8/dmbak/full_bak_03'; RECOVER DATABASE '/dm8/data/DM01/dm.ini' FROM BACKUPSET '/dm8/dmbak/full_bak_03'; RECOVER DATABASE '/dm8/data/DM01/dm.ini' UPDATE DB_MAGIC; 4.8 修改备节点状态和配置文件4.8.1修改dm.inivi dm.ini文件,修改配置文件内容 DW_INACTIVE_INTERVAL ??= ??60 ? ALTER_MODE_STATUS ??= ?1(由于是集群节点恢复,先调整为1,后续调整为0)? ENABLE_OFFLINE_TS = 2 MAL_INI ??= ??1 ARCH_INI = 1 RLOG_SEND_APPLY_MON ?= 64 4.8.2 还原dmmal.ini\dmwatcher.ini\dmarch.ini[dmdba@localhost bak]$ cd /opt/bak [dmdba@localhost bak]$ cp dmmal.ini /dm8/data/DM01/ [dmdba@localhost bak]$ cp dmwatcher.ini /dm8/data/DM01/ [dmdba@localhost bak]$ cp dmarch.ini /dm8/data/DM01/ 4.9mount启动备节点数据库服务4.9.1启动数据库服务./dmserver /dm8/data/DM01/dm.ini mount 4.9.2进入DISQL,修改数据库为备库模式[dmdba@localhost ~]$ cd /dm8/bin [dmdba@localhost bin]$ ./disql SYSDBA/DM01SYSDBA@localhost:5237 服务器[localhost:5237]:处于主库配置状态 登录使用时间 : 5.920(ms) disql V8 SQL> alter database open force; 操作已执行 已用时间: 530.655(毫秒). 执行号:0. SQL> alter database mount; 操作已执行 已用时间: 360.915(毫秒). 执行号:0. SQL> sp_set_oguid(453331); DMSQL 过程已成功完成 已用时间: 3.156(毫秒). 执行号:400. SQL> alter database standby; 操作已执行 已用时间: 5.032(毫秒). 执行号:0. SQL> 4.10启动备节点数据守护服务[root@localhost ~]# systemctl start DmWatcherServiceDMWATCHER 4.11启动确认监视器,确认服务状态4.11.1 启动确认监视器登录确认监视器服务器192.168.237.115 [dmdba@localhost bin]$ ./dmmonitor dmmonitor.ini ?4.11.2 通过确认监视器启动数据库实例 登录确认监视器 login 打开数据库实例 open database GRP1.DMSVR02 重新查看集群状态 ???更多资讯请上达梦技术社区了解:?https://eco.dameng.com |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 8:56:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |