PolarDB for MySQL La fonctionnalité SQL Explorer a évolué pour devenir SQL Explorer et Audit, proposée par Database Autonomy Service (DAS). La fonctionnalité Search (Audit) collecte les détails de toutes les instructions SQL, ce qui vous permet d'interroger et d'exporter ces instructions ainsi que leurs informations associées, telles que la base de données, l'utilisateur ou l'adresse IP du client ayant exécuté la requête. La fonctionnalité SQL Explorer diagnostique l'état des requêtes SQL, résout les problèmes de performance et analyse le trafic métier, améliorant ainsi l'efficacité du diagnostic des pannes, de l'optimisation des bases de données et de la détection des risques.
Fonctionnalités
S'appuyant sur l'intégralité des données de requêtes et sur l'audit de sécurité, Database Autonomy Service (DAS) intègre des fonctionnalités telles que Search, SQL Explorer, Security Audit et Traffic Replay and Stress Testing. Ces fonctionnalités vous aident à obtenir les détails des instructions SQL, à résoudre divers problèmes de performance, à identifier les sources à haut risque et à vérifier si les spécifications de votre cluster doivent être augmentées afin de gérer les pics de trafic métier.
-
Fonctionnalité Search : interroge et exporte les instructions SQL ainsi que leurs informations associées, telles que la base de données, le statut et le temps d'exécution. Pour plus d'informations, consultez Audit.
-
Fonctionnalité SQL Explorer : diagnostique l'état des requêtes SQL, résout les problèmes de performance et analyse le trafic métier. Pour plus d'informations, consultez SQL Explorer.
Fonctionnalité SQL Review : fournit une analyse globale de la charge SQL. Elle vous aide à localiser rapidement les instructions SQL suspectes dans vos instances de base de données, à les analyser et à obtenir des suggestions d'optimisation. Pour plus d'informations, consultez SQL Review.
Fonctionnalité Traffic Replay and Stress Testing : rejoue le trafic et exécute des tests de charge. Elle vous aide à vérifier si les spécifications de votre instance doivent être augmentées afin de gérer les pics de trafic métier. Pour plus d'informations, consultez Traffic playback and stress testing.
Fonctionnalité Security audit : identifie automatiquement les risques tels que les requêtes SQL à haut risque, les injections SQL et les nouvelles sources d'accès. Pour plus d'informations, consultez Security Audit.
Fonctionnalité Transaction Analysis : l'analyse des transactions vous permet d'obtenir les types de transactions, le nombre de transactions et les détails des transactions d'un thread spécifié sur une période donnée. Cela vous aide à comprendre, analyser et optimiser les performances de la base de données au niveau des transactions. Pour plus d'informations, consultez Transaction analysis.
Fonctionnalité Quick Transaction Analysis : obtient la première et la dernière instruction de la transaction contenant l'instruction SQL que vous souhaitez analyser, afin de voir si la transaction a été validée ou annulée. Pour plus d'informations, consultez Quick transaction analysis.
Régions prises en charge
SQL Explorer et Audit est disponible uniquement après avoir activé DAS Enterprise Edition. Les régions prises en charge varient selon chaque édition Enterprise. Pour plus d'informations, consultez Supported databases and regions.
Impact
L'activation de SQL Explorer enregistre les informations relatives à toutes les opérations DQL, DML et DDL. Le noyau de la base de données génère ces informations, de sorte que la consommation CPU du système est extrêmement faible.
Remarques d'utilisation
Pour utiliser la fonctionnalité Search en tant qu'utilisateur RAM, vous devez accorder l'autorisation AliyunPolardbReadOnlyWithSQLLogArchiveAccess à l'utilisateur RAM. Pour savoir comment accorder des autorisations à un utilisateur RAM, consultez Create and manage RAM users.
Vous pouvez également utiliser une stratégie personnalisée pour accorder à un utilisateur RAM les autorisations nécessaires pour utiliser la fonctionnalité Search, y compris la fonctionnalité d'exportation. Pour plus de détails, consultez How do I use DAS as a RAM user?.
Facturation
Enterprise Edition V0
La fonctionnalité SQL Explorer prend uniquement en charge le mode Pay-as-you-go et ne prend pas en charge le mode Subscription. Les frais associés sont facturés par PolarDB.
Tarif
Régions de Chine continentale : 0,0013 USD/Go/heure.
Chine (Hong Kong) et régions hors de Chine continentale : 0,0019 USD/Go/heure.
Later than Enterprise Edition V0
Les frais liés à la fonctionnalité SQL Explorer sont facturés par Database Autonomy Service (DAS). Pour plus d'informations, consultez Billing of DAS.
Activer SQL Explorer et Audit
Connectez-vous à la console PolarDB. Dans le volet de navigation de gauche, cliquez sur Clusters. Sélectionnez la Region où le cluster est déployé, puis cliquez sur l'ID du cluster pour accéder à la page des détails du cluster.
Dans le volet de navigation de gauche, choisissez .
-
Cliquez sur Enable SQL Explorer.
RemarqueSi DAS Enterprise Edition n'est pas activé pour votre compte Alibaba Cloud actuel, suivez les instructions à l'écran pour activer DAS Enterprise Edition.
-
Sur la page de droite, cliquez sur un onglet de fonctionnalité pour afficher ses détails.
Search (Audit) : interroge et exporte les instructions SQL ainsi que leurs informations associées, telles que la base de données, le statut et le temps d'exécution.
-
SQL Explorer :
-
Display by Time Range : sélectionnez la plage de temps pour laquelle vous souhaitez afficher les résultats de SQL Explorer. Vous pouvez consulter la Execution Duration Distribution, la Execution Duration et le nombre d'Executions de toutes les instructions SQL dans la plage de temps sélectionnée. Vous pouvez également afficher les détails de toutes les instructions SQL dans la zone Full Request Statistics et les exporter vers votre machine locale.
RemarqueVous pouvez exporter jusqu'à 1 000 journaux SQL à la fois. Pour obtenir des journaux SQL sur une plage de temps plus large ou en plus grande quantité, utilisez la fonctionnalité Search (Audit).
Après avoir activé SQL Explorer, attendez 30 minutes avant de pouvoir afficher les journaux Audit.
Display by Comparison : sélectionnez les moments auxquels vous souhaitez comparer les résultats de SQL Explorer. Vous pouvez afficher les résultats comparatifs de la Execution Duration Distribution, de la Execution Duration et du nombre d'Executions de toutes les instructions SQL. Vous pouvez également afficher les résultats détaillés de la comparaison dans la zone Requests by Comparison.
Source Statistics : sélectionnez la plage de temps pour laquelle vous souhaitez collecter des statistiques sur les sources SQL. Vous pouvez afficher les informations de source de toutes les instructions SQL dans la plage de temps sélectionnée.
SQL Review : effectue une analyse de la charge de travail du cluster de base de données sur l'intervalle sélectionné et l'intervalle de référence, et réalise une analyse approfondie des instructions SQL exécutées dans le cluster de base de données. Il affiche les suggestions d'optimisation des index, les suggestions de réécriture SQL, les principales instructions SQL, les nouvelles instructions SQL, les instructions SQL ayant échoué, l'analyse des caractéristiques SQL, les instructions SQL dont l'exécution a changé, les instructions SQL dont les performances se sont dégradées et les tables générant le plus de trafic dans le cluster de base de données.
Related SQL Identification : sélectionnez les métriques que vous souhaitez afficher et cliquez sur Analysis. Après 1 à 5 minutes, le système identifie les instructions SQL dont les tendances sont les plus similaires à celle des métriques sélectionnées dans la plage de temps choisie, ainsi que leurs détails.
Traffic Replay and Stress Testing : avant un pic de trafic métier à court terme imminent ou une modification du schéma de la base de données, en particulier un changement d'index, vous pouvez utiliser la relecture du trafic et les tests de charge pour vérifier si les spécifications du cluster de base de données doivent être augmentées. Cela permet de valider les résultats réels dans des scénarios métier concrets et de réduire le risque d'échecs après la mise en production de la modification.
Security audit : identifie automatiquement les risques tels que les opérations à haut risque, les injections SQL et les nouvelles sources d'accès.
Transaction Analysis : basé sur les données de stockage chaud de DAS Enterprise Edition V3, analyse les détails des transactions au sein du thread sélectionné et de la plage de temps choisie, puis effectue une analyse statistique et trace des graphiques de tendance du nombre de transactions par type.
-
Paramètres
-
Execution Duration Distribution : indique comment les durées d'exécution SQL sont réparties dans la plage de temps sélectionnée. Les durées sont divisées en sept intervalles, calculés une fois par minute :
[0,1]msindique le pourcentage d'exécutions SQL dont la durée est comprise entre 0 ms et 1 ms (inclus).(1,2]msindique le pourcentage d'exécutions SQL dont la durée est supérieure à 1 ms et inférieure ou égale à 2 ms.(2,3]msindique le pourcentage d'exécutions SQL dont la durée est supérieure à 2 ms et inférieure ou égale à 3 ms.(3,10]msindique le pourcentage d'exécutions SQL dont la durée est supérieure à 3 ms et inférieure ou égale à 10 ms.(10,100]msindique le pourcentage d'exécutions SQL dont la durée est supérieure à 10 ms et inférieure ou égale à 100 ms.(0.1,1]sindique le pourcentage d'exécutions SQL dont la durée est supérieure à 0,1 s et inférieure ou égale à 1 s.>1sindique le pourcentage d'exécutions SQL dont la durée est supérieure à 1 s.
RemarqueLes couleurs proches du bleu indiquent des performances SQL plus saines. Les couleurs proches de l'orange et du rouge indiquent des performances moins bonnes.
Execution Duration (SQL RT) : affiche la durée d'exécution des instructions SQL dans la plage de temps sélectionnée.
-
Full Request Statistics : affiche le texte SQL, le pourcentage de durée, la durée moyenne d'exécution et la tendance d'exécution pour chaque type d'instruction SQL dans la plage de temps sélectionnée.
RemarqueLe pourcentage de durée correspond au rapport entre la durée totale d'exécution d'un type SQL spécifique et la durée totale tous types confondus. Un pourcentage plus élevé indique une consommation de ressources plus importante sur l'instance MySQL.
SQL ID : cliquez sur un SQL ID pour afficher la tendance de performance et les exemples SQL pour cette instruction.
-
SQL Sample : utilisez un SQL Sample pour identifier quelle application cliente a initié l'instruction SQL.
RemarqueLes exemples SQL utilisent l'encodage UTF-8.
Modifier la durée de conservation des journaux SQL
Après avoir réduit la durée de conservation des données SQL Explorer et Audit, DAS supprime immédiatement les journaux d'audit SQL qui dépassent cette durée. Exportez les journaux d'audit SQL et enregistrez-les localement avant de réduire la durée de conservation des données SQL Explorer et Audit.
Connectez-vous à la console PolarDB. Dans le volet de navigation de gauche, cliquez sur Clusters. Sélectionnez la Region où le cluster est déployé, puis cliquez sur l'ID du cluster pour accéder à la page des détails du cluster.
Dans le volet de navigation de gauche, choisissez .
Dans le coin supérieur droit, cliquez sur Service Settings.
-
Modifiez la durée de conservation et cliquez sur OK.
RemarqueSi vous avez activé DAS Enterprise Edition V3, vous pouvez modifier la durée de conservation des données pour chaque sous-fonctionnalité.
L'espace de stockage des données SQL Explorer et Audit est fourni par DAS et n'occupe pas l'espace de stockage du cluster de base de données.
Désactiver SQL Explorer et Audit
Une fois SQL Explorer et Audit désactivé, les journaux d'audit SQL sont supprimés. Exportez les journaux d'audit SQL et enregistrez-les localement avant de désactiver SQL Explorer et Audit. Lorsque vous réactivez SQL Explorer et Audit, l'enregistrement des journaux d'audit SQL reprend à partir du moment de cette activation.
Connectez-vous à la console PolarDB. Dans le volet de navigation de gauche, cliquez sur Clusters. Sélectionnez la Region où le cluster est déployé, puis cliquez sur l'ID du cluster pour accéder à la page des détails du cluster.
Dans le volet de navigation de gauche, choisissez .
-
Cliquez sur Service Settings et désactivez SQL Explorer et Audit.
Si vous avez activé DAS Enterprise Edition V3, décochez toutes les fonctionnalités SQL Explorer et Audit.
RemarqueDans CloudLens for PolarDB de Simple Log Service, si vous avez activé la fonctionnalité de collecte des journaux d'audit pour PolarDB for MySQL, le système active automatiquement la fonctionnalité SQL Explorer pour le PolarDB for MySQL correspondant. Par conséquent, vous devez également désactiver la fonctionnalité de collecte des journaux d'audit pour PolarDB for MySQL. Pour plus d'informations, consultez Enable data collection.
Une fois la fonctionnalité SQL Explorer désactivée, les journaux d'audit SQL sont supprimés. Exportez les enregistrements SQL avant de désactiver la fonctionnalité SQL Explorer. Pour savoir comment exporter les enregistrements SQL, consultez Export SQL log records.
Cliquez sur OK.
Afficher la taille des journaux d'audit et les détails de consommation
Connectez-vous à la console Alibaba Cloud Management. Dans le coin supérieur droit de la page, choisissez Expenses.
Dans le volet de navigation Expenses and Costs de gauche, choisissez .Affichez les détails des coûts où la colonne Billable Item est sql_explorer.
Dans l'onglet Bill Details, cliquez sur l'onglet Detailed Bills, définissez la condition de recherche sur Instance ID et lancez la recherche.Affichez les détails des coûts où la colonne Billable Item est sql_explorer.
Migrer vers la nouvelle version
Seuls les clusters de base de données dans les régions Chine (Hangzhou), Chine (Shanghai), Chine (Beijing) et Chine (Shenzhen) prennent en charge la migration de l'ancienne version de SQL Explorer et Audit vers la nouvelle version.
Connectez-vous à la console PolarDB. Dans le volet de navigation de gauche, cliquez sur Clusters. Sélectionnez la Region où le cluster est déployé, puis cliquez sur l'ID du cluster pour accéder à la page des détails du cluster.
Dans le volet de navigation de gauche, cliquez sur Logs and Audit>SQL Explorer.
Dans la boîte de dialogue Upgrade SQL Explorer to "SQL Explorer and Audit" qui s'affiche, cliquez sur Upgrade.
Migrer les données SQL Explorer et Audit entre les éditions Enterprise
Par rapport à l'édition Enterprise V1, l'édition Enterprise V2 modifie l'architecture de stockage sous-jacente et utilise un stockage hybride chaud/froid pour réduire les coûts et améliorer l'efficacité. Cela diminue le coût d'utilisation. S'appuyant sur le stockage hybride chaud/froid, l'édition Enterprise V3 sépare les éléments de facturation selon les fonctionnalités que vous utilisez. La facturation est plus flexible et le coût d'utilisation est plus faible.
Si votre cluster de base de données prend en charge l'édition Enterprise V3, vous pouvez migrer les données de DAS Enterprise Edition V1 ou V2 vers l'édition Enterprise V3 pour bénéficier de tarifs plus avantageux. Pour plus d'informations, consultez How do I migrate data between versions of DAS Enterprise Edition?
FAQ
-
Puis-je utiliser un plan de ressources pour compenser les frais de SQL Explorer ?
Non. La fonctionnalité SQL Explorer prend uniquement en charge la facturation Pay-as-you-go. Elle ne prend pas en charge le mode Subscription.
-
Que signifie l'instruction logout! dans la zone Full Request Statistics de SQL Explorer ?
logout!indique que la connexion a été déconnectée. La durée delogout!correspond à la différence entre l'heure de la dernière interaction et l'heure à laquellelogout!se produit. Cette différence représente la durée d'inactivité de la connexion. Dans la colonne Status, la valeur 1158 indique que la connexion réseau a été interrompue. Les causes possibles sont :Le délai de la connexion cliente a expiré.
Le serveur s'est déconnecté de manière anormale.
Le serveur a réinitialisé la connexion car la durée interactive_timeout ou wait_timeout a été dépassée.
-
Pourquoi une source d'accès % apparaît-elle dans les Source Statistics de SQL Explorer ?
Cela peut se produire lorsque vous utilisez des procédures stockées. L'exemple suivant montre comment cette situation survient :
RemarqueDans l'exemple suivant, le cluster de base de données est PolarDB for MySQL, le compte de test est test_user et la base de données de test est test_db.
Dans la console PolarDB, créez un compte standard et une base de données à laquelle le compte est autorisé à accéder. Pour plus d'informations, consultez Create a standard account.
Utilisez le compte de test pour vous connecter au cluster de base de données depuis la ligne de commande. Pour plus d'informations, consultez Use the command line to connect to the cluster.
-
Basculez vers la base de données de test et créez la procédure stockée suivante.
-- Switch to the test database USE test_db;-- Create a stored procedure DELIMITER $$ DROP PROCEDURE IF EXISTS `das` $$ CREATE DEFINER=`test_user`@`%` PROCEDURE `das`() BEGIN SELECT * FROM information_schema.processlist WHERE Id = CONNECTION_ID(); END $$ DELIMITER ; Utilisez un compte privilégié pour vous connecter au cluster de base de données. Pour plus d'informations, consultez Create a privileged account et Use the command line to connect to the cluster.
-
Appelez la procédure stockée.
-- Switch to the test database USE test_db;-- Call the stored procedure CALL das();-- Call results +-----------+-----------+---------+---------+---------+------+-----------+-------------------------------------------------------------------------+ | ID | USER | HOST | DB | COMMAND | TIME | STATE | INFO | +-----------+-----------+---------+---------+---------+------+-----------+-------------------------------------------------------------------------+ | 269660316 | test_user | %:46182 | test_db | Query | 0 | executing | SELECT * FROM information_schema.processlist WHERE Id = CONNECTION_ID() | +-----------+-----------+---------+---------+---------+------+-----------+-------------------------------------------------------------------------+
-
Pourquoi le nom de la base de données affiché dans la liste des journaux d'audit diffère-t-il du nom de la base de données dans l'instruction SQL ?
Le nom de la base de données affiché dans la liste des journaux est obtenu à partir de la session. Le nom de la base de données dans l'instruction SQL est spécifié par l'utilisateur et dépend de la saisie de l'utilisateur ou de la conception de la requête, comme les requêtes inter-bases de données et le SQL dynamique. Les deux noms peuvent donc différer.
-
L'activation de SQL Explorer et Audit affecte-t-elle les performances de la base de données ? Quel est l'impact ?
Oui. Cependant, l'impact est extrêmement faible et pratiquement imperceptible.
L'utilisation des ressources est la suivante :
CPU et mémoire : la consommation est extrêmement faible et peut presque être ignorée.
Espace de stockage : principalement utilisé pour stocker les informations d'audit. Cependant, la fonctionnalité SQL Explorer et Audit fournie par DAS Enterprise Edition utilise l'espace de stockage fourni par DAS et n'occupe pas l'espace de stockage du cluster de base de données.
Réseau : aucun impact sur les performances réseau.
Performances du disque : aucun impact sur les performances du disque, car les données d'audit sont stockées côté DAS et non sur les disques du cluster de base de données.
-
Une instruction UPDATE a été exécutée dans un cluster. Le journal d'audit indique que le nombre de lignes affectées pour cette instruction SQL est de 1. Cependant, les données de la table n'ont pas été mises à jour et restent dans l'état antérieur à la modification. Comment diagnostiquer et résoudre ce problème ?
-
Procédure de dépannage :
-
Recherchez l'instruction SQL dans le journal d'audit et obtenez son Thread ID. Cliquez ensuite sur Enable Advanced Search et effectuez une recherche par Thread ID. Vérifiez si
AUTOCOMMITest désactivé pour le thread actuel et, le cas échéant, s'il y a eu unCOMMITexplicite.Remarque(Recommandé) Filtrez la recherche uniquement par Thread ID. Si trop de journaux sont retournés, combinez d'autres conditions de recherche selon les besoins pour réduire le volume de journaux et faciliter l'analyse et la localisation du problème.
Si la méthode précédente ne permet pas de localiser le problème, vous pouvez utiliser la restauration de base de données et de table ainsi que l'analyse des journaux pour confirmer l'existence d'un enregistrement de modification réussie.
RemarqueDans cette procédure de dépannage, l'instruction
UPDATEest considérée comme la dernière étape de la logique métier. Une fois cette modification terminée, les données restent inchangées, il n'est donc pas nécessaire de vérifier davantage si une modification ou une suppression est survenue par la suite. Si une modification ultérieure a eu lieu, vous devez continuer à vérifier si des opérations SQL connexes ont modifié les données. -
-
Scénarios de problème :
AUTOCOMMIT désactivé et instruction SQL non validée : la procédure de dépannage montre que cette requête a désactivé
AUTOCOMMITpendant l'exécution et n'a pas émis deCOMMITexplicite par la suite, de sorte que les données n'ont pas été modifiées.ROLLBACK du thread : les opérations exécutées dans la même session de transaction réussissent toutes ou échouent toutes. Si un rollback se produit, toutes les opérations sont annulées. Utilisez la procédure de dépannage pour vérifier si une opération
ROLLBACKa eu lieu après cette requête.
-