更新时区文件的策略
升级数据库引擎和将 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-namename
...
更新策略取决于是要一起升级数据库和时区文件,还是只执行其中一个操作。请记住,如果您更新选项组,然后在单独的 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 将执行以下操作:
-
检查是否有新的 DST 版本。
-
确定 DSTv34 在文件系统上是否可用。
-
立即更新时区文件。
升级时区文件和数据库引擎版本
在这种情况下,您的数据库使用 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-versionnew-version
\ ----option-group-nameog-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。
要立即升级您的引擎,然后升级您的时区文件,请按顺序执行操作:
-
仅使用以下 CLI 命令升级数据库引擎:
aws rds modify-db-instance \ --db-instance-identifier
my-instance
\ --engine-versionnew-version
\ --apply-immediately -
使用以下 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。