Gerenciar o histórico de status global do RDS para MySQL - Amazon Relational Database Service

Gerenciar o histórico de status global do RDS para MySQL

dica

Para analisar a performance do banco de dados, você também pode usar o Insights de Performance no Amazon RDS. Para ter mais informações, consulte Monitorar a carga de banco de dados com o Performance Insights no Amazon RDS.

O MySQL mantém muitas variáveis de status que fornecem informações sobre sua operação. Os valores podem lhe ajudar a detectar problemas de bloqueio ou memória em uma instância de banco de dados. Os valores dessas variáveis de status se acumulam desde a última vez que a instância de banco de dados foi iniciada. Você pode redefinir a maioria das variáveis de status para 0 usando o comando FLUSH STATUS.

Para permitir o monitoramento desses valores ao longo do tempo, o Amazon RDS fornece um conjunto de procedimentos que fará o snapshot dos valores dessas variáveis de status ao longo do tempo e as registrará em uma tabela, juntamente com quaisquer alterações feitas desde o último snapshot. Esta infraestrutura, denominada GoSH (Histórico de status global), está instalada em todas as instâncias de banco de dados MySQL, desde as versões 5.5.23. O GoSH é desabilitado por padrão.

Para habilitar o GoSH, primeiro habilite o programador de eventos por meio de um grupo de parâmetros de banco de dados, definindo o parâmetro event_scheduler como ON. Para instâncias de banco de dados do MySQL que executam o MySQL 5.7, defina também o parâmetro show_compatibility_56 para 1. Para obter informações sobre como criar e modificar um grupo de parâmetros de banco de dados, consulte Grupos de parâmetros para Amazon RDS. Para obter informações sobre os efeitos colaterais da habilitação desse parâmetro, consulteshow_compatibility_56 noMySQL 5.7 Reference Manual.

Você poderá, então, usar os procedimentos na tabela a seguir para habilitar e configurar o GoSH. Primeiro, conecte-se à sua instância de banco de dados MySQL. Depois disso, emita os comandos apropriados, conforme mostrado a seguir. Para ter mais informações, consulte Conexão a uma instância de banco de dados executando o mecanismo de banco de dados do MySQL. Para cada procedimento, execute o comando a seguir e substitua procedure-name:

CALL procedure-name;

A tabela a seguir lista todos os procedimentos que você pode usar para procedure-name no comando anterior.

Procedimento Descrição

mysql.rds_enable_gsh_collector

Permite que o GoSH faça snapshots padrão em intervalos especificados por rds_set_gsh_collector.

mysql.rds_set_gsh_collector

Especifica o intervalo em minutos entre snapshots. O valor padrão é 5.

mysql.rds_disable_gsh_collector

Desabilita os snapshots.

mysql.rds_collect_global_status_history

Faz um snapshot sob demanda.

mysql.rds_enable_gsh_rotation

Permite o revezamento do conteúdo da tabela mysql.rds_global_status_history com o da mysql.rds_global_status_history_old em intervalos especificados pelo rds_set_gsh_rotation.

mysql.rds_set_gsh_rotation

Especifica o intervalo em dias entre os revezamentos de tabelas. O valor padrão é 7.

mysql.rds_disable_gsh_rotation

Desabilita o revezamento de tabelas.

mysql.rds_rotate_global_status_history

Reveza o conteúdo da tabela mysql.rds_global_status_history para o da mysql.rds_global_status_history_old sob demanda.

Quando o GoSH estiver sendo executado, você pode consultar as tabelas nas quais ele grava. Por exemplo, para consultar a taxa de acerto do grupo de buffer do Innodb, você deve emitir a seguinte consulta:

select a.collection_end, a.collection_start, (( a.variable_Delta-b.variable_delta)/a.variable_delta)*100 as "HitRatio" from mysql.rds_global_status_history as a join mysql.rds_global_status_history as b on a.collection_end = b.collection_end where a. variable_name = 'Innodb_buffer_pool_read_requests' and b.variable_name = 'Innodb_buffer_pool_reads'