Oracle 19c服务器时区文件版本差异原因及降级方法咨询
关于Oracle 19c服务器时区文件版本差异与降级的问题解答
1. 两台服务器时区文件版本不同的原因
- 补丁更新不一致:虽然两台都是19.18版本,但Oracle的时区文件会通过单独的DBTIMEZONE补丁或包含时区更新的Release Update(RU)升级。可能其中一台服务器在升级到19.18时附带安装了更高版本的时区补丁,或是后续单独补了时区更新包,另一台没同步操作。
- 部署基础介质差异:两台服务器的初始安装介质可能不同,比如一台用的是自带高版本时区文件的19c安装包,另一台用的是旧版本安装包,之后虽然都升级到19.18,但时区文件未被同步调整。
- 手动修改操作:可能有人手动替换过其中一台服务器的时区文件,导致版本出现差异。
2. 将服务器2的timezlrg_40.dat降级为timezlrg_32.dat的步骤
注意:Oracle官方不建议降级时区文件,可能导致
TIMESTAMP WITH TIME ZONE等时区相关数据计算偏差,操作前务必全量备份数据库。
- 第一步:从服务器1的Oracle主目录
$ORACLE_HOME/oracore/zoneinfo/下复制timezlrg_32.dat文件,粘贴到服务器2的同路径下(复制前备份服务器2原有的timezlrg_40.dat)。 - 第二步:在服务器2上执行数据库操作:
- 关闭数据库:
SHUTDOWN IMMEDIATE; - 启动到挂载状态:
STARTUP MOUNT; - 指定时区文件版本:
ALTER DATABASE SET TIME_ZONE_FILE = 'timezlrg_32.dat'; - 打开数据库:
ALTER DATABASE OPEN;
- 关闭数据库:
- 第三步:验证生效状态,执行查询:
SELECT version FROM v$timezone_file;,确认返回值为32。 - 第四步:检查时区相关数据正确性,比如查询含
TIMESTAMP WITH TIME ZONE类型字段的表,验证时间转换是否正常,避免数据异常。
内容的提问来源于stack exchange,提问作者Trang Nguyen
相关产品推荐
相关产品推荐

