一、前端网络故障

如果节点无法在其前端以太网网络端口上进行通信,例如,由于意外的电缆拉拔、交换机配置错误或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. cocos2dx基础篇(27) 屏幕适配

    [3.x]https://blog.csdn.net/qq_40338728/article/details/82964046 [屏幕适配] 1.两个分辨率 1.1.窗口分辨率 在main.cpp中有 ...

  2. LeetCode.933-最近通话次数(Number of Recent Calls)

    这是悦乐书的第357次更新,第384篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第219题(顺位题号是933).写一个类RecentCounter来计算最近的请求. 它 ...

  3. EINT DINT ERTM DRTM EALLOW EDIS ESTOP0的理解

    本文参考以下资料整理 https://wenku.baidu.com/view/6b0d6906cf84b9d528ea7a66.html http://pangqicheng123.blog.163 ...

  4. NOIp D1T1 小凯的疑惑

    吐槽 果然让人很疑惑,这道题,对于我这种数学渣渣来说太不友好了,哪里想得到结论,猜也猜不到. 思路一 纯数学,见过的飞快切掉,没见过的就... 结论就是:已知$a,b$为大于$ 1 $的互质的正整数, ...

  5. CDH管理节点扩容磁盘步骤

    把4个节点加12G内存,把hive的heap调到6G,按group重启服务让配置生效 注: 停服务前在yarn的application webui查flink的application id yarn ...

  6. springboot - 应用实践(N)使用springboot内置的@Scheduled

    1.springboot开箱即用,内置调度任务的使用. 建一个简单的springboot工程,pom.xml: <?xml version="1.0" encoding=&q ...

  7. RS chap2:利用用户行为数据

    一.用户行为数据简介 1.用户行为在个性化推荐系统中分为两种: (1)显式反馈行为:包括用户明确表示对物品喜好的行为. (2)隐式反馈行为:不能明确反应用户喜好的行为. (3)显式反馈行为和隐式反馈行 ...

  8. vue引入jquery插件

    在vue中使用jquery插件 1.引入jquery 第一种方法:全局引入jquery 在webpack.base.conf.js,新增以下代码 plugins: [ new webpack.opti ...

  9. vue 中 @click.native.prevent 事件

    在项目中看到@click.native.prevent, 查了一点资料 总结一下, 1.给vue组件绑定事件时候,必须加上native ,否则会认为监听的是来自Item组件自定义的事件, 2.prev ...

  10. vue elementui table组件内容换行

    解决方案 tableData = [ { "name": "domain111", "metric": [ "平均耗时" ...