Backup avanzati per database MySQL

Quando hanno finito Backup del database MySQL, è comune usare il comando mysqldump nessuna opzione. Tuttavia, questo comando ha molte opzioni interessanti che ti consentono di eseguire backup avanzati.

Per impostazione predefinita, il Il comando mysqldump genera una copia della struttura sql di tutte le tabelle del database indicato, in un file di testo sql. Per includere solo una o più tabelle, inserisci i loro nomi dopo il nome del database.

Dalla finestra del terminale nella directory mysql:

 # Backup di una singola tabella $ mysqldump -user = utente --password = chiave del database della tabella> backup_sql
 # Backup di tre tabelle $ mysqldump -user = utente --password = chiave del database table1 table2 table3> backup_sql
Esempi di 1 o 3 tabelle.

1. Esclusione di alcune tabelle dal backup


Per non includere una tabella specifica nel backup, dobbiamo indicarla con l'opzione --ignore-table, il cui valore deve essere indicato

Se stai facendo ad esempio un backup di un database chiamato commerce ma non vuoi che sia inclusa una tabella chiamata sales, esegui il seguente comando:

 $ mysqldump --user = utente - password = password --ignore-table = commerciante.vendite commerciante> backup_back.sql 
In altre parole, copia l'intero database commerciale tranne la tabella delle vendite. Se vogliamo escludere più tabelle dobbiamo usare il seguente comando:
 $ mysqldump --user = utente --password = password --ignore-table = commerce.sales --ignore-table = commerce.prodotti --ignore-table = commerce.commerce prezzi> backup_copy.sql
(Per escludere più tabelle, specificare i loro nomi con altrettante opzioni --ignore-table)

2. Limitare il numero di record in ogni tabella


Per impostazione predefinita, il comando mysqldump copierà tutti i record da tutte le tabelle. Se si desidera filtrare in precedenza i record, aggiungere l'opzione --where, che consente di indicare la condizione di tipo WHERE che viene aggiunta alle query SELECT che vengono eseguite per estrarre tutti i record:
 $ mysqldump --user = utente --password = password --where = "età> 18 AND età backup_back.sql 
Se vogliamo estrarre solo alcuni record dal database, ad esempio i primi 500
 $ mysqldump --user = utente -password = password --where = database "1 limite 500"> backup.sql
Verrebbero estratti con un limite di 500.

3. Copia solo la struttura delle tabelle ma non i loro dati


Per impostazione predefinita, il comando mysqldump scarica sia la struttura delle tabelle che tutte le loro informazioni. Se sei interessato solo a scaricare la struttura delle tabelle e delle colonne, usa l'opzione --no-data. Quindi puoi creare un altro database esattamente uguale ma vuoto:
 $ mysqldump --user = utente --password = password --database senza dati> backup_sql
Normalmente quando vengono generati gli inserti vengono raggruppati in un'unica istruzione per salvare righe di codice come segue:
 INSERIRE NELLA tabella VALORI (1, 'nome1'), (2, 'nome2'), (3, 'nome3');
Questo è un comportamento che può causare errori con i sistemi meno recenti che non sono in grado di elaborare lunghe file. Allo stesso modo, potresti riscontrare problemi con il tuo editor di testo quando provi ad aprire un file di backup che contiene queste lunghe righe.

Se ci troviamo di fronte a questo caso, possiamo aggiungere l'opzione --extended-insert = falso per far eseguire ogni INSERT con la propria istruzione:

 $ mysqldump --user = user -password = password --extended-insert = falso database> backup_sql
Il risultato sarà il seguente:
 INSERIRE NELLA tabella VALUES (1, 'nome1'); INSERIRE NELLA tabella VALUES (2, 'nome2'); INSERIRE NELLA tabella VALORI (3, 'nome3'); 

Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo
wave wave wave wave wave