

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# MariaDB sul riferimento SQL di Amazon RDS
<a name="Appendix.MariaDB.SQLRef"></a>

Di seguito, sono disponibili descrizioni di stored procedure di sistema disponibili alle istanze Amazon RDS che eseguono il motore di database MariaDB.

Puoi utilizzare tutte le stored procedure del sistema disponibili per le istanze database MySQL e MariaDB. Le procedure archiviate sono documentate in [Riferimento delle stored procedure RDS per MySQL](Appendix.MySQL.SQLRef.md). Le istanze database MariaDB supportano tutte le procedure archiviate, ad eccezione di `mysql.rds_start_replication_until` e `mysql.rds_start_replication_until_gtid`.

Inoltre, le seguenti procedure archiviate nel sistema sono supportate solo per le istanze database Amazon RDS che eseguono 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>

Mostra lo stato di replica di una replica di lettura MariaDB.

Richiamare questa procedura sulla replica di lettura per visualizzare le informazioni sullo stato dei parametri essenziali dei thread di replica.

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

```
CALL mysql.rds_replica_status;
```

## Note per l'utilizzo
<a name="mysql_rds_replica_status-usage-notes"></a>

Questa procedura è supportata solo per le istanze database MariaDB che eseguono MariaDB versione 10.5 e successive.

Questa procedura è l'equivalente del comando `SHOW REPLICA STATUS`. Questo comando non è supportato per le istanze database MariaDB versione 10.5 e successive.

Nelle versioni precedenti di MariaDB, il comando `SHOW SLAVE STATUS` equivalente richiedeva il privilegio `REPLICATION SLAVE`. In MariaDB 10.5 e versioni successive, richiede il privilegio `REPLICATION REPLICA ADMIN`. Per proteggere la gestione RDS delle istanze database MariaDB 10.5 e versioni successive, questo nuovo privilegio non viene concesso all'utente master RDS.

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

L'esempio seguente mostra lo stato di una replica di lettura MariaDB:

```
call mysql.rds_replica_status;
```

La risposta è simile a quella riportata di seguito.

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

