16.2. 数据库清理

Compute 服务包含一个管理工具 nova-manage,可用于执行部署、升级、清理和维护相关的任务,如应用数据库模式、在升级过程中执行在线数据迁移,以及管理和清理数据库。

director 使用 cron 在 overcloud 上自动执行以下数据库管理任务:

  • 通过将已删除的行从 production 表中移到影子表格,从而存档已删除的实例记录。
  • 在归档完成后,从影子表格中清除已删除的行。

16.2.1. 配置数据库管理

cron 作业使用默认设置来执行数据库管理任务。默认情况下,数据库存档 cron 作业每天在 00:01 运行,数据库清除 cron 作业每天在 05:00 运行,两者都在 0 到 3600 秒之间运行。您可以使用 heat 参数根据需要修改这些设置。

流程

  1. 打开您的计算环境文件。
  2. 添加控制您要添加或修改的 cron 作业的 heat 参数。例如,要在归档后立即清除影子表格,请将以下参数设置为 "True" :

    parameter_defaults:
      ...
      NovaCronArchiveDeleteRowsPurge: True

    有关管理数据库 cron 作业的 heat 参数的完整列表,请参阅 计算服务自动化数据库管理的配置选项

  3. 保存对 Compute 环境文件的更新。
  4. 使用其他环境文件将计算环境文件添加到堆栈中,并部署 overcloud:

    (undercloud)$ openstack overcloud deploy --templates \
      -e [your environment files] \
      -e /home/stack/templates/<compute_environment_file>.yaml

16.2.2. Compute 服务自动化数据库管理的配置选项

使用以下 heat 参数启用和修改管理数据库的自动化 cron 作业。

表 16.1. Compute (nova)服务 cron 参数

参数描述

NovaCronArchiveDeleteAllCells

将此参数设置为 "True" 以对所有单元归档已删除的实例记录。

Default: True

NovaCronArchiveDeleteRowsAge

使用此参数根据其年龄以天为单位归档已删除的实例记录。

设置为 0, 以在影子表格中立即存档数据。

默认: 90

NovaCronArchiveDeleteRowsDestination

使用此参数配置文件,以记录已删除的实例记录。

默认: /var/log/nova/nova-rowsflush.log

NovaCronArchiveDeleteRowsHour

使用此参数配置小时,在其中运行 cron 命令将已删除的实例记录移到另一表中。

默认: 0

NovaCronArchiveDeleteRowsMaxDelay

在将已删除的实例记录移动到另一表之前,使用这个参数配置最大延迟(以秒为单位)。

默认: 3600

NovaCronArchiveDeleteRowsMaxRows

使用此参数配置可移动到另一表格的最大已删除实例记录数。

默认: 1000

NovaCronArchiveDeleteRowsMinute

使用此参数配置小时的分钟,该小时运行 cron 命令将已删除的实例记录移到另一表中。

默认: 1

NovaCronArchiveDeleteRowsMonthday

使用此参数配置月份的某一天,以运行 cron 命令,以将已删除的实例记录移到另一表中。

默认: Chat (每天)

NovaCronArchiveDeleteRowsMonth

使用此参数配置在其中运行 cron 命令,以将已删除的实例记录移到另一表中。

默认: Chat (每月)

NovaCronArchiveDeleteRowsPurge

将此参数设置为 "True",以在计划的归档后立即清除影子表格。

默认 : False

NovaCronArchiveDeleteRowsUntilComplete

将此参数设置为 "True" 以继续将已删除的实例记录移动到另一表中,直到所有记录都移动为止。

Default: True

NovaCronArchiveDeleteRowsUser

使用此参数配置拥有归档已删除实例记录的 crontab 的用户,以及可访问 crontab 使用的日志文件。

默认 : nova

NovaCronArchiveDeleteRowsWeekday

使用此参数配置每周几天,以运行 cron 命令,以将已删除的实例记录移到另一表中。

默认: Chat (每天)

NovaCronPurgeShadowTablesAge

使用此参数根据其年龄(以天为单位)清除影子表格。

设置为 0, 以清除比现在旧的影子表格。

默认 :14

NovaCronPurgeShadowTablesAllCells

将此参数设置为 "True",以清除所有单元中的影子表格。

Default: True

NovaCronPurgeShadowTablesDestination

使用此参数配置用于记录清除影子表格的文件。

默认: /var/log/nova/nova-rowspurge.log

NovaCronPurgeShadowTablesHour

使用此参数配置小时,在其中运行 cron 命令来清除影子表格。

默认: 5

NovaCronPurgeShadowTablesMaxDelay

在清除影子表前,使用此参数配置最大延迟(以秒为单位)。

默认: 3600

NovaCronPurgeShadowTablesMinute

使用此参数配置小时的分钟,该小时运行 cron 命令来清除影子表格。

默认: 0

NovaCronPurgeShadowTablesMonth

使用此参数配置在其中运行 cron 命令以清除影子表格的月。

默认: Chat (每月)

NovaCronPurgeShadowTablesMonthday

使用此参数配置月份的哪个天,以运行 cron 命令来清除影子表格。

默认: Chat (每天)

NovaCronPurgeShadowTablesUser

使用此参数配置拥有 crontab 的用户,该用户清除影子表格,并有权访问 crontab 使用的日志文件。

默认 : nova

NovaCronPurgeShadowTablesVerbose

使用此参数在日志文件中为清除影子表格启用详细日志记录。

默认 : False

NovaCronPurgeShadowTablesWeekday

使用此参数配置每周的某一天,以运行 cron 命令来清除影子表格。

默认: Chat (每天)