Gestisci aggiornamenti file fuso orario su Autonomous Database

Autonomous Database offre diverse opzioni per aggiornare automaticamente i file dei fusi orari in un'istanza del database Autonomous Database.

Informazioni sulle opzioni di aggiornamento del file del fuso orario

Per il supporto del fuso orario, Oracle Database utilizza i file del fuso orario che memorizzano la lista di tutti i fusi orari. I file del fuso orario per Autonomous Database vengono aggiornati periodicamente per riflettere le modifiche più recenti specifiche del fuso orario.

Autonomous Database offre le seguenti opzioni per l'aggiornamento dei file di fuso orario:

  • AUTO_DST_UPGRADE: aggiorna automaticamente i file del fuso orario e aggiorna automaticamente i dati nel database in modo da utilizzare i dati del fuso orario più recenti. Questa opzione richiede il riavvio o l'arresto, quindi l'avvio dell'istanza di Autonomous Database.

  • AUTO_DST_UPGRADE_EXCL_DATA: aggiorna automaticamente i file del fuso orario e non aggiorna automaticamente i dati nel database per utilizzare i dati del fuso orario più recenti. Quando si abilita questa opzione, i file dei fusi orari vengono aggiornati alla versione più recente e le relative versioni vengono mantenute aggiornate. Questa opzione non richiede il riavvio dell'istanza di Autonomous Database.

Nota

Per impostazione predefinita, AUTO_DST_UPGRADE e AUTO_DST_UPGRADE_EXCL_DATA sono disabilitati. È possibile abilitare una o l'altra di queste opzioni, ma non entrambe.

Con ogni release della versione DST (Daylight Saving Time), sono state introdotte modifiche ai file DST per rendere i dati esistenti conformi alle più recenti regole DST. L'applicazione di una modifica ai file del fuso orario del database non solo influisce sul modo in cui vengono gestiti i nuovi dati, ma modifica potenzialmente i dati memorizzati nelle colonne TIMESTAMP WITH TIME ZONE.

Quando un'operazione di caricamento o importazione genera il seguente errore relativo al fuso orario, questa condizione indica che la versione dei file del fuso orario non è aggiornata ed è necessario eseguire l'aggiornamento alla versione più recente disponibile per il database:

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.

È possibile abilitare la funzione AUTO_DST_UPGRADE che aggiorna automaticamente un'istanza per utilizzare la versione più recente disponibile dei file del fuso orario e aggiorna automaticamente le righe nel database in modo da utilizzare i dati più recenti del fuso orario. Viene applicata la versione più recente dei file di fuso orario e i valori nelle colonne TIMESTAMP WITH TIME ZONE vengono aggiornati al successivo riavvio del database. Tuttavia, a seconda dell'uso del database, il riavvio del database richiesto potrebbe impedire l'uso di AUTO_DST_UPGRADE per eseguire l'upgrade ai file del fuso orario più recenti.

È possibile abilitare AUTO_DST_UPGRADE_EXCL_DATA per aggiornare i file del fuso orario. Questa opzione consente di aggiornare immediatamente il database in caso di errori di importazione/esportazione dovuti a una mancata corrispondenza della versione dei file del fuso orario (dove viene visualizzato l'errore ORA-3940).

L'abilitazione di AUTO_DST_UPGRADE_EXCL_DATA nel database può essere vantaggiosa nei seguenti casi:

  • I dati sull'istanza sono in formato UTC e il database non è interessato dagli aggiornamenti del file del fuso orario DST.

  • L'istanza non contiene dati nelle colonne TIMESTAMP WITH TIME ZONE.

  • I dati nell'istanza utilizzano date che non vengono modificate con nuovi criteri di fuso orario o ora legale.

In questo caso, quando l'istanza di Autonomous Database non contiene righe che sono influenzate negativamente dalle nuove regole del fuso orario e si verifica l'errore ORA-3940, è possibile abilitare l'opzione AUTO_DST_UPGRADE_EXCL_DATA per eseguire l'aggiornamento alla versione più recente dei file del fuso orario. L'opzione AUTO_DST_UPGRADE_EXCL_DATA dà la priorità al successo dei job di Oracle Data Pump rispetto ai problemi di coerenza dei dati dovuti alla modifica dell'ora legale.

Fare riferimento al Documento Oracle Support 406410.1 per determinare se le modifiche al fuso orario influiranno sul database.

Nota

Oracle consiglia di abilitare l'opzione AUTO_DST_UPGRADE quando questi casi di limitazione non si applicano al database.

In sintesi, la scelta di abilitare gli aggiornamenti automatici del fuso orario con AUTO_DST_UPGRADE o AUTO_DST_UPGRADE_EXCL_DATA comporta le seguenti considerazioni:

  • Possibile incoerenza dei dati: Oracle consiglia di mantenere il database nella versione più recente del file del fuso orario abilitando AUTO_DST_UPGRADE. Questa opzione aggiorna automaticamente le righe del database per utilizzare i dati più recenti del fuso orario.

    L'opzione alternativa, AUTO_DST_UPGRADE_EXCL_DATA, consente di gestire il database utilizzando la versione più recente del fuso orario senza richiedere il riavvio del database; tuttavia, i dati che potrebbero essere interessati dai file aggiornati del fuso orario non vengono aggiornati, il che potrebbe causare una possibile incoerenza dei dati.

  • Riavvio del database: Oracle consiglia di mantenere il database sulla versione più recente del file del fuso orario abilitando AUTO_DST_UPGRADE. Questa opzione richiede un riavvio per eseguire l'aggiornamento alla versione più recente dei file del fuso orario e durante il riavvio aggiorna le righe per i dati esistenti del tipo di dati TIMESTAMP WITH TIME ZONE in modo da utilizzare la versione più recente. L'abilitazione di AUTO_DST_UPGRADE può influire sul tempo di riavvio del database. Un riavvio può richiedere più tempo rispetto a un riavvio senza questa opzione abilitata quando sono presenti nuovi file di fuso orario e sono presenti dati che devono essere aggiornati al riavvio del database.

    Quando si abilita AUTO_DST_UPGRADE_EXCL_DATA, quando si abilita questa opzione, viene eseguito l'upgrade del database alla versione più recente dei file del fuso orario e, durante ogni finestra di manutenzione, se sono disponibili file del fuso orario più recenti, Autonomous Database aggiorna il database in modo che utilizzi la versione più recente. L'abilitazione di AUTO_DST_UPGRADE_EXCL_DATA non richiede il riavvio dell'istanza di Autonomous Database per essere sempre aggiornato con la versione più recente dei file di fuso orario.

Per ulteriori informazioni, vedere Supporto di tipi di dati e fusi orari.

Usa opzione file fuso orario AUTO_DST_UPGRADE

Autonomous Database fornisce l'opzione AUTO_DST_UPGRADE per aggiornare automaticamente i file dei fusi orari in un'istanza del database Autonomous Database.

La funzione AUTO_DST_UPGRADE aggiorna automaticamente i file del fuso orario e aggiorna automaticamente le righe nel database in modo da utilizzare i dati più recenti del fuso orario.

Nota

Per impostazione predefinita, AUTO_DST_UPGRADE e AUTO_DST_UPGRADE_EXCL_DATA sono disabilitati. È possibile abilitare l'una o l'altra delle opzioni di aggiornamento automatico del file del fuso orario, ma non entrambe.

Quando si abilita AUTO_DST_UPGRADE, l'istanza di Autonomous Database applica automaticamente gli aggiornamenti per i file di fuso orario, a seconda dello stato dell'istanza:

  • Interrotto: all'operazione di avvio successiva l'aggiornamento viene applicato automaticamente.

  • Disponibile: dopo un riavvio o un'interruzione e quindi l'avvio, l'aggiornamento viene applicato automaticamente.

Quando un'operazione di caricamento o importazione genera il seguente errore relativo al fuso orario, ciò indica che i file del fuso orario non sono aggiornati ed è necessario eseguire l'aggiornamento alla versione più recente disponibile per il database:

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.

Per abilitare gli aggiornamenti automatici dei file dei fusi orari con AUTO_DST_UPGRADE:

  1. Abilitare la funzione AUTO_DST_UPGRADE.
    BEGIN 
       DBMS_CLOUD_ADMIN.ENABLE_FEATURE(
            feature_name => 'AUTO_DST_UPGRADE');
    END;
    /
  2. Eseguire la query dba_cloud_config per verificare che AUTO_DST_UPGRADE sia abilitato.
    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. Eseguire la query dba_cloud_config per controllare la versione del fuso orario.
    SELECT param_name, param_value FROM dba_cloud_config 
        WHERE LOWER(param_name) = 'latest_timezone_version';
    
    PARAM_NAME              PARAM_VALUE 
    ----------------------- ----------- 
    latest_timezone_version 38          

    È possibile eseguire una query sulla vista DB_NOTIFICATIONS per verificare se la versione del fuso orario è la versione più recente:

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

Quando l'opzione AUTO DST UPGRADE è abilitata, Autonomous Database esegue l'upgrade alla versione più recente dei file del fuso orario (al successivo riavvio o all'arresto e quindi all'avvio del database). Le colonne del database con il tipo di dati TIMESTAMP WITH TIME ZONE vengono convertite nella nuova versione del fuso orario durante il riavvio.

Per disabilitare AUTO_DST_UPGRADE:

  1. Disabilitare la funzione AUTO_DST_UPGRADE:
    BEGIN 
       DBMS_CLOUD_ADMIN.DISABLE_FEATURE(
            feature_name => 'AUTO_DST_UPGRADE');
    END;
    /
  2. Eseguire la query dba_cloud_config per verificare che AUTO_DST_UPGRADE sia disabilitato.

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

Per ulteriori informazioni, vedere ENABLE_FEATURE Procedura e Procedura DISABLE_FEATURE.

Per ulteriori informazioni, vedere TIMESTAMP WITH TIME ZONE Data Type.

Usa opzione file fuso orario AUTO_DST_UPGRADE_EXCL_DATA

Autonomous Database fornisce l'opzione AUTO_DST_UPGRADE_EXCL_DATA per aggiornare automaticamente i file dei fusi orari in un'istanza del database Autonomous Database.

AUTO_DST_UPGRADE_EXCL_DATA aggiorna automaticamente i file del fuso orario e non aggiorna automaticamente le righe nel database per utilizzare i dati più recenti del fuso orario. Quando questa opzione è abilitata, il database esegue l'upgrade alla versione più recente dei file del fuso orario e successivamente aggiorna il database in modo che utilizzi nuove versioni dei file del fuso orario durante la finestra di manutenzione di Autonomous Database (quando è disponibile una nuova versione). Questa opzione non richiede il riavvio dell'istanza di Autonomous Database.

Nota

Per impostazione predefinita, AUTO_DST_UPGRADE e AUTO_DST_UPGRADE_EXCL_DATA sono disabilitati. È possibile abilitare l'una o l'altra delle opzioni di aggiornamento automatico del file del fuso orario, ma non entrambe.

Quando un'operazione di caricamento o importazione genera il seguente errore relativo al fuso orario, ciò indica che i file del fuso orario non sono aggiornati ed è necessario eseguire l'aggiornamento alla versione più recente disponibile per il database:

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.

Per abilitare gli aggiornamenti automatici dei file dei fusi orari con AUTO_DST_UPGRADE_EXCL_DATA:

  1. Abilitare la funzione AUTO_DST_UPGRADE_EXCL_DATA.
    BEGIN 
       DBMS_CLOUD_ADMIN.ENABLE_FEATURE(
            feature_name => 'AUTO_DST_UPGRADE_EXCL_DATA');
    END;
    /
  2. Eseguire la query dba_cloud_config per verificare che AUTO_DST_UPGRADE_EXCL_DATA sia abilitato.
    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. Eseguire la query dba_cloud_config per controllare la versione del fuso orario.
    SELECT param_name, param_value FROM dba_cloud_config 
        WHERE LOWER(param_name) = 'latest_timezone_version';
    
    PARAM_NAME              PARAM_VALUE 
    ----------------------- ----------- 
    latest_timezone_version 38          

    È possibile eseguire una query sulla vista DB_NOTIFICATIONS per verificare se la versione del fuso orario è la versione più recente:

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

Quando l'opzione AUTO_DST_UPGRADE_EXCL_DATA è abilitata, Autonomous Database esegue l'upgrade alla versione più recente dei file del fuso orario e controlla e aggiorna le nuove versioni dei file del fuso orario durante ogni finestra di manutenzione pianificata. Se AUTO_DST_UPGRADE_EXCL_DATA è abilitato, le colonne del database con il tipo di dati TIMESTAMP WITH TIME ZONE non vengono convertite nella nuova versione del fuso orario.

Per disabilitare AUTO_DST_UPGRADE_EXCL_DATA:

  1. Disabilitare la funzione AUTO_DST_UPGRADE_EXCL_DATA:
    BEGIN 
       DBMS_CLOUD_ADMIN.DISABLE_FEATURE(
            feature_name => 'AUTO_DST_UPGRADE_EXCL_DATA');
    END;
    /
  2. Eseguire la query dba_cloud_config per verificare che AUTO_DST_UPGRADE_EXCL_DATA sia disabilitato.

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

Per ulteriori informazioni, vedere ENABLE_FEATURE Procedura e Procedura DISABLE_FEATURE.

Per ulteriori informazioni, vedere TIMESTAMP WITH TIME ZONE Data Type.