Amazon RDS - Attività DBA MySQL
Come ogni altro database, anche Amazon RDS MYSQL necessita di attività DBA per ottimizzare il database ed eseguire controlli periodici dello stato, ecc. Ma poiché la piattaforma AWS non consente l'accesso shell al DB, esiste un numero limitato di attività DBA che possono essere eseguito rispetto all'installazione in locale di MySQL. Di seguito è riportato un elenco di attività DBA comuni che possono essere eseguite nel database MySQL di AWS RDS e le relative descrizioni.
Il file di registro degli errori MySQL (mysql-error.log) può essere visualizzato utilizzando la console Amazon RDS o recuperando il registro utilizzando la CLI di Amazon RDS. mysql-error.log viene scaricato ogni 5 minuti e il suo contenuto viene aggiunto a mysql-error-running.log. Il file mysql-error-running.log viene quindi ruotato ogni ora e i file orari generati durante le ultime 24 ore vengono conservati.
Utilizzo della console RDS
Di seguito sono presenti collegamenti a due file di registro descritti sopra.
Utilizzo della CLI
Utilizzando la CLI, i file di registro vengono pubblicati su CloudWatch Logs come oggetto JSON.
aws rds modify-db-instance \
--db-instance-identifier mydbinstance \
--cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit","error","general","slowquery"]}' \
--apply-immediately
A volte il DBA deve terminare una sessione o una query di lunga durata che non fornisce il risultato abbastanza rapidamente. Questa attività DBA viene eseguita trovando prima l'ID di processo della query e quindi utilizzando una funzione RDS per terminare la query. I comandi seguenti sono degli esempi.
# get the ID
Select * from INFORMATION_SCHEMA.PROCESSLIST
#Apply the Kill Function
CALL mysql.rds_kill(processID);
Possiamo migliorare il tempo di ripristino da un arresto anomalo impostando un parametro DB chiamato innodb_file_per_table. Possiamo trovare questo parametro nella console RDS come mostrato di seguito.
Successivamente possiamo cercare il nome del parametro come mostrato di seguito.
Amazon RDS imposta il valore predefinito per il parametro innodb_file_per_table su 1, che consente di eliminare singole tabelle InnoDB e recuperare lo storage utilizzato da tali tabelle per l'istanza database. Questo accelera il tempo di recupero dall'arresto anomalo.
L'arresto di un database, il riavvio o la creazione di istantanee ecc. Possono essere eseguiti facilmente tramite la console RDS, come mostrato nel diagramma sottostante.