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. 个人作业1:小学四则运算——基于控制台
  2. golang源码分析:defer流程分析
  3. zoj 2972 Hurdles of 110m (DP)
  4. JS中进行字符串的相等比较时用==遇到的坑
  5. 深入了解以太坊虚拟机第4部分——ABI编码外部方法调用的方式
  6. Vuex与登录状态保存
  7. HDU1172猜数字 [模拟]
  8. Save info in Hidden Field
  9. php装箱,php兑现装箱算法
  10. 错误175:具有固定名称MySql.Data.MySqlClient的ADO.NET提供程序未在计算机或者应用程序配置文件中注册或者无法加载
  11. [深度学习]什么叫激活函数
  12. 知名PS滤镜合集工具Nik Collection 4 for Mac
  13. SpringApplication run方法第四步解析(三)[(未完结,暂搁置)]
  14. 如何打开python3.7.4_Python3.7.4入门-5输入输出
  15. python 声音强度检测_python – 从声音文件中检测频率
  16. css中border属性设置
  17. win7笔记本电脑设置WiFi热点
  18. AI玩游戏系列,机器学习玩游戏(1) 一维游戏
  19. 接口调用频繁限制,接口限制流量
  20. itunes下载管理appstore老版本app

热门文章

  1. Ubuntu18.04英伟达驱动的安装
  2. 安卓 图像清晰度识别_安卓手机越用越卡顿?这几个功能一定要开启,手机快到飞起...
  3. tranmac不能识别_TransMac下载_TransMac为什么无法识别安装盘
  4. 全球十大外汇黄金平台正规排行榜2021版
  5. 简单的对话聊天窗体组件
  6. html5 小太阳系模型,初学html5太阳系
  7. 安装Visual Studio 2015时,出现JavaScript_ProjectSystem.msi和JavaScript_LanguageService.msi安装包丢失或损坏的情况
  8. 从入门到精通,收下这 22 个 Python 学习网站
  9. 如何下载延庆区卫星地图高清版大图?
  10. imx6q android jni,Android 显示系统:飞思卡尔平台图形界面与GPU硬件加速