Adobe Commerce上的数据库存储疑难解答

本文提供了用于诊断和解决Adobe Commerce上数据库存储问题的逐步故障排除指南。 它有助于识别与/tmp/data/mysql中缺少空间、inode用完以及配置更改(如非默认的MySQL tmpdir)相关的根本原因。 每个步骤都会显示一个诊断问题,并根据您的回答引导您查看相关命令、日志或文档。

描述 description

环境

云基础架构上的Adobe Commerce

问题/症状

  • 由数据库存储问题导致的站点中断或停机
  • 错误,例如​设备(28)上已无剩余空间
  • 无法通过SSH连接到节点,因为已装入/tmp
  • /tmp/data/mysql目录中的磁盘使用率较高
  • 客户无法将产品添加到购物车
  • 数据库连接失败
  • galera群集错误,如​SQLSTATE[ 08S01] :通信链接失败: 1047 WSREP
  • 查询耗尽可用存储并导致节点崩溃
  • IUse% > 90%指示的Inode耗尽(文件太多)

解决方法 resolution

步骤1 — 标识存在空间问题的目录

是否因空间不足而出现/tmp问题?

这可以通过一系列症状来指示,包括:

  • /tmp装载已满
  • 站点停止或中断
  • 无法通过SSH连接到节点
  • 错误,如​设备上没有剩余空间(28)

有关因/tmp已满导致的错误列表,请查看/tmp装入已满

还是由于缺少空间而导致/data/mysql问题? 症状包括:

  • 站点中断
  • 客户无法将产品添加到购物车
  • 数据库连接失败
  • Galera错误,如​SQLSTATE[ 08S01] :通信链接失败: 1047 WSREP

有关MySQL磁盘空间不足导致的错误列表,请参阅云基础架构上Adobe Commerce上的MySQL磁盘空间不足

如果不确定您是否存在磁盘空间问题并且您拥有New Relic帐户,请转到New Relic基础架构监视主机页面。 从那里:

  • 单击 存储 选项卡
  • 图表显示 下拉列表从5个结果更改为20个结果
  • 在“已用磁盘百分比”图表或表中查找表中磁盘使用率较高的表格

有关更多详细步骤,请参阅New Relic基础架构监控>存储选项卡

如果您出现上述任何症状,请检查索引节点的状态,确保这不是由文件号问题引起的。 在CLI/终端中运行:

code language-none
df -ih

IUse% >是90%吗?

然后继续执行步骤3。

步骤2 — 检查磁盘空间

检查磁盘空间使用情况?

减少文件数后,在CLI/终端中运行以下命令以检查/tmp/data/mysql中的磁盘空间使用情况。

code language-none
df -h | grep mysql
df -h | grep tmp

/tmp/data/mysql的使用率是否大于70%?

  • — 继续执行步骤3。

  • — 查询可能耗尽可用存储。 这可能会使节点崩溃,从而终止查询并删除tmp文件。 登录到MySQL命令行客户端并运行:

    code language-none
    SHOW PROCESSLIST;
    

检查输出中是否存在有问题的查询。 如果未解析,提交支持票证以请求更多空间。

步骤3 — 识别高使用率的目录

哪个目录的使用率超过70%?
  • /tmp — 继续执行步骤4。
  • /data/mysql — 继续执行步骤5。

注意:默认情况下,数据库tmpdir写入/tmp。 要检查数据库配置,请登录到MySQL命令行客户端并运行:

code language-none
SHOW VARIABLES LIKE "TMPDIR";

如果tmpdir仍在写入/tmp,您将在“值”列中看到/tmp

步骤4 — 故障排除/tmp mount full

疑难解答/tmp装载已满

请遵循疑难解答/tmp mount full for Adobe Commerce。 应用解决方案后,在CLI/终端中运行:

code language-none
df -h | grep mysql
df -h | grep tmp

使用率是否为< 70%?

注意: 疑难解答/tmp装入完整中的解决方案是为未更改数据库tmpdir变量(默认写入/tmp)的商家设计的。 如果您更改了tmpdir值,则疑难解答/tmp mount full中的说明将没有帮助。

步骤5 — 检查默认值

检查默认值

数据库配置可能不再为原始默认值。 通过在MySQL命令行客户端中运行来查找数据库tmpdir配置: SELECT @@DATADIR;

如果输出/data/mysql/,则tmpdir正在写入/data/mysql/。 按照云基础架构上Adobe Commerce上的MySQL磁盘空间不足中的步骤增加空间。 然后在CLI/终端中运行:

code language-none
df -h | grep mysql
df -h | grep tmp

使用率是否为< 70%?

相关阅读

在Commerce实施行动手册中修改数据库表的最佳实践

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f