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.