Utiliser le routage d'instructions efficace en activant ProxySQL sur Autonomous Database
ProxySQL permet un accès unifié à plusieurs bases de données autonomes en acheminant les instructions LMD et les requêtes, et élimine la nécessité de consolider physiquement toutes les données dans une seule base de données.
Sujets
- A propos du routage d'instructions efficace avec ProxySQL sur Autonomous Database
ProxySQL sur Autonomous Database vous permet d'utiliser plusieurs instances Autonomous Database et facilite l'accès aux données et leur analyse comme si elles étaient stockées au même endroit. - Activation du routage des instructions et définition du mapping de schéma
Cette section explique comment configurer ProxySQL pour le routage automatique des instructions d'un routeur principal vers une ou plusieurs instances de base de données cible. - Soumission d'instructions via ProxySQL
Pour tirer parti du routage automatique des instructions, vous devez vous connecter à l'instance de routeur gérée par ProxySQL et la soumettre. - Arrêt des instructions de routage vers une instance cible
Effectuez ces étapes sur une instance Autonomous Database cible pour l'empêcher d'accepter des instructions acheminées à partir du routeur ProxySQL. - Suppression d'une correspondance de schéma ou d'objet d'une instance de routeur
Fournit les étapes permettant d'enlever une correspondance spécifique de la base de données de routeur gérée par ProxySQL. - Désactiver le routage des instructions
Affiche les étapes du routage automatique des instructions en désactivant ProxySQL. - Routage automatique des instructions avec ProxySQL Notes
Répertorie les limites et les remarques importantes concernant le routage automatique des instructions lorsque ProxySQL est activé.
Rubrique parent : Utilisation et gestion des pools élastiques sur Autonomous Database
A propos du routage efficace des instructions avec ProxySQL sur Autonomous Database
ProxySQL sur Autonomous Database vous permet d'utiliser plusieurs instances Autonomous Database et facilite l'accès aux données et leur analyse comme si elles étaient stockées au même endroit.
Vous pouvez utiliser ProxySQL lorsque vous avez besoin d'utiliser une configuration volumineuse impliquant plusieurs bases de données autonomes. ProxySQL vous offre un accès unifié à différentes bases de données et vous évite d'avoir à déplacer physiquement les données au même endroit.
Lorsque vous activez ProxySQL, vous désignez une instance Autonomous Database en tant qu'instance de routeur et des instances Autonomous Database en tant qu'instances cible. L'instance de routeur inclut une table de routage qui détermine la façon dont une instruction est distribuée (mise en correspondance) avec une ou plusieurs instances cible. Une instance cible inclut une table d'acceptation. La table d'acceptation est similaire à la table de routage et contient des entrées indiquant que l'instance accepte les réacheminements d'instruction à partir du routeur.
Selon la méthode de routage que vous sélectionnez, les instructions sont automatiquement mises en correspondance à partir de l'instance de routeur vers une ou plusieurs instances cible. Une application se connecte à l'instance de routeur et s'exécute sur l'instance de routeur et Autonomous Database redirige les instructions vers des instances cible.
Voici quelques-uns des avantages de l'activation de ProxySQL par rapport à l'utilisation d'une seule base de données Autonomous Database de très grande taille :
-
ProxySQL assure l'autonomie et l'indépendance des bases de données pour les opérations telles que la gestion du cycle de vie et les tâches d'administration. Par exemple, à l'aide de ProxySQL, les opérations de base de données, y compris la sauvegarde et la restauration, et des fonctionnalités telles qu'Autonomous Data Guard sont gérées indépendamment dans chaque instance Autonomous Database.
-
ProxySQL permet de gérer efficacement des bases de données très volumineuses en divisant les données entre plusieurs instances Autonomous Database.
Il existe plusieurs termes à connaître lorsque vous travaillez avec ProxySQL :
Instance de routeur : une instance de routeur est désignée lorsque vous activez ProxySQL. Une table de routage détermine la façon dont une instruction est distribuée (mise en correspondance) avec une ou plusieurs instances cible. Selon la méthode de routage indiquée, les instructions de l'instance de routeur sont automatiquement mises en correspondance avec des instances cible.
Instance cible : l'instance cible est désignée lorsque vous créez un mapping sur l'instance de routeur. Une table d'acceptation est ajoutée sur chaque instance cible.
Table de routage : une table de routage contient des entrées de mapping cible qui indiquent l'instance vers laquelle les instructions sont automatiquement acheminées.
Table d'acceptation : une table d'acceptation contient des entrées indiquant que l'instance accepte les réacheminements d'instruction à partir du routeur.
Conditions d'utilisation de ProxySQL
Voici les exigences de ProxySQL :
-
L'activation de ProxySQL est uniquement prise en charge pour les instances Autonomous Database qui se trouvent dans un pool élastique. L'instance de routeur et toutes les instances cible doivent être membres du même pool élastique.
-
L'instance de routeur et toutes les instances cible doivent se trouver dans la même région.
-
Les métadonnées des objets que vous acheminez doivent correspondre sur les instances de routeur et de cible. Le concepteur d'applications est responsable de la présence des métadonnées des objets présents dans une instance cible dans l'instance de routeur. Par exemple, si vous avez une table nommée
EMPLOYEES
dans l'instance cible, vous devez également avoir une table avec des métadonnées correspondantes nomméesEMPLOYEES
dans l'instance de routeur. La table de l'instance de routeur ne doit pas nécessairement être vide (métadonnées uniquement).
Recommandation pour l'activation de ProxySQL
Les instances que vous ajoutez en tant que routeur et cibles peuvent être de n'importe quel type de charge globale Autonomous Database. S'il existe des entrées dans la table de routage (mise en correspondance), les instructions sur les objets spécifiés dans ces entrées sont acheminées vers les instances cible correspondantes, quel que soit le type de charge globale de la cible. Oracle recommande que toutes les instances de base de données theAutonomous utilisent le type de charge globale Data Warehouse.
Routage automatique des instructions avec ProxySQL activé
Avec ProxySQL, vous pouvez distribuer des instructions entre les cibles à l'aide de l'une des méthodes de routage prises en charge.
Quelle que soit la méthode de routage (mappage) que vous décidez d'utiliser, il incombe au concepteur de schéma d'application de s'assurer que les métadonnées des objets placés dans une instance cible sont également disponibles dans l'instance de routeur. Par exemple, si vous avez une table nommée
EMPLOYEES
dans l'instance cible, vous devez également avoir une table avec des métadonnées correspondantes nommées EMPLOYEES
dans l'instance de routeur. La table de l'instance de routeur ne doit pas être vide.
-
Routage au niveau du schéma : tous les objets d'un schéma sont mis en correspondance avec une instance cible unique. Vous pouvez mettre en correspondance plusieurs schémas avec une seule instance cible. Toutefois, les instructions d'un schéma ne peuvent pas être mises en correspondance entre plusieurs instances cible, ce qui signifie que le même schéma ne peut pas être utilisé à la fois pour le routage de schéma et d'objet.
Pour indiquer le routage de niveau schéma, appelez la procédure
DBMS_PROXY_SQL.ADD_MAPPING
avec le compteurobject_name
défini sur la valeur "*".
Description de l'image proxysql-schema.png
Dans cet exemple, les métadonnées des objets du schéma A sont présentes à la fois dans la base de données Autonomous Database 1 cible et dans l'instance de routeur, et les métadonnées des objets du schéma B sont présentes à la fois dans la base de données Autonomous Database 2 cible et dans l'instance de routeur, etc.
-
Routage au niveau de l'objet : les objets d'un schéma sont mis en correspondance entre plusieurs instances cible.
Pour indiquer le routage au niveau de l'objet, appelez la procédure
DBMS_PROXY_SQL.ADD_MAPPING
avec le paramètreobject_name
défini sur un nom de table.
Description de l'image proxysql-object.png
Dans cet exemple, les métadonnées de la table A sont présentes à la fois dans la cible 1 et dans l'instance de routeur, et les métadonnées de la table B sont présentes à la fois dans la cible 2 et dans l'instance de routeur, etc.
-
Routage hybride : les objets d'un schéma sont acheminés à l'aide d'une combinaison de routage de niveau schéma et de routage de niveau objet.
Description de l'image proxysql-hybrid.png
Dans cet exemple, les métadonnées du schéma A sont présentes à la fois dans la base de données Autonomous Database 1 cible et dans l'instance de routeur, et les métadonnées de la table B (dans le schéma B) sont présentes dans la base de données Autonomous Database 2 cible et dans l'instance de routeur, etc.
Mappage de service avec routage automatique des relevés lorsque ProxySQL est activé
Lorsque la table de routage indique un mapping avec une base de données cible, le même service que vous êtes connecté à la base de données du routeur est utilisé pour l'accès aux données dans la base de données cible.
Par exemple, si une session est connectée au service HIGH sur l'instance de routeur, une instruction ou un fragment d'instruction acheminé vers une instance cible utilise également le service HIGH. De même, si une session est connectée au service MEDIUM sur l'instance de routeur, une instruction acheminée vers une instance cible utilise le service MEDIUM.
Si le service utilisé pour la connexion sur l'instance de routeur n'est pas disponible sur une instance cible, l'instruction ou le fragment d'instruction acheminé vers l'instance cible utilise le service MEDIUM (les services disponibles dépendent du type de charge globale Autonomous Database).
Activer l'acheminement des relevés et définir le mappage des schémas
Cette section explique comment configurer ProxySQL pour le routage automatique des instructions d'un routeur principal vers une ou plusieurs instances de base de données cible.
- Activation du routage d'instructions et définition du mapping d'objet du routeur vers les instances cible
Pour configurer le routage d'instructions, activez ProxySQL sur l'instance de routeur et définissez le ou les schémas dont les instructions sont mises en correspondance (envoyées) avec les bases de données cible. - Accepter le routage d'instructions sur les instances cible
Vous devez accepter le routage d'instructions sur une instance cible pour autoriser le mapping à partir de l'instance de routeur.
Activer le routage des instructions et définir la correspondance d'objets entre routeur et instances cible
Pour configurer le routage des instructions, vous activez ProxySQL sur l'instance de routeur et définissez le ou les schémas dont les instructions sont mises en correspondance (envoyées) avec les bases de données cible.
Les prérequis suivants permettent d'activer le routage automatique des instructions :
-
Créez l'instance Autonomous Database que vous prévoyez d'utiliser pour l'instance de routeur ou identifiez une instance Autonomous Database existante en tant qu'instance de routeur.
-
Créez les instances cible ou identifiez-les à partir d'instances Autonomous Database existantes.
-
Assurez-vous que l'instance de routeur et toute instance cible sur laquelle vous redirigez les requêtes ont des métadonnées correspondantes pour tous les objets que vous mettez en correspondance du routeur avec une cible.
Quelle que soit la méthode de routage (mappage) que vous décidez d'utiliser, il incombe au concepteur de schéma d'application de s'assurer que les métadonnées des objets placés dans une instance cible sont également disponibles dans l'instance de routeur. Par exemple, si vous avez une table nommée
EMPLOYEES
dans l'instance cible, vous devez également avoir une table avec des métadonnées correspondantes nomméesEMPLOYEES
dans l'instance de routeur. La table de l'instance de routeur ne doit pas être vide. -
Dans les choix disponibles, déterminez le type de routage d'instruction à utiliser : Routage au niveau schéma, Routage au niveau objet ou Routage hybride.
Pour activer le routage automatique des instructions et ajouter des entrées de mapping cible à la table de routage :
Vous pouvez interroger la vue DBA_PROXY_SQL_MAPPINGS
pour répertorier les enregistrements dans la table de routage. Pour plus d'informations, reportez-vous à DBA_PROXY_SQL_MAPPINGS View.
Soumettre des relevés via ProxySQL
Pour tirer parti du routage automatique d'instructions, vous devez vous connecter à l'instance de routeur gérée par ProxySQL et la soumettre.
Lorsque vous envoyez des requêtes et des instructions LMD avec ProxySQL activé, vous devez vous connecter à l'instance de routeur pour tirer parti du routage automatique des instructions.
Arrêter le routage des instructions vers une instance cible
Effectuez ces étapes sur une instance Autonomous Database cible pour l'empêcher d'accepter des instructions routées à partir du routeur ProxySQL.
Pour plus d'informations, reportez-vous à Procédure REJECT_MAPPING.
Enlever le schéma ou le mappage d'objet de l'instance de routeur
Fournit les étapes permettant de supprimer un mapping spécifique de la base de données de routeur gérée par ProxySQL.
Désactiver le routage des relevés
Affiche les étapes du routage automatique des instructions en désactivant ProxySQL.
Exécutez DBMS_PROXY_SQL.DISABLE_ROUTING
sur l'instance de routeur pour désactiver ProxySQL et pour désactiver le routage automatique des instructions vers les instances cible.
Par exemple :
BEGIN
DBMS_PROXY_SQL.DISABLE_ROUTING
;
END;
/
Cela désactive ProxySQL et désactive le routage automatique des instructions sur le routeur.
Lorsque vous désactivez ProxySQL, les entrées de mise en correspondance d'instructions dans la table de routage de l'instance de routeur ne sont pas supprimées. Cela signifie que si vous réactivez ProxySQL et que la table de routage contient des entrées existantes, le routage automatique des instructions achemine les instructions vers les instances cible, comme indiqué dans la table de routage. Utilisez la procédure DBMS_PROXY_SQL.REMOVE_MAPPING
si vous souhaitez enlever les entrées de table de routage existantes avant de réactiver ProxySQL.
Pour plus d'informations, reportez-vous à Procédure DISABLE_ROUTING.
Routage automatique des instructions avec les notes ProxySQL
Répertorie les limites et les remarques importantes sur le routage automatique des instructions lorsque ProxySQL est activé.
-
L'utilisateur
ADMIN
dispose des privilèges permettant de gérer ProxySQL. Si vous souhaitez activer un autre utilisateur, vous devez accorder les privilèges suivants-
Privilège
EXECUTE
sur le packageDBMS_PROXY_SQL
. -
Privilège
READ
sur la vueDBA_PROXY_SQL_MAPPINGS
. -
Privilège
READ
sur la vueDBA_PROXY_SQL_ACCEPTED_MAPPINGS
.
-
-
Le routage automatique des relevés reprend de manière transparente lorsque :
-
L'instance Autonomous Database cible bascule vers une base de données de secours Autonomous Data Guard locale.
-
Vous effectuez une permutation d'une instance Autonomous Database cible vers une base de données de secours Autonomous Data Guard locale.
Toutefois, le routage automatique des instructions s'arrête après un basculement ou une permutation vers une base de données de secours Autonomous Data Guard inter-région.
-