

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Référence MariaDB sur SQL Amazon RDS
<a name="Appendix.MariaDB.SQLRef"></a>

La section suivant décrit les procédures stockées système disponibles pour les instances Amazon RDS exécutant le moteur de base de données MariaDB.

Vous pouvez utiliser les procédures système stockées, qui sont disponibles pour les instances de bases de données MySQL et MariaDB. Ces procédures stockées sont documentées dans [Référence des procédures stockées RDS pour MySQL](Appendix.MySQL.SQLRef.md). Les instances de base de données MariaDB prennent en charge toutes les procédures stockées, à l'exception de `mysql.rds_start_replication_until` et `mysql.rds_start_replication_until_gtid`.

En outre, les procédures stockées système suivantes sont prises en charge uniquement pour les instances de base de données Amazon RDS exécutant MariaDB :
+ [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>

Affiche l'état de réplication d'un réplica en lecture MariaDB.

Appelez cette procédure sur le réplica en lecture pour afficher les informations d'état sur les paramètres essentiels des threads du réplica.

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

```
CALL mysql.rds_replica_status;
```

## Notes d'utilisation
<a name="mysql_rds_replica_status-usage-notes"></a>

Cette procédure est uniquement prise en charge pour les instances de base de données MariaDB exécutant MariaDB version 10.5 et ultérieure.

Cette procédure est l'équivalent de la commande `SHOW REPLICA STATUS`. Cette commande n'est pas prise en charge pour les instances de base de données MariaDB version 10.5 et ultérieures.

Dans les versions antérieures de MariaDB, la commande `SHOW SLAVE STATUS` équivalente exigeait le privilège `REPLICATION SLAVE`. Dans MariaDB version 10.5, elle requiert le privilège `REPLICATION REPLICA ADMIN`. Pour protéger la gestion RDS des instances de base de données MariaDB 10.5 et versions ultérieures, ce nouveau privilège n'est pas accordé à l'utilisateur principal RDS.

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

L'exemple suivant montre l'état d'un réplica en lecture MariaDB :

```
call mysql.rds_replica_status;
```

La réponse est similaire à ce qui suit :

```
*************************** 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>

Configure la réplication GTID d'une instance MariaDB s'exécutant à l'extérieur de Amazon RDS à une instance de base de données MariaDB. Cette procédure stockée est prise en charge uniquement lorsque l'instance MariaDB externe est à la version 10.0.24 ou ultérieure. Lors de la configuration d'une réplication où une ou les deux instances ne prennent pas en charge les identificateurs de transaction globaux (GTID) MariaDB, utilisez [mysql.rds\$1set\$1external\$1master (RDS for MariaDB et RDS for MySQL, versions majeures 8.0 et antérieures)](mysql-stored-proc-replicating.md#mysql_rds_set_external_master).

L'utilisation de GTID pour la réplication fournit des fonctions de sécurité en cas d'incident non proposées par une réplication de journal binaire. Nous la recommandons donc dans les situations où les instances de réplication assurent une prise en charge. 

## Syntaxe
<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
);
```

## Paramètres
<a name="mysql_rds_set_external_master_gtid-parameters"></a>

 *host\$1name*   
String. Nom d'hôte ou adresse IP de l'instance MariaDB s'exécutant à l'extérieur de Amazon RDS et qui deviendra l'instance source.

 *host\$1port*   
Entier : Port utilisé par l'instance MariaDB s'exécutant à l'extérieur de Amazon RDS pour une configuration comme instance source. Si votre configuration réseau inclut une réplication de port SSH qui convertit le numéro de port, spécifiez le numéro de port qui est exposé par SSH.

 *replication\$1user\$1name*   
String. L'ID d'un utilisateur avec les autorisations `REPLICATION SLAVE` de l'instance de base de données MariaDB à configurer comme réplica en lecture.

 *replication\$1user\$1password*   
String. Mot de passe de l'ID utilisateur spécifié dans `replication_user_name`.

 *gtid*   
String. L'ID de transaction global sur l'instance source à partir de laquelle la réplication doit démarrer.  
Vous pouvez utiliser `@@gtid_current_pos` pour obtenir le GTID actuel si l'instance source a été verrouillée pendant que vous configurez la réplication, afin que le journal binaire ne change pas entre les moments où vous obtenez le GTID et celui où la réplication démarre.  
Sinon, si vous utilisez `mysqldump` version 10.0.13, ou ultérieure, pour remplir l'instance de réplica avant de démarrer la réplication, vous pouvez obtenir la position GTID dans le résultat en utilisant les options `--master-data` ou `--dump-slave`. Si vous n'utilisez pas `mysqldump` version 10.0.13 ou ultérieure, vous pouvez exécuter le `SHOW MASTER STATUS` ou les mêmes options `mysqldump` pour obtenir la position et le nom du fichier journal binaire, puis les convertir dans un GTID en exécutant `BINLOG_GTID_POS` sur l'instance MariaDB :  

```
SELECT BINLOG_GTID_POS('<binary log file name>', <binary log file position>);
```
Pour plus d'informations sur l'implémentation MariaDB de GTID, accédez à [ID de transaction global](http://mariadb.com/kb/en/mariadb/global-transaction-id/) dans la documentation MariaDB.

 *ssl\$1encryption*   
Valeur indiquant si le chiffrement Secure Socket Layer (SSL) est utilisé sur la connexion de réplication. La valeur 1 spécifie d'utiliser le chiffrement SSL, et la valeur 0 de ne pas l'utiliser. La valeur par défaut est 0.  
L'option `MASTER_SSL_VERIFY_SERVER_CERT` n'est pas prise en charge. Cette option est définie sur 0, ce qui signifie que la connexion est chiffrée, mais que les certificats ne sont pas vérifiés.

## Notes d'utilisation
<a name="mysql_rds_set_external_master_gtid-usage-notes"></a>

La procédure `mysql.rds_set_external_master_gtid` doit être exécutée par l'utilisateur maître. Elle doit être exécutée sur l'instance de base de données MariaDB que vous configurez comme le réplica d'une instance MariaDB s'exécutant à l'extérieur de Amazon RDS. Avant d'exécuter `mysql.rds_set_external_master_gtid`, vous devez avoir configuré l'instance de MariaDB s'exécutant en dehors de Amazon RDS comme instance source. Pour plus d'informations, consultez [Importation de données dans une instance de base de données Amazon RDS for MariaDB](MariaDB.Procedural.Importing.md).

**Avertissement**  
N'utilisez pas `mysql.rds_set_external_master_gtid` pour gérer la réplication entre deux instances de base de données Amazon RDS. N'utilisez la procédure que lors de la réplication avec une instance MariaDB s'exécutant à l'extérieur de RDS. Pour plus d'informations sur la gestion de la réplication entre les instances de base de données Amazon RDS, consultez [Utilisation des réplicas en lecture d'instance de base de données](USER_ReadRepl.md).

Après avoir appelé `mysql.rds_set_external_master_gtid` pour configurer une instance de base de données Amazon RDS comme réplica en lecture, vous pouvez appeler [mysql.rds\$1start\$1replication](mysql-stored-proc-replicating.md#mysql_rds_start_replication) sur le réplica pour démarrer le processus de réplication. Vous pouvez appeler [mysql.rds\$1reset\$1external\$1master (RDS for MariaDB et RDS for MySQL, versions majeures 8.0 et antérieures)](mysql-stored-proc-replicating.md#mysql_rds_reset_external_master) pour supprimer la configuration du réplica en lecture.

Quand la procédure `mysql.rds_set_external_master_gtid` est appelée, Amazon RDS enregistre l'heure, l'utilisateur et une action de « set master » dans les tables `mysql.rds_history` et `mysql.rds_replication_status`.

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

Lorsqu'il est exécuté sur une instance de base de données MariaDB, l'exemple suivant la configure comme le réplica d'une instance de MariaDB s'exécutant à l'extérieur de Amazon RDS.

```
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>

Termine une requête s’exécutant sur le serveur MariaDB afin de mettre fin aux requêtes s’exécutant sur le long terme ou posant problème. Vous pouvez identifier l’ID de requête et arrêter efficacement une requête spécifique pour résoudre les problèmes de performances et maintenir un fonctionnement optimal de la base de données.

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

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

## Paramètres
<a name="mysql_rds_kill_query_id-parameters"></a>

 *queryID*   
Entier : L'identité de la requête à terminer.

## Notes d'utilisation
<a name="mysql_rds_kill_query_id-usage-notes"></a>

Pour arrêter une requête s'exécutant sur le serveur MariaDB, utilisez la procédure `mysql.rds_kill_query_id` et transmettez-lui l'ID de cette requête. Pour obtenir l'ID de requête, interrogez [Information Schema PROCESSLIST Table](http://mariadb.com/kb/en/mariadb/information-schema-processlist-table/) de MariaDB, comme indiqué ci-après :

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

La connexion au serveur MariaDB est conservée.

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

L'exemple suivant termine une requête avec un ID de requête 230040 :

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

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

Exécute des opérations InnoDB pour gérer les états du pool de mémoire tampon et le tablespace temporaire. Cette procédure peut être utilisée pour contrôler dynamiquement les opérations InnoDB telles que le vidage et le chargement des états du pool de mémoire tampon ou la troncation d’un tablespace temporaire.

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

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

## Paramètres
<a name="mysql_rds_execute_operation-parameters"></a>

 *fonctionnement*   
String. Les opérations InnoDB à exécuter. Les valeurs valides sont :  
+ *innodb\$1buffer\$1pool\$1dump\$1now* : opération qui vide l’état actuel du pool de tampons.
+ *innodb\$1buffer\$1pool\$1load\$1now* : opération qui charge l’état du pool de mémoire tampon enregistré.
+ *innodb\$1buffer\$1pool\$1load\$1abort* : opération qui interrompt une opération de chargement du pool de mémoire tampon.
+ *innodb\$1truncate\$1temporary\$1tablespace\$1now* : opération qui tronque le tablespace temporaire.

## Notes d’utilisation
<a name="mysql_rds_execute_operation-usage-notes"></a>

Cette procédure n'est prise en charge que pour les instances de base de données MariaDB exécutant MariaDB version 11.8 ou supérieure.

Pendant l’exécution, la journalisation binaire est temporairement désactivée pour empêcher la réplication de ces commandes administratives.

La procédure gère une piste d’audit en enregistrant toutes les opérations dans la table [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).

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

L’exemple suivant illustre la réduction temporaire du tablespace à l’aide de `mysql.rds_execute_operation` :

Pour vérifier la taille actuelle du tablespace temporaire, exécutez l’une des requêtes suivantes :

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

Lorsque vous supprimez des tables temporaires, cela ne réduit pas l’utilisation du stockage dans le tablespace global. Pour réduire la taille du tablespace global, exécutez la commande `mysql.rds_execute_operation` pour réduire le tablespace temporaire.

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

Après avoir exécuté la procédure, vérifiez que l’espace a été récupéré.

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

**Note**  
 L’opération de réduction peut prendre du temps, en fonction de la taille du tablespace temporaire et de la charge de travail actuelle.

**Important**  
Le tablespace temporaire ne se réduit que lorsque toutes les tables temporaires qui ont contribué à sa taille ne sont plus utilisées. Nous vous recommandons d’exécuter cette procédure lorsqu’aucun tablespace temporaire n’est actif sur l’instance. 