Viele Länder folgen keinen Sommerzeitänderungen und sind standardmäßig so konfiguriert, dass Sommerzeitänderungen ihre Systemzeiten und sogar die darauf laufenden Datenbankzeiten ändern. Dieser Beitrag beschreibt Schritte zum Deaktivieren der Sommerzeit und zum Ändern der Zeitzone auf einem Linux-Server.
In diesem Beispiel wird die Zeit gemäß dem brasilianischen Land eingestellt, mit einer Zeitzone von GST-3.
Betroffene Betriebssystemdateien:
/etc/sysconfig/clock /etc/localtime
Wenn Sie in das Verzeichnis /usr/share/zoneinfo/Etc schauen Auf dem Server sehen Sie Unterverzeichnisse nach Land und sogar nach Zeitzone innerhalb des Landes. Sie müssen das Verzeichnis und die Unterdateien für Ihren Zielhost angeben.
In unserem Beispiel befinden wir uns an der Ostküste in Brasilien, GST-3:00. Es gibt Zoneninfo-Dateien, die den Unterschied zur Sommerzeit fest codiert haben:
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
Das Verzeichnis/die Datei für sie wäre also:/usr/share/zoneinfo/Etc/GMT-3
1. Ändern Sie die Datei /etc/sysconfig/clock zu lesen:
# vi /etc/sysconfig/clock ZONE="Etc/GMT-3" UTC=true ARC=false
2. Befolgen Sie diese Schritte, um die Datei/den Link /etc/localtime richtig einzustellen :
# cd /etc # rm /etc/localtime # ln -s /usr/share/zoneinfo/Etc/GMT-3 /etc/localtime # ls -al localtime # date
Der obige Befehl „ls -la localtime“ sollte die Datei /etc/localtime als symbolischen Link zu /usr/share/zoneinfo/Etc/GMT-3 anzeigen. Auch der Befehl „date“ sollte die korrekte Zeit für Brasilien Ost zurückgeben – GST-3:00.
3. Für Datenbanken müssen Sie nur sicherstellen, dass der Eigentümer des DB-Betriebssystems keine Umgebungsvariablen von „TZ“ festgelegt hat. Wenn Ihre Datenbanken starten - wenn sie keine gesetzten TZ-Variablen sehen - verwenden sie die Betriebssystemzeit als DB-Zeit.
– Verbinden Sie sich als DB-Benutzer und führen Sie Folgendes aus:
# env |grep -i TZ
Die Ausgabe des obigen Befehls sollte nichts anzeigen, was im Betriebssystem als „TZ=“ festgelegt wurde. Wenn bereits eine Zeitzone festgelegt ist, müssen Sie das Profil des Oracle Db-Benutzers so ändern, dass diese nicht festgelegt ist.