Verwalten des globalen Statusverlaufs für RDS für MySQL - Amazon Relational Database Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwalten des globalen Statusverlaufs für RDS für MySQL

Tipp

Zum Analysieren der Datenbankleistung können Sie auch Performance Insights in Amazon RDS verwenden. Weitere Informationen finden Sie unter Überwachung mit Performance Insights auf Amazon RDS.

MySQL besitzt zahlreiche Statusvariablen, die Informationen zur Ausführung bereitstellen. Ihre Werte können Ihnen helfen, Probleme mit Sperren oder Arbeitsspeichern in einer DB-Instance zu entdecken. Die Werte dieser Statusvariablen sind seit dem letzten Zeitpunkt, an dem die DB-Instance gestartet wurde, kumulativ. Sie können die meisten Statusvariablen auf 0 zurücksetzen, indem Sie den Befehl FLUSH STATUS verwenden.

Um die Überwachung dieser Werte über die Zeit zu ermöglichen, stellt Amazon RDS einen Satz von Verfahren bereit, die Snapshots der Werte dieser Statusvariablen über die Zeit erstellen und diese zusammen mit allen Änderungen seit dem letzten Snapshot in eine Tabelle schreiben. Diese Infrastruktur wird als globaler Statusverlauf (Global Status History, GoSH) bezeichnet und ist auf allen MySQL-DB-Instances ab Version 5.5.23 installiert. GoSH ist standardmäßig deaktiviert.

Um GoSH zu aktivieren, müssen Sie zunächst den Ereignis-Scheduler aus einer DB-Parametergruppe aktivieren, indem Sie den Parameter event_scheduler auf ON festlegen. Setzen Sie darüber hinaus für MySQL-DB-Instances unter MySQL 5.7 den Parameter show_compatibility_56 auf 1. Weitere Informationen zum Erstellen und Ändern einer DB-Parametergruppe finden Sie unter Parametergruppen für Amazon RDS. Informationen zu den Nebeneffekten bei Aktivierung dieses Parameters finden Sie unter.show_compatibility_56 im Referenzhandbuch zu MySQL 5.7.

Sie können anschließend die Verfahren in der folgenden Tabelle verwenden, um GoSH zu aktivieren und zu konfigurieren. Stellen Sie zunächst eine Verbindung mit Ihrer MySQL-DB-Instance her und geben Sie anschließend den entsprechenden Befehl aus, wie im Folgenden gezeigt. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Ihrer MySQL-DB-Instance. Führen Sie für jedes Verfahren den folgenden Befehl aus und ersetzen Sie prozedurname:

CALL procedure-name;

In der folgenden Tabelle sind alle Verfahren aufgeführt, die Sie im vorherigen Befehl für den Prozedurnamen verwenden können.

Verfahren Beschreibung

mysql.rds_enable_gsh_collector

Aktiviert GoSH, um Standard-Snapshots in zeitlichen Abständen zu erstellen, die durch angegeben werde rds_set_gsh_collector.

mysql.rds_set_gsh_collector

Gibt den zeitlichen Abstand in Minuten für die periodische Generierung von Snapshots an. Der Standardwert ist 5.

mysql.rds_disable_gsh_collector

Deaktiviert Snapshots.

mysql.rds_collect_global_status_history

Generiert einen Snapshot auf Anforderung.

mysql.rds_enable_gsh_rotation

Aktiviert die Rotation der Inhalte der Tabelle mysql.rds_global_status_history zu mysql.rds_global_status_history_old in zeitlichen Abständen, die durch rds_set_gsh_rotation angegeben werden.

mysql.rds_set_gsh_rotation

Gibt den zeitlichen Abstand in Tagen für die periodische Tabellenrotation an. Der Standardwert ist 7.

mysql.rds_disable_gsh_rotation

Deaktiviert die Tabellenrotation.

mysql.rds_rotate_global_status_history

Rotiert die Inhalte der Tabelle mysql.rds_global_status_history bei Anforderung zu mysql.rds_global_status_history_old.

Wenn GoSH ausgeführt wird, können Sie Abfragen für die Tabellen ausführen, in die GoSH schreibt. Um beispielsweise eine Abfrage für das Trefferverhältnis des InnoDB-Pufferpools auszuführen, würden Sie die folgende Abfrage ausgeben:

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'