Migration des plans d'exécution SQL existants vers Autonomous Database pour réduire le risque de régressions des performances SQL

Explique comment réduire le risque de régression des performances SQL lors de la migration vers Autonomous Database.

A propos de la migration vers Autonomous Database avec la gestion des plans SQL en temps réel (SPM)

Décrit l'utilisation de la gestion des plans SQL en temps réel lors de la migration d'une base de données Oracle Database source vers Autonomous Database.

Lorsque vous effectuez une migration d'une base de données Oracle Database source vers Autonomous Database, vous pouvez utiliser la gestion des plans SQL en temps réel (SPM). Cela vous permet de capturer les plans d'exécution SQL à partir de votre base de données source et de les déplacer vers l'ensemble de réglages SQL automatique (ASTS) sur Autonomous Database afin que les plans continuent à fonctionner avec les mêmes performances ou de meilleures performances après la migration. La fonctionnalité SPM en temps réel permet de modifier les plans sur Autonomous Database, mais si la fonctionnalité SPM en temps réel constate des performances médiocres, elle peut utiliser un plan provenant de la base de données pré-migrée si ce plan fournit de meilleures performances (la fonctionnalité SPM en temps réel utilise les plans de l'ensemble de réglages SQL automatique (ASTS) uniquement s'ils fournissent de meilleures performances).

Gardez à l'esprit les points suivants pour utiliser Real-time SPM avec une migration vers Autonomous Database :

  • SPM s'appuie sur des instructions SQL reproductibles. SPM n'est pas adapté aux bases de données qui utilisent des valeurs littérales dans des instructions SQL ou à des instructions SQL hautement dynamiques, par exemple dans des environnements de requête ad hoc. Toutefois, si les instructions SQL utilisent des valeurs littérales et que le paramètre CURSOR_SHARING est défini sur FORCE, SPM fonctionne.
  • Dans l'instance Oracle Database source que vous migrez vers Autonomous Database, vous capturez les instructions SQL d'application dans un ensemble de réglages SQL (SYS_AUTO_SYS). Cela peut consommer de l'espace dans SYSAUX, mais ne consomme généralement pas plus de quelques gigaoctets (même pour les systèmes volumineux). Vous pouvez surveiller l'utilisation de SYSAUX et augmenter la taille du tablespace, si nécessaire.
  • Le module SPM en temps réel ne peut pas empêcher toutes les régressions de performances, mais il peut réduire considérablement le risque de régressions de performances dues aux modifications du plan d'exécution SQL.

Pour activer SQL Plan Management (SPM) sur votre instance Oracle Database source et migrer la base de données vers Autonomous Database, procédez comme suit :

  1. Activer l'ensemble de réglages SQL automatique sur Oracle Database source

  2. Migration des données vers Autonomous Database

  3. Exporter l'ensemble automatique de réglages SQL à partir d'Oracle Database source

  4. Import de l'ensemble de réglages SQL automatique vers Autonomous Database

  5. Vérification de votre paramètre SPM en temps réel sur Autonomous Database

Pour plus d'informations, reportez-vous à :

Activer l'ensemble de réglages SQL automatique sur Oracle Database source

Avant de migrer vers Autonomous Database, activez l'ensemble de réglages SQL automatiques (ASTS) sur votre instance Oracle Database source.

ASTS doit s'exécuter pendant suffisamment de temps pour couvrir votre charge globale et capturer la totalité ou la plupart des instructions SQL et leurs plans d'exécution. Envisagez donc d'activer ASTS avec un délai d'attente avant la migration vers Autonomous Database. Par exemple, pour une application financière ou de vente, capturez le traitement de fin de mois ou d'exercice.

Sur Oracle Database source, en tant qu'utilisateur DBA, activez l'ensemble de réglages SQL automatiques (ASTS) :

  1. Sur la base de données à migrer, activez ASTS.
    BEGIN
      dbms_auto_task_admin.enable(
        client_name => 'Auto STS Capture Task',
        operation   => NULL,
        window_name => NULL);
    END;
    /

    Pour plus d'informations, reportez-vous à DBMS_AUTO_TASK_ADMIN.

  2. Vérifiez que la tâche d'arrière-plan ASTS est activée.
    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';

