【YashanDB知识库】单机升级典型问题及应急措施

升级典型问题

官网升级操作指引 离线升级,一般线上操作之前需要照着做一遍,但是由于数据量少、monit进程在测试环境没有启动等原因,一些操作、配置问题在测试过程中不会暴露,在生成操作的时候才暴露,下面3项是比较常见的容易遗漏的:

1、monit进程没停止引起升级失败

monit进程是什么

monit进程会对yasdb/yasagent/yasom3个进程做监控,如果出现异常重新拉起(注意不止yasdb,yasagent、yasom进程也会被拉起,如下演示杀死yasom、yasagent被重新拉起)。

monit进程没有停止的后果

monit进程没有停止的后果

如果升级过程没有停止monit进程,在停止老的yasdb进程的时候会被自动拉起,升级程序识别到db在OPEN状态,中止升级。

关键日志:

处理方式

停止monit进程,重新执行yasdb升级命令。

停止方式

■ 使用yasboot(yasboot monit stop --cluster debug)

■ 使用kill -9

2、升级前没预留足够的空间做备份

为什么需要备份空间

升级前需要整库做backup,作为升级过程的终极回退手段。处理需要预留backup的空间外,升级过程还会做数据转换,还需要预留下面的空间:

离线升级中会创建一个临时目录(${旧版本的安装目录}/upgrade_tmp/backup)作为备份目录,备份当前数据库ctrl/system/undo/redo等文件的备份(主备环境中各节点分别备份至本机),需要确保拥有足够的存储空间。

官网说明:

没有预留空间的后果

空间不足后果

升级过程,由于空间不足,数据库会变为readonly状态,导致升级中断。

案例:22.2.4.1版本升级到22.2.8.105版本由于空间不足,导致升级失败。

关键日志:

处理方式

清理空间,保证空间足够,执行rollback,rollback成功之后重新升级。

3、配置文件目录错误

哪些目录容易错

集群托管toml文件注意使用旧版本的 Y A S D B H O M E 、 YASDB_HOME、 YASDBHOMEYASDB_DATA,需要特别注意:

配置错误的后果

路径配置错误后果

升级过程,会自动对monit进程做停止,但是如果路径配置错误,会使得兜底的停止动作没执行成功,进而引发上述monit进程没停止的问题。

案例:在22.2.11.100升级到22.2.14.100的时候,错误将yasdb_home目录设置为新的目录,导致自动停止monit进程失败。

关键日志

处理方式

检查升级结果,如果出现already started and status is OPEN, not nomount的错误, 执行下面步骤:

■ 确认yasdb进程没有升级, 还是老版本的

■ 停止monit进程

■ 执行yasdb升级

升级失败应急处理

根据日志快速定位根因

shell命令yasboot的命令,会通过调用yasom,再通过yasom调用各个节点yasagent(主备、集群、分布式每个节点上都有yasagent),最终转换成各个节点内部各个接口的调用。

因此,如果需要查看升级失败的日志,需要查看yasagent.log,路径是$YASDB_HOME/om/{cluster-name}/log/yasagent.log(每天一个日志文件,如果需要查看历史日志可以根据需要查找)

在yasagent.log查找错误日志,如上述典型问题的关键日志,yasagent.log可查找到。

根据错误原因判断执行rollback

崖山DB的升级,实际是分为独立的两步:

■ 托管的升级(即yasom/yasagent)

■ 数据库的升级(即yasdb)

官网上提供的升级rollback是针对数据库升级的rollback,对升级过程中存在的数据转换使用备份的数据做回退(ctrl/redo/undo),前提是数据库升级之前的操作都没有问题。因此我们遇到失败的情况,有时候直接回退是没有用的,如上面空间不足、路径错误问题,直接rollback会有其他错误产生。

使用备份数据做restore

升级之后可能yasagent/yasom/yasdb都已经换了版本,在不能使用yasboot rollback的情况下,需要逐一做回退,使用备份数据做恢复。以下使用22.2.11.100升级到22.2.13.100(集群名称为debug)为例,展示如何回退。

