Oracle 时区文件概览
Oracle Database 时区文件存储以下信息:
-
相对于协调世界时(UTC)的偏移量
-
夏令时(DST)的过渡时间
-
标准时间和 DST 的缩写
Oracle Database 提供多个版本的时区文件。在本地环境中创建 Oracle 数据库时,可以选择时区文件版本。有关更多信息,请参阅《Oracle Database 全球化支持指南》中的选择时区文件
如果 DST 的规则发生变化,Oracle 将发布新的时区文件。Oracle 发布这些新的时区文件与每季度版本更新(RU)和版本更新修订(RUR)的时间表无关。时区文件位于数据库主机上的目录 $ORACLE_HOME/oracore/zoneinfo/
中。时区文件名使用的格式为 DstVversion
,如 DSTV35 所示。
时区文件如何影响数据传输
在 Oracle 数据库中,TIMESTAMP WITH TIME ZONE
数据类型存储时间戳和时区数据。TIMESTAMP WITH TIME ZONE
数据类型的数据使用关联时区文件版本中的规则。这样,当您更新时区文件时,现有 TIMESTAMP WITH TIME ZONE
数据会受到影响。
在使用不同版本时区文件的数据库之间传输数据时,可能会出现问题。例如,如果您从时区文件版本比目标数据库更高的源数据库导入数据,数据库会发出 ORA-39405
错误。以前,您必须使用以下任一方法解决此错误:
-
使用所需的时区文件创建 RDS for Oracle 数据库实例,从源数据库导出数据,然后将其导入到新数据库中。
-
使用 Amazon DMS 或逻辑复制来迁移数据。
使用 TIMEZONE_FILE_AUTOUPGRADE 选项进行自动更新
当附加到 RDS for Oracle 数据库实例的选项组包括 TIMEZONE_FILE_AUTOUPGRADE
选项时,RDS 将自动更新您的时区文件。通过确保 Oracle 数据库使用相同的时区文件版本,可以避免在不同环境之间移动数据时采用耗时的手动方法。容器数据库(CDB)和非 CDB 均支持 TIMEZONE_FILE_AUTOUPGRADE
选项。
当您向选项组添加 TIMEZONE_FILE_AUTOUPGRADE
选项时,您可以选择是立即添加此选项,还是在维护时段添加此选项。数据库实例应用新选项后,RDS 会检查它是否可以安装更新的 DSTvversion
文件。目标 DSTvversion
取决于以下内容:
-
数据库实例当前正在运行的次要引擎版本
-
您要将数据库实例升级到的次要引擎版本
例如,您当前的时区文件版本可能是 DSTv33。当 RDS 将更新应用到选项组时,它可能会确定 DSTv34 在数据库实例文件系统上当前可用。然后,RDS 自动将您的时区文件更新到 DSTv34。
要在支持的 RDS 版本更新中查找可用的 DST 版本,请查看适用于 Oracle 的 Amazon Relational Database Service(Amazon RDS)发布说明中的补丁。例如,版本 19.0.0.0.ru-2022-10.rur-2022-10.r1 列出补丁 34533061: RDBMS - DSTV39 UPDATE - TZDATA2022C。