Migrer les 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 migrez 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). Vous pouvez ainsi capturer les plans d'exécution SQL à partir de la base de données source et les déplacer vers l'ensemble de réglages SQL automatiques (ASTS) sur Autonomous Database afin que les plans continuent de fonctionner avec les mêmes performances ou de meilleures performances après la migration. Le module SPM en temps réel permet aux plans de changer sur Autonomous Database, mais si le module SPM en temps réel détecte des performances médiocres, il peut utiliser un plan provenant de la base de données pré-migrée si ce plan fournit de meilleures performances (le module SPM en temps réel utilise les plans dans l'ensemble de réglages SQL automatiques (ASTS) uniquement s'ils fournissent de meilleures performances).

Gardez à l'esprit les points suivants pour l'utilisation de SPM en temps réel avec une migration vers Autonomous Database :

  • SPM repose 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 pour 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 la base de données 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.
  • 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 de 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 l'instance Oracle Database source

  2. Migration de vos données vers Autonomous Database

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

  4. Import d'un ensemble de réglages SQL automatiques 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 l'instance Oracle Database source

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

ASTS doit être exécuté pendant suffisamment de temps pour couvrir votre charge globale et capturer la totalité ou la plupart des instructions SQL et de leurs plans d'exécution. Par conséquent, envisagez d'activer ASTS avec un délai avant la migration vers Autonomous Database. Par exemple, pour une application financière ou commerciale, capturez le traitement de fin de mois ou de fin d'année.

Dans Oracle Database source, en tant qu'utilisateur DBA, activez l'ensemble de réglages SQL automatique (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 en 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 capturée, affichez DBA_SQLSET_STATEMENTS. Par exemple :

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. Par exemple :

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 de vos 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 automatiques 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 de réglages SQL automatique à partir d'Oracle Database source

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

  1. Dans Oracle Database source, créez et alimentez 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 d'un ensemble de réglages SQL automatiques vers Autonomous Database

Une fois que vous avez 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 les instructions ASTS vers votre instance Autonomous Database.

  1. Importez le fichier intermédiaire dans 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 que vous avez exporté à partir de votre instance 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 permettant d'accéder au bucket de banque d'objet 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 à Prise en charge des types de données de date/heure et des fuseaux horaires et à Gestion des mises à jour de fichier de fuseau horaire sur Autonomous Database.

  2. Dans la base de données Autonomous Database migrée, décompressez les instructions SQL de la table intermédiaire et chargez-les dans la base de données 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 SPM en temps réel est activé sur Autonomous Database.

Le 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 SPM en temps réel en mode AUTO (automatique) indique que le SPM en temps réel est activé.

Si le 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')