Eseguire la migrazione dei piani di esecuzione SQL esistenti ad Autonomous Database per ridurre il rischio delle aree di prestazioni SQL

Descrive come ridurre il rischio di regressioni delle prestazioni SQL durante la migrazione ad Autonomous Database.

Informazioni sulla migrazione ad Autonomous Database con SQL Plan Management (SPM) in tempo reale

Descrive l'utilizzo di SQL Plan Management in tempo reale quando si esegue la migrazione da un Oracle Database di origine ad Autonomous Database.

Quando esegui la migrazione da un Oracle Database di origine ad Autonomous Database, puoi utilizzare SPM (Real-time SQL Plan Management). Ciò consente di acquisire i piani di esecuzione SQL dal database di origine e di spostarli in Automatic SQL Tuning Set (ASTS) su Autonomous Database in modo che i piani continuino a funzionare con le stesse prestazioni o con prestazioni migliori dopo la migrazione. L'SPM in tempo reale consente di cambiare i piani su Autonomous Database, ma se l'SPM in tempo reale vede prestazioni scadenti, può utilizzare un piano proveniente dal database pre-migrato se tale piano fornisce prestazioni migliori (l'SPM in tempo reale utilizza i piani in Automatic SQL Tuning Set (ASTS) solo se forniscono prestazioni migliori).

Tieni presente quanto riportato di seguito per utilizzare l'SPM in tempo reale con una migrazione ad Autonomous Database:

  • SPM si basa su istruzioni SQL ripetibili. SPM non è adatto per i database che utilizzano valori letterali nelle istruzioni SQL o per SQL altamente dinamico, ad esempio negli ambienti di query ad hoc. Tuttavia, se le istruzioni SQL utilizzano valori letterali e il parametro CURSOR_SHARING è impostato su FORCE, SPM funzionerà.
  • Nell'Oracle Database di origine di cui si sta eseguendo la migrazione ad Autonomous Database è possibile acquisire le istruzioni SQL dell'applicazione in un SQL Tuning Set (SYS_AUTO_SYS). Questo può consumare spazio in SYSAUX, ma in genere non consuma più di pochi gigabyte (anche per sistemi di grandi dimensioni). Se necessario, è possibile monitorare l'uso di SYSAUX e aumentare le dimensioni della tablespace.
  • L'SPM in tempo reale non può impedire tutte le regressioni delle prestazioni, ma può ridurre in modo significativo il rischio che si verifichino regressioni delle prestazioni a causa delle modifiche al piano di esecuzione SQL.

Eseguire i passi riportati di seguito per abilitare SQL Plan Management (SPM) nell'Oracle Database di origine e per eseguire la migrazione del database ad Autonomous Database.

  1. Abilita SQL Tuning Set automatico in Oracle Database di origine

  2. Migra i tuoi dati ad Autonomous Database

  3. Esporta SQL Tuning Set automatico da Oracle Database di origine

  4. Importa SQL Tuning Set automatico in Autonomous Database

  5. Verifica l'impostazione SPM in tempo reale su Autonomous Database

Per ulteriori informazioni, vedere gli argomenti riportati di seguito.

Abilita SQL Tuning Set automatico in Oracle Database di origine

Prima di eseguire la migrazione ad Autonomous Database, abilitare Automatic SQL Tuning Set (ASTS) nell'Oracle Database di origine.

ASTS deve essere eseguito per un tempo sufficiente a coprire il carico di lavoro e acquisire tutte o la maggior parte delle istruzioni SQL e dei relativi piani di esecuzione. Quindi, considera l'abilitazione di ASTS con lead time prima della migrazione ad Autonomous Database. Ad esempio, per un'applicazione finanziaria o di vendita, acquisire l'elaborazione di fine mese o di fine anno.

In Oracle Database di origine, quando l'utente DBA abilita Automatic SQL Tuning Set (ASTS):

  1. Nel database di cui si desidera eseguire la migrazione, abilitare ASTS.
    BEGIN
      dbms_auto_task_admin.enable(
        client_name => 'Auto STS Capture Task',
        operation   => NULL,
        window_name => NULL);
    END;
    /

    Per ulteriori informazioni, vedere DBMS_AUTO_TASK_ADMIN.

  2. Verificare che il task in background ASTS sia abilitato.
    SELECT task_name, interval,status, last_schedule_time, enabled
        FROM   dba_autotask_schedule_control
        WHERE  dbid = sys_context('userenv','con_dbid') AND 
               task_name = 'Auto STS Capture Task';

Se si desidera monitorare l'istruzione SQL acquisita, visualizzare DBA_SQLSET_STATEMENTS. Ad esempio:

SELECT substr(sql_text,1,100) txt, executions
    FROM dba_sqlset_statements 
    WHERE sqlset_name = 'SYS_AUTO_STS';

Se necessario, è possibile monitorare le dimensioni e lo spazio libero di SYSAUX. Ad esempio:

SELECT sum(bytes)/(1024*1024*1024) size_gb
    FROM   dba_data_files
    WHERE tablespace_name = 'SYSAUX' GROUP BY tablespace_name;

SELECT sum(bytes)/(1024*1024*1024) free_gb
    FROM dba_free_space
    WHERE tablespace_name = 'SYSAUX' GROUP BY tablespace_name;

Migra i tuoi dati ad Autonomous Database

Dopo aver acquisito una quantità sufficiente di SQL nell'Oracle Database di origine con ASTS (Automatic SQL Tuning Set) abilitato, eseguire la migrazione ad Autonomous Database.

Vedere Esegui migrazione dei database Oracle ad Autonomous Database per le opzioni di migrazione ad Autonomous Database.

Esporta SQL Tuning Set automatico da Oracle Database di origine

Dopo aver eseguito la migrazione ad Autonomous Database, esportare l'SQL Tuning Set automatico (ASTS) dall'Oracle Database di origine.

  1. In Oracle Database di origine, creare e popolare una tabella intermedia per i dati ASTS.

    Come utente DBA, creare la tabella intermedia:

    BEGIN
       dbms_sqlset.create_stgtab('ASTS_TABLE');
       dbms_sqlset.pack_stgtab('SYS_AUTO_STS','SYS','ASTS_TABLE');
    END;
    /

    Al termine di questa operazione, la tabella intermedia contiene le istruzioni SQL acquisite nell'Oracle Database di origine.

  2. Esporta la tabella intermedia.

    Ad esempio, esportare la tabella intermedia utilizzando Oracle Data Pump:

    CREATE DIRECTORY dpdir AS '/export_directory';
    expdp user/password@database tables=asts_table directory=directory dumpfile=filename

Per ulteriori informazioni, vedere DBMS_SQLSET.

Importa SQL Tuning Set automatico in Autonomous Database

Dopo aver eseguito la migrazione ad Autonomous Database ed aver esportato l'SQL Tuning Set automatico (ASTS) dall'Oracle Database di origine di cui si sta eseguendo la migrazione, importare l'ASTS nell'Autonomous Database.

  1. Importare il file temporaneo in Autonomous Database.

    Utilizzare Oracle Data Pump per importare la tabella intermedia in Autonomous Database. Caricare innanzitutto il file di dump esportato dall'Oracle Database di origine in un bucket di storage degli oggetti cloud, quindi importare il file di dump.

    Ad esempio, l'utente ADMIN esegue i seguenti comandi:

    1. Creare la credenziale per accedere al bucket dell'area di memorizzazione degli oggetti cloud.
      BEGIN
        DBMS_CLOUD.CREATE_CREDENTIAL(
          credential_name => 'BUCKET_CREDENTIAL',
          username => 'oracleidentitycloudservice/aaaaa@bbbbb.com',
          password => 'password'
        );
      END;
      /

      Per ulteriori informazioni, vedere Crea credenziali per accedere ai servizi cloud.

    2. Utilizzare Oracle Data Pump per importare il file di dump con i dati ASTS nell'istanza di Autonomous Database.
      impdp admin/password@db_adb_high \
           directory=data_pump_dir \
           credential=BUCKET_CREDENTIAL \
           dumpfile= https://namespace-string.objectstorage.us-ashburn-1.oci.customer-oci.com/n/namespace-string/b/bucketname/o/asts_staging.dmp \
           tables=asts_table
    Nota

    Assicurarsi che il file del fuso orario in Autonomous Database corrisponda al valore nell'Oracle Database di origine in cui è stato creato il file di dump. Se il fuso orario non corrisponde, il database genera il seguente errore:
    ORA-39002: invalid operation' error raised by dbms_datapump.start_job'

    Per ulteriori informazioni, vedere Supporto dei tipi di dati di data e del fuso orario e Gestione degli aggiornamenti dei file del fuso orario su Autonomous Database.

  2. In Autonomous Database migrato, decomprimere le istruzioni SQL dalla tabella di staging e caricarle nell'ASTS di destinazione.
    BEGIN
       dbms_sqlset.unpack_stgtab('SYS_AUTO_STS','SYS',TRUE,'ASTS_TABLE');
    END;
    /

Per ulteriori informazioni, vedere DBMS_SQLSET.

Verifica l'impostazione SPM in tempo reale su Autonomous Database

Descrive i passi per verificare che SPM in tempo reale sia abilitato in Autonomous Database.

L'SPM in tempo reale è abilitato per impostazione predefinita su Autonomous Database. È possibile verificare la modalità SPM in tempo reale come indicato di seguito.

SELECT parameter_value spm_mode  
    FROM   dba_sql_management_config
    WHERE  parameter_name = 'AUTO_SPM_EVOLVE_TASK'; 

La modalità AUTO (automatica) SPM in tempo reale indica che l'SPM in tempo reale è abilitato.

Se l'SPM in tempo reale non è abilitato, utilizzare il seguente comando per abilitarlo:

EXEC dbms_spm.configure('AUTO_SPM_EVOLVE_TASK', 'AUTO')