Preparazione all'aggiornamento del file di fuso orario - Amazon Relational Database Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Preparazione all'aggiornamento del file di fuso orario

L'aggiornamento di un file di fuso orario prevede due fasi distinte: preparazione e aggiornamento. Anche se non richiesto, è fortemente consigliabile eseguire la fase di preparazione. In questo passaggio, scoprirai quali dati saranno interessati dall'esecuzione della SQL procedura DBMS_DST.FIND_AFFECTED_TABLES PL/. Per ulteriori informazioni sulla finestra di preparazione, consulta Aggiornamento del file di fuso orario e del timestamp con dati di fuso orario nella documentazione di Oracle Database.

Per preparare l'aggiornamento del file di fuso orario
  1. Connect al database Oracle tramite un SQL client.

  2. Determinare la versione corrente del file di fuso orario utilizzata.

    SELECT * FROM V$TIMEZONE_FILE;
  3. Determinare la versione più recente del file di fuso orario disponibile nell'istanza database.

    SELECT DBMS_DST.GET_LATEST_TIMEZONE_VERSION FROM DUAL;
  4. Determinare la dimensione totale delle tabelle con colonne di tipo TIMESTAMP WITH LOCAL TIME ZONE o TIMESTAMP WITH TIME ZONE.

    SELECT SUM(BYTES)/1024/1024/1024 "Total_size_w_TSTZ_columns_GB" FROM DBA_SEGMENTS WHERE SEGMENT_TYPE LIKE 'TABLE%' AND (OWNER, SEGMENT_NAME) IN (SELECT OWNER, TABLE_NAME FROM DBA_TAB_COLUMNS WHERE DATA_TYPE LIKE 'TIMESTAMP%TIME ZONE');
  5. Determinare i nomi e le dimensioni dei segmenti con colonne di tipo TIMESTAMP WITH LOCAL TIME ZONE o TIMESTAMP WITH TIME ZONE.

    SELECT OWNER, SEGMENT_NAME, SUM(BYTES)/1024/1024/1024 "SEGMENT_SIZE_W_TSTZ_COLUMNS_GB" FROM DBA_SEGMENTS WHERE SEGMENT_TYPE LIKE 'TABLE%' AND (OWNER, SEGMENT_NAME) IN (SELECT OWNER, TABLE_NAME FROM DBA_TAB_COLUMNS WHERE DATA_TYPE LIKE 'TIMESTAMP%TIME ZONE') GROUP BY OWNER, SEGMENT_NAME;
  6. Eseguire la fase di preparazione.

    • La procedura DBMS_DST.CREATE_AFFECTED_TABLE crea una tabella per l'archiviazione dei dati interessati. Passare il nome di questa tabella alla procedura DBMS_DST.FIND_AFFECTED_TABLES. Per ulteriori informazioni, vedere TABLEProcedura CREATE _ AFFECTED _ nella documentazione di Oracle Database.

    • La procedura CREATE_ERROR_TABLE crea una tabella per registrare gli errori. Per ulteriori informazioni, vedere TABLEProcedura CREATE _ ERROR _ nella documentazione di Oracle Database.

    Nell'esempio seguente vengono create le tabelle dei dati e degli errori interessati e vengono trovate tutte le tabelle interessate.

    EXEC DBMS_DST.CREATE_ERROR_TABLE('my_error_table') EXEC DBMS_DST.CREATE_AFFECTED_TABLE('my_affected_table') EXEC DBMS_DST.BEGIN_PREPARE(new_version); EXEC DBMS_DST.FIND_AFFECTED_TABLES('my_affected_table', TRUE, 'my_error_table'); EXEC DBMS_DST.END_PREPARE; SELECT * FROM my_affected_table; SELECT * FROM my_error_table;
  7. Eseguire una query sulle tabelle interessate e di errore.

    SELECT * FROM my_affected_table; SELECT * FROM my_error_table;