一、 ALTER CLUSTER ADD (Flex Up): 添加节点以增加集群大小
添加节点过程:
步骤1、准备节点
步骤2、将节点添加到集群中
Clustrix建议在非高峰期间或计划维护窗口期间运行此命令。
在添加节点时,服务将短暂中断。
您还可能注意到,在Rebalancer将数据移动到新节点时,性能略有下降。
步骤3、验证添加节点成功
您应该看到所有节点在显示中都显示正常。如果使用区域,则所有节点都应该分配一个非零区域。如果没有使用区域,则将所有节点分配给区域0。
您可能会注意到,节点之间的数据分布还不平衡。要有耐心。很快就会的。
如果您试图添加的节点没有出现在上面的列表中,请参阅下面有关Flex Up期间错误的部分。
步骤4、监控rebalance状态
您的新节点已经成功地添加到ClustrixDB集群中,但是它们还不包含数据。
Rebalancer现在将自动在后台工作,将数据转移到新的节点。要监视此过程,请参阅有关管理Rebalancer的说明。
集群添加节点报错信息:
- ERROR 1 (HY000): [26633] Bad parameter.: Host "xxx" already in cluster
如果您试图添加已经是集群一部分的节点,则会发生此错误。 - ERROR 1 (HY000): [55300] Multiple nodes cannot be added when an existing addition is pending
由于下列原因,节点添加可能处于挂起状态:
节点仍在添加过程中
运行不同版本ClustrixDB的节点被添加到集群中
一个具有不同多端口设置的节点被添加到集群中
解决办法:
Here is the list of reasons provided in system.problem_nodes and how to resolve those issues:
Software binaries differ | Make sure all nodes are running the same version of ClustrixDB |
Multiport settings mismatched | See Modifying Startup Configuration Options for instructions on how to disable Multiport. Network Security with ClustrixDB contains information relative to enabling Multiport ports. |
二、ALTER CLUSTER SOFTFAIL (Flex Down): 从集群中删除节点
ALTER CLUSTER SOFTFAIL:软剔除,指示Rebalancer将所有数据从指定节点移动到集群中的活动节点,以确保保留副本。
ALTER CLUSTER UNSOFTFAIL:取消先前的软剔除请求。节点再次可用,Rebalancer将重新将数据定位到节点。
ALTER CLUSTER REFORM:从集群中删除软失败节点并执行组更改。
软剔除之后监控节点状态:
一旦标记为softfailed, Rebalancer将从softfailed节点移动数据。Rebalancer进程在后台运行,而前台处理继续为您的生产工作负载服务。
监察软件故障的进展:确认您指定的节点确实被标记为要删除。
system.softfailing_containers表将显示将作为SOFTFAIL操作的一部分移动的容器列表。当此查询返回0行时,数据迁移就完成了。
此查询显示准备删除的软剔除节点的列表。
一旦softfailed在所有节点完成之后,clustrix.log会记录日志:
执行命令进行剔除:
三、ALTER CLUSTER DROP: 强制从集群中删除节点。
使用ALTER CLUSTER DROP立即从集群中删除一个节点,而不需要确保所有数据都有足够的副本。这应该只在紧急情况下使用。
应该谨慎使用ALTER CLUSTER DROP,因为这个操作无法撤消。在重新保护完成之前删除多个节点可能导致永久性的数据丢失。如果可能,使用Flex Down过程而不是ALTER CLUSTER DROP。
四、ALTER CLUSTER RESIZE DEVICES: 增加分配给永久数据库存储的文件的大小。该命令只能增加不能减少
减少devices的方法:
参考: http://docs.clustrix.com/display/CLXDOC/Decreasing+device1+Size
五、ALTER CLUSTER SET MAX_FAILURES: 指定可以安全容忍的并发故障数量。
max_failure是一个只读的全局变量,只能使用ALTER CLUSTER来设置。
max_failures | 在保持事务解析的同时,集群能够承受的并发故障数量,并且不会造成数据丢失。 | 1 |
更改max_failure的值:
增加max_failure的值会增加所创建的副本的数量,这会对写操作产生显著的性能影响,并需要额外的磁盘空间。由于高性能开销,Clustrix不建议超过max_failure = 2。
要更改全局max_failure的值,请执行以下步骤。在这个示例中,允许的故障数量从默认值1修改为2。这将导致使用REPLICAS = 3创建所有新表和索引。
步骤1:确保有足够的磁盘空间
确保集群有足够的磁盘空间用于其他副本。有关如何确定所需磁盘空间的详细信息,请参阅为容错和可用性分配磁盘空间。
步骤2:设置集群MAX_FAILURES
步骤3:更改现有的表
更新max_failure值之后创建的表将自动具有足够的副本。但是,在更新max_failure之前创建的表可能没有足够的副本,需要修改。此查询为所有未得到充分保护的表示生成ALTER语句。