更新时区文件的策略 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

更新时区文件的策略

升级数据库引擎和将 TIMEZONE_FILE_AUTOUPGRADE 选项添加到选项组是单独的操作。如果有较新的时区文件可用,则添加 TIMEZONE_FILE_AUTOUPGRADE 选项会启动对时区文件的更新。您可以立即或在下一个维护时段运行以下命令(仅显示相关选项):

  • 仅使用以下 RDS CLI 命令升级数据库引擎:

    modify-db-instance --engine-version name ...
  • 仅使用以下 CLI 命令添加 TIMEZONE_FILE_AUTOUPGRADE 选项:

    add-option-to-option-group --option-group-name name --options OptionName=TIMEZONE_FILE_AUTOUPGRADE ...
  • 使用以下 CLI 命令升级您的数据库引擎并向您的实例添加新的选项组:

    modify-db-instance --engine-version name --option-group-name name ...

更新策略取决于是要一起升级数据库和时区文件,还是只执行其中一个操作。请记住,如果您更新选项组,然后在单独的 API 操作中升级数据库引擎,则在升级数据库引擎时,当前可能正在进行时区文件更新。

本部分中的示例假定以下内容:

  • 您尚未将 TIMEZONE_FILE_AUTOUPGRADE 添加到当前与您的数据库实例关联的选项组。

  • 您的数据库实例使用数据库版本 19.0.0.0.ru-2019-07.rur-2019-07.r1 和时区文件 DSTv33。

  • 您的数据库实例文件系统包含文件 DSTV34。

  • 版本更新 19.0.0.0.ru-2022-10.rur-2022-10.r1 包含 DSTv35。

要更新时区文件,您可以使用以下策略。

更新时区文件而不升级引擎

在这种情况下,您的数据库使用 DSTv33,但 DSTv34 在您的数据库实例文件系统上可用。您希望将数据库实例使用的时区文件从 DSTv33 更新到 DSTv34,但您不想将您的引擎升级到新的次要版本,其中包括 DSTv35。

add-option-to-option-group 命令中,将 TIMEZONE_FILE_AUTOUPGRADE 添加到您的数据库实例使用的选项组。指定是立即添加此选项,还是将其推迟到维护时段。应用 TIMEZONE_FILE_AUTOUPGRADE 选项后,RDS 将执行以下操作:

  1. 检查是否有新的 DST 版本。

  2. 确定 DSTv34 在文件系统上是否可用。

  3. 立即更新时区文件。

升级时区文件和数据库引擎版本

在这种情况下,您的数据库使用 DSTv33,但 DSTv34 在您的数据库实例文件系统上可用。您希望将数据库引擎升级到包含 DSTv35 的次要版本 19.0.0.0.ru-2022-10.rur-2022-10.r1,并在引擎升级期间将时区文件更新到 DSTv5。这样,您的目标是跳过 DSTv34 并将时区文件直接更新到 DSTv35。

要同时升级引擎和时区文件,请使用 --option-group-name--engine-version 选项运行 modify-db-instance。您可以立即运行此命令,也可以将其推迟到维护时段。在 In --option-group-name 中指定包含 TIMEZONE_FILE_AUTOUPGRADE 选项的选项组。例如:

aws rds modify-db-instance --db-instance-identifier my-instance \ --engine-version new-version \ ----option-group-name og-with-timezone-file-autoupgrade \ --apply-immediately

RDS 开始将引擎升级到 19.0.0.0.ru-2022-10.rur-2022-10.r1。应用 TIMEZONE_FILE_AUTOUPGRADE 选项后,RDS 会检查是否有新的 DST 版本,看到 DSTv35 在 19.0.0.0.ru-2022-10.rur-2022-10.r1 中可用,并立即开始更新到 DSTv35。

要立即升级您的引擎,然后升级您的时区文件,请按顺序执行操作:

  1. 仅使用以下 CLI 命令升级数据库引擎:

    aws rds modify-db-instance \ --db-instance-identifier my-instance \ --engine-version new-version \ --apply-immediately
  2. 使用以下 CLI 命令将 TIMEZONE_FILE_AUTOUPGRADE 选项添加到附加到您的实例的选项组:

    aws rds add-option-to-option-group \ --option-group-name og-in-use-by-your-instance \ --options OptionName=TIMEZONE_FILE_AUTOUPGRADE \ --apply-immediately

升级数据库引擎版本而不更新时区文件

在这种情况下,您的数据库使用 DSTv33,但 DSTv34 在您的数据库实例文件系统上可用。您希望将数据库引擎升级到版本 19.0.0.0.ru-2022-10.rur-2022-10.r1(其中包含 DSTv35),但保留时区文件 DSTv33。您可能出于以下原因来选择该策略:

  • 您的数据不使用 TIMESTAMP WITH TIME ZONE 数据类型。

  • 您的数据使用 TIMESTAMP WITH TIME ZONE 数据类型,但您的数据不受时区更改的影响。

  • 您想推迟更新时区文件,因为您无法容忍额外的停机时间。

您的策略取决于以下哪些可能性是确实存在的:

  • 您的数据库实例未与包含 TIMEZONE_FILE_AUTOUPGRADE 的选项组关联。在 modify-db-instance 命令中,不要指定新的选项组,这样 RDS 就不会更新您的时区文件。

  • 您的数据库实例目前与一个包含 TIMEZONE_FILE_AUTOUPGRADE 的选项组关联。在单个 modify-db-instance 命令中,将您的数据库实例与不包含 TIMEZONE_FILE_AUTOUPGRADE 的选项组关联,并将您的数据库引擎升级到 19.0.0.0.ru-2022-10.rur-2022-10.r1。