停止yasom/yasagent/yasdb

修改yasboot环境变量

yasboot命令执行的时候,执行的具体路径配置是在~/.yasboot/{cluster-name}.env里配置的:

修改~/.yasboot/{cluster-name}.env,指到原来目录

使用yasboot 重启yasom/yasagent,重启yasdb到nomount状态

主要yasdb使用nomount状态启动:

使用备份文件恢复

参考命令:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/875781.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Solidity】开发心得 receive payable 里面尽量避免写代码,以免其他合约调用transfer 不成功

加密社 最近调试一段solidity代码,本来想测试在收款的时候,记录一个receive 和发出一个log,哪个消耗gas更大 我创建了两个智能合约:一个是TestTransfer,另一个是TransferCount。在TestTransfer合约中,我定义了一个叫做sendOut的函数&#xff…

o1系列亮相!OpenAI的AI新高度,解锁复杂推理能力

OpenAI的——o1系列模型,传说中的「草莓」,终于来与大家见面了! 这个新模型可不一般,它可以进行复杂的推理,就像在认真思考一样,不再是简单的回答问题。CEO奥特曼称,这是一个全新的开始。它不仅…

Mysql基础练习题 1407.排名靠前的旅行者(力扣)

编写解决方案,报告每个用户的旅行距离。 # 返回的结果表单,以 travelled_distance 降序排列 ,如果有两个或者更多的用户旅行了相同的距离, 那么再以 name 升序排列 。 题目链接: https://leetcode.cn/problems/top-travellers/d…

ROADM(可重构光分插复用器)-介绍

1. 引用 https://zhuanlan.zhihu.com/p/163369296 https://zhuanlan.zhihu.com/p/521352954 https://zhuanlan.zhihu.com/p/91103069 https://zhuanlan.zhihu.com/p/50610236 术语: 英文缩写描述灰光模块彩光模块CWDM:Coarse Wave-Length Division …

【机器学习】使用Numpy实现神经网络训练全流程

文章目录 网络搭建前向传播反向传播损失计算完整代码 曾经在面试一家大模型公司时遇到的面试真题,当时费力写了一个小时才写出来,自然面试也挂了。后来复盘,发现反向传播掌握程度还是太差,甚至连梯度链式传播法则都没有弄明白。 网…

Wophp靶场寻找漏洞练习

1.命令执行漏洞 打开网站划到最下,此处的输入框存在任意命令执行漏洞 输入命令whoami 2.SQL注入 搜索框存在SQL注入,类型为整数型 最终结果可以找到管理员账户和密码 3.任意文件上传漏洞 在进入管理员后台后,上传木马文件 访问该文件&…

element表格合并列数据相同合并单元格

<!-- :span-method"objectSpanMethod"合并列 --><el-table stripe :data"morningdataList" style"width: 100%" :span-method"objectSpanMethod" ><el-table-column align"center" label"" :show…

使用 BentoML快速实现Llama-3推理服务

介绍 近年来&#xff0c;开源大模型如雨后春笋般涌现&#xff0c;为自然语言处理领域带来了革命性的变化。从文本生成到代码编写&#xff0c;从机器翻译到问答系统&#xff0c;开源大模型展现出惊人的能力&#xff0c;吸引了越来越多的开发者和企业投身其中。 然而&#xff0…

LabVIEW环境中等待FPGA模块初始化完成

这个程序使用的是LabVIEW环境中的FPGA模块和I/O模块初始化功能&#xff0c;主要实现等待FAM&#xff08;Field-Programmable Gate Array Module&#xff0c;FPGA模块&#xff09;的初始化完成&#xff0c;并处理初始化过程中的错误。让我们逐步分析各部分的功能&#xff1a; 1.…

DataWind将string类型转化为int类型的报错解决

一、现象&#xff1a; toInt64([kernel_wakeup_top_count_str]) 二、日志&#xff1a; 遇到&#xff1a;错误: 直连查询失败&#xff0c;内部异常:<class aeolus.aeolus.libs.exception.aeolus_base_exception.AeolusBaseException>: aeolus/logicQuery/logicQueryMysq…

.NET 一款在线解密Web.config的脚本

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

攻防世界--->re2-cpp-是-awesome

学习笔记。 下载 查壳。 64ida打开。 直接ctrlX进行跟踪 逆向往前看。 没事&#xff0c;对解题并不影响。 编写脚本&#xff1a; ALEXCTF{W3_L0v3_C_W1th_CL45535}

哈希表简单介绍

概念 在顺序结构以及平衡树中&#xff0c;元素关键字与他们存储的位置并没有直接的映射关系&#xff0c;从而会影响查找关键字的效率&#xff0c;顺序结构中查找关键字的时间复杂度为O&#xff08;N&#xff09;&#xff0c;平衡树查找关键字的时间复杂度为O&#xff08;log2^…

.Net6/.Net8(.Net Core) IIS中部署 使用 IFormFile 上传大文件报错解决方案

描述 最近使用.Net6 WebAPI IFormFile对象接收上传文件时大于30MB(兆)的文件就会报错 原因分析 IIS上传文件有大小默认限制大约28.6MB 解决办法 .无论是Net6还是.Net8写法都一样 方法一&#xff1a;IIS可视化操作 1.打开Internet Information Services (llS)管理器&…

Pandas读取某列、某行数据——loc、iloc区别

loc&#xff1a;通过行、列的名称或标签来索引 iloc&#xff1a;通过行、列的索引位置来寻找数据 首先&#xff0c;我们先创建一个DataFrame生成数据 import pandas as pddata {a:[1,2,3,4,5],b:[6,7,8,9,10],c:[11,12,13,14,15] } data pd.DataFrame(data) print(data) 运行…

关于【禁止new对象时在for循环内定义申明变量】

文章目录 简介代码分析反编译之后对比性能测试内存与垃圾回收情况JDK和常用框架怎么写总结依赖 简介 不知道是谁最先提出了一个不要将变量定义在循环内。 然后我们在代码扫描中有一项是&#xff1a;【禁止new对象时在for循环内定义申明变量】 我也好奇为什么不能&#xff1f…

e冒泡排序---复杂度O(X^2)

排序原理: 1.比较相邻的元素。如果前一个元素比后一个元素大&#xff0c;就交换这两个元素的位置。 2.对每一对相邻元素做同样的工作,从开始第一对元素到结尾的最后一对元素。最终最后位置的元素就是最大值, public class 冒泡排序 {public static void main(String[] args) {I…

学习使用LangGraph x GPT-Researcher构建一个多智能体架构的AI自主研究助理

原文&#xff1a;学习使用LangGraph x GPT-Researcher构建一个多智能体架构的AI自主研究助理 - 百度智能云千帆社区 本文为大家剖析一个通过多智能体协作来完成的AI研究助理&#xff0c;可以用来帮助进行各种综合的在线研究任务并输出报告。该应用基于LangGraph以及开源的GPT-…

electron有关mac构建

针对 Mac M1/2/3 芯片的设备&#xff0c;proces.archarm64. 执行下面命令&#xff0c;检查下按照的 node.js 版本是不是 intel x64 指令集&#xff0c;如果是的话安装下 arm64 指令集的 node.js终端中执行以下命令&#xff1a;node -p process.arch 对应的node版本也是arm版 …

YoloV10 训练自己的数据集(推理,转化,C#部署)

目录 一、下载 三、开始训练 train.py detect.py export.py 超参数都在这个路径下 四、C#读取yolov10模型进行部署推理 如下程序是用来配置openvino 配置好引用后就可以生成dll了 再创建一个控件&#xff0c;作为显示 net framework 4.8版本的 再nuget工具箱里下载 …