许多国家/地区不遵循 DST ( Daylight Savings Time) 更改,默认情况下,它们被配置为使 DST 时间更改更改其系统时间,甚至在其上运行的数据库时间。
这篇文章概述了在 Linux 服务器上禁用 DST 和修改时区的步骤。
在此示例中,时间设置为每个巴西国家/地区,时区为 GST-3.
涉及的操作系统文件:
/etc/sysconfig/clock /etc/localtime
如果我们查看服务器上的目录 /usr/share/zoneinfo/Etc,我们将看到按国家甚至按国家内时区划分的子目录。
我们需要确定目标主机的目录和子文件。
在我们的示例中,我们位于巴西的东海岸,GST-3:00。
有与 DST 硬编码不同的 zoneinfo 文件:
GMT GMT0 GMT-0 GMT+0 GMT-1 GMT+1 GMT-2 GMT+2 GMT-3 GMT+3 GMT-4
因此,它们的目录/文件将是:/usr/share/zoneinfo/Etc/GMT-3
- 修改文件/etc/sysconfig/clock为:
# vi /etc/sysconfig/clock ZONE="Etc/GMT-3" UTC=true ARC=false
- 按照以下步骤正确设置文件/链接 /etc/localtime :
# cd /etc # rm /etc/localtime # ln -s /usr/share/zoneinfo/Etc/GMT-3 /etc/localtime # ls -al localtime # date
上面的“ls -la localtime”命令应该将文件 /etc/localtime 显示为指向 /usr/share/zoneinfo/Etc/GMT-3 的符号链接。
此外,'date' 命令应该返回巴西 EastGST-3:00 的正确时间。
- 对于数据库,我们唯一需要确保的是 DB OS 所有者没有设置任何“TZ”环境变量。
当数据库启动时,如果它们没有看到任何 TZ 变量集,它们将使用 OS 时间作为 DB 时间。
以数据库用户身份连接并运行:
# env |grep -i TZ
上述命令的输出应显示操作系统中没有设置为“TZ=”。
如果已经设置了某个时区,那么我们需要修改 Oracle Db 用户的配置文件,以便取消设置。
日期:2020-09-17 00:10:50 来源:oir作者:oir