一、前端网络故障

如果节点无法在其前端以太网网络端口上进行通信,例如,由于意外的电缆拉拔、交换机配置错误或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. body标签中的相关标签

    一.内容概要 字体标签 h1~h6 <font> <u> <b> <strong> <em> <sup> <sub> ...

  2. 应用安全 - 中间件 - Tomcat - 漏洞 - 汇总

    管理后台弱口令 CVE-2019-0232 Date 类型 任意代码执行 影响版本 Apache Tomcat .M1 to Apache Tomcat to Apache Tomcat to 前置条 ...

  3. 【VS开发】Caffelib中出现的问题:强制链接静态库所有符号(包括未被使用的)

    C++程序在链接一个静态库时,如果该静态库里的某些方法没有任何地方调用到,最终这些没有被调用到的方法或变量将会被丢弃掉,不会被链接到目标程序中.这样做大大减小生成二进制文件的体积.但是,某些时候,即使 ...

  4. c语言l博客作业11

    问题 答案 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/8655 我在 ...

  5. windows jenkins 发布 springboot项目脚本

    windows  jenkins 发布 springboot项目脚本 1.关闭现有程序 (按端口关闭) [与按应用关闭 二选一] @echo off for /f "tokens=1-5&q ...

  6. Nginx_Ubuntu

    一. 基本步骤 1.1 环境准备 开始前,请确认gcc g++开发类库是否装好,默认已经安装. 注: 等待linux下载更新功能准备好了 重启系统 在执行下载安装命令,如执行命令没有问题可以继续往下走 ...

  7. yarn以及mapreduce部署

    修改hadoop的配置文件yarn-site.xml: 复制该配置文件到其他服务器 scp yarn-site.xml ubuntu-01:$PWD yarn启动命令: start-yarn.sh M ...

  8. [USACO13OPEN]照片Photo 题解

    题面 这道题似乎可以用单调队列优化DP做,但这里讲的是一种差分约束的思路; 设s[i]表示1~i中选了多少个: s[b[i]]-s[a[i]-1]<=1; s[b[i]]-s[a[i]-1]&g ...

  9. BZOJ 1053 反素数 题解

    题面 引理1:  1~n中的最大反质数,就是1~n中约数个数最多的数中最小的一个(因为要严格保证g(x)>g(i)): 引理2:1~n中任何数的不同因子不会超过10个,因为他们的乘积大于2,00 ...

  10. python-day8(正式学习)

    目录 列表类型内置方法 常用操作+内置方法 优先掌握(***) 需要掌握(**) 存一个值or多个值 有序or无序 可变or不可变 元组类型内置方法 定义 常用操作+内置方法 优先掌握 一个值or多个 ...