暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

[译] AutoUpgrade 可以恢复吗?

原创 tinge 2022-06-16
279

原文地址:Is AutoUpgrade resumable?
原文作者:Daniel

简短的回答:是的!

最近,我被问到几个类似的问题:

如果我与 AutoUpgrade 的 SSH 会话丢失会怎样?(参见附录)
如果 AutoUpgrade 崩溃会怎样?
如果我错误地退出控制台会怎样?
首先,不要惊慌。其次,只需使用相同的命令行重新启动 AutoUpgrade。在启动过程中,AutoUpgrade 将确定它应该恢复丢失的会话,并将重新启动升级。

image.png

当 AutoUpgrade 终止或终止时,它启动的数据库升级也会随之终止。如果您丢失了 SSH 会话,可能会发生这种情况。数据库升级停止,但数据库仍在运行,很可能处于UPGRADE模式。如果您错误地退出 AutoUpgrade(键入exit在作业控制台中),它将首先停止升级,然后关闭数据库。无论如何,当您之后重新启动 AutoUpgrade 时,它​​会发现之前的 AutoUpgrade 会话正在运行。它将从上一个会话中恢复信息,并在需要时重新启动数据库。之后,它将重新启动升级。如果之前的数据库升级是在第 54 阶段,则 AutoUpgrade 将从第 54 阶段重新开始。这意味着升级中的所有先前工作都将保留,您可以继续进行,就像什么都没发生一样。

不恢复上一个会话

如果您出于某种原因不希望 AutoUpgrade 恢复上一个会话。让我们假设 AutoUpgrade 崩溃了,而您决定恢复数据库。现在你想重新开始。在这种情况下,您需要清除恢复数据,否则 AutoUpgrade 会混淆。

您可以在文档中阅读有关参数的更多信息。

首选小锤子

clear_recovery_data您可以通过在命令行上添加来清除特定作业的恢复,并使用jobs参数来明确必须清除哪些作业恢复数据。

$ java -jar autoupgrade.jar -config PROD.cfg -mode analyze -clear_recovery_data -jobs 100,101,102

现在,自动升级将再次从头开始,但仅限于指定的作业。

大锤子

如果您不指定jobs参数,则 AutoUpgrade 将清除所有作业的恢复数据:

$ java -jar autoupgrade.jar -config PROD.cfg -mode analyze -clear_recovery_data

请注意,配置文件中指定的所有升级都会发生这种情况。请记住,AutoUpgrade 的一大好处是一个配置文件可用于升级 10 或 100 个数据库。

大锤

我会推荐以前的锤子,但使用这种方法作为最后的解决方案:删除 AutoUpgrade 使用的所有文件。

首先,删除 中指定的目录global.autoupg_log_dir。接下来,删除 中指定的目录.log_dir。通常默认情况下,第二个目录是第一个目录的子目录,因此在大多数情况下,您只需删除第一个目录。如果您在同一个配置文件中指定了多个升级,您可能需要删除多个目录prefix1.log_dir,prefix2.log_dir依此类推。

请注意,您正在清除 AutoUpgrade 使用的所有信息。如果您对多个 AutoUpgrade 会话使用相同的全局日志记录目录(我不建议这样做),那么您将把事情搞砸。但是,如果您只是在服务器上升级这个特定的数据库,那么您可以安全地删除目录以重新开始。

恢复测试数据库——重新开始

很多时候,测试数据库会升级多次。即使在成功升级后,您也可能希望使用不同的设置重试升级。如果您使用 AutoUpgrade,则必须按照上面的说明清除恢复数据。AutoUpgrade 不知道您已恢复数据库。据它所知,之前的升级是成功的。

结论

恢复 AutoUpgrade 会话非常简单。只需使用相同的命令行启动 AutoUpgrade。它识别先前的 AutoUpgrade 会话,并自动恢复。之前的所有工作都已恢复,升级将从停止的地方恢复。

附录

丢失 SSH 会话
我从几个人那里听说他们经历了 SSH 会话超时,因为升级时 AutoUpgrade 没有产生任何屏幕输出。我们已经制定了一些常规屏幕输出的计划,因此应该避免这种情况。

在实现之前,我建议您查看SSH中的keep alive选项:
$ man ssh

就个人而言,我总是以这种方式启动 SSH,您可以将其放入您的SSH 配置中:

ssh -o ServerAliveInterval=300```



「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论