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 du fichier de fuseaux horaires

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

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 votre 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 de redémarrer votre 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 l'heure d'été, des modifications du fichier d'heure d'été sont introduites pour que les données existantes soient conformes aux dernières règles d'heure d'été. 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 entraîne l'erreur suivante liée au fuseau horaire, 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 afin d'utiliser la dernière version disponible des fichiers de fuseau horaire, et qui 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. Toutefois, en fonction de 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 être 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 de l'heure d'été.

  • 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 avec de nouvelles règles de fuseau horaire ou d'heure d'été.

Dans ce cas, lorsque votre instance Autonomous Database ne contient pas de lignes affectées 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 effectuer la mise à jour vers la dernière version des fichiers de fuseau horaire. L'option AUTO_DST_UPGRADE_EXCL_DATA donne la priorité au succès 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 de données possible : Oracle recommande de maintenir la 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 votre 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 votre 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. Cependant, les données susceptibles d'être affectées par les fichiers de fuseau horaire mis à jour ne sont pas mises à jour, ce qui pourrait entraîner une incohérence des données.

  • Redémarrage de la base de données : Oracle recommande de maintenir la base de données à jour avec 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. Pendant le redémarrage, les lignes des données existantes de type de données TIMESTAMP WITH TIME ZONE sont mises à jour pour utiliser la dernière version. L'activation de AUTO_DST_UPGRADE peut avoir une incidence sur l'heure de redémarrage de la base de données. Un redémarrage peut nécessiter un temps 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 des 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. Pour activer AUTO_DST_UPGRADE_EXCL_DATA, vous n'avez pas besoin de redémarrer votre instance Autonomous Database pour vous tenir au courant de la dernière version des fichiers de fuseau horaire.

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

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 votre 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 :

  • Stopped : 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 entraîne l'erreur suivante liée au fuseau horaire, cela indique que vos fichiers de fuseau horaire sont obsolètes 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 n+1 
into a target database with TSTZ version n.

Pour activer les mises à jour automatiques de fichier de fuseau horaire avec AUTO_DST_UPGRADE, procédez comme suit :

  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 savoir si la version du fuseau horaire est la dernière version :

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

Lorsque AUTO DST UPGRADE est activé, Autonomous Database effectue une mise à niveau vers la dernière version des fichiers de fuseau horaire (lors du prochain redémarrage ou de l'arrêt, puis du démarrage de la base de données). Les colonnes de votre base de données avec le type de données TIMESTAMP WITH TIME ZONE sont converties vers la 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 à ENABLE_FEATURE Procédure et DISABLE_FEATURE Procédure.

Pour plus d'informations, reportez-vous à Type de données TIMESTAMP WITH TIME ZONE.

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 votre base de données pour utiliser les données de fuseau horaire les plus récentes. Lorsque cette option est activée, la base de données effectue une mise à niveau vers la dernière version des fichiers de fuseau horaire, puis met à niveau la base de données afin d'utiliser les nouvelles versions des fichiers de fuseau horaire pendant la fenêtre de maintenance d'Autonomous Database (à chaque fois qu'une nouvelle version est disponible). Cette option ne nécessite pas de redémarrer votre 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 entraîne l'erreur suivante liée au fuseau horaire, cela indique que vos fichiers de fuseau horaire sont obsolètes 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 n+1 
into a target database with TSTZ version n.

Pour activer les mises à jour automatiques de fichier de fuseau horaire avec AUTO_DST_UPGRADE_EXCL_DATA, procédez comme suit :

  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 savoir si la version du fuseau horaire est la dernière version :

    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 AUTO_DST_UPGRADE_EXCL_DATA est activé, les colonnes de votre base de données avec le type de données TIMESTAMP WITH TIME ZONE ne sont pas converties vers la 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 à ENABLE_FEATURE Procédure et DISABLE_FEATURE Procédure.

Pour plus d'informations, reportez-vous à Type de données TIMESTAMP WITH TIME ZONE.