Eseguire regolarmente il backup del database è uno dei passaggi cruciali dopo aver realizzato il progetto. La frequenza di backup può essere una volta al giorno o una settimana. Il backup giornaliero è preferito per le applicazioni in cui le modifiche al database sono più frequenti. Nel caso di database ad alta disponibilità, è necessario considerare la configurazione del cluster appropriata anziché il ridimensionamento verticale. Questo tutorial spiega l'utilizzo di
Note :Questo tutorial copre solo le opzioni più comuni utilizzate con
Backup locale
Backup - Questa sezione spiega come eseguire il backup locale in un file esportando database singoli o multipli.
Autorizzazioni -
- SELECT - per eseguire il dump delle tabelle
- MOSTRA VISTA - per eseguire il dump delle visualizzazioni
- TRIGGER - per scaricare i trigger
- BLOCCO TABELLE - nel caso in cui l'opzione --single-transaction non sia utilizzata
Comando - Di seguito viene menzionato l'utilizzo di
# Regular command - Usage - Windows, Linux
mysqldump [options] db_name [tbl_name ...] > <file path>
mysqldump [options] --databases db_name ... > <file path>
mysqldump [options] --all-databases > <file path>
Gli esempi per utilizzare il comando regolare sono indicati di seguito. Questi comandi di esempio utilizzano l'utente enterprise per eseguire backup del database azienda . Non è necessario specificare utente e password nel caso in cui l'account utente utilizzi auth_socket algoritmo per accedere al server MySQL. L'utente del sistema può accedere direttamente al database. Puoi fare riferimento a Come utilizzare la password nativa con MySQL 5.7 e Come installare MySQL 8 su Ubuntu per saperne di più sugli algoritmi delle password.
Note :Non è necessario utilizzare l'opzione -p, nel caso in cui non venga assegnata alcuna password all'utente.
Di seguito sono riportati gli esempi per eseguire il backup di un singolo database con nome utente, host e porta. La password non deve essere fornita con questi comandi per motivi di sicurezza. Puoi specificare la password per
# All tables - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise > enterprise.sql
# All tables - with username, with password - insecure
mysqldump -u enterprise -p'mypwd' enterprise > enterprise.sql
# All tables - with username, with password - Plesk way
mysqldump -u enterprise -p`cat /etc/psa/.psa.shadow` dbname > dbname.sql
# All tables - with host, with port, with username, without password - prompts for password
mysqldump -h localhost -p 3306 -u enterprise -p enterprise > enterprise.sql
# Single table(user) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise [user] > enterprise.sql
# Multiple tables(user, profile) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise user profile > enterprise.sql
Di seguito sono riportati gli esempi per eseguire il backup di più database con nome utente, host e porta.
# Multiple databases - with username, without password - prompts for password
mysqldump -u enterprise -p --databases enterprise vblog mshop > mydbs.sql
# Multiple databases - with username, with password
mysqldump -u enterprise -p'mypwd' --databases enterprise vblog mshop > mydbs.sql
Di seguito è riportato l'esempio per eseguire il backup di tutti i database con nome utente, host e porta.
# All databases - with username, without password - prompts for password
mysqldump -u enterprise -p --all-databases > mydbs.sql
# All databases - with username, with password
mysqldump -u enterprise -p'mypwd' --all-databases > mydbs.sql
Gli utenti di PowerShell su Windows avranno bisogno di comandi diversi come indicato di seguito.
# PowerShell on Windows
shell> mysqldump [options] db_name [tbl_name ...] --result-file=<file path>
shell> mysqldump [options] --databases db_name ... --result-file=<file path>
shell> mysqldump [options] --all-databases --result-file=<file path>
# Example
shell> mysqldump -u enterprise -p enterprise --result-file=mydump.sql
I comandi sopra menzionati esporteranno il database e le tabelle selezionati nella posizione del file specificata nel comando.
Backup del database
Questa sezione spiega come eseguire il backup del database su un altro database utilizzato a scopo di backup utilizzando le Shell Pipe. Possiamo esportare il database nel file locale e quindi utilizzare questo file per importare in un altro database o esportare direttamente in un altro database utilizzando le shell pipe.
Il comando indicato di seguito può essere utilizzato per esportare il database direttamente in un altro database. Inoltre, assicurati di avere accesso a entrambi i server prima di eseguire il comando.
# Export database to another database - Same server
mysqldump -u enterprise -p enterprise | mysql enterprise_backup
# Export database to another database - Different server
mysqldump -u enterprise -p enterprise | mysql -h host.example.com -p 3306 enterprise
Ecco come possiamo esportare o eseguire il backup di un database.