Pour surveiller l'instruction SQL en cours de capture, affichez DBA_SQLSET_STATEMENTS. Exemples :

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

Si nécessaire, vous pouvez surveiller la taille et l'espace libre de SYSAUX. Exemples :

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;

Migration des données vers Autonomous Database

Une fois que vous avez capturé une quantité suffisante d'instructions SQL sur l'instance Oracle Database source avec l'ensemble de réglages SQL automatique activé, effectuez la migration vers Autonomous Database.

Pour connaître les options de migration vers Autonomous Database, reportez-vous à Migration de bases de données Oracle vers Autonomous Database.

Exporter l'ensemble automatique de réglages SQL à partir d'Oracle Database source

Après avoir effectué la migration vers Autonomous Database, exportez l'ensemble de réglages SQL automatiques (ASTS) à partir de votre instance Oracle Database source.

  1. Sur Oracle Database source, créez et remplissez une table intermédiaire pour les données ASTS.

    En tant qu'utilisateur DBA, créez la table intermédiaire :

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

    Une fois cette opération terminée, la table intermédiaire contient les instructions SQL capturées sur l'instance Oracle Database source.

  2. Exportez la table intermédiaire.

    Par exemple, exportez la table intermédiaire à l'aide d'Oracle Data Pump :

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

Pour plus d'informations, reportez-vous à DBMS_SQLSET.

Import de l'ensemble de réglages SQL automatique vers Autonomous Database

Après avoir effectué la migration vers Autonomous Database et exporté l'ensemble de réglages SQL automatiques (ASTS) à partir de l'instance Oracle Database source que vous migrez, importez ASTS vers votre instance Autonomous Database.

  1. Importez le fichier intermédiaire vers votre instance Autonomous Database.

    Utilisez Oracle Data Pump pour importer la table intermédiaire dans Autonomous Database. Téléchargez d'abord le fichier dump exporté à partir d'Oracle Database source vers un bucket Cloud Object Storage, puis importez-le.

    Par exemple, lorsque l'utilisateur ADMIN exécute les commandes suivantes :

    1. Créez les informations d'identification pour accéder au bucket de banque d'objets cloud.
      BEGIN
        DBMS_CLOUD.CREATE_CREDENTIAL(
          credential_name => 'BUCKET_CREDENTIAL',
          username => 'oracleidentitycloudservice/aaaaa@bbbbb.com',
          password => 'password'
        );
      END;
      /
    2. Utilisez Oracle Data Pump pour importer le fichier dump avec les données ASTS dans votre instance 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
    Remarque

    Assurez-vous que le fichier de fuseau horaire dans Autonomous Database correspond à la valeur dans l'instance Oracle Database source où vous avez créé le fichier dump. En cas de non-concordance de fuseau horaire, la base de données génère l'erreur suivante :
    ORA-39002: invalid operation' error raised by dbms_datapump.start_job'

    Pour plus d'informations, reportez-vous à Types de données de date/heure et prise en charge des fuseaux horaires et à Gestion des mises à jour de fichier de fuseaux horaires sur Autonomous Database.

  2. Dans l'instance Autonomous Database migrée, décompressez les instructions SQL de la table intermédiaire et chargez-les dans l'instance ASTS de destination.
    BEGIN
       dbms_sqlset.unpack_stgtab('SYS_AUTO_STS','SYS',TRUE,'ASTS_TABLE');
    END;
    /

Pour plus d'informations, reportez-vous à DBMS_SQLSET.

Vérification de votre paramètre SPM en temps réel sur Autonomous Database

Décrit les étapes permettant de vérifier que le module SPM en temps réel est activé sur Autonomous Database.

Le module SPM en temps réel est activé par défaut sur Autonomous Database. Vous pouvez vérifier le mode SPM en temps réel comme suit :

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

Le mode SPM en temps réel AUTO (automatique) indique que le SPM en temps réel est activé.

Si le module SPM en temps réel n'est pas activé, utilisez la commande suivante pour l'activer :

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