Non mysqldump -all-databases
includere tutti gli oggetti?
Devo migrare tutti i database su un nuovo server.
Non mysqldump -all-databases
includere tutti gli oggetti?
Devo migrare tutti i database su un nuovo server.
Risposte:
Nessun mysqldump -all-database non include tutti gli oggetti
mysqldump --help
-A, --all-databases Dump all the databases. This will be same as --databases
with all databases selected.
Quindi mysqldump con --all-databases esegue il dump di tutti i database.
Per migrare tutti i database su un nuovo server, è necessario eseguire un backup completo:
mysqldump un'intera istanza mysql
mysqldump -h... -u... -p... --events --routines --triggers --all-databases > MySQLData.sql
Lo svantaggio è che i backup creati in questo modo possono essere ricaricati solo nella stessa versione di rilascio principale di mysql con cui è stato generato mysqldump. In altre parole, un mysqldump - tutti i database di un database MySQL 5.0 non può essere caricato in 5.1 o 5.5. La ragione ? Lo schema mysql è totalmente diverso tra le versioni principali.
Ecco il modo generico per scaricare le sovvenzioni SQL per gli utenti che è leggibile e più portatile
mysql -h... -u... -p... --skip-column-names -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>''" | mysql -h... -u... -p... --skip-column-names -A | sed 's/$/;/g' > MySQLGrants.sql
Dai un'occhiata alla risposta di RolandoMySQLDBA su Come posso ottimizzare un mysqldump di un database di grandi dimensioni?
--single-transaction
non produrrà un backup coerente se ci sono tabelle MyISAM che vengono scritte durante l'esecuzione del backup. Tuttavia, l'aggiunta --single-transaction
è una buona idea se si utilizza tutto InnoDB e si desidera evitare il blocco durante l' mysqldump
esecuzione.
--events
quale è necessario in aggiunta a--routines
e--triggers
ed hai anche omesso--single-transaction
per evitare inutilmente il blocco delle tabelle.