PolarDB para MySQL O recurso SQL Explorer foi atualizado para SQL Explorer e Auditoria, fornecido pelo Database Autonomy Service (DAS). A função Pesquisar (Auditoria) coleta detalhes de todas as instruções SQL, permitindo que você consulte e exporte essas instruções e informações relacionadas, como o banco de dados, o usuário ou o IP do cliente que executou a instrução SQL. O recurso SQL Explorer diagnostica a saúde das instruções SQL, soluciona problemas de desempenho e analisa o tráfego de negócios, melhorando assim a eficiência no diagnóstico de falhas, na otimização do banco de dados e na detecção de riscos.
Recursos
Com base em dados completos de solicitações e auditoria de segurança, o Database Autonomy Service (DAS) integra recursos como Pesquisa, SQL Explorer, Auditoria de Segurança, Reprodução de Tráfego e Testes de Estresse. Esses recursos ajudam você a obter detalhes das instruções SQL, solucionar diversos problemas de desempenho, identificar fontes de alto risco e verificar se as especificações do seu cluster precisam ser dimensionadas para suportar picos de tráfego de negócios.
-
Search: consulta e exporta instruções SQL e informações relacionadas, como o banco de dados, o status e o tempo de execução. Para mais informações, consulte Auditoria.
-
SQL Explorer: diagnostica a saúde das instruções SQL, soluciona problemas de desempenho e analisa o tráfego de negócios. Para mais informações, consulte SQL Explorer.
Análise de SQL: fornece análise global da carga de SQL. Ajuda você a localizar rapidamente instruções SQL suspeitas nas instâncias do banco de dados, analisá-las e obter sugestões de otimização. Para mais informações, consulte Análise de SQL.
Reprodução de Tráfego e Testes de Estresse: reproduz o tráfego e executa testes de estresse. Ajuda você a verificar se as especificações da instância precisam ser dimensionadas para lidar com picos de tráfego de negócios. Para mais informações, consulte Reprodução e testes de estresse de tráfego.
Security audit: identifica automaticamente riscos, como instruções SQL de alto risco, injeção de SQL e novas fontes de acesso. Para mais informações, consulte Auditoria de Segurança.
Transaction Analysis: com a análise de transação, é possível obter os tipos de transação, a contagem de transações e os detalhes das transações de um determinado thread dentro de um período específico. Isso ajuda você a compreender, analisar e otimizar o desempenho do banco de dados no nível da transação. Para mais informações, consulte Análise de transação.
Análise Rápida de Transação: obtém a primeira e a última instrução da transação que contém a instrução SQL que você deseja analisar, permitindo que você verifique se a transação foi confirmada ou revertida. Para mais informações, consulte Análise rápida de transação.
Regiões compatíveis
O SQL Explorer e Auditoria está disponível somente após você ativar a Edição Enterprise do DAS. As regiões compatíveis com cada edição Enterprise variam. Para mais informações, consulte Bancos de dados e regiões compatíveis.
Impacto
Ao ativar o SQL Explorer, são registradas informações sobre todas as operações DQL, DML e DDL. Essas informações são geradas pelo kernel do banco de dados, portanto, o consumo de CPU do sistema é extremamente baixo.
Observações sobre o uso
Para usar o recurso Search como um usuário RAM, você deve conceder a permissão AliyunPolardbReadOnlyWithSQLLogArchiveAccess ao usuário RAM. Para saber como conceder permissões a um usuário RAM, consulte Criar e gerenciar usuários RAM.
Você também pode usar uma política personalizada para conceder a um usuário RAM as permissões necessárias para usar o recurso Pesquisar, incluindo a funcionalidade de exportação. Para obter detalhes, consulte Como usar o DAS como usuário RAM?.
Cobrança
Edição Enterprise V0
O recurso SQL Explorer oferece suporte apenas ao modelo de cobrança pagamento conforme o uso e não oferece suporte à assinatura. Os custos relacionados são cobrados pelo PolarDB.
Preço
-- 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() |
+-----------+-----------+---------+---------+---------+------+-----------+-------------------------------------------------------------------------+
Regiões no território continental da China: USD 0,0013/GB/hora.
China (Hong Kong) e regiões fora do território continental da China: USD 0,0019/GB/hora.
Versões posteriores à Edição Enterprise V0
Os custos relacionados ao recurso SQL Explorer são cobrados pelo Database Autonomy Service (DAS). Para mais informações, consulte Cobrança do DAS.
Ativar o SQL Explorer e Auditoria
Acesse o console do PolarDB e, no painel de navegação à esquerda, clique em Clusters. Selecione a Região onde o cluster está implantado e, em seguida, clique no ID do cluster para acessar a página de detalhes do cluster.
No painel de navegação à esquerda, escolha .
-
Clique em Ativar SQL Explorer.
NotaSe a Edição Enterprise do DAS ainda não estiver ativada para sua conta Alibaba Cloud atual, siga as instruções exibidas na tela para ativá-la.
-
Na página à direita, clique em uma guia de recurso para visualizar seus detalhes.
Pesquisar (Auditoria): consulta e exporta instruções SQL e informações relacionadas, como o banco de dados, o status e o tempo de execução.
-
SQL Explorer:
-
Display by Time Range: selecione o intervalo de tempo para o qual deseja visualizar os resultados do SQL Explorer. É possível visualizar a Execution Duration Distribution, a Execution Duration e o número de Executions de todas as instruções SQL dentro do intervalo selecionado. Também é possível visualizar os detalhes de todas as instruções SQL dentro do intervalo selecionado na área Full Request Statistics e exportá-los para sua máquina local.
NotaVocê pode exportar até 1.000 logs SQL por vez. Para obter logs SQL de um intervalo de tempo maior ou em maior quantidade, use o recurso Pesquisar (Auditoria).
Após ativar o SQL Explorer, aguarde 30 minutos antes de poder visualizar os logs de Auditoria.
Display by Comparison: selecione os pontos no tempo nos quais deseja comparar os resultados do SQL Explorer. É possível visualizar os resultados comparativos da Execution Duration Distribution, da Execution Duration e do número de Executions de todas as instruções SQL. Também é possível visualizar os resultados detalhados da comparação na área Requests by Comparison.
Source Statistics: selecione o intervalo de tempo para o qual deseja coletar estatísticas sobre as origens das instruções SQL. É possível visualizar as informações de origem de todas as instruções SQL dentro do intervalo selecionado.
SQL Review: realiza análise de carga de trabalho no cluster de banco de dados no intervalo selecionado e no intervalo de referência, além de realizar análise aprofundada nas instruções SQL executadas no cluster. Exibe sugestões de otimização de índices, sugestões de reescrita de SQL, principais instruções SQL, novas instruções SQL, instruções SQL com falha, análise de recursos SQL, instruções SQL com alterações na execução, instruções SQL com degradação de desempenho e principais tabelas de tráfego do cluster de banco de dados.
Related SQL Identification: selecione as métricas que deseja visualizar e clique em Analysis. Após 1 a 5 minutos, o sistema localiza as instruções SQL cujas tendências são mais semelhantes à tendência das métricas selecionadas dentro do intervalo de tempo selecionado, juntamente com seus detalhes.
Reprodução de Tráfego e Testes de Estresse: antes de um pico de tráfego de negócios de curto prazo ou de uma alteração no esquema do banco de dados — especialmente uma alteração de índice — você pode usar a reprodução de tráfego e testes de estresse para verificar se as especificações do cluster de banco de dados precisam ser dimensionadas. Isso valida os resultados reais em cenários de negócios reais e reduz o risco de falhas após a implantação da alteração.
Security audit: identifica automaticamente riscos, como operações de alto risco, injeção de SQL e novas fontes de acesso.
Transaction Analysis: com base nos dados de armazenamento quente da Edição Enterprise V3 do DAS, analisa os detalhes das transações dentro do thread selecionado e do intervalo de tempo selecionado, realizando então análise estatística e traçando gráficos de tendência do número de transações de cada tipo.
-
Parâmetros
-
Execution Duration Distribution: mostra como as durações de execução das instruções SQL estão distribuídas dentro do intervalo de tempo selecionado. As durações são divididas em sete intervalos, calculados uma vez por minuto:
[0,1]msindica a porcentagem de execuções de SQL com duração entre 0 ms e 1 ms (inclusive).(1,2]msindica a porcentagem de execuções de SQL com duração maior que 1 ms e até 2 ms.(2,3]msindica a porcentagem de execuções de SQL com duração maior que 2 ms e até 3 ms.(3,10]msindica a porcentagem de execuções de SQL com duração maior que 3 ms e até 10 ms.(10,100]msindica a porcentagem de execuções de SQL com duração maior que 10 ms e até 100 ms.(0.1,1]sindica a porcentagem de execuções de SQL com duração maior que 0,1 s e até 1 s.>1sindica a porcentagem de execuções de SQL com duração maior que 1 s.
NotaCores mais próximas do azul indicam melhor desempenho das instruções SQL. Cores mais próximas do laranja e do vermelho indicam pior desempenho.
Execution Duration (SQL RT): exibe a duração de execução das instruções SQL dentro do intervalo de tempo selecionado.
-
Full Request Statistics: exibe o texto da instrução SQL, a porcentagem de duração, a duração média de execução e a tendência de execução para cada tipo de instrução SQL dentro do intervalo de tempo selecionado.
NotaA porcentagem de duração é a razão entre a duração total de execução de um tipo específico de instrução SQL e a duração total de todos os tipos de instruções SQL. Uma porcentagem mais alta indica maior consumo de recursos na instância MySQL.
SQL ID: clique em um SQL ID para visualizar a tendência de desempenho e amostras da instrução correspondente.
-
SQL Sample: use uma SQL Sample para identificar qual aplicativo cliente iniciou a instrução SQL.
NotaAs amostras de SQL usam codificação UTF-8.
Modificar a duração de armazenamento dos logs SQL
Após reduzir a duração de armazenamento dos dados do SQL Explorer e Auditoria, o DAS exclui imediatamente os logs de auditoria SQL que ultrapassarem essa duração. Exporte os logs de auditoria SQL e salve-os localmente antes de reduzir a duração de armazenamento dos dados do SQL Explorer e Auditoria.
Acesse o console do PolarDB e, no painel de navegação à esquerda, clique em Clusters. Selecione a Região onde o cluster está implantado e, em seguida, clique no ID do cluster para acessar a página de detalhes do cluster.
No painel de navegação à esquerda, escolha .
No canto superior direito, clique em Configurações do serviço.
-
Modifique a duração de armazenamento e clique em OK.
NotaSe você tiver ativado a Edição Enterprise V3 do DAS, poderá modificar a duração de armazenamento dos dados de cada sub-recurso.
O espaço de armazenamento dos dados do SQL Explorer e Auditoria é fornecido pelo DAS e não ocupa o espaço de armazenamento do cluster de banco de dados.
Desativar o SQL Explorer e Auditoria
Após desativar o SQL Explorer e Auditoria, os logs de auditoria SQL são excluídos. Exporte os logs de auditoria SQL e salve-os localmente antes de desativar o SQL Explorer e Auditoria. Ao reativar o SQL Explorer e Auditoria, os logs de auditoria SQL serão registrados a partir do momento dessa reativação.
Acesse o console do PolarDB e, no painel de navegação à esquerda, clique em Clusters. Selecione a Região onde o cluster está implantado e, em seguida, clique no ID do cluster para acessar a página de detalhes do cluster.
No painel de navegação à esquerda, escolha .
-
Clique em Configurações do serviço e desative o SQL Explorer e Auditoria.
Se você tiver ativado a Edição Enterprise V3 do DAS, limpe as caixas de seleção de todos os recursos do SQL Explorer e Auditoria.
NotaNo CloudLens para PolarDB do Simple Log Service, se você tiver ativado o recurso de coleta de logs de auditoria para PolarDB para MySQL, o sistema ativa automaticamente o recurso SQL Explorer para o PolarDB para MySQL correspondente. Portanto, você também deve desativar o recurso de coleta de logs de auditoria para PolarDB para MySQL. Para mais informações, consulte Ativar coleta de dados.
Após desativar o recurso SQL Explorer, os logs de auditoria SQL são excluídos. Exporte os registros SQL antes de desativar o recurso SQL Explorer. Para saber como exportar registros SQL, consulte Exportar registros de log SQL.
Clique em OK.
Visualizar o tamanho do log de auditoria e os detalhes de consumo
Acesse o Console de Gerenciamento da Alibaba Cloud. No canto superior direito da página, escolha Despesas.
No painel de navegação à esquerda Despesas e Custos, escolha .Visualize os detalhes de custo em que a coluna Billable Item é sql_explorer.
Na guia Detalhes da fatura, clique na guia Faturas detalhadas, defina a condição de pesquisa como Instance ID e execute a pesquisa.Visualize os detalhes de custo em que a coluna Billable Item é sql_explorer.
Migrar para a nova versão
Somente clusters de banco de dados nas regiões China (Hangzhou), China (Shanghai), China (Beijing) e China (Shenzhen) dão suporte à migração da versão antiga do SQL Explorer e Auditoria para a nova versão.
Acesse o console do PolarDB e, no painel de navegação à esquerda, clique em Clusters. Selecione a Região onde o cluster está implantado e, em seguida, clique no ID do cluster para acessar a página de detalhes do cluster.
No painel de navegação à esquerda, clique em Logs and Audit > SQL Explorer.
Na caixa de diálogo Atualizar SQL Explorer para "SQL Explorer e Auditoria", clique em Upgrade.
Migrar dados do SQL Explorer e Auditoria entre edições Enterprise
Em comparação com a Edição Enterprise V1, a Edição Enterprise V2 altera a arquitetura de armazenamento subjacente e usa armazenamento híbrido quente-frio para reduzir custos e melhorar a eficiência. Isso reduz o custo de uso. Com base no armazenamento híbrido quente-frio, a Edição Enterprise V3 divide os itens de cobrança pelos recursos que você utiliza. A cobrança torna-se mais flexível e o custo de uso diminui.
Se seu cluster de banco de dados der suporte à Edição Enterprise V3, você poderá migrar os dados da Edição Enterprise V1 ou V2 do DAS para a Edição Enterprise V3 para obter preços mais vantajosos. Para mais informações, consulte Como migrar dados entre versões da Edição Enterprise do DAS?
Perguntas frequentes (FAQ)
-
Posso usar um plano de recursos para compensar as taxas do SQL Explorer?
Não. O recurso SQL Explorer oferece suporte apenas ao modelo de cobrança pagamento conforme o uso. Ele não oferece suporte à assinatura.
-
O que é a instrução logout! na área Estatísticas completas de solicitações do SQL Explorer?
logout!indica que a conexão foi desconectada. A duração delogout!é a diferença entre o horário da última interação e o horário em que ocorreu ologout!. Essa diferença representa a duração de ociosidade da conexão. Na coluna Status, o valor 1158 indica que a conexão de rede foi desconectada. As causas possíveis são:O tempo limite da conexão do cliente foi excedido.
A desconexão do servidor ocorreu de forma anormal.
O servidor reiniciou a conexão porque o tempo limite
interactive_timeoutouwait_timeoutfoi excedido.
-
Por que uma origem de acesso % aparece nas Estatísticas de origem do SQL Explorer?
Isso pode ocorrer ao usar procedimentos armazenados. O exemplo a seguir mostra como essa situação surge:
NotaNo exemplo a seguir, o cluster de banco de dados é o PolarDB para MySQL, a conta de teste é
test_usere o banco de dados de teste étest_db.No console do PolarDB, crie uma conta padrão e um banco de dados ao qual essa conta tenha permissão de acesso. Para mais informações, consulte Criar uma conta padrão.
Use a conta de teste para conectar-se ao cluster de banco de dados pela linha de comando. Para mais informações, consulte Usar a linha de comando para conectar-se ao cluster.
-
Altere para o banco de dados de teste e crie o seguinte procedimento armazenado.
-- 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() | +-----------+-----------+---------+---------+---------+------+-----------+-------------------------------------------------------------------------+-- 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() | +-----------+-----------+---------+---------+---------+------+-----------+-------------------------------------------------------------------------+ Use uma conta privilegiada para conectar-se ao cluster de banco de dados. Para mais informações, consulte Criar uma conta privilegiada e Usar a linha de comando para conectar-se ao cluster.
-
Chame o procedimento armazenado.
-- 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() | +-----------+-----------+---------+---------+---------+------+-----------+-------------------------------------------------------------------------+-- 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() | +-----------+-----------+---------+---------+---------+------+-----------+-------------------------------------------------------------------------+-- 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() | +-----------+-----------+---------+---------+---------+------+-----------+-------------------------------------------------------------------------+
-
Por que o nome do banco de dados exibido na lista de logs de auditoria é diferente do nome do banco de dados na instrução SQL?
O nome do banco de dados exibido na lista de logs é obtido da sessão. O nome do banco de dados na instrução SQL é especificado pelo usuário e depende da entrada do usuário ou do design da consulta, como consultas entre bancos de dados e SQL dinâmico. Os dois nomes podem ser diferentes.
-
Ativar o SQL Explorer e Auditoria afeta o desempenho do banco de dados? Qual é a magnitude desse impacto?
Sim. No entanto, o impacto é extremamente pequeno e praticamente imperceptível.
O uso de recursos é o seguinte:
CPU e memória: o consumo é extremamente baixo e pode ser considerado desprezível.
Espaço de armazenamento: usado principalmente para armazenar informações de auditoria. No entanto, o recurso SQL Explorer e Auditoria fornecido pela Edição Enterprise do DAS usa o espaço de armazenamento fornecido pelo DAS e não ocupa o espaço de armazenamento do cluster de banco de dados.
Rede: nenhum impacto no desempenho da rede.
Desempenho de disco: nenhum impacto no desempenho do disco, pois os dados de auditoria são armazenados no lado do DAS, e não nos discos do cluster de banco de dados.
-
Uma instrução UPDATE foi executada em um cluster. O log de auditoria mostra que o número de linhas afetadas por essa instrução SQL é 1. No entanto, os dados na tabela não foram atualizados e permanecem no estado anterior à modificação. Como posso solucionar e resolver esse problema?
-
Procedimento de solução de problemas:
-
Localize a instrução SQL no log de auditoria e obtenha seu Thread ID. Em seguida, clique em Ativar pesquisa avançada e pesquise pelo Thread ID. Verifique se o
AUTOCOMMITestá desativado para o thread atual e, caso esteja, se houve umCOMMITexplícito.Nota(Recomendado) Filtre a pesquisa apenas pelo Thread ID. Se muitos logs forem retornados, combine outras condições de pesquisa conforme necessário para reduzir o volume de logs e facilitar a análise e a localização do problema.
Se o método anterior não localizar o problema, você poderá usar restauração de banco de dados e tabela e análise de logs para confirmar se há um registro de modificação bem-sucedida.
NotaNeste procedimento de solução de problemas, a instrução
UPDATEé tratada como a última etapa da lógica de negócios. Após essa modificação ser concluída, os dados permanecem inalterados, portanto, não é necessário verificar se ocorreu uma modificação ou exclusão posteriormente. Caso tenha ocorrido uma modificação posterior, você deverá continuar verificando se operações SQL relacionadas alteraram os dados. -
-
Cenários de problema:
AUTOCOMMIT desativado e instrução SQL não confirmada: o procedimento de solução de problemas mostra que essa solicitação desativou o
AUTOCOMMITdurante a execução e não emitiu umCOMMITexplícito posteriormente, portanto, os dados não foram alterados.ROLLBACK do thread: as operações executadas na mesma sessão de transação têm sucesso ou falham em conjunto. Se ocorrer um rollback, todas as operações serão revertidas. Use o procedimento de solução de problemas para verificar se ocorreu uma operação de
ROLLBACKapós essa solicitação.
-