Configura la replica basata su GTID da un'istanza MariaDB in esecuzione all'esterno di Amazon RDS a un'istanza database MariaDB. Questa procedura archiviata è supportata solo se l'istanza esterna di MariaDB è la versione 10.0.24 o successiva. Quando configuri una replica dove una o entrambe le istanze non supportano gli ID globale di transazione (GTID) di MariaDB, utilizza [mysql.rds\$1set\$1external\$1master (RDS per MariaDB e RDS per MySQL versioni principali 8.0 e precedenti)](mysql-stored-proc-replicating.md#mysql_rds_set_external_master).

L'utilizzo di GTID per la replica offre funzioni di sicurezza contro l'arresto anomalo non offerte dalla replica dei log binari. Pertanto è consigliata per la replica di istanze che li supportano. 

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

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

 *host\$1name*   
Stringa. Il nome host o l'indirizzo IP dell'istanza MariaDB in esecuzione all'esterno di Amazon RDS che diventerà l’istanza di origine.

 *host\$1port*   
Numero intero. La porta utilizzata dall'istanza MariaDB in esecuzione all'esterno di Amazon RDS da configurare come istanza di origine. Se la configurazione della rete include la replica della porta SSH che converte il numero di porta, specifica il numero di porta esposto da SSH.

 *replication\$1user\$1name*   
Stringa. L'ID di un utente con autorizzazioni `REPLICATION SLAVE` nell'istanza database MariaDB da configurare come replica di lettura.

 *replication\$1user\$1password*   
Stringa. La password dell'ID utente specificata in `replication_user_name`.

 *gtid*   
Stringa. L'ID globale di transazione sull’istanza di origine dalla quale la replica dovrebbe iniziare.  
Puoi utilizzare `@@gtid_current_pos` per ottenere il GTID corrente se l’istanza di origine è stata bloccata durante la configurazione della replica, così il log binario non cambia tra i punti quando ottieni il GTID e quando la replica inizia.  
In alternativa, se utilizzi `mysqldump` versione 10.0.13 o successiva per compilare l'istanza di replica prima di avviare la replica, puoi ottenere la posizione GTID nell'output utilizzando l'opzione `--master-data` o `--dump-slave`. Se non utilizzi `mysqldump` versione 10.0.13 o successiva, puoi eseguire `SHOW MASTER STATUS` o utilizzare quelle stesse opzioni `mysqldump` per ottenere il nome e la posizione del file di log binario, quindi convertirle in un GTID eseguendo `BINLOG_GTID_POS` sull'istanza MariaDB esterna:  

```
SELECT BINLOG_GTID_POS('<binary log file name>', <binary log file position>);
```
Per ulteriori informazioni sull'implementazione di GTID di MariaDB, consulta [ID globale di transazione (GTID)](http://mariadb.com/kb/en/mariadb/global-transaction-id/) nella documentazione di MariaDB.

 *ssl\$1encryption*   
Un valore che specifica se la crittografia Secure Socket Layer (SSL) è utilizzata sulla connessione di replica. 1 indica che la crittografia SSL deve essere utilizzata; 0 specifica che la crittografia non deve essere utilizzata. Il valore predefinito è 0.  
L'opzione `MASTER_SSL_VERIFY_SERVER_CERT` non è supportata. Questa opzione è impostata su 0, il che significa che la connessione è crittografata, ma i certificati non sono verificati.

## Note per l'utilizzo
<a name="mysql_rds_set_external_master_gtid-usage-notes"></a>

La procedura `mysql.rds_set_external_master_gtid` deve essere eseguita dall'utente master. Deve essere eseguita sull'istanza database MariaDB che stai configurando come replica di un'istanza MariaDB in esecuzione all'esterno di Amazon RDS. Prima di eseguire `mysql.rds_set_external_master_gtid`, devi aver configurato l'istanza di MariaDB in esecuzione all'esterno di Amazon RDS come istanza di origine. Per ulteriori informazioni, consulta [Importazione di dati in un’istanza database Amazon RDS per MariaDB.](MariaDB.Procedural.Importing.md).

**avvertimento**  
Non usare `mysql.rds_set_external_master_gtid` per gestire la replica tra due istanze database Amazon RDS. Utilizzala soltanto nel caso della replica con un'istanza di MariaDB in esecuzione all'esterno di RDS. Per ulteriori informazioni sulla gestione della replica tra istanze database Amazon RDS, consulta [Uso delle repliche di lettura dell'istanza database](USER_ReadRepl.md).

Dopo aver chiamato `mysql.rds_set_external_master_gtid` per configurare un'istanza database di Amazon RDS come una replica di lettura, puoi chiamare [mysql.rds\$1start\$1replication](mysql-stored-proc-replicating.md#mysql_rds_start_replication) nella replica per avviare il processo di replica. Puoi chiamare [mysql.rds\$1reset\$1external\$1master (RDS per MariaDB e RDS per MySQL versioni principali 8.0 e precedenti)](mysql-stored-proc-replicating.md#mysql_rds_reset_external_master) per rimuovere la configurazione della replica di lettura.

Quando `mysql.rds_set_external_master_gtid` viene chiamato, Amazon RDS registra l'ora, l'utente e un'operazione di "impostazione master" nelle tabelle `mysql.rds_history` e `mysql.rds_replication_status`.

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

Nel caso di esecuzione di un'istanza database MariaDB, l'esempio seguente la configura come replica di un'istanza di MariaDB in esecuzione all'esterno di 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>

Termina una query in esecuzione sul server MariaDB per chiudere query di lunga durata o problematiche. È possibile identificare l’ID della query e arrestare in modo efficace una query specifica per risolvere problemi di prestazioni e mantenere un funzionamento ottimale del database.

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

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

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

 *queryID*   
Numero intero. L'identità della query da terminare.

## Note per l'utilizzo
<a name="mysql_rds_kill_query_id-usage-notes"></a>

Per arrestare una query in esecuzione nel server MariaDB, utilizza la procedura `mysql.rds_kill_query_id` e invia l'ID di quella query. Per ottenere l'ID query, esegui la query nella [Information Schema PROCESSLIST Table](http://mariadb.com/kb/en/mariadb/information-schema-processlist-table/) di MariaDB come mostrato di seguito:

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

La connessione al server MariaDB viene mantenuta.

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

L'esempio seguente termina una query con un ID query di 230040:

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

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

Esegue operazioni InnoDB per gestire gli stati del pool di buffer e il tablespace temporaneo. Questa procedura consente di controllare dinamicamente le operazioni di InnoDB, ad esempio il dump e il caricamento degli stati del pool di buffer o il troncamento del tablespace temporaneo.

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

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

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

 *operazione*   
Stringa. Le operazioni InnoDB da eseguire. I valori validi sono:  
+ *innodb\$1buffer\$1pool\$1dump\$1now* - Operazione che esegue il dump dello stato corrente del pool di buffer.
+ *innodb\$1buffer\$1pool\$1load\$1now* - Operazione che carica lo stato del pool di buffer salvato.
+ *innodb\$1buffer\$1pool\$1load\$1abort* - Operazione che interrompe il caricamento di un pool di buffer.
+ *innodb\$1truncate\$1temporary\$1tablespace\$1now* - Operazione che trova il tablespace temporaneo.

## Note per l’utilizzo
<a name="mysql_rds_execute_operation-usage-notes"></a>

Questa procedura è supportata solo per le istanze database MariaDB che eseguono MariaDB versione 11.8 e successive.

Durante l’esecuzione, la registrazione di log binari è temporaneamente disabilitata per impedire la replica di questi comandi amministrativi.

La procedura mantiene un audit trail registrando tutte le operazioni nella tabella [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).

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

L’esempio seguente mostra la riduzione temporanea del tablespace `mysql.rds_execute_operation`:

Per controllare la dimensione attuale del tablespace, esequi questa query:

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

Quando si eliminano tabelle temporanee, non si riduce l’utilizzo dello spazio di archiviazione nel tablespace. Per diminuire le dimensioni dello spazio di tabelle globale, esegui il comando `mysql.rds_execute_operation` per ridurre il tablespace temporaneo.

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

Dopo aver eseguito la procedura, verifica che lo spazio sia stato recuperato.

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

**Nota**  
 L’operazione di riduzione potrebbe richiedere tempo, in base alle dimensioni del tablespace temporaneo e del carico di lavoro corrente.

**Importante**  
Il tablespace temporaneo si riduce solo quando tutte le tabelle temporanee che hanno contribuito alla sue dimensioni non sono più in uso. Si consiglia di eseguire questa procedura quando nell’istanza non sono presenti tablespace temporanei attivi. 