J'ai reçu une erreur « ORA-39405 » ou « ORA-39002 » dans mon instance de base de données Amazon Relational Database Service (Amazon RDS).
Brève description
Il se peut que vous obteniez une erreur similaire à l'une des erreurs suivantes :
- « ORA-39002: invalid operation »
- « ORA-39405: Oracle Data Pump does not support importing from a source database with TSTZ version 35 into a target database with TSTZ version 33 »
L'une des erreurs précédentes s'affiche lorsque vous tentez de transférer des données entre une base de données source et une base de données cible qui ont des versions différentes de l'heure d'été (DST). Dans les nouvelles versions, Oracle publie de nouveaux fichiers DST et des mises à jour mineures pour les modifications de règles dans différents fuseaux horaires.
Résolution
Important : Avant de modifier l'instance RDS de production, il est recommandé de tester les modifications liées au fuseau horaire dans un environnement hors production. Restaurez également l'instantané de votre instance de base de données avant de modifier l'environnement de production.
Mettez à niveau la version du fuseau horaire DST de la base de données cible vers une version égale ou ultérieure à la version de la base de données source.
Vérifier le fuseau horaire actuel de votre instance de base de données
Pour vérifier la version actuelle du fuseau horaire de votre instance de base de données, exécutez la requête suivante :
SQL> SELECT * FROM V$TIMEZONE_FILE;
Pour vérifier la dernière version de fuseau horaire disponible, exécutez la requête suivante :
SQL> SELECT DBMS_DST.GET_LATEST_TIMEZONE_VERSION FROM DUAL;
Ajouter l'option TIMEZONE_FILE_AUTOUPGRADE
Pour mettre automatiquement à niveau le fichier de fuseau horaire de votre instance de base de données vers la dernière version, ajoutez l'option TIMEZONE_FILE_AUTOUPGRADE à un groupe d’options d'instance nouveau ou existant.
Remarque : Lorsque vous ajoutez l'option à un groupe d'options existant qui est attaché à une instance, vous connaissez un temps d’arrêt lors de la mise à jour du fichier de fuseau horaire.
Après avoir appliqué l'option TIMEZONE_FILE_AUTOUPGRADE, Amazon RDS exécute la requête suivante pour rechercher une nouvelle version de l'heure d'été et lance immédiatement la mise à jour :
SQL> SELECT * FROM V$TIMEZONE_FILE;
Vérifier vos données après avoir mis à jour le fuseau horaire
Après avoir mis à jour le fichier de fuseau horaire de votre instance de base de données, il est recommandé de vérifier les données. Amazon RDS for Oracle crée automatiquement les tables suivantes :
- Le fichier rdsadmin.rds_dst_affected_tables répertorie les tables contenant des données affectées par la mise à jour.
- La table rdsadmin.rds_dst_error_table répertorie les erreurs générées lors de la mise à jour.
Pour voir les résultats de la mise à jour, exécutez les commandes suivantes pour interroger les tables :
SELECT * FROM rdsadmin.rds_dst_affected_tables;
SELECT * FROM rdsadmin.rds_dst_error_table;
Pour plus d'informations sur le schéma des données concernées et les tables d'erreurs, consultez la procédure FIND_AFFECTED_TABLES sur le site Web d'Oracle.
Informations connexes
Base de données Amazon RDS for Oracle 19c (19.0.0.0)
Présentation des groupes d'options
Comment puis-je modifier le fuseau horaire de mon instance de base de données Amazon RDS ?