

# 更新时区文件的策略
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies"></a>

升级数据库引擎和将 `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。

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

**Topics**
+ [更新时区文件而不升级引擎](#Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.no-upgrade)
+ [升级时区文件和数据库引擎版本](#Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.upgrade)
+ [升级数据库引擎版本而不更新时区文件](#Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.upgrade-only)

## 更新时区文件而不升级引擎
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.no-upgrade"></a>

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

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

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

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

1. 立即更新时区文件。

## 升级时区文件和数据库引擎版本
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.upgrade"></a>

在这种情况下，您的数据库使用 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
   ```

1. 使用以下 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
   ```

## 升级数据库引擎版本而不更新时区文件
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.upgrade-only"></a>

在这种情况下，您的数据库使用 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。