首页 > 其他分享 >【YashanDB知识库】单机升级典型问题及应急措施

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

时间:2024-09-14 17:23:01浏览次数:3  
标签:monit YashanDB 单机 知识库 yasdb 升级 进程 yasagent yasboot

升级典型问题

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

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

monit进程是什么

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

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

monit进程没有停止的后果

monit进程没有停止的后果

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

关键日志:

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

处理方式

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

停止方式

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

■ 使用kill -9

【YashanDB知识库】单机升级典型问题及应急措施_崖山数据库_03

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

为什么需要备份空间

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

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

官网说明:

【YashanDB知识库】单机升级典型问题及应急措施_崖山数据库_04

没有预留空间的后果

空间不足后果

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

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

关键日志:

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

处理方式

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

3、配置文件目录错误

哪些目录容易错

集群托管toml文件注意使用旧版本的【YashanDB知识库】单机升级典型问题及应急措施_数据库_06YASDB_DATA,需要特别注意:

【YashanDB知识库】单机升级典型问题及应急措施_崖山数据库_07

配置错误的后果

路径配置错误后果

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

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

关键日志

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

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

处理方式

检查升级结果,如果出现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(每天一个日志文件,如果需要查看历史日志可以根据需要查找)

【YashanDB知识库】单机升级典型问题及应急措施_崖山数据库_10

在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

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

修改yasboot环境变量

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

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

【YashanDB知识库】单机升级典型问题及应急措施_崖山数据库_12

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

主要yasdb使用nomount状态启动:

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

使用备份文件恢复

参考命令:

【YashanDB知识库】单机升级典型问题及应急措施_崖山数据库_14

标签:monit,YashanDB,单机,知识库,yasdb,升级,进程,yasagent,yasboot
From: https://blog.51cto.com/u_16065869/12018116

相关文章

  • 【YashanDB知识库】单机升级典型问题及应急措施
    升级典型问题官网升级操作指引离线升级,一般线上操作之前需要照着做一遍,但是由于数据量少、monit进程在测试环境没有启动等原因,一些操作、配置问题在测试过程中不会暴露,在生成操作的时候才暴露,下面3项是比较常见的容易遗漏的:1、monit进程没停止引起升级失败monit进程是什么mon......
  • es8.15单机部署
    1.下载需要的安装版本我这里下载的是6.8.5,elasticsearch-8.15.1-linux-x86_64.tar.gz下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch 2.创建中间件安装目录和数据文件、日志文件目录[root@hadoop-slave1soft]#mkdir-p/usr/local/services[roo......
  • 【YashanDB知识库】yasql对字符串中分号的判定
    本文转载自YashanDB官网,具体内容请见https://www.yashandb.com/newsinfo/7352673.html?templateId=1718516问题现象这个问题发生在从pg向崖山进行数据迁移的过程中,通过pg\_dump将数据导出到文件后进行执行,第一条语句执行报错,在pg上执行是不会报错的,在崖山和oracle上执行均报错。与......
  • 实现 Excel 文件导入到向量数据库(Milvus),并支持 先查询知识库(Milvus),然后再查询大模型(Ol
    为了实现Excel文件导入到向量数据库(Milvus),并支持先查询知识库(Milvus),然后再查询大模型(Ollama)的功能,以下是具体的实现步骤:1.导入Excel数据到向量数据库(Milvus)首先,您需要将Excel文件中的数据向量化,并将这些向量导入到Milvus数据库中。可以使用pandas读取Excel文件,使用......
  • docker安装运行kafka单机版
    这里我们安装一下kafka的单机版,由于kafka是基于zk进行管理的,如果我们没有安装过zk的话,需要进行安装好zk再安装kafka,当然如果已经安装过了,那就没必要安装了。我们可以执行dockerimages命令查看我们的zk镜像是否已经存在了。执行的主要的流程如下所示:1.docker拉取zookeeper镜像......
  • 单机快速部署开源、免费的分布式任务调度系统——Apache DolphinScheduler
    本文主要为大家介绍ApacheDolphinScheduler的单机部署方式,方便大家快速体验。环境准备需要Java环境,这是一个老生常谈的问题,关于Java环境的安装与配置期望大家都可以熟练掌握。验证java环境java-version下载安装包并解压使用wget下载安装包wgethttps://dlcdn.apache.......
  • 开源模型应用落地-qwen2-7b-instruct-LoRA微调-unsloth(让微调起飞)-单机单卡-V100(十七)
    一、前言  本篇文章将在v100单卡服务器上,使用unsloth去高效微调QWen2系列模型,通过阅读本文,您将能够更好地掌握这些关键技术,理解其中的关键技术要点,并应用于自己的项目中。  使用unsloth能够使模型的微调速度提高2-5倍。在处理大规模数据或对时间要求较高的场景下......
  • 【YashanDB知识库】数据库获取时间和服务器时间不一致
    本文转自YashanDB官网,具体内容可见[https://www.yashandb.com/newsinfo/7352662.html?templateId=1718516]【问题分类】功能使用【关键字】服务器时间、数据库时间【问题描述】数据库获取的时间和服务器时间不一致。【问题原因分析】YashanDB并没有时区的概念,数据库的时间以......
  • 【YashanDB知识库】archivelog磁盘满导致数据库abnormal
    本文转自YashanDB官网,具体内容可见[https://www.yashandb.com/newsinfo/7352661.html?templateId=1718516]【问题分类】功能使用【关键字】磁盘空间满,archivelog日志,archivelog自动清理【问题描述】数据库状态变更为abnormal,检查V$DIAG_INCIDENT视图,发现提示信息为archive日志无法......
  • 【YashanDB知识库】archivelog磁盘满导致数据库abnormal
    本文转自YashanDB官网,具体内容可见[https://www.yashandb.com/newsinfo/7352661.html?templateId=1718516]【问题分类】功能使用【关键字】磁盘空间满,archivelog日志,archivelog自动清理【问题描述】数据库状态变更为abnormal,检查V$DIAG_INCIDENT视图,发现提示信息为archive日志......