GBase 8a在执行dml,ddl等数据变动业务时,为了避免发起节点出现故障,提供了failover机制来清理残余信息,保证集群一致性。针对一些特殊情况,特别是早期的版本,可能存在某些情况需要强行清理的情况。结合强行释放锁的操作,可以清理指定SQL占用的资源。本文提供的方案请慎重使用。

查看failover方法
在数据库操作系统dbauser下(一般是gbase)执行 gcadmin showfailover

[gbase@rh6-1 ubas]$ gcadmin showfailover
+=+
| GCLUSTER FAILOVER |
+=+
±-----------±-----------±----------±-----------±----------±-----------------±------±------------------------------------------±------------------------------------------±----------------+
| commit id | database | table | scn | type | create time | state | original node | takeover node | takeover number |
±-----------±-----------±----------±-----------±----------±-----------------±------±------------------------------------------±------------------------------------------±----------------+
| 2359298 | testdb | tt1 | 2359299 | dml | 20220218094731 | 3 | 10.0.2.201 | | 0 |
±-----------±-----------±----------±-----------±----------±-----------------±------±------------------------------------------±------------------------------------------±----------------+

如果当前没有failover信息,则显示

[gbase@rh6-1 ubas]$ gcadmin showfailover

gcadmin showfailover: no gcluster failover information now

[gbase@rh6-1 ubas]$

Failover输出信息解析

标签 说明
commit id failover 的唯一标识,64 位数字。
database 数据库名。
table 表名
scn scn 号。
type 类型,包括ddl/dml/rebalance。
create time 创建 failover 信息的时间
state failover 对应的状态数字:
0: init初始化
1: add_res添加集群锁
2: set_info设置 failover 信息(触发了failover,有其它节点接管了,处理中)
3 :set_status设置分片状态(最常见的信息)
4 :set_rebalance_info设置 rebalance 信息
5 :set_rebalance_status设置 rebalance 状态
original node 发起节点
takeover node 当前接管节点,如果没有发生接管则显示为空
takeover number failover 的接管次数,gcware 通知 gcluster 接管后这个值就加1。

强行清理failover的方法
警告:FAILOVER机制是数据库内为了确保一致性的,如果强行清理,可能导致数据主副本不一致,数据无法读取等异常情况。
如果某个操作,已经人工确认没有问题(各个分片的数据,当前都是可以查询,没有主副本数据行数,表结构不一致等异常情况,或者已经决定删除重建该表时),只是为了删除数据库的内部重试,才需要强制清理failover。常见于某些长时间没有kill掉的DML、DDL类SQL, 但又不能通过重启一个节点解决,因为failover会被自动接管,后台继续执行。

再次提醒,一定确认安全,才可以做这个操作。

如下红色是手工输入的部分,其中的gcware.deletefailoverforce的参数是commit it, 就是show failover的第一个标签的内容。

[gbase@rh6-1 ubas]$ python
Python 2.6.6 (r266:84292, Oct 12 2012, 14:23:48)
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.

import gcware
gcware.deletefailoverforce(2359298)

0

quit()
[gbase@rh6-1 ubas]$

如果commit id不存在,则报错

Traceback (most recent call last):
File “”, line 1, in
File “/usr/lib64/python_gcware/gcware.py”, line 195, in deletefailoverforce
return _gcware.deletefailoverforce(commitid);
Exception: deletefailoverforce: gcLckDeleteFailoverForce Error: [49]->[GC_AIS_ERR_NOT_EXIST_IN_SERVICE].
总结
本文方法只适合于非正常情况下的临时操作,特别是针对一些老版本集群,请慎重使用。

GBase 8a查看和清理故障恢复状态Failover的方法相关推荐

  1. 【Android先进】查看手机记忆库状态和应用方法

    一世 我们知道.android程序存储器通常被限制16M.当然,24M的,和android程序存储器分为2部分:native和dalvik.dalvik 就是我们寻常说的java堆.我们创建的对象是在 ...

  2. GBase 8a里通过rsync加速调度coor节点的扩容和替换效率

    在GBase 8a的早期版本里,扩容或者节点替换调度节点(coordinator)时,是通过本地tar打包,然后scp传输到新节点来实现的,而tar本身不支持并行,所以代码上是将打包任务按表名字分解成 ...

  3. CENTOS 8上部署GBase 8a的环境配置

    REDHAT 8/CENTOS 8使用的命令与之前的版本有一些区别,习惯了使用6.7版本的命令在8版本下部署GBase 8a,发现有很多变化.下面是创建虚拟机使用CENTOS 8的ISO安装文件安装环 ...

  4. GBase 8a 高可用集群同城双活灾备方案

    GBase 8a数据库集群支持主备模式的同城双活灾备方案,其原理为主集群承担应用,对数据进行批量操作(包括数据加载和数据加工),在主集群加工完数据之后,每天特定时间点将数据增量同步到同城双活的备集群当 ...

  5. GBase 8a MPP Cluster 维护-日志篇

    日志介绍 1.1 关于日志 日志描述 GBase 8a MPP Cluster 集群不同的日志保存路径不同,主要日志分类见下表详细日 志查看参见附录日志参考. 表 :日志分类说明 日志类型 日志描述 ...

  6. GBase 8a MPP使用时 数据库基础问题之管理工具三

    5.14Windows 安装 GBaseODBC 选择中文目录,添加数 据源失败 问题现象 安装 GBaseODBC,执行 GBaseODBC_8.3.81.53_build53.11_W64.exe ...

  7. gbase 8a 配置手册

    1配置文件 在成功安装GBase 8a后,在安装路径的/GBase/config目录下, gbase_8a_gbase8a.cnf 是 GBase 8a 的配置参数文件. 通过对参数文件中相关参数的值 ...

  8. GBase 8a MPP Cluster SQL基础

    一.SQL语言基础知识 1.SQL语句根据其可实现功能,分为以下几类: 1.1 DDL语句:用来创建数据库以及定义其表结构.视图索引等. 关键词有CREATE.DROP.ALTER.RENAME等 1 ...

  9. E01 GBase 8a MPP Cluster V95 安装和卸载

    GBase 8a MPP Cluster V95 安装和卸载 一.集群节点环境设计 二.安装前准备工作 三.集群的安装 1.在集群所有节点上创建DBA用户 2.在集群所有节点上创建安装目录并授权 3. ...

最新文章

  1. java 表现层:jsp、freemarker、velocity
  2. 【Python】0/1背包、动态规划
  3. [转]LoadRunner 各个指标分析
  4. 代码+实例:深度学习中的“轴”全解
  5. Docker入门-构建第一个Java程序
  6. 当前进程(Linux Devices Driver)
  7. html加载富文本_Uniapp基础实战富文本框解析 WordPress rest api实例
  8. opencv SURF角检测
  9. 罗永浩回应做主播赚钱还债;360 否认裁员;Kubernetes 1.18 版本发布| 极客头条
  10. 关于eclipse新建web项目,提示:The superclass javax.servlet.http.HttpServlet was not found on the Java解决办法...
  11. jni开发-GetMethodID与CallObjectMethod的坑
  12. 23种设计模式(二十一)数据结构之职责链
  13. uni-app app开发对接网易云信IM
  14. TouchDesigner学习 全屏输出
  15. Excel 实用小技巧:如何将两列的数据合并到一起
  16. cad计算机配置要求,CAD对电脑硬件的配置要求
  17. alibaba人一起写过的技术丛书
  18. OkHttp证书校验
  19. 服务器声卡如何虚拟,服务器没声卡远程桌面连接怎么实现听到服务器的声音
  20. 工作流系统之四十二 业务规则和业务过程

热门文章

  1. SDOI2017 Round1 解题报告
  2. Microsoft Teams 语音篇(一)--配置拨号计划
  3. 数据湖(十):Hive与Iceberg整合
  4. EasyExcel组件导入Excel文件
  5. 【Unity】UI画线工具
  6. 惠普暗影精灵台式机1660s使用移动硬盘安装ubuntu无法启动
  7. 解决网络ping内外网成功,但浏览器等应用程序连不上网(视个人情况而定)
  8. 【已解决】MySQL数据库忘记root密码,Navicat修改root密码
  9. 2021年11月世界编程语言排行
  10. 以证书方式对接支付宝接口