一、前端网络故障

如果节点无法在其前端以太网网络端口上进行通信,例如,由于意外的电缆拉拔、交换机配置错误或NIC故障,则不需要人工干预。集群采取以下行动:

  • 没有将其他连接分配给失败的实例。
  • 如果失败的节点正在处理复制从属连接,则将连接移动到另一个节点。

二、后端网络故障

后端网络故障类似于节点故障(参见下面)。

三、磁盘故障

ClustrixDB默认维护数据的两个副本(副本)。当集群检测到磁盘故障时,系统将自动调度重新保护操作以生成新的数据副本。管理员不需要采取任何行动来重新保护数据集。当任何表的拷贝数低于指定数量时,以及在完成重新保护任务之后,集群还将发出数据库警报。
在某些情况下,系统可能会检测磁盘上的错误。但是,如果错误低于我们将驱动器标记为失败的阈值,一些用户查询可能会在试图从失败的设备读取数据时偶然出现错误。在这种情况下,管理员可以手动停用节点,而不减少可用副本的数量。系统将尝试安全地将这些设备上的所有数据移动到系统中的另一个设备上。要做到这一点,请遵循降低集群容量的步骤—向下伸缩。

四、节点故障

本节描述两种类型的节点故障:transient (即节点暂时脱机(例如,由于崩溃或电源故障))和永久故障(即节点完全失败,并且预期不会返回)(例如,由于硬件故障)。

Transient Node Failure and Rebalancer Reprotect

  • 当集群由于任何原因与单个节点失去联系时,集群中幸存的节点将形成一个没有该节点的新组,并继续为客户端提供服务。所有服务(如从库)都跨幸存的节点重新分配。分发到失败节点的客户机必须重新连接。直接连接到失败节点的客户端无法查询数据库。您将收到一封电子邮件警告,并在其中一个节点的clustrix.log中显示如下消息:
ALERT PROTECTION_LOST WARNING Full protection lost for some data; queueing writes for down node; reprotection will begin in  seconds if node has not recovered
  • 这条消息只是表明并非所有数据都有完整的副本可用。全局变量rebalancer_reprotect_queue_interval_s指定Rebalancer应该等待多长时间,直到某个节点重新加入集群,然后才开始创建其他副本
如果一个节点在rebalancer_reprotect_queue_interval_s内重新加入
如果节点在rebalancer_reprotect_queue_interval_s通过后加入
  • ClustrixDB回放自上次该节点处于quorum中以来所做的更改,从而使该节点能够快速重新加入集群。
  • 节点重新加入集群并开始接受工作。没有必要采取进一步的行动。
  • Rebalancer开始复制受保护不足的片,以便在幸存的节点中创建新的副本。
  • 集群执行组更改。
  • 假设有足够的磁盘空间,ClustrixDB将自动处理重新保护过程,不需要人工干预。

使用此sql查看未完成的Rebalancer重新保护任务。

sql> SELECT * FROM system.rebalancer_activity_log where finished is null;

一旦所有副本都有足够的副本(因为某个节点已经恢复,或者Rebalancer已经完成了复制),您将收到一个警告,并在其中一个节点的clustrix.log中显示如下消息:

ALERT PROTECTION_RESTORED WARNING Full protection restored for all data after  minutes and  seconds

五、软剔除一个节点

如果一个节点变得不可靠,而您希望将其从集群中删除,Clustrix建议将其标记为softfailed(使用Flex Down)过程。您可以使用Flex Up过程同时合并替换。高层次的步骤是:

  1. 通过安装ClustrixDB并使用ALTER cluster ADD将它们添加到集群中来提供替换节点
  2. 使用ALTER CLUSTER SOFTFAIL将有问题的节点标记为softfailed
  3. 软剔除操作完成后,执行ALTER CLUSTER REFORM删除软剔除节点

六、永久的节点故障

如果某个节点永久失败,则Rebalancer将自动创建如上所述的其他副本。在显式删除之前,丢失的节点仍被视为quorum参与者。

手动删除永久失败的节点

ALTER CLUSTER DROP nodeid;

在重新保护完成之前删除节点会使集群容易丢失数据。

要合并一个替换节点,请遵循扩展集群容量的说明—Flex Up。

七、多个节点故障

通过设置max_failure的值,可以将ClustrixDB配置为能够承受多次失败。

为了让集群能够容忍为max_failure配置的值:

  • 所有表必须有足够的副本。如果更新了max_failure,那么之前创建的所有表都必须手动更新其副本。
  • 必须有可用节点的仲裁(至少N/2+1)
  • Clustrix建议提供足够的磁盘空间,以便集群在发生意外故障后有足够的空间进行重新保护。有关容错和可用性,请参阅分配磁盘空间

八、区失败

配置了区域后,整个区域的故障与节点故障无关。ClustrixDB将从可用区域自动恢复对节点的操作并自动重新保护。要从集群中删除一个区域,请将该区域中的所有节点标记为softfailed。

九、当重新保护无法完成时

磁盘空间不足

如果没有足够的磁盘空间用于所有副本,则重新保护进程将无法完成。考虑通过扩展集群的容量来增加额外的容量——Flex - Up。参见管理文件空间和数据库容量。

十、副本丢失

如果集群丢失的节点和/或区域比max_failure指定的多,则集群将无法重新保护。Rebalancer活动日志(system.rebalancer_activity_log)将显示“Representation not found”错误。

查看当前可用节点上没有的具有副本的表:

sql> SELECT `Database`, `Table`, `Index`, slice, status
FROM (SELECT `Database`, `Table`, `Index`, slice, MIN(status)
AS status FROM system.table_replicas
GROUP BY slice)
AS x
WHERE x.status > ;

如果无法恢复不可用的节点,则必须从备份中恢复这些表。

10. ClustrixDB 故障恢复管理的更多相关文章

  1. 【翻译】《深入解析windows操作系统第6版下册》第10章:内存管理

    [翻译]<深入解析windows操作系统第6版下册>第10章:内存管理(第一部分) [翻译]<深入解析windows操作系统第6版下册>第10章:内存管理(第二部分) [翻译] ...

  2. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(10)- VSS源代码管理

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(10)- VSS源代码管理 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    ( ...

  3. Linux课程---10、权限管理(权限有哪几种)

    Linux课程---10.权限管理(权限有哪几种) 一.总结 一句话总结: r 读 w 写 x 执行 1.drwxr-x---  2 root root  4096 Jan 20 19:39 mnt ...

  4. 10 MySQL--权限管理

    权限管理 1.创建账号 # 本地账号 create user '; # mysql -uegon1 -p123 # 远程帐号 create user '; # mysql -uegon2 -p123 ...

  5. 17. ClustrixDB 日志管理

    ClustrixDB记录关于重要和有问题的查询的详细信息.这些日志有助于确定以下事项: 慢速查询 资源争用 SQL错误 读取意外数量行的查询 模式变化 全局变量的修改 集群的改变 默认情况下,查询日志 ...

  6. 10、会话管理/编程实战分析/Jsp

    1 会话管理回顾 会话管理 1)会话管理: 管理浏览器和服务器之间的会话过程中产生的会话数据 2)Cookie技术: 会话数据保存在浏览器客户端. Cookie核心的API: 2.1 在服务器端创建C ...

  7. 安装ArcGIS License 10.1 许可管理器 破解版 服务启动又失败的解决办法

    安装破解文件的提示执行 替换许可管理器Bin下面的service.txt  文件,之后会发现,许可管理器启动不了(有时候又可以,挺郁闷), 经过多次的试验,我找到了一种折中解决的方法,供大家参考 解决 ...

  8. 10.5Djang admin 管理工具

    2018-10-5 17:30:57 Django admin 管理工具  参考连接: https://www.cnblogs.com/yuanchenqi/articles/8323452.html ...

  9. 5.10 C++内存管理操作符重载

    参考:http://www.weixueyuan.net/view/6388.html 注意: 内存管理操作符new.new[].delete和delete[]同样也可以进行操作符重载,其重载形式既可 ...

随机推荐

  1. P3367 【模板】并查集

    喵呜~~(题面) 这题其实很早就过了,但是呢,以前过的时候真的基本上是CtrlC+CtrlV,这次把代码重新码了一遍,对并查集也有了一个基本清晰的认识 #include<iostream> ...

  2. 【VS开发】在VS2010中开发ActiveX控件设置测试容器的方式

    在VS2010中开发ActiveX控件设置测试容器的方式 借鉴文章http://blog.csdn.net/waxgourd0/article/details/7374669 在VS2010中开发MF ...

  3. 使用ocelot作为api网关

    新建网站项目然后添加ocelot 的nuget包 新建ocelot.json的网关的配置文件 { "GlobalConfiguration": { "BaseUrl&qu ...

  4. vue ----》实现打印功能

    1.安装打印相关依赖 cnpm install vue-print-nb --save 2.安装后,在main.js文件中引入 import Print from 'vue-print-nb' Vue ...

  5. python中函数的参数和返回值

    目录 函数 目标 01. 函数参数和返回值的作用 1.1 无参数,无返回值 1.2 无参数,有返回值 1.3 有参数,无返回值 1.4 有参数,有返回值 02. 函数的返回值 进阶 示例 -- 温度和 ...

  6. urllib库:解析链接

    1from urllib.parse import urlparse, urlunparse, urlsplit, urlunsplit, urljoin, urlencode, parse_qs,  ...

  7. (5.1.5)引擎管理——多服务器管理之中央管理服务器(CMS)

    关键词:中央管理服务器,CMS,多服务器管理 中央管理服务器 -[1]打开 视图->已注册的服务器 [2]注册中央管理服务器 右击中央管理器->注册中央管理服务器 这里输入IP.主机名都可 ...

  8. HDU-4219-Randomization?

    题目描述 给定一棵\(n\)个节点的树,每条边的权值为\([0,L]\)之间的随机整数,求这棵树两点之间最长距离不超过\(S\)的概率. Input 第一行三个整数\(n,L,S\) 接下来n-1行, ...

  9. js中this.index使用

    上面圈出的那句没有执行,因为this.index 是undefined,(也不能直接使用i取代this.index,原因是i不是变化的值,使用alert打印输出的i值始终为3) 解决方式:在for语句 ...

  10. SparkML之推荐算法ALS

    参考: SparkML之推荐算法(一)ALS --有个比较详细的讲解,包含blocks使用. Spark ALS源码总结 //TODO 源码,集群尝试.研究blocks使用原理及作用. 官方解释:nu ...