Gestisci aggiornamenti file fuso orario su Autonomous Database

Autonomous Database fornisce diverse opzioni per aggiornare automaticamente i file del fuso orario in un'istanza di database Autonomous Database.

Informazioni sulle opzioni di aggiornamento del file di fuso orario

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

Autonomous Database fornisce le opzioni riportate di seguito per l'aggiornamento dei file del fuso orario.

  • AUTO_DST_UPGRADE: aggiorna automaticamente i file del fuso orario e aggiorna automaticamente i dati del database per utilizzare i dati del fuso orario più recenti. Questa opzione richiede il riavvio o l'arresto e 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 del database per utilizzare i dati del fuso orario più recenti. Quando si abilita questa opzione, i file di fuso orario vengono aggiornati alla versione più recente e le versioni vengono mantenute aggiornate. Questa opzione non richiede il riavvio dell'istanza di Autonomous Database.

Nota

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

Con ogni versione di Daylight Saving Time (DST), sono state introdotte modifiche al file DST per rendere i dati esistenti conformi alle ultime regole DST. L'applicazione di una modifica ai file del fuso orario del database non solo influisce sulla modalità di gestione dei nuovi dati, ma potenzialmente altera i dati memorizzati nelle colonne TIMESTAMP WITH TIME ZONE.

Quando un'operazione di caricamento o importazione causa il seguente errore relativo al fuso orario, ciò 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 aggiornare automaticamente le righe nel database in modo che utilizzino i dati del fuso orario più recenti. Viene applicata la versione più recente dei file del 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 limitare l'uso di AUTO_DST_UPGRADE per eseguire l'aggiornamento 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 se si verificano errori di importazione/esportazione a causa di una mancata corrispondenza della versione dei file del fuso orario (dove si riceve l'errore ORA-3940).

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

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

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

  • I dati nell'istanza utilizzano date che non vengono modificate con nuovi criteri relativi al fuso orario o all'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.

Per informazioni su come determinare se le modifiche al fuso orario influiranno sul database, vedere il documento Oracle Support 406410.1.

Nota

Oracle consiglia di abilitare l'opzione AUTO_DST_UPGRADE quando questi casi limitanti 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 sulla versione più recente del file del fuso orario abilitando AUTO_DST_UPGRADE. Questa opzione aggiorna automaticamente le righe nel database in modo da utilizzare i dati del fuso orario più recenti.

    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 del fuso orario aggiornati non vengono aggiornati, il che potrebbe portare a possibili incoerenze dei dati.

  • Riavvio del database: Oracle consiglia di mantenere il database nella 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 vengono aggiornate le righe per i dati esistenti del tipo di dati TIMESTAMP WITH TIME ZONE per utilizzare la versione più recente. L'abilitazione di AUTO_DST_UPGRADE può influire sul tempo di riavvio del database. Un riavvio può richiedere un tempo aggiuntivo 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, al momento dell'abilitazione di questa opzione, il database viene aggiornato alla versione più recente dei file del fuso orario e, durante ogni finestra di manutenzione, se sono disponibili file di fuso orario più recenti, Autonomous Database aggiorna il database per utilizzare la versione più recente. L'abilitazione di AUTO_DST_UPGRADE_EXCL_DATA non richiede il riavvio dell'istanza di Autonomous Database per rimanere aggiornati con la versione più recente dei file del fuso orario.

Per ulteriori informazioni, vedere Supporto dei tipi di dati di data e fuso orario.

Usa opzione file fuso orario AUTO_DST_UPGRADE

Autonomous Database fornisce l'opzione AUTO_DST_UPGRADE per aggiornare automaticamente i file del fuso orario in un'istanza di database Autonomous Database.

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

Nota

Per impostazione predefinita, sia AUTO_DST_UPGRADE che AUTO_DST_UPGRADE_EXCL_DATA sono disabilitati. È possibile abilitare 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 del fuso orario, a seconda dello stato dell'istanza:

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

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

Quando un'operazione di caricamento o importazione causa 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 l'aggiornamento automatico dei file del fuso orario 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 una query su 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 una query su 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 AUTO DST UPGRADE è abilitato, Autonomous Database esegue l'upgrade alla versione più recente dei file del fuso orario (quando si riavvia o si arresta e quindi si avvia il 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 una query su 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 Procedure e DISABLE_FEATURE Procedure.

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 del fuso orario in un'istanza di 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 del fuso orario più recenti. Quando questa opzione è abilitata, il database esegue l'upgrade alla versione più recente dei file del fuso orario e successivamente esegue l'upgrade del database in modo che utilizzi le nuove versioni dei file del fuso orario durante la finestra di manutenzione di Autonomous Database (ogni volta che è disponibile una nuova versione). Questa opzione non richiede il riavvio dell'istanza di Autonomous Database.

Nota

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

Quando un'operazione di caricamento o importazione causa 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 l'aggiornamento automatico dei file del fuso orario 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 una query su 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 una query su 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 AUTO_DST_UPGRADE_EXCL_DATA è abilitato, Autonomous Database esegue l'upgrade alla versione più recente dei file del fuso orario e verifica 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 una query su 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 Procedure e DISABLE_FEATURE Procedure.

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