Gérer le fuseau horaire
Le champ Fuseau horaire de la console et de l'API vous permet de lancer des ressources de système de base de données avec un fuseau horaire autre que UTC (par défaut).
Le fuseau horaire que vous spécifiez lors de la création du système de base de données s'applique à l'hôte et à Oracle Grid Infrastructure (si le système l'utilise), et contrôle le fuseau horaire des fichiers journaux des bases de données. Le fuseau horaire de la base de données elle-même n'est pas affecté. Toutefois, le fuseau horaire de la base de données n'a d'incidence que sur le type de données timestamp
. Vous pouvez modifier manuellement le fuseau horaire de la base de données, mais Oracle recommande de conserver UTC (la valeur par défaut) afin d'éviter la conversion des données et d'améliorer la performance lors du transfert de données entre des bases. Cette configuration est particulièrement importante pour les bases de données réparties, ainsi que pour les opérations de réplication, d'exportation et d'importation.
Bien qu'UTC soit recommandé, l'utilisation d'un fuseau horaire commun aux clients de base de données et aux hôtes d'applications peut simplifier la gestion et le dépannage pour l'administrateur de base de données.
Note :
Les fuseaux horaires sont largement utilisés à des fins d'affichage ou pour traiter les entrées utilisateur. La modification du fuseau horaire ne modifie pas l'heure de l'horloge système.Rubriques connexes
Options de fuseau horaire
Que vous utilisiez la console ou l'API, les options de fuseau horaire que vous pouvez sélectionner sont représentées dans le format de région nommée. Par exemple, America/Los_Angeles. La console vous permet de sélectionner UTC, le fuseau horaire détecté dans votre navigateur (si votre navigateur prend en charge la détection de fuseau horaire) ou un autre fuseau horaire.
Pour spécifier un autre fuseau horaire (option Sélectionner un autre fuseau horaire), vous sélectionnez d'abord une valeur dans le champ Région ou pays afin de réduire la liste des options dans le champ Fuseau horaire. Dans l'exemple America/Los_Angeles, America est la région, et Los_Angeles, le fuseau horaire. Les options présentées dans ces deux champs correspondent à peu près aux fuseaux horaires pris en charge dans la classe Java.util.TimeZone
et dans le système d'exploitation Linux. Si vous ne trouvez pas le fuseau horaire que vous recherchez, essayez de sélectionner "Divers" dans le champ Région et pays.
Conseil :
Si vous utilisez l'API et que vous souhaitez voir une liste des fuseaux horaires pris en charge, vous pouvez examiner les options de fuseau horaire dans la console. Ces options figurent dans la page Créer un système de base de données lorsque vous affichez les options avancées après avoir sélectionné une forme de système de BD.Voir le fuseau horaire courant
Effectuez les étapes suivantes pour voir les informations sur le fuseau horaire.
-
Connectez-vous à l'hôte en tant qu'utilisateur grid.
Exemple :[opc@rc ~]$ sudo su - grid
-
Utilisez la commande suivante pour voir le fuseau horaire.
timedatectl
Exemple :[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
Notez que le système est actuellement dans le fuseau horaire UTC.
-
Connectez-vous à la base de données.
Exemple :[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
-
Vous pouvez afficher l'heure courante de la base de données à l'aide de la commande suivante.
sysdate
Exemple :SQL> select to_char(sysdate,'DD-MON-YYYY HH24:MI:SS') from dual; TO_CHAR(SYSDATE,'DD- -------------------- 16-MAR-2023 08:00:40
-
Quittez la fenêtre.
Modifier le fuseau horaire du système de base de données
Effectuez les étapes suivantes pour définir le fuseau horaire du système de base de données.
-
Connectez-vous à l'hôte en tant qu'utilisateur racine.
Exemple :[opc@rc ~]$ sudo su -
-
Identifiez la valeur de fuseau horaire (TZ) correcte à définir à l'aide de la commande suivante. Par exemple, si vous voulez identifier la valeur TZ correcte pour le fuseau horaire Est des États-Unis (EST/EDT), vous pouvez utiliser la commande
tzselect
et choisir Americas/United States/Eastern.tzselect
Exemple :[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 ~]#
À partir de la commande
tzselect
, nous avons identifié la valeur TZ commeAmerica/New_York
pour le fuseau horaire EDT. -
Mettez à jour la commande suivante pour définir le nouveau fuseau horaire.
timedatectl set-timezone <new_time_zone>
Exemple :[root@rc ~]# timedatectl set-timezone America/New_York
-
Vérifiez si le fuseau horaire a été mis à jour à l'aide de la commande suivante.
timedatectl
Exemple :[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
Notez que le système se trouve maintenant dans le fuseau horaire America/New_York (EDT).
-
Quittez la fenêtre.
Modifier le fuseau horaire de l'hôte sur les systèmes de base de données qui utilisent Grid Infrastructure
Le fuseau horaire d'Oracle Grid Infrastructure détermine celui des fichiers journaux de base de données.
Effectuez les étapes suivantes pour mettre à jour les informations de fuseau horaire de l'hôte des systèmes de base de données qui utilisent Grid Infrastructure pour la gestion du stockage.
Note :
- Les étapes 1 à 10 doivent être effectuées sur tous les noeuds d'une grappe RAC.
- Les étapes 11 à 15 peuvent être effectuées sur n'importe quel noeud d'une grappe RAC.
- Cette procédure ne s'applique pas aux systèmes de base de données provisionnés rapidement qui utilisent le gestionnaire de volumes logiques au lieu de Grid Infrastructure pour la gestion du stockage.
-
Connectez-vous à l'hôte en tant qu'utilisateur
grid
.Exemple :[opc@rc ~]$ sudo su - grid
-
Identifiez la valeur de fuseau horaire (TZ) correcte à définir à l'aide de la commande suivante. Par exemple, si vous voulez identifier la valeur TZ correcte pour le fuseau horaire Pacifique aux États-Unis (PST/PDT), vous pouvez utiliser la commande
tzselect
et choisir Americas/United States/Pacific.tzselect
Exemple :[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 ~]$
À partir de la commande
tzselect
, nous avons identifié la valeur TZ commeAmerica/Los_Angeles
pour le fuseau horaire PDT. -
Exécutez la commande suivante pour obtenir le nom d'hôte.
hostname
Exemple :[grid@rc ~]$ hostname rc
-
Exécutez la commande suivante pour obtenir le nom de la base de données.
srvctl config database -v
Exemple :[grid@rc ~]$ srvctl config database -v SMDB0316_iad1cx /u01/app/oracle/product/21.0.0.0/dbhome_1 21.0.0.0.0
-
Déconnectez-vous en tant qu'utilisateur grid et connectez-vous en tant qu'utilisateur racine.
Exemple :[grid@rc ~]$ exit logout [opc@rc ~]$ sudo su -
-
Naviguez jusqu'au répertoire suivant.
cd $GRID_HOME/crs/install
Exemple :[root@rc ~]# cd /u01/app/21.0.0.0/grid/crs/install/
-
Modifiez le contenu TZ du fichier suivant. Enregistrez et fermez le fichier après l'avoir modifié.
vim s_crsconfig_<hostname>_env.txt
Exemple :[root@rc install]# vim s_crsconfig_rc_env.txt
-
Vérifiez si l'entrée TZ dans le fichier a été mise à jour.
cat s_crsconfig_<hostname>_env.txt
Exemple :[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]#
-
Définissez le nouveau fuseau horaire à l'aide de la commande suivante.
timedatectl set-timezone <new_time_zone>
Exemple :[root@rc install]# timedatectl set-timezone America/Los_Angeles
Note :
- Les étapes 1 à 9 doivent être effectuées sur tous les noeuds d'une grappe RAC.
- Les étapes 10 à 15 peuvent être effectuées sur n'importe quel noeud d'une grappe RAC.
-
Naviguez jusqu'au répertoire suivant.
cd $GRID_HOME/bin
Exemple :[root@rc install]# cd /u01/app/21.0.0.0/grid/bin/
-
Remplacez la valeur TZ au niveau de la base de données par le fuseau horaire souhaité à l'aide de la commande suivante.
srvctl setenv database -d <database_name> -t "TZ=<new_time_zone>"
Exemple :[root@rc bin]# ./srvctl setenv database -d SMDB0316_iad1cx -t "TZ=America/Los_Angeles"
-
Vérifiez le jeu de valeurs TZ à l'aide de la commande suivante.
srvctl getenv database -d <database_name>
Exemple :[root@rc bin]# ./srvctl getenv database -d SMDB0316_iad1cx SMDB0316_iad1cx: TZ=America/Los_Angeles
-
Arrêtez la pile CRS sur tous les noeuds de calcul.
crsctl stop cluster
Exemple :[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]#
-
Démarrez la pile CRS sur tous les noeuds de calcul.
crsctl start cluster
Exemple :[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]#
-
Vérifiez si le fuseau horaire a été mis à jour à l'aide de la commande suivante.
timedatectl
Exemple :[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
Notez que le système se trouve maintenant dans le fuseau horaire America/Los_Angeles (PDT).