Timezone DBSYSTEM

Vamos a realizar el cambio del timezone de un DBSYSTEM paso a paso. Para poder realizar paso a paso este cambio con éxito, debemos usar tanto el usuario root como el usuario grid.

Lo primero que tenemos que hacer es conectarnos con el usuario grid. Una vez conectados, consultamos el timezone que tiene definido

[root@~]# su - grid
Last login: Thu May 23 10:08:04 UTC 2024
[grid@~]$ timedatectl
               Local time: Thu 2024-05-23 10:08:56 UTC
           Universal time: Thu 2024-05-23 10:08:56 UTC
                 RTC time: Thu 2024-05-23 10:08:56
                Time zone: UTC (UTC, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

Procedemos a cambiar el timezone con el comando tzselect.

[grid@~]$ tzselect
Please identify a location so that time zone rules can be set correctly.
....

Con la ejecución de este comando, nos pedirá la siguiente información:

  • Continente al que aplica
Please identify a location so that time zone rules can be set correctly.
Please select a continent, ocean, "coord", or "TZ".
 1) Africa
 2) Americas
 3) Antarctica
 4) Asia
 5) Atlantic Ocean
 6) Australia
 7) Europe
 8) Indian Ocean
 9) Pacific Ocean
10) coord - I want to use geographical coordinates.
11) TZ - I want to specify the time zone using the Posix TZ format.
  • País
Please select a country whose clocks agree with yours.
 1) Albania               18) Guernsey              35) Poland
 2) Andorra               19) Hungary               36) Portugal
 3) Austria               20) Ireland               37) Romania
 4) Belarus               21) Isle of Man           38) Russia
 5) Belgium               22) Italy                 39) San Marino
 6) Bosnia & Herzegovina  23) Jersey                40) Serbia
 7) Britain (UK)          24) Latvia                41) Slovakia
 8) Bulgaria              25) Liechtenstein         42) Slovenia
 9) Croatia               26) Lithuania             43) Spain
10) Czech Republic        27) Luxembourg            44) Svalbard & Jan Mayen
11) Denmark               28) Malta                 45) Sweden
12) Estonia               29) Moldova               46) Switzerland
13) Finland               30) Monaco                47) Turkey
14) France                31) Montenegro            48) Ukraine
15) Germany               32) Netherlands           49) Vatican City
16) Gibraltar             33) North Macedonia       50) Åland Islands
17) Greece                34) Norway
  • Región
Please select one of the following time zone regions.
1) Spain (mainland)
2) Ceuta, Melilla
3) Canary Islands

Por último, no mostrara por pantalla el timezone que hemos escogido y nos pedirá una confirmación.

The following information has been given:

        Spain
        Spain (mainland)

Therefore TZ='Europe/Madrid' will be used.
Selected time is now:   Thu May 23 12:10:17 CEST 2024.
Universal Time is now:  Thu May 23 10:10:17 UTC 2024.
Is the above information OK?
1) Yes
2) No
#? 1

You can make this change permanent for yourself by appending the line
        TZ='Europe/Madrid'; export TZ
to the file '.profile' in your home directory; then log out and log in again.

Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Europe/Madrid

Ahora confirmamos a nivel de root el timezone que hemos seleccionado en el paso anterior.

[grid@~]$ logout
[root@~]# timedatectl set-timezone Europe/Madrid
[root@~]# timedatectl
               Local time: Thu 2024-05-23 12:12:07 CEST
           Universal time: Thu 2024-05-23 10:12:07 UTC
                 RTC time: Thu 2024-05-23 10:12:08
                Time zone: Europe/Madrid (CEST, +0200)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

Volvemos a conectarnos con el usuario grid para obtener el hostname y el database name

[grid@~]$ hostname
XXXXXXX
[grid@~]$ srvctl config database -v
XXXXXXXXXX /u01/app/oracle/product/19.0.0.0/dbhome_1       19.0.0.0.0

El siguiente paso sería editar el fichero de timezone con el usuario root. El fichero de timezone esta alojado en la siguiente ruta: /u01/app/19.0.0.0/grid/crs/install/.

[grid@~]$ logout
root@]# cd /u01/app/19.0.0.0/grid/crs/install/
[root@install]# vim s_crsconfig_<hostname>_env.txt
[root@install]# cat s_crsconfig_<hostname>_env.txt
TZ=Europe/Madrid
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
CRS_LIMIT_STACK=2048
CRS_LIMIT_OPENFILE=65536
CRS_LIMIT_NPROC=65536
TNS_ADMIN=

Seteamos el nuevo timezone

[root@install]# timedatectl set-timezone Europe/Madrid

Cambiamos el timezone a nivel de base de datos con root. Aquí el directorio es distinto, tenemos que ir al siguiente directorio: /u01/app/19.0.0.0/grid/bin/.

[root@install]# cd /u01/app/19.0.0.0/grid/bin/
[root@bin]# ./srvctl setenv database -d <database_name> -t "TZ=Europe/Madrid"
[root@bin]# ./srvctl getenv database -d <database_name>
XXXXXXXX:
audit_file_dest=/u01/app/oracle/admin/XXXX/adump
ORACLE_UNQNAME=XXXXX
TZ=Europe/Madrid

Casi lo tenemos, lo único que faltaría es reiniciar nuestro DBSystem por medio de la consola. Espero que os sirva.