In diesem Abschnitt werden gespeicherte Prozeduren für Cloud SQL-Instanzen beschrieben.
Eine gespeicherte Prozedur beinhaltet einen SQL-Code, den Sie wiederverwenden können.
Verwenden Sie zum Ausführen der gespeicherten Prozedur den Befehl CALL und ersetzen Sie die folgende Variable:
- procedure_name: der Name des gespeicherten Verfahrens.
CALL procedure_name(parameters);
Informationen zum Erstellen einer gespeicherten Prozedur finden Sie unter denCREATE PROCEDURE- und CREATE FUNCTION-Anweisungen.
Cloud SQL unterstützt die Anweisung CREATE FUNCTION nicht. Weitere Informationen finden Sie unter Nicht unterstützte MySQL-Features für Cloud SQL.
mysql.addSecondaryIdxOnReplica
mysql.addSecondaryIdxOnReplica
Syntax
mysql.addSecondaryIdxOnReplica(IDXTYPE, IDXNAME, TABLENAME, IDXDEFINITION, IDXOPTION)
Beschreibung
Fügt einen sekundären Index zur Datenbank hinzu. Diese gespeicherte Prozedur ist ein Wrapper für die DDL-Anweisung CREATE INDEX.
- IDXTYPE: Typ des Index, der erstellt werden soll. Übergeben Sie beispielsweise UNIQUE, um einen eindeutigen Index zu erstellen.
- IDXNAME: Name des Index.
- TABLENAME: Name der Tabelle im Format „schema.name“.
- IDXDEFINITION: Definition des Index. Fügen Sie keine äußeren Klammern ein.
- IDXOPTION: Zusätzliche Optionen, die zur Erstellung des Index übergeben werden sollen. In MySQL 8.0 könnte eine Option beispielsweise INVISIBLE für einen sichtbaren Index weitergeben.
mysql.dropSecondaryIdxOnReplica
Syntax
mysql.dropSecondaryIdxOnReplica(IDXNAME, TABLENAME, IDXOPTION)
Beschreibung
Löscht einen sekundären Index für die Datenbank. Diese gespeicherte Prozedur ist ein Wrapper für die DDL-Anweisung DROP INDEX.
- IDXNAME: Name des Index.
- TABLENAME: Name der Tabelle im Format „schema.name“.
- IDXOPTION: Zusätzliche Optionen, die beim Löschen eines Index übergeben werden sollen. Ein Beispiel wäre eine Algorithmusoption wie INPLACE.
mysql.skipReplicationError
Syntax
mysql.skipReplicationError()
Beschreibung
Überspringt einen Replikationsfehler, der bei der Replikation des externen Servers aufgetreten ist, und setzt die Replikation dann fort.
Sie können diese gespeicherte Prozedur nur ausführen, wenn ein Replikationsfehler aufgetreten ist und die E/A- und SQL-Threads beendet wurden.
Diese gespeicherte Prozedur führt folgende Schritte aus:
Sie ermittelt, ob die Replikation auf GTID- oder binären Logpositionen basiert.
Wenn die parallele Replikation verwendet wird, ruft die gespeicherte Prozedur zuerst
START_SLAVE_UNTIL_SQL_AFTER_MTS_GAPSoderSTART_REPLICA UNTIL_SQL_AFTER_MTS_GAPSauf, um sicherzustellen, dass es keine Lücken bei den angewendeten Transaktionen bis zur fehlgeschlagenen Transaktion gibt. Die Prozedur legt dann die Replikationskonfiguration vorübergehend auf Single-Thread fest.Bei der Replikation auf Basis der binären Logposition legt die Prozedur
SQL_SLAVE_SKIP_COUNTERoderSQL_REPLICA_SKIP_COUNTER = 1fest, um die aktuelle Transaktion zu überspringen.Bei der GTID-basierten Replikation ermittelt die gespeicherte Prozedur die GTID der aktuellen fehlgeschlagenen Transaktion anhand der Informationen in der Statusvariablen
gtid_executed. Die Prozedur fügt dann eine leere Transaktion ein, um diese GTID zu füllen.Wenn die parallele Replikation zuvor deaktiviert war, wird sie wieder aktiviert.
Die gespeicherte Prozedur setzt die Replikation fort.
In der Tabelle mysql.skip_replication_error_history werden alle Aufrufe dieser gespeicherten Prozedur protokolliert.