Molti paesi non seguono le modifiche all'ora legale e, per impostazione predefinita, sono configurati in modo che le modifiche all'ora legale alterino gli orari di sistema e persino gli orari del database in esecuzione su di essi. Questo post descrive i passaggi per disabilitare l'ora legale e modificare il fuso orario su un server Linux.
In questo esempio, l'ora è impostata in base al Paese del Brasile, con un fuso orario GST-3.
File del sistema operativo coinvolti:
/etc/sysconfig/clock /etc/localtime
Se guardi nella directory /usr/share/zoneinfo/Etc sul server, vedrai le sottodirectory per paese e persino per fuso orario all'interno del paese. Devi identificare quale directory e sottofile per il tuo host di destinazione.
Nel nostro esempio siamo sulla costa orientale del Brasile, GST-3:00. Ci sono file zoneinfo che differiscono dall'ora legale codificata:
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
Quindi, la directory/file per loro sarebbe:/usr/share/zoneinfo/Etc/GMT-3
1. Modifica il file /etc/sysconfig/clock da leggere:
# vi /etc/sysconfig/clock ZONE="Etc/GMT-3" UTC=true ARC=false
2. Segui questi passaggi per impostare correttamente il file/link /etc/localtime :
# cd /etc # rm /etc/localtime # ln -s /usr/share/zoneinfo/Etc/GMT-3 /etc/localtime # ls -al localtime # date
Il comando 'ls -la localtime' sopra dovrebbe mostrare il file /etc/localtime come collegamento simbolico a /usr/share/zoneinfo/Etc/GMT-3. Anche il comando "data" dovrebbe restituire l'ora corretta per il Brasile orientale- GST-3:00.
3. Per i database, l'unica cosa di cui devi assicurarti è che il proprietario del sistema operativo DB non abbia alcuna variabile ambientale di "TZ" impostata. All'avvio dei database, se non vedono alcuna variabile TZ impostata, utilizzeranno l'ora del sistema operativo come ora del DB.
– Connetti come utente DB ed esegui:
# env |grep -i TZ
L'output del comando precedente non dovrebbe mostrare nulla di impostato sul sistema operativo come "TZ=". Se è già impostato un fuso orario, è necessario modificare il profilo dell'utente Oracle Db in modo che non venga impostato.