IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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,可通过客户端来实现读、写事务的自动分离,读事务在备机执行,写事务在主机执行,减轻主机的负载。

二、数据库集群状态

? ? ? 截止目前,达梦读写分离集群已经大面积使用在各级机构,但有关读写分离集群的故障处理资料并不多。本编文章主要讨论某一节点数据库服务出现脑裂,在不影响对外继续提供服务的情况下的集群恢复进行具体分析。

用于测试的数据库环境规划:

IP

用途

数据库版本

操作系统

安装位置

服务端口

实例名

组名

192.168.237.113

主库

DM8

X86 64位

/dm8

5236

DMSVR01

GRP1

192.168.237.114

备库

DM8

X86 64位

/dm8

5237

DMSVR02

GRP1

192.168.237.115

确认监视器

DM8

X86 64位

/dm8

-

? ? ?通过确认监视器(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状态,不能正常应用,如下图:

四、数据库修复过程

? ? ? ?针对出现脑裂状态的达梦主备和读写分离的数据库,同时保证主节点正常应用,恢复过程需要以下步骤:

  1. 关闭确认监视器dmmonitor服务;
  2. 关闭备节点dmwatcher服务;
  3. 确认备节点dmserver服务是否为关闭状态;
  4. 确认主节点服务是否正常;
  5. 主节点联机备份;
  6. 备份备节点配置文件;
  7. 删除备节点数据库,并恢复数据库;
  8. 修改备节点状态和配置文件;
  9. 启动备节点数据库;
  10. 启动备节点数据库守护服务;
  11. 启动确认监视器,并查看运行情况。

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
4.3 确认备节点dmserver是否为关闭状态

登录备节点数据库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.ini

vi 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

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-11 22:17:06  更:2022-03-11 22:20:13 
 
开发: 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-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码