首页 > 其他分享 >记一次gp扩容失败后无法回滚的问题

记一次gp扩容失败后无法回滚的问题

时间:2024-02-23 11:56:00浏览次数:32  
标签:扩容 status 回滚 rollback gp self EXPANSION DONE

异常描述

gp版本:6.9.0

异常信息:替换gp版本扩容后,gpexpand -r 回滚失败,提示异常:Catalog has been changed, the cluster can not rollback.

解决办法

排查思路

gpexpand文件:

 def rollback(self, dburl):
        """Rolls back and expansion setup that didn't successfully complete"""
        status_history = self.statusLogger.get_status_history()
        if not status_history:
            raise ExpansionError('No status history to rollback.')
     
        if (status_history[-1])[0] == 'EXPANSION_PREPARE_DONE':
            raise ExpansionError('Expansion preparation complete.  Nothing to rollback')

        for status in reversed(status_history):
            #失败位置
            if not self.statusLogger.can_rollback(status[0]):
                raise ExpansionError('Catalog has been changed, the cluster can not rollback.')


   ....
   #调用位置
    def can_rollback(self, status):
        """Return if it can rollback under current status"""
        #状态>=UPDATE_CATALOG_DONE则无法回滚
        if int(self._status_values[status]) >= int(self._status_values['UPDATE_CATALOG_DONE']):
            return False
        return True


    ...
def __init__(self, logger, coordinator_data_directory, coordinator_mirror=None):
        self.logger = logger
        #状态,大于8则无法回滚
        self._status_values = {'UNINITIALIZED': 1,
                               'EXPANSION_PREPARE_STARTED': 2,
                               'BUILD_SEGMENT_TEMPLATE_STARTED': 3,
                               'BUILD_SEGMENT_TEMPLATE_DONE': 4,
                               'BUILD_SEGMENTS_STARTED': 5,
                               'BUILD_SEGMENTS_DONE': 6,
                               'UPDATE_CATALOG_STARTED': 7,
                               'UPDATE_CATALOG_DONE': 8,
                               'SETUP_EXPANSION_SCHEMA_STARTED': 9,
                               'SETUP_EXPANSION_SCHEMA_DONE': 10,
                               'PREPARE_EXPANSION_SCHEMA_STARTED': 11,
                               'PREPARE_EXPANSION_SCHEMA_DONE': 12,
                               'EXPANSION_PREPARE_DONE': 13
                               }

继续排查,找到扩容状态来源于master数据目录下的gpexpand.status文件,删除UPDATE_CATALOG_DONE:None行及后面的数据,重新执行gpexpand -r回滚就可以成功。

其他问题

如果gp已经停止,并且无法启动,先以master模式启动:

gpstart -m

成功后执行以下命令回滚:

PGOPTIONS="-c gp_session_role=utility" gpexpand -r

退出master模式:

gpstop -m 

启动gp集群:

gpstart -a

 

标签:扩容,status,回滚,rollback,gp,self,EXPANSION,DONE
From: https://www.cnblogs.com/lidq/p/18029172

相关文章

  • 文心一言 VS 讯飞星火 VS chatgpt (200)-- 算法导论15.2 4题
    四、用go语言,对输入链长度为n的矩阵链乘法问题,描述其子问题图:它包含多少个顶点?包含多少条边?这些边分别连接哪些顶点?文心一言:矩阵链乘法问题是一个经典的动态规划问题,其中给定一个矩阵链,我们需要确定一个乘法顺序,使得计算该链所需的总标量乘法次数最少。子问题图(也叫DAG,有......
  • 文心一言 VS 讯飞星火 VS chatgpt (199)-- 算法导论15.2 1题
    一、用go语言,对矩阵规模序列(5,10,3,12,5,50,6),求矩阵链最优括号化方案。文心一言,代码正常运行:在Go语言中,为了找到矩阵链乘法的最优括号化方案,我们通常会使用动态规划(DynamicProgramming,DP)的方法。矩阵链乘法的问题是要确定计算矩阵乘积的最有效顺序,以最小化乘法操作的次数。这里......
  • GPT-GNN论文阅读笔记
    Abstract训练GNN通常需要大量的特定于任务的标记数据,这些获取是非常昂贵的,减少标记工作的一种有效方法是对具有自监督的表达性GNN进行预训练,然后将学习到的模型转移到只有少量标签的下游任务中,本文提出了GPT-GNN的框架,通过生成式预训练来初始化GNN,GPT-GNN引入了一个自监督的属性......
  • 苹果AppleMacOs最新Sonoma系统本地训练和推理GPT-SoVITS模型实践
    GPT-SoVITS是少有的可以在MacOs系统下训练和推理的TTS项目,虽然在效率上没有办法和N卡设备相提并论,但终归是开发者在MacOs系统构建基于M系列芯片AI生态的第一步。环境搭建首先要确保本地环境已经安装好版本大于6.1的FFMPEG软件:(base)➜~ffmpeg-versionffmpegversion6......
  • 利用ChatGPT提升工作效率的技巧与方法
    随着人工智能技术的不断发展,ChatGPT作为一种先进的自然语言处理模型,已经被广泛运用于各个领域。无论是个人生活还是工作场景,ChatGPT都可以为我们提供便利和支持。在本文中,我们将探讨如何利用ChatGPT来提升工作效率,并介绍一些实用的技巧和方法。自动化文本生成ChatGPT可以帮助......
  • 记录一次如何给openai (chatgpt api 调用)充值的经历
    网上有很多通过支付宝充值apple礼品卡的教程,能成功充值chatgpt-plus,我也成功充值了。但这个账号不能在自己的服务中调用api,需要额外充值,本次是记录如何给openaiapi 接口调用充值https://platform.openai.com/account/billing/payment-methods  用fomepay成功充值的经历......
  • mpsoc嵌入式vitis开发—AXI GPIO中断实验
    前言vitis版本:Vitis2023.2由于Vitis版本更新,很多API发生变化,学习原子哥的教程时很多代码对于不上,所以自己重新写一遍,并记录下自己踩过的坑,方便以后查看。这里直接给出代码,其他的流程参考原子哥的《2_DFZU2EG_4EVMPSoC之嵌入式Vitis开发指南_V1.0.pdf》代码#include"sleep.h......
  • openai chat GPT-4 Technical Report 技术报告论文
    摘要我们报告了GPT-4的开发,这是一个大规模、多模态的模型,可以接受图像和文本输入,并生成文本输出。虽然在许多现实场景中不如人类,但GPT-4在各种专业和学术基准测试中表现出与人类水平相当的性能,包括在模拟的律师资格考试中取得了约前10%的考生得分。GPT-4是基于Transformer......
  • OGP协议的使用
    OGP协议是一套Metatags的规格,用来标注页面,告诉我们你的网页快照。帮助社交app高效并准确的获取网页中的核心链接、标题、主图、正文摘要等信息,使得该网页在社交分享中有更好的展现体验。如果网页不支持OGP,那么基于算法和规则来提取网页中标题、主图、正文摘要,准确性无法做到100%,......
  • 磁盘扩容后,如何挂载磁盘
    情况一:扩容分区大小小于2TB检查服务器上的可用设备root@id-dci-live-10-62-193-98:~#lsblklsblk:nvme0c33n1:unknowndevicenameNAMEMAJ:MINRMSIZEROTYPEMOUNTPOINTnvme0n1259:101.5T0disksda8:00223.5G0disk|-sda28:20......