Gestion des mises à jour de fichier de fuseau horaire sur Autonomous Database

Autonomous Database fournit plusieurs options pour mettre à jour automatiquement les fichiers de fuseau horaire sur une instance de base de données Autonomous Database.

A propos des options de mise à jour de fichier de fuseaux horaires

Pour la prise en charge des fuseaux horaires, Oracle Database utilise des fichiers de fuseau horaire qui stockent la liste de tous les fuseaux horaires. Les fichiers de fuseau horaire pour Autonomous Database sont régulièrement mis à jour pour refléter les dernières modifications propres au fuseau horaire.

Autonomous Database fournit les options suivantes pour la mise à jour des fichiers de fuseau horaire :

  • AUTO_DST_UPGRADE : met automatiquement à niveau les fichiers de fuseau horaire et met automatiquement à jour les données de la base de données pour utiliser les dernières données de fuseau horaire. Cette option nécessite de redémarrer ou d'arrêter, puis de démarrer votre instance Autonomous Database.

  • AUTO_DST_UPGRADE_EXCL_DATA : met automatiquement à niveau les fichiers de fuseau horaire et ne met pas automatiquement à jour les données de la base de données pour utiliser les dernières données de fuseau horaire. Les fichiers de fuseau horaire sont mis à niveau vers la dernière version lorsque vous activez cette option et les versions sont mises à jour avec la dernière version. Cette option ne nécessite pas le redémarrage de l'instance Autonomous Database.

Remarque

Par défaut, AUTO_DST_UPGRADE et AUTO_DST_UPGRADE_EXCL_DATA sont désactivés. Vous pouvez activer l'une ou l'autre de ces options, mais pas les deux.

Avec chaque version de Daylight Saving Time (DST), des modifications de fichiers DST sont introduites pour que les données existantes soient conformes aux dernières règles DST. L'application d'une modification aux fichiers de fuseau horaire de la base de données affecte non seulement la façon dont les nouvelles données sont gérées, mais modifie potentiellement les données stockées dans les colonnes TIMESTAMP WITH TIME ZONE.

Lorsqu'une opération de chargement ou d'importation génère l'erreur liée au fuseau horaire suivante, cela indique que la version de vos fichiers de fuseau horaire est obsolète et que vous devez effectuer la mise à jour vers la dernière version disponible pour votre base de données :

ORA-39405: Oracle Data Pump does not support importing from a source database with TSTZ version y 
into a target database with TSTZ version n.

Vous pouvez activer la fonctionnalité AUTO_DST_UPGRADE qui met automatiquement à niveau une instance pour utiliser la dernière version disponible des fichiers de fuseau horaire et met automatiquement à jour les lignes de votre base de données afin d'utiliser les dernières données de fuseau horaire. La dernière version des fichiers de fuseau horaire est appliquée et les valeurs des colonnes TIMESTAMP WITH TIME ZONE sont mises à jour au prochain redémarrage de la base de données. Cependant, selon l'utilisation de la base de données, le redémarrage de la base de données requis peut vous empêcher d'utiliser AUTO_DST_UPGRADE pour effectuer la mise à niveau vers les derniers fichiers de fuseau horaire.

Vous pouvez activer AUTO_DST_UPGRADE_EXCL_DATA pour mettre à jour vos fichiers de fuseau horaire. Cette option vous permet de mettre à jour immédiatement votre base de données si vous rencontrez des erreurs d'import/export en raison d'une non-concordance de version des fichiers de fuseau horaire (où vous recevez l'erreur ORA-3940).

L'activation de AUTO_DST_UPGRADE_EXCL_DATA sur la base de données peut s'avérer bénéfique dans les cas suivants :

  • Les données de l'instance sont au format UTC et la base de données n'est pas affectée par les mises à jour du fichier de fuseau horaire DST.

  • L'instance ne contient aucune donnée dans les colonnes TIMESTAMP WITH TIME ZONE.

  • Les données de l'instance utilisent des dates qui ne sont pas modifiées par de nouvelles stratégies de fuseau horaire ou d'heure d'été.

Dans ce cas, lorsque votre instance Autonomous Database ne contient pas de lignes qui sont affectées négativement par les nouvelles règles de fuseau horaire et que vous rencontrez l'erreur ORA-3940, vous pouvez activer l'option AUTO_DST_UPGRADE_EXCL_DATA pour mettre à jour vers la dernière version des fichiers de fuseau horaire. L'option AUTO_DST_UPGRADE_EXCL_DATA donne la priorité à la réussite des travaux Oracle Data Pump par rapport aux problèmes de cohérence des données dus à la modification de l'heure d'été.

Reportez-vous au document de support technique Oracle 406410.1 pour savoir si les modifications de fuseau horaire affecteront votre base de données.

Remarque

Oracle recommande d'activer l'option AUTO_DST_UPGRADE lorsque ces cas de limitation ne s'appliquent pas à votre base de données.

En résumé, le choix d'activer les mises à niveau automatiques de fuseau horaire avec AUTO_DST_UPGRADE ou AUTO_DST_UPGRADE_EXCL_DATA implique les considérations suivantes :

  • Incohérence possible des données : Oracle vous recommande de maintenir votre base de données sur la dernière version du fichier de fuseau horaire en activant AUTO_DST_UPGRADE. Cette option met automatiquement à jour les lignes de la base de données pour utiliser les dernières données de fuseau horaire.

    L'autre option, AUTO_DST_UPGRADE_EXCL_DATA, vous permet de gérer la base de données à l'aide de la dernière version de fuseau horaire sans nécessiter de redémarrage de la base de données. Toutefois, les données susceptibles d'être affectées par les fichiers de fuseau horaire mis à jour ne sont pas mises à jour, ce qui peut entraîner des incohérences de données.

  • Redémarrage de la base de données : Oracle recommande de tenir à jour la base de données sur la dernière version du fichier de fuseau horaire en activant AUTO_DST_UPGRADE. Cette option nécessite un redémarrage pour effectuer la mise à niveau vers la dernière version des fichiers de fuseau horaire. Au cours du redémarrage, les lignes des données existantes de type TIMESTAMP WITH TIME ZONE sont mises à jour pour utiliser la dernière version. L'activation de AUTO_DST_UPGRADE peut avoir une incidence sur le temps de redémarrage de la base de données. Un redémarrage peut nécessiter un délai supplémentaire par rapport à un redémarrage sans que cette option soit activée lorsqu'il existe de nouveaux fichiers de fuseau horaire et que des données doivent être mises à jour au redémarrage de la base de données.

    Lorsque vous activez AUTO_DST_UPGRADE_EXCL_DATA, au moment où vous activez cette option, la base de données est mise à niveau vers la dernière version, les fichiers de fuseau horaire et, lors de chaque fenêtre de maintenance, si des fichiers de fuseau horaire plus récents sont disponibles, Autonomous Database met à jour la base de données pour utiliser la dernière version. L'activation de AUTO_DST_UPGRADE_EXCL_DATA ne nécessite pas que vous redémarriez votre instance Autonomous Database pour être à jour avec la dernière version des fichiers de fuseau horaire.

Pour plus d'informations, reportez-vous à Prise en charge des types de données date-heure et des fuseaux horaires.

Utiliser l'option de fichier de fuseau horaire AUTO_DST_UPGRADE

Autonomous Database fournit l'option AUTO_DST_UPGRADE pour mettre à jour automatiquement les fichiers de fuseau horaire sur une instance de base de données Autonomous Database.

La fonctionnalité AUTO_DST_UPGRADE met automatiquement à niveau les fichiers de fuseau horaire et met automatiquement à niveau les lignes de la base de données pour utiliser les dernières données de fuseau horaire.

Remarque

Par défaut, AUTO_DST_UPGRADE et AUTO_DST_UPGRADE_EXCL_DATA sont désactivés. Vous pouvez activer l'une ou l'autre des options de mise à jour automatique du fichier de fuseaux horaires, mais pas les deux.

Lorsque vous activez AUTO_DST_UPGRADE, votre instance Autonomous Database applique automatiquement les mises à jour pour les fichiers de fuseau horaire, en fonction de l'état de l'instance :

  • Arrêté : lors de l'opération de démarrage suivante, la mise à jour est automatiquement appliquée.

  • Disponible : après un redémarrage ou un arrêt, puis un démarrage, la mise à jour est automatiquement appliquée.

Lorsqu'une opération de chargement ou d'importation génère l'erreur de fuseau horaire suivante, cela indique que vos fichiers de fuseau horaire sont obsolètes et que vous devez mettre à jour vers la dernière version disponible pour votre base de données :

ORA-39405: Oracle Data Pump does not support importing from a source database with TSTZ version n+1 
into a target database with TSTZ version n.

Pour activer les mises à jour automatiques des fichiers de fuseaux horaires avec AUTO_DST_UPGRADE :

  1. Activez la fonctionnalité AUTO_DST_UPGRADE.
    BEGIN 
       DBMS_CLOUD_ADMIN.ENABLE_FEATURE(
            feature_name => 'AUTO_DST_UPGRADE');
    END;
    /
  2. Interrogez dba_cloud_config pour vérifier que AUTO_DST_UPGRADE est activé.
    SELECT param_name, param_value FROM dba_cloud_config WHERE
           LOWER(param_name) = 'auto_dst_upgrade';
    
    PARAM_NAME              PARAM_VALUE                              
    ----------------------- ---------------------------------------- 
    auto_dst_upgrade        enable                                   
  3. Interrogez dba_cloud_config pour vérifier la version du fuseau horaire.
    SELECT param_name, param_value FROM dba_cloud_config 
        WHERE LOWER(param_name) = 'latest_timezone_version';
    
    PARAM_NAME              PARAM_VALUE 
    ----------------------- ----------- 
    latest_timezone_version 38          

    Vous pouvez interroger la vue DB_NOTIFICATIONS pour voir si la version du fuseau horaire est la dernière :

    SELECT type, time, description, expected_start_date FROM db_notifications 
       WHERE TYPE='TIMEZONE VERSION';

Lorsque AUTO DST UPGRADE est activé, Autonomous Database met à niveau vers la dernière version des fichiers de fuseau horaire (lors du prochain redémarrage, ou arrêtez-vous, puis démarrez la base de données). Les colonnes de la base de données avec le type de données TIMESTAMP WITH TIME ZONE sont converties en nouvelle version de fuseau horaire lors du redémarrage.

Pour désactiver AUTO_DST_UPGRADE, procédez comme suit :

  1. Désactivez la fonctionnalité AUTO_DST_UPGRADE :
    BEGIN 
       DBMS_CLOUD_ADMIN.DISABLE_FEATURE(
            feature_name => 'AUTO_DST_UPGRADE');
    END;
    /
  2. Interrogez dba_cloud_config pour vérifier que AUTO_DST_UPGRADE est désactivé.

    SELECT param_name, param_value FROM dba_cloud_config WHERE
           LOWER(param_name) = 'auto_dst_upgrade';
    
    0 rows selected.

Pour plus d'informations, reportez-vous à Procédure ENABLE_FEATURE et à Procédure DISABLE_FEATURE.

Pour plus d'informations, reportez-vous à TIMESTAMP WITH TIME ZONE Data Type.

Utiliser l'option de fichier de fuseau horaire AUTO_DST_UPGRADE_EXCL_DATA

Autonomous Database fournit l'option AUTO_DST_UPGRADE_EXCL_DATA pour mettre à jour automatiquement les fichiers de fuseau horaire sur une instance de base de données Autonomous Database.

AUTO_DST_UPGRADE_EXCL_DATA met automatiquement à niveau les fichiers de fuseau horaire et ne met pas automatiquement à niveau les lignes de la base de données pour utiliser les dernières données de fuseau horaire. Lorsque cette option est activée, la base de données met à niveau la dernière version des fichiers de fuseau horaire, puis la base de données pour utiliser les nouvelles versions des fichiers de fuseau horaire lors de la fenêtre de maintenance d'Autonomous Database (à chaque fois qu'une nouvelle version est disponible). Cette option ne nécessite pas le redémarrage de l'instance Autonomous Database.

Remarque

Par défaut, AUTO_DST_UPGRADE et AUTO_DST_UPGRADE_EXCL_DATA sont désactivés. Vous pouvez activer l'une ou l'autre des options de mise à jour automatique du fichier de fuseaux horaires, mais pas les deux.

Lorsqu'une opération de chargement ou d'importation génère l'erreur de fuseau horaire suivante, cela indique que vos fichiers de fuseau horaire sont obsolètes et que vous devez mettre à jour vers la dernière version disponible pour votre base de données :

ORA-39405: Oracle Data Pump does not support importing from a source database with TSTZ version n+1 
into a target database with TSTZ version n.

Pour activer les mises à jour automatiques des fichiers de fuseaux horaires avec AUTO_DST_UPGRADE_EXCL_DATA :

  1. Activez la fonctionnalité AUTO_DST_UPGRADE_EXCL_DATA.
    BEGIN 
       DBMS_CLOUD_ADMIN.ENABLE_FEATURE(
            feature_name => 'AUTO_DST_UPGRADE_EXCL_DATA');
    END;
    /
  2. Interrogez dba_cloud_config pour vérifier que AUTO_DST_UPGRADE_EXCL_DATA est activé.
    SELECT param_name, param_value FROM dba_cloud_config WHERE
           LOWER(param_name) = 'auto_dst_upgrade_excl_data';
    
    PARAM_NAME                   PARAM_VALUE                              
    ---------------------------- ---------------------------------------- 
    auto_dst_upgrade_excl_data    enabled                                   
  3. Interrogez dba_cloud_config pour vérifier la version du fuseau horaire.
    SELECT param_name, param_value FROM dba_cloud_config 
        WHERE LOWER(param_name) = 'latest_timezone_version';
    
    PARAM_NAME              PARAM_VALUE 
    ----------------------- ----------- 
    latest_timezone_version 38          

    Vous pouvez interroger la vue DB_NOTIFICATIONS pour voir si la version du fuseau horaire est la dernière :

    SELECT type, time, description, expected_start_date FROM db_notifications 
       WHERE TYPE='TIMEZONE VERSION';

Lorsque AUTO_DST_UPGRADE_EXCL_DATA est activé, Autonomous Database met à niveau vers la dernière version des fichiers de fuseau horaire, et vérifie et met à jour les nouvelles versions de fichier de fuseau horaire lors de chaque fenêtre de maintenance programmée. Lorsque l'option AUTO_DST_UPGRADE_EXCL_DATA est activée, les colonnes de la base de données avec le type de données TIMESTAMP WITH TIME ZONE ne sont pas converties en nouvelle version de fuseau horaire.

Pour désactiver AUTO_DST_UPGRADE_EXCL_DATA, procédez comme suit :

  1. Désactivez la fonctionnalité AUTO_DST_UPGRADE_EXCL_DATA :
    BEGIN 
       DBMS_CLOUD_ADMIN.DISABLE_FEATURE(
            feature_name => 'AUTO_DST_UPGRADE_EXCL_DATA');
    END;
    /
  2. Interrogez dba_cloud_config pour vérifier que AUTO_DST_UPGRADE_EXCL_DATA est désactivé.

    SELECT param_name, param_value FROM dba_cloud_config WHERE
           LOWER(param_name) = 'auto_dst_upgrade_excl_data';
    
    0 rows selected.

Pour plus d'informations, reportez-vous à Procédure ENABLE_FEATURE et à Procédure DISABLE_FEATURE.

Pour plus d'informations, reportez-vous à TIMESTAMP WITH TIME ZONE Data Type.