Gestión de la zona horaria
El campo Zona horaria de la consola y la API permite iniciar recursos del sistema de base de datos con una zona horaria que no sea UTC (valor por defecto).
La zona horaria que especifique al crear el sistema de base de datos se aplica al host y a Oracle Grid Infrastructure (si el sistema tiene Grid Infrastructure) y controla la zona horaria de los archivos log de base de datos. La zona horaria de la base de datos en sí no se ve afectada. Sin embargo, la zona horaria de la base de datos solo afecta al tipo de dato timestamp
. Puede cambiar manualmente la zona horaria de la base de datos, pero Oracle recomienda mantenerla como UTC (valor por defecto) para evitar la conversión de datos y mejorar el rendimiento cuando se transfieran datos entre bases de datos. Esta configuración es especialmente importante para las bases de datos distribuidas, la replicación y las operaciones de importación y exportación.
Aunque UTC es la zona horaria recomendada que se debe utilizar, tener una zona horaria común para los clientes de la base de datos y los hosts de aplicación puede simplificar la gestión y la solución de problemas para el administrador de la base de datos.
Note:
Las zonas horarias se utilizan principalmente con fines de visualización o para manejar la entrada del usuario. El cambio de zona horaria no cambia la hora del reloj del sistema.Temas relacionados
Opciones de zona horaria
Tanto si utiliza la consola como la API, las opciones de zona horaria que puede seleccionar se representan en el formato de la región especificada, por ejemplo, America/Los_Angeles. La consola permite seleccionar UTC, la zona horaria detectada en el navegador (si este soporta la detección de zona horaria) o una zona horaria alternativa.
Para especificar una zona horaria alternativa (la opción Seleccionar otra zona horaria), primero debe seleccionar un valor en el campo Región o país para limitar la lista de zonas horarias entre las que elegir en el campo Zona horaria. En el ejemplo America/Los_Angeles, America es la región horaria y Los_Angeles es la zona horaria. Las opciones que aparecen en estos dos campos se corresponden aproximadamente con las zonas horarias soportadas en la clase Java.util.TimeZone
y en el sistema operativo Linux. Si no aparece la zona horaria que busca, intente seleccionar "Varios" en el campo Región y país.
Sugerencia:
Si utiliza la API y desea ver una lista de las zonas horarias soportadas, puede examinar las opciones de zona horaria de la consola. Estas opciones aparecen en la página Crear sistema de base de datos cuando muestra opciones avanzadas después de seleccionar una unidad del sistema de base de datos.Visualización de la zona horaria actual
Realice los siguientes pasos para ver la información de zona horaria.
-
Conéctese al host como usuario grid.
Por ejemplo:[opc@rc ~]$ sudo su - grid
-
Utilice el siguiente comando para ver la zona horaria.
timedatectl
Por ejemplo:[grid@rc ~]$ timedatectl Local time: Thu 2023-03-16 08:00:25 UTC Universal time: Thu 2023-03-16 08:00:25 UTC RTC time: Thu 2023-03-16 08:00:21 Time zone: UTC (UTC, +0000) NTP enabled: yes NTP synchronized: no RTC in local TZ: no DST active: n/a
Observe que el sistema está actualmente en la zona horaria UTC.
-
Conéctese a la base de datos.
Por ejemplo:[grid@rc ~]$ sqlplus / as sysdba SQL*Plus: Release 21.0.0.0.0 - Production on Thu Mar 16 08:00:33 2023 Version 21.9.0.0.0 Copyright (c) 1982, 2022, Oracle. All rights reserved. Connected to: Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 -Production Version 21.9.0.0.0
-
Puede ver la hora actual de la base de datos mediante el siguiente comando.
sysdate
Por ejemplo:SQL> select to_char(sysdate,'DD-MON-YYYY HH24:MI:SS') from dual; TO_CHAR(SYSDATE,'DD- -------------------- 16-MAR-2023 08:00:40
-
Salga.
Cambio de la zona horaria del sistema de base de datos
Realice los siguientes pasos para definir la zona horaria del sistema de base de datos.
-
Conéctese al host como usuario root.
Por ejemplo:[opc@rc ~]$ sudo su -
-
Identifique el valor de zona horaria (TZ) correcto que se va a definir mediante el siguiente comando. Por ejemplo, si desea identificar el valor de TZ correcto para la zona horaria oriental de EE. UU. (EST/EDT), puede utilizar el comando
tzselect
y seleccionar Americas/United States/Eastern.tzselect
Por ejemplo:[root@rc ~]# tzselect Please identify a location so that time zone rules can be set correctly. Please select a continent or ocean. 1) Africa 2) Americas 3) Antarctica 4) Arctic Ocean 5) Asia 6) Atlantic Ocean 7) Australia 8) Europe 9) Indian Ocean 10) Pacific Ocean 11) none - I want to specify the time zone using the Posix TZ format. #? 2 Please select a country. 1) Anguilla 19) Dominican Republic 37) Peru 2) Antigua & Barbuda 20) Ecuador 38) Puerto Rico 3) Argentina 21) El Salvador 39) St Barthelemy 4) Aruba 22) French Guiana 40) St Kitts & Nevis 5) Bahamas 23) Greenland 41) St Lucia 6) Barbados 24) Grenada 42) St Maarten (Dutch) 7) Belize 25) Guadeloupe 43) St Martin (French) 8) Bolivia 26) Guatemala 44) St Pierre & Miquelon 9) Brazil 27) Guyana 45) St Vincent 10) Canada 28) Haiti 46) Suriname 11) Caribbean NL 29) Honduras 47) Trinidad & Tobago 12) Cayman Islands 30) Jamaica 48) Turks & Caicos Is 13) Chile 31) Martinique 49) United States 14) Colombia 32) Mexico 50) Uruguay 15) Costa Rica 33) Montserrat 51) Venezuela 16) Cuba 34) Nicaragua 52) Virgin Islands (UK) 17) Curaçao 35) Panama 53) Virgin Islands (US) 18) Dominica 36) Paraguay #? 49 Please select one of the following time zone regions. 1) Eastern (most areas) 16) Central - ND (Morton rural) 2) Eastern - MI (most areas) 17) Central - ND (Mercer) 3) Eastern - KY (Louisville area) 18) Mountain (most areas) 4) Eastern - KY (Wayne) 19) Mountain - ID (south); OR (east) 5) Eastern - IN (most areas) 20) MST - Arizona (except Navajo) 6) Eastern - IN (Da, Du, K, Mn) 21) Pacific 7) Eastern - IN (Pulaski) 22) Alaska (most areas) 8) Eastern - IN (Crawford) 23) Alaska - Juneau area 9) Eastern - IN (Pike) 24) Alaska - Sitka area 10) Eastern - IN (Switzerland) 25) Alaska - Annette Island 11) Central (most areas) 26) Alaska - Yakutat 12) Central - IN (Perry) 27) Alaska (west) 13) Central - IN (Starke) 28) Aleutian Islands 14) Central - MI (Wisconsin border) 29) Hawaii 15) Central - ND (Oliver) #? 1 The following information has been given: United States Eastern (most areas) Therefore TZ='America/New_York' will be used. Local time is now: Thu Mar 16 04:01:39 EDT 2023. Universal Time is now: Thu Mar 16 08:01:39 UTC 2023. Is the above information OK? 1) Yes 2) No #? 1 You can make this change permanent for yourself by appending the line TZ='America/New_York'; 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 /bin/tzselect command in shell scripts: America/New_York [root@rc ~]#
Con el comando
tzselect
, hemos identificado el valor de TZ comoAmerica/New_York
para la zona horaria EDT. -
Actualice el siguiente comando para definir la nueva zona horaria.
timedatectl set-timezone <new_time_zone>
Por ejemplo:[root@rc ~]# timedatectl set-timezone America/New_York
-
Verifique si la zona horaria se ha actualizado mediante el siguiente comando.
timedatectl
Por ejemplo:[root@rc ~]# timedatectl Local time: Thu 2023-03-16 04:02:15 EDT Universal time: Thu 2023-03-16 08:02:15 UTC RTC time: Thu 2023-03-16 08:02:10 Time zone: America/New_York (EDT, -0400) NTP enabled: yes NTP synchronized: no RTC in local TZ: no DST active: yes Last DST change: DST began at Sun 2023-03-12 01:59:59 EST Sun 2023-03-12 03:00:00 EDT Next DST change: DST ends (the clock jumps one hour backwards) at Sun 2023-11-05 01:59:59 EDT Sun 2023-11-05 01:00:00 EST
Observe que el sistema ahora está en la zona horaria America/New_York (EDT).
-
Salga.
Cambio de zona horaria del host en sistemas de base de datos que utilizan Grid Infrastructure
La zona horaria de Oracle Grid Infrastructure determina la zona horaria de los archivos log de base de datos.
Realice los siguientes pasos para actualizar la información de zona horaria del host de los sistemas de base de datos que utilizan la infraestructura de grid para la gestión de almacenamiento.
Note:
- Los pasos del 1 al 10 se deben realizar en todos los nodos de un cluster de RAC.
- Los pasos del 11 al 15 se pueden realizar en cualquier nodo de un cluster de RAC.
- Este procedimiento no se aplica a los sistemas de base de datos con aprovisionamiento rápido que utilizan Logical Volume Manager en lugar de Grid Infrastructure para la gestión de almacenamiento.
-
Conéctese al host como el usuario
grid
.Por ejemplo:[opc@rc ~]$ sudo su - grid
-
Identifique el valor de zona horaria (TZ) correcto que se va a definir mediante el siguiente comando. Por ejemplo, si desea identificar el valor de TZ correcto para la zona horaria del Pacífico de EE. UU. (PST/PDT), puede utilizar el comando
tzselect
y seleccionar Americas/United States/Eastern.tzselect
Por ejemplo:[grid@rc ~]$ tzselect Please identify a location so that time zone rules can be set correctly. Please select a continent or ocean. 1) Africa 2) Americas 3) Antarctica 4) Arctic Ocean 5) Asia 6) Atlantic Ocean 7) Australia 8) Europe 9) Indian Ocean 10) Pacific Ocean 11) none - I want to specify the time zone using the Posix TZ format. #? 2 Please select a country. 1) Anguilla 19) Dominican Republic 37) Peru 2) Antigua & Barbuda 20) Ecuador 38) Puerto Rico 3) Argentina 21) El Salvador 39) St Barthelemy 4) Aruba 22) French Guiana 40) St Kitts & Nevis 5) Bahamas 23) Greenland 41) St Lucia 6) Barbados 24) Grenada 42) St Maarten (Dutch) 7) Belize 25) Guadeloupe 43) St Martin (French) 8) Bolivia 26) Guatemala 44) St Pierre & Miquelon 9) Brazil 27) Guyana 45) St Vincent 10) Canada 28) Haiti 46) Suriname 11) Caribbean NL 29) Honduras 47) Trinidad & Tobago 12) Cayman Islands 30) Jamaica 48) Turks & Caicos Is 13) Chile 31) Martinique 49) United States 14) Colombia 32) Mexico 50) Uruguay 15) Costa Rica 33) Montserrat 51) Venezuela 16) Cuba 34) Nicaragua 52) Virgin Islands (UK) 17) Curaçao 35) Panama 53) Virgin Islands (US) 18) Dominica 36) Paraguay #? 49 Please select one of the following time zone regions. 1) Eastern (most areas) 16) Central - ND (Morton rural) 2) Eastern - MI (most areas) 17) Central - ND (Mercer) 3) Eastern - KY (Louisville area) 18) Mountain (most areas) 4) Eastern - KY (Wayne) 19) Mountain - ID (south); OR (east) 5) Eastern - IN (most areas) 20) MST - Arizona (except Navajo) 6) Eastern - IN (Da, Du, K, Mn) 21) Pacific 7) Eastern - IN (Pulaski) 22) Alaska (most areas) 8) Eastern - IN (Crawford) 23) Alaska - Juneau area 9) Eastern - IN (Pike) 24) Alaska - Sitka area 10) Eastern - IN (Switzerland) 25) Alaska - Annette Island 11) Central (most areas) 26) Alaska - Yakutat 12) Central - IN (Perry) 27) Alaska (west) 13) Central - IN (Starke) 28) Aleutian Islands 14) Central - MI (Wisconsin border) 29) Hawaii 15) Central - ND (Oliver) #? 21 The following information has been given: United States Pacific Therefore TZ='America/Los_Angeles' will be used. Local time is now: Thu Mar 16 01:08:57 PDT 2023. Universal Time is now: Thu Mar 16 08:08:57 UTC 2023. Is the above information OK? 1) Yes 2) No #? 1 You can make this change permanent for yourself by appending the line TZ='America/Los_Angeles'; 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 /bin/tzselect command in shell scripts: America/Los_Angeles [grid@rc ~]$
Con el comando
tzselect
, hemos identificado el valor de TZ comoAmerica/Los_Angeles
para la zona horaria PDT. -
Ejecute el siguiente comando para obtener el nombre de host.
hostname
Por ejemplo:[grid@rc ~]$ hostname rc
-
Ejecute el siguiente comando para obtener el nombre de la base de datos.
srvctl config database -v
Por ejemplo:[grid@rc ~]$ srvctl config database -v SMDB0316_iad1cx /u01/app/oracle/product/21.0.0.0/dbhome_1 21.0.0.0.0
-
Desconéctese como usuario grid y conéctese como usuario root.
Por ejemplo:[grid@rc ~]$ exit logout [opc@rc ~]$ sudo su -
-
Navegue al siguiente directorio.
cd $GRID_HOME/crs/install
Por ejemplo:[root@rc ~]# cd /u01/app/21.0.0.0/grid/crs/install/
-
Edite el contenido de TZ del siguiente archivo. Guarde y cierre el archivo después de editarlo.
vim s_crsconfig_<hostname>_env.txt
Por ejemplo:[root@rc install]# vim s_crsconfig_rc_env.txt
-
Verifique si la entrada TZ del archivo está actualizada.
cat s_crsconfig_<hostname>_env.txt
Por ejemplo:[root@rc install]# cat s_crsconfig_rc_env.txt ######################################################################### #This file can be used to set values for the NLS_LANG and TZ environment #variables and to set resource limits for Oracle Clusterware and #Database processes. #1. The NLS_LANG environment variable determines the language and # characterset used for messages. For example, a new value can be # configured by setting NLS_LANG=JAPANESE_JAPAN.UTF8 #2. The Time zone setting can be changed by setting the TZ entry to # the appropriate time zone name. For example, TZ=America/New_York #3. Resource limits for stack size, open files and number of processes # can be specified by modifying the appropriate entries. # #Do not modify this file except as documented above or under the #direction of Oracle Support Services. ######################################################################### TZ=America/Los_Angeles NLS_LANG=AMERICAN_AMERICA.AL32UTF8 CRS_LIMIT_STACK=2048 CRS_LIMIT_OPENFILE=65536 CRS_LIMIT_NPROC=65536 TNS_ADMIN= [root@rc install]#
-
Defina la nueva zona horaria con el siguiente comando.
timedatectl set-timezone <new_time_zone>
Por ejemplo:[root@rc install]# timedatectl set-timezone America/Los_Angeles
Note:
- Los pasos del 1 al 9 se deben realizar en todos los nodos de un cluster de RAC.
- Los pasos del 10 al 15 se pueden realizar en cualquier nodo de un cluster de RAC.
-
Navegue al siguiente directorio.
cd $GRID_HOME/bin
Por ejemplo:[root@rc install]# cd /u01/app/21.0.0.0/grid/bin/
-
Cambie el valor de TZ en el nivel de base de datos a la zona horaria deseada mediante el siguiente comando.
srvctl setenv database -d <database_name> -t "TZ=<new_time_zone>"
Por ejemplo:[root@rc bin]# ./srvctl setenv database -d SMDB0316_iad1cx -t "TZ=America/Los_Angeles"
-
Verifique el juego de valores de TZ con el siguiente comando.
srvctl getenv database -d <database_name>
Por ejemplo:[root@rc bin]# ./srvctl getenv database -d SMDB0316_iad1cx SMDB0316_iad1cx: TZ=America/Los_Angeles
-
Pare la pila de CRS en todos los nodos informáticos.
crsctl stop cluster
Por ejemplo:[root@rc bin]# ./crsctl stop cluster CRS-2673: Attempting to stop 'ora.crsd' on 'rc' . . . CRS-2673: Attempting to stop 'ora.cssd' on 'rc' CRS-2677: Stop of 'ora.cssd' on 'rc' succeeded [root@rc bin]#
-
Inicie la pila de CRS en todos los nodos informáticos.
crsctl start cluster
Por ejemplo:[root@rc bin]# ./crsctl start cluster CRS-2672: Attempting to start 'ora.cssdmonitor' on 'rc' . . . CRS-2672: Attempting to start 'ora.crsd' on 'rc' CRS-2676: Start of 'ora.crsd' on 'rc' succeeded [root@rcbin]#
-
Verifique si la zona horaria se ha actualizado mediante el siguiente comando.
timedatectl
Por ejemplo:[root@rc bin]# timedatectl Local time: Thu 2023-03-16 01:19:15 PDT Universal time: Thu 2023-03-16 08:19:15 UTC RTC time: Thu 2023-03-16 08:19:10 Time zone: America/Los_Angeles (PDT, -0700) NTP enabled: yes NTP synchronized: no RTC in local TZ: no DST active: yes Last DST change: DST began at Sun 2023-03-12 01:59:59 PST Sun 2023-03-12 03:00:00 PDT Next DST change: DST ends (the clock jumps one hour backwards) at Sun 2023-11-05 01:59:59 PDT Sun 2023-11-05 01:00:00 PST
Observe que el sistema está ahora en la zona horaria America/Los_Angeles (PDT).