

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.

# MariaDB auf Amazon RDS – SQL-Referenz
<a name="Appendix.MariaDB.SQLRef"></a>

Im Folgenden werden gespeicherte Prozeduren beschrieben, die für Amazon RDS-Instances verfügbar sind, auf denen die MariaDB-DB-Engine ausgeführt wird.

Sie können die im System gespeicherten Prozeduren verwenden, die für MySQL-DB-Instances und für MariaDB-DB-Instances verfügbar sind. Die gespeicherten Prozeduren sind in dokumentier [Referenz für gespeicherte RDS-für-MySQL-Verfahren](Appendix.MySQL.SQLRef.md). MariaDB-DB-Instances unterstützen alle der gespeicherten Prozeduren, mit Ausnahme von `mysql.rds_start_replication_until` und `mysql.rds_start_replication_until_gtid`.

Darüber hinaus werden die folgenden gespeicherten Systemprozeduren nur für Amazon RDS-DB-Instances unterstützt, auf denen die MariaDB ausgeführt wird:
+ [mysql.rds\$1replica\$1status](mysql_rds_replica_status.md)
+ [mysql.rds\$1set\$1external\$1master\$1gtid](mysql_rds_set_external_master_gtid.md)
+ [mysql.rds\$1kill\$1query\$1id](mysql_rds_kill_query_id.md)
+ [mysql.rds\$1execute\$1operation](mysql_rds_execute_operation.md)

# mysql.rds\$1replica\$1status
<a name="mysql_rds_replica_status"></a>

Zeigt den Replikationsstatus einer MariaDB-Read Replica an.

Rufen Sie dieses Verfahren im Read Replica auf, um Statusinformationen zu wesentlichen Parametern der Replikat-Threads anzuzeigen

## Syntax
<a name="mysql_rds_replica_status-syntax"></a>

```
CALL mysql.rds_replica_status;
```

## Nutzungshinweise
<a name="mysql_rds_replica_status-usage-notes"></a>

Dieses Verfahren wird nur für MariaDB-DB-Instances unterstützt, auf denen MariaDB Version 10.5 und höher ausgeführt wird.

Dieses Verfahren entspricht dem Befehl `SHOW REPLICA STATUS`. Dieser Befehl wird für DB-Instances der MariaDB-Version 10.5 und höher nicht unterstützt.

In früheren Versionen von MariaDB benötigte der äquivalente Befehl `SHOW SLAVE STATUS` die Berechtigung `REPLICATION SLAVE`. In MariaDB Version 10.5 und höher benötigt er die Berechtigung `REPLICATION REPLICA ADMIN`. Um das RDS-Management von MariaDB 10.5 und höher DB-Instances zu schützen, wird dieses neue Privileg dem RDS-Master-Benutzer nicht gewährt.

## Beispiele
<a name="mysql_rds_replica_status-examples"></a>

Das folgende Beispiel zeigt den Status einer MariaDB Read Replica:

```
call mysql.rds_replica_status;
```

Die Antwort ähnelt dem folgenden Beispiel:

```
*************************** 1. row ***************************
                Replica_IO_State: Waiting for master to send event
                     Source_Host: XX.XX.XX.XXX
                     Source_User: rdsrepladmin
                     Source_Port: 3306
                   Connect_Retry: 60
                 Source_Log_File: mysql-bin-changelog.003988
             Read_Source_Log_Pos: 405
                  Relay_Log_File: relaylog.011024
                   Relay_Log_Pos: 657
           Relay_Source_Log_File: mysql-bin-changelog.003988
              Replica_IO_Running: Yes
             Replica_SQL_Running: Yes
                 Replicate_Do_DB:
             Replicate_Ignore_DB:
              Replicate_Do_Table:
          Replicate_Ignore_Table: mysql.rds_sysinfo,mysql.rds_history,mysql.rds_replication_status
         Replicate_Wild_Do_Table:
     Replicate_Wild_Ignore_Table:
                      Last_Errno: 0
                      Last_Error:
                    Skip_Counter: 0
             Exec_Source_Log_Pos: 405
                 Relay_Log_Space: 1016
                 Until_Condition: None
                  Until_Log_File:
                   Until_Log_Pos: 0
              Source_SSL_Allowed: No
              Source_SSL_CA_File:
              Source_SSL_CA_Path:
                 Source_SSL_Cert:
               Source_SSL_Cipher:
                  Source_SSL_Key:
           Seconds_Behind_Master: 0
   Source_SSL_Verify_Server_Cert: No
                   Last_IO_Errno: 0
                   Last_IO_Error:
                  Last_SQL_Errno: 0
                  Last_SQL_Error:
     Replicate_Ignore_Server_Ids:
                Source_Server_Id: 807509301
                  Source_SSL_Crl:
              Source_SSL_Crlpath:
                      Using_Gtid: Slave_Pos
                     Gtid_IO_Pos: 0-807509301-3980
         Replicate_Do_Domain_Ids:
     Replicate_Ignore_Domain_Ids:
                   Parallel_Mode: optimistic
                       SQL_Delay: 0
             SQL_Remaining_Delay: NULL
       Replica_SQL_Running_State: Reading event from the relay log
              Replica_DDL_Groups: 15
Replica_Non_Transactional_Groups: 0
    Replica_Transactional_Groups: 3658
1 row in set (0.000 sec)

Query OK, 0 rows affected (0.000 sec)
```

# mysql.rds\$1set\$1external\$1master\$1gtid
<a name="mysql_rds_set_external_master_gtid"></a>

Konfiguriert die GTID-basierte Replikation einer MariaDB-Instance, die außerhalb von Amazon RDS ausgeführt wird, zu einer MariaDB-DB-Instance. Diese gespeicherte Prozedur wird nur unterstützt, wenn die externe MariaDB-Instance Version 10.0.24 oder höher ist. Wenn Sie die Replikation einrichten, bei der eine oder beide Instances keine globalen Transaktionskennungen (GTIDs) von MariaDB unterstützen, verwenden Sie [mysql.rds\$1set\$1external\$1master (RDS-für-MariaDB- und RDS-für-MySQL-Hauptversionen 8.0 und niedriger)](mysql-stored-proc-replicating.md#mysql_rds_set_external_master).

Durch die Verwendung von GTIDs für die Replikation werden Absturzsicherheitsfunktionen bereitgestellt, die von der binären Protokollreplikation nicht angeboten werden. Daher empfehlen wir es in den Fällen, in denen die Replikations-Instances dies unterstützen. 

## Syntax
<a name="mysql_rds_set_external_master_gtid-syntax"></a>

 

```
CALL mysql.rds_set_external_master_gtid(
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , gtid
  , ssl_encryption
);
```

## Parameter
<a name="mysql_rds_set_external_master_gtid-parameters"></a>

 *host\$1name*   
Zeichenfolge. Der Hostname bzw. die IP-Adresse der außerhalb von Amazon RDS ausgeführten MariaDB-Instance, die als Quell-Instance festgelegt werden soll.

 *host\$1port*   
Ganzzahl. Der Port, der von der außerhalb von Amazon RDS ausgeführten MariaDB-Instance verwendet wird, die als Quell-Instance konfiguriert werden soll. Wenn Ihre Netzwerkkonfiguration die Replikation von SSH-Ports einschließt, welche die Portnummer konvertiert, geben Sie für diesen Parameter die von SSH offengelegte Portnummer an.

 *replication\$1user\$1name*   
Zeichenfolge. Die Kennung eines Benutzers mit `REPLICATION SLAVE`-Berechtigungen in der MariaDB-DB-Instance, die als Lesereplikat konfiguriert werden soll.

 *replication\$1user\$1password*   
Zeichenfolge. Das zu der für den Parameter angegebenen Benutzer-Kennung gehörige Passwor `replication_user_name`.

 *gtid*   
Zeichenfolge. Die globale Transaktionskennung für die Quell-Instance, von der aus die Replikation gestartet werden soll.  
Sie können `@@gtid_current_pos` verwenden, um die aktuelle GTID zu erhalten, wenn die Quell-Instance gesperrt wurde, während Sie die Replikation konfigurieren. Das Binärprotokoll ändert sich also nicht zwischen den Punkten, wenn Sie die GTID erhalten und wenn die Replikation startet.  
Andernfalls können Sie, wenn Sie `mysqldump`-Version 10.0.13 oder neuer für das Befüllen der Replikat-Instance vor der Replikation verwenden, die GTID-Position in der Ausgabe erhalten, indem Sie die Optionen `--master-data` oder `--dump-slave` verwenden. Wenn Sie `mysqldump`-Version 10.0.13 oder neuer verwenden, können Sie `SHOW MASTER STATUS` ausführen oder dieselben `mysqldump`-Optionen verwenden, um den Namen und die Position der Binärprotokolldatei zu erhalten und diese anschließend in eine GTID konvertieren, indem Sie `BINLOG_GTID_POS` auf der externen MariaDB-Instance ausführen:  

```
SELECT BINLOG_GTID_POS('<binary log file name>', <binary log file position>);
```
Weitere Informationen über die Implementierung von GTIDs in MariaDB finden Sie unter [Global Transaction ID](http://mariadb.com/kb/en/mariadb/global-transaction-id/) in der MariaDB-Dokumentation.

 *ssl\$1encryption*   
Ein Wert, der angibt, ob die SSL-Verschlüsselung (Secure Socket Layer) für die Replikationsverbindung verwendet wird. 1 = SSL-Verschlüsselung, 0 = keine Verschlüsselung. Der Standardwert ist 0.  
Die Option `MASTER_SSL_VERIFY_SERVER_CERT` wird nicht unterstützt. Diese Option ist auf 0 gesetzt, was bedeutet, dass die Verbindung verschlüsselt ist, aber die Zertifikate nicht überprüft werden.

## Nutzungshinweise
<a name="mysql_rds_set_external_master_gtid-usage-notes"></a>

Die Prozedur `mysql.rds_set_external_master_gtid` muss vom Hauptbenutzer ausgeführt werden. Sie muss auf der MariaDB-DB-Instance ausgeführt werden, die Sie als Replikat einer MariaDB-Instance konfigurieren, die extern zu Amazon RDS ausgeführt wird. Bevor Sie `mysql.rds_set_external_master_gtid` ausführen, müssen Sie die Instance von MariaDB, die außerhalb von Amazon RDS ausgeführt wird, als Quell-Instance konfiguriert haben. Weitere Informationen finden Sie unter [Importieren von Daten in eine DB-Instance von Amazon RDS für MariaDB](MariaDB.Procedural.Importing.md).

**Warnung**  
Verwenden Sie nicht `mysql.rds_set_external_master_gtid`, um Replikation zwischen zwei Amazon RDS-DB-Instances zu verwalten. Verwenden Sie diese Option nur, wenn Sie mit einer MariaDB-Instance replizieren, die extern zu RDS ausgeführt wird. Informationen zur Verwaltung der Replikation zwischen Amazon RDS-DB-Instances finden Sie unter [Arbeiten mit DB-Instance-Lesereplikaten](USER_ReadRepl.md).

Nachdem Sie `mysql.rds_set_external_master_gtid` aufgerufen haben, um eine Amazon RDS-DB-Instance zum Verwenden als Lesereplikat zu konfigurieren, starten Sie durch Aufrufen von [mysql.rds\$1start\$1replication](mysql-stored-proc-replicating.md#mysql_rds_start_replication) den Replikationsvorgang für das Replikat. Zudem haben Sie die Möglichkeit, mit einem Aufruf von [mysql.rds\$1next\$1master\$1log (RDS-für-MariaDB- und RDS-für-MySQL-Hauptversionen 8.0 und niedriger)](mysql-stored-proc-replicating.md#mysql_rds_reset_external_master) die Lesereplikat-Konfiguration zu entfernen.

Beim Aufrufen von `mysql.rds_set_external_master_gtid` werden Uhrzeit, Benutzer und eine „set master“-Aktion von Amazon RDS in den Tabellen `mysql.rds_history` und `mysql.rds_replication_status` protokolliert.

## Beispiele
<a name="mysql_rds_set_external_master_gtid-examples"></a>

Bei der Ausführung auf einer MariaDB-DB-Instance wird das folgende Beispiel als Replikat einer Instance von MariaDB konfiguriert, die extern zu Amazon RDS ausgeführt wird.

```
call mysql.rds_set_external_master_gtid ('Sourcedb.some.com',3306,'ReplicationUser','SomePassW0rd','0-123-456',0); 
```

# mysql.rds\$1kill\$1query\$1id
<a name="mysql_rds_kill_query_id"></a>

Beendet eine an den MariaDB-Server übermittelte Abfrage, um lang andauernde oder problematische Abfragen zu beenden. Sie können die Abfrage-ID identifizieren und eine bestimmte Abfrage effektiv beenden, um Leistungsprobleme zu beheben und einen optimalen Datenbankbetrieb aufrechtzuerhalten.

## Syntax
<a name="mysql_rds_kill_query_id-syntax"></a>

```
CALL mysql.rds_kill_query_id(queryID);
```

## Parameter
<a name="mysql_rds_kill_query_id-parameters"></a>

 *queryID*   
Ganzzahl. Die Identität der zu beendenden Abfrage.

## Nutzungshinweise
<a name="mysql_rds_kill_query_id-usage-notes"></a>

Um eine an den MariaDB-Server übermittelte Abfrage zu beenden, verwenden Sie die Prozedur `mysql.rds_kill_query_id` und übergeben ihr als Parameter die Kennung der Abfrage. Führen Sie eine Abfrage an die MariaDB-[Informationsschema-PROCESSLIST-Tabelle](http://mariadb.com/kb/en/mariadb/information-schema-processlist-table/) durch, um die Abfrage-ID zu erhalten, wie im Folgenden gezeigt:

```
SELECT USER, HOST, COMMAND, TIME, STATE, INFO, QUERY_ID FROM 
                INFORMATION_SCHEMA.PROCESSLIST WHERE USER = '<user name>';
```

Die Verbindung zum MariaDB-Server bleibt bestehen.

## Beispiele
<a name="mysql_rds_kill_query_id-examples"></a>

Im folgenden Beispiel wird eine Abfrage mit der Abfrage-Kennung 230040 beendet:

```
call mysql.rds_kill_query_id(230040); 
```

# mysql.rds\$1execute\$1operation
<a name="mysql_rds_execute_operation"></a>

Führt InnoDB-Vorgänge aus, um Pufferpoolstatus und temporäre Tablespaces zu verwalten. Dieses Verfahren kann verwendet werden, um InnoDB-Vorgänge wie z. B. Auslesen und Laden von Pufferpoolstatus oder Kürzen temporärer Tablespaces dynamisch zu steuern.

## Syntax
<a name="mysql_rds_execute_operation-syntax"></a>

```
CALL mysql.rds_execute_operation(operation);
```

## Parameter
<a name="mysql_rds_execute_operation-parameters"></a>

 *Operation beschleunigen*   
Zeichenfolge. Die auszuführenden InnoDB-Vorgänge. Folgende sind gültige Werte:  
+ *innodb\$1buffer\$1pool\$1dump\$1now*: Vorgang, bei dem der aktuelle Status des Pufferpools ausgelesen wird.
+ *innodb\$1buffer\$1pool\$1load\$1now*: Vorgang, bei dem der gespeicherte Pufferpoolstatus geladen wird.
+ *innodb\$1buffer\$1pool\$1load\$1abort*: Vorgang, bei dem ein Ladevorgang des Pufferpools abgebrochen wird.
+ *innodb\$1truncate\$1temporary\$1tablespace\$1now*: Vorgang, bei dem der temporäre Tablespace gekürzt wird.

## Nutzungshinweise
<a name="mysql_rds_execute_operation-usage-notes"></a>

Dieses Verfahren wird nur für MariaDB-DB-Instances unterstützt, auf denen MariaDB 11.8 und höher ausgeführt wird.

Während der Ausführung ist die Binärprotokollierung vorübergehend deaktiviert, um die Replikation dieser administrativen Befehle zu verhindern.

Mit diesem Verfahren wird ein Audit Trail verwaltet, indem alle Vorgänge in der Tabelle [https://mariadb.com/docs/server/security/securing-mariadb/securing-mariadb-encryption/data-in-transit-encryption/securing-connections-for-client-and-server#requiring-tls](https://mariadb.com/docs/server/security/securing-mariadb/securing-mariadb-encryption/data-in-transit-encryption/securing-connections-for-client-and-server#requiring-tls) protokolliert werden.

## Beispiele
<a name="mysql_rds_execute_operation-examples"></a>

Im folgenden Beispiel ist die Kürzung temporärer Tablespaces mithilfe von `mysql.rds_execute_operation` angegeben:

Führen Sie die folgende Abfrage aus, um die aktuelle Größe des temporären Tablespace zu überprüfen:

```
      
SELECT FILE_SIZE FROM information_schema.innodb_sys_tablespaces WHERE name LIKE 'innodb_temporary';
+------------+
| FILE_SIZE  |
+------------+
| 6723469312 |  -- 6.3 GB
+------------+
```

Durch Löschen temporärer Tabellen wird die Speichernutzung im globalen Tablespace nicht reduziert. Um die Größe des globalen Tablespace zu reduzieren, führen Sie den Befehl `mysql.rds_execute_operation` zum Verkleinern des temporären Tablespace aus.

```
 
CALL mysql.rds_execute_operation('innodb_truncate_temporary_tablespace_now');
Query OK, 2 rows affected (0.004 sec)
```

Überprüfen Sie nach dem Verfahren, ob der Speicherplatz zurückgewonnen wurde.

```
SELECT FILE_SIZE FROM information_schema.innodb_sys_tablespaces WHERE name LIKE 'innodb_temporary';
+-----------+
| FILE_SIZE |
+-----------+
|  12582912 |  -- 12 MB
+-----------+
```

**Anmerkung**  
 Der Verkleinerungsvorgang kann je nach Größe des temporären Tablespace und aktuellem Workload einige Zeit in Anspruch nehmen.

**Wichtig**  
Der temporäre Tablespace wird nur verkleinert, wenn alle temporären Tabellen, durch die die Größe zugenommen hat, nicht mehr verwendet werden. Es wird empfohlen, dieses Verfahren auszuführen, wenn auf der Instance keine aktiven temporären Tablespaces vorhanden sind. 