Многие страны не следят за изменениями DST, и по умолчанию они настроены таким образом, что изменения времени DST изменяют их системное время и даже время работы базы данных на них.
В этом руководстве описаны действия по отключению DST и изменению часового пояса на сервере Linux.
В этом примере время устанавливается согласно Москве с часовым поясом GMT+3.
Файлы в ОС задействованы следующие:
/etc/sysconfig/clock /etc/localtime
Если вы загляните в каталог /usr/share/zoneinfo/Etc на сервере, вы увидите подкаталоги по странам и даже по часовым поясам внутри страны.
Вам необходимо определить, какие каталоги и подфайлы для вашего целевого хоста.
В нашем примере мы находимся в Москве, GMT+3: 00.
Там лежат файлы zoneinfo, которые отличаются от жестко закодированных DST:
GMT GMT0 GMT-0 GMT+0 GMT-1 GMT+1 GMT-2 GMT+2 GMT-3 GMT+3 GMT-4 GMT+4 GMT-5 GMT+5 GMT-6 GMT+6 GMT-7 GMT+7 GMT-8 GMT+8 GMT-9 GMT+9 GMT-10 GMT+10 GMT-11 GMT+11 GMT-12 GMT+12 GMT-13 GMT-14
Таким образом, каталог / файл для них будет: /usr/share/zoneinfo/Etc/GMT+3
1. Измените файл /etc/sysconfig/clock следующим образом:
# vi /etc/sysconfig/clock ZONE="Etc/GMT+3" UTC=true ARC=false
2. Выполните следующие действия, чтобы правильно установить файл / ссылка /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.
Также команда «data» должна возвращать правильное время для Москвы- GST+d3: 00.
○ → date
Пн май 27 16:21:09 MSK 2019
3. Для баз данных – единственное, в чем вы должны убедиться, это то, что у владельца ОС БД нет установленных переменных среды TZ.
Когда ваши базы данных запускаются – если они не видят никаких установленных переменных TZ – они будут использовать время ОС в качестве времени БД.
– Подключитесь как пользователь БД и запустите:
# env |grep -i TZ
Вывод вышеуказанной команды не должен показывать ничего, установленного в ОС как «TZ =»
. Если какой-то часовой пояс уже установлен, вам нужно изменить профиль пользователя Oracle Db, чтобы он не был установлен.