Gerenciar Fuso Horário
O campo Fuso Horário na Console e na API permite iniciar recursos do Sistema de BD com um fuso horário diferente do UTC (o padrão).
O fuso horário que você especifica ao criar o sistema de banco de dados se aplica ao host e ao Oracle Grid Infrastructure (se o sistema tiver o Grid Infrastructure) e controla o fuso horário dos arquivos de log do banco de dados. O fuso horário do próprio banco de dados não é afetado. No entanto, o fuso horário do banco de dados afeta somente o tipo de dados timestamp
. Você pode alterar o fuso horário do banco de dados manualmente, mas a Oracle recomenda que você o mantenha como UTC (o padrão) para evitar a conversão de dados e melhorar o desempenho quando os dados forem transferidos entre bancos de dados. Essa configuração é especialmente importante para bancos de dados distribuídos, replicação e operações de exportação e importação.
Embora o UTC seja o fuso horário recomendado para uso, ter um fuso horário comum para seus clientes de banco de dados e hosts de aplicativos pode simplificar o gerenciamento e o diagnóstico e solução de problemas para o administrador do banco de dados.
Observação:
Os fusos horários são amplamente usados para fins de exibição ou para lidar com a entrada de dados do usuário. A alteração do fuso horário não altera o horário no relógio do sistema.Tópicos Relacionados
Opções de Fuso Horário
Se você usar a Console ou a API, as opções de fuso horário que poderá selecionar serão representadas no formato de região nomeada, por exemplo, America/Los_Angeles. A Console permite que você selecione UTC, o fuso horário detectado no browser (se seu browser oferecer suporte à detecção de fuso horário) ou um fuso horário alternativo.
Para especificar um fuso horário alternativo (a opção Selecionar outro fuso horário), primeiro selecione um valor no campo Região ou país para restringir a lista de fusos horários a serem selecionados no campo Fuso horário. No exemplo America/Los_Angeles, America é a região de tempo e Los_Angeles é o fuso horário. As opções que você vê nesses dois campos se correlacionam aproximadamente com os fusos horários compatíveis na classe Java.util.TimeZone
e no sistema operacional Linux. Se você não vir o fuso horário que está procurando, tente selecionar "Diversos" no campo Região e país.
Dica:
Se você estiver usando a API e quiser ver uma lista de fusos horários compatíveis, poderá analisar as opções de fuso horário na Console. Essas opções são exibidas na página Criar Sistema de Banco de Dados ao mostrar opções avançadas depois de selecionar uma configuração do sistema de banco de dados.Exibir o Fuso Horário Atual
Execute as etapas a seguir para exibir as informações de fuso horário.
-
Faça log-on no host como usuário da grade.
Exemplo:[opc@rc ~]$ sudo su - grid
-
Use o comando a seguir para exibir o fuso horário.
timedatectl
Exemplo:[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 o sistema está atualmente no fuso horário UTC.
-
Faça log-on no banco de dados.
Exemplo:[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
-
Você pode exibir o horário do banco de dados atual usando o comando a seguir.
sysdate
Exemplo:SQL> select to_char(sysdate,'DD-MON-YYYY HH24:MI:SS') from dual; TO_CHAR(SYSDATE,'DD- -------------------- 16-MAR-2023 08:00:40
-
Sair.
Alterar o Fuso Horário do Sistema de Banco de Dados
Execute as etapas a seguir para definir o fuso horário do Sistema de Banco de Dados.
-
Faça log-in no host como usuário raiz.
Exemplo:[opc@rc ~]$ sudo su -
-
Identifique o valor de fuso horário (TZ) correto a ser definido usando o comando a seguir. Por exemplo, se você quiser identificar o valor TZ correto para o fuso horário leste dos EUA (EST/EDT), poderá usar o comando
tzselect
e escolher Américas/Estados Unidos/Leste.tzselect
Exemplo:[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 ~]#
No comando
tzselect
, identificamos o valor TZ comoAmerica/New_York
para o fuso horário EDT. -
Atualize o comando a seguir para definir o novo fuso horário.
timedatectl set-timezone <new_time_zone>
Exemplo:[root@rc ~]# timedatectl set-timezone America/New_York
-
Verifique se o fuso horário foi atualizado usando o comando a seguir.
timedatectl
Exemplo:[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 o sistema agora está no fuso horário America/New_York (EDT).
-
Sair.
Alterar o Fuso Horário do Host em Sistemas de Banco de Dados que Usam o Grid Infrastructure
O fuso horário do Oracle Grid Infrastructure determina o fuso horário dos arquivos de log do banco de dados.
Execute as etapas a seguir para atualizar as informações de fuso horário do host dos sistemas de banco de dados que usam o Grid Infrastructure para o gerenciamento de armazenamento.
Observação:
- As etapas de 1 a 10 devem ser executadas em todos os nós de um cluster RAC.
- As etapas de 11 a 15 podem ser executadas em qualquer nó de um cluster RAC.
- Este procedimento não se aplica a sistemas de banco de dados de provisionamento rápido, que usam o LVM (Logical Volume Manager) em vez do Grid Infrastructure para gerenciamento de armazenamento.
-
Faça log-on no host como usuário
grid
.Exemplo:[opc@rc ~]$ sudo su - grid
-
Identifique o valor de fuso horário (TZ) correto a ser definido usando o comando a seguir. Por exemplo, para identificar o valor TZ correto para o fuso horário do Pacífico EUA (PST/PDT), você pode usar o comando
tzselect
e escolher Américas/Estados Unidos/Pacífico.tzselect
Exemplo:[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 ~]$
No comando
tzselect
, identificamos o valor TZ comoAmerica/Los_Angeles
para o fuso horário PDT. -
Execute o comando a seguir para obter o nome do host.
hostname
Exemplo:[grid@rc ~]$ hostname rc
-
Execute o comando a seguir para obter o nome do banco de dados.
srvctl config database -v
Exemplo:[grid@rc ~]$ srvctl config database -v SMDB0316_iad1cx /u01/app/oracle/product/21.0.0.0/dbhome_1 21.0.0.0.0
-
Faça log-out como usuário da grade e acesse como usuário-raiz.
Exemplo:[grid@rc ~]$ exit logout [opc@rc ~]$ sudo su -
-
Navegue até o seguinte diretório.
cd $GRID_HOME/crs/install
Exemplo:[root@rc ~]# cd /u01/app/21.0.0.0/grid/crs/install/
-
Edite o conteúdo TZ do arquivo a seguir. Salve e feche o arquivo após editá-lo.
vim s_crsconfig_<hostname>_env.txt
Exemplo:[root@rc install]# vim s_crsconfig_rc_env.txt
-
Verifique se a entrada TZ no arquivo foi atualizada.
cat s_crsconfig_<hostname>_env.txt
Exemplo:[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 o novo fuso horário usando o comando a seguir.
timedatectl set-timezone <new_time_zone>
Exemplo:[root@rc install]# timedatectl set-timezone America/Los_Angeles
Observação:
- As etapas de 1 a 9 devem ser executadas em todos os nós de um cluster RAC.
- As etapas de 10 a 15 podem ser executadas em qualquer nó de um cluster RAC.
-
Navegue até o seguinte diretório.
cd $GRID_HOME/bin
Exemplo:[root@rc install]# cd /u01/app/21.0.0.0/grid/bin/
-
Altere o valor TZ no nível do banco de dados para o fuso horário desejado usando o comando a seguir.
srvctl setenv database -d <database_name> -t "TZ=<new_time_zone>"
Exemplo:[root@rc bin]# ./srvctl setenv database -d SMDB0316_iad1cx -t "TZ=America/Los_Angeles"
-
Verifique o conjunto de valores TZ usando o comando a seguir.
srvctl getenv database -d <database_name>
Exemplo:[root@rc bin]# ./srvctl getenv database -d SMDB0316_iad1cx SMDB0316_iad1cx: TZ=America/Los_Angeles
-
Pare a pilha do CRS em todos os nós de computação.
crsctl stop cluster
Exemplo:[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 a pilha do CRS em todos os nós de computação.
crsctl start cluster
Exemplo:[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 se o fuso horário foi atualizado usando o comando a seguir.
timedatectl
Exemplo:[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 o sistema agora está no fuso horário America/Los_Angeles (PDT).