mu mysqldump -all-databases tüm nesneleri içerir?
Tüm veritabanlarını yeni sunucuya taşımam gerekiyor.
mu mysqldump -all-databases tüm nesneleri içerir?
Tüm veritabanlarını yeni sunucuya taşımam gerekiyor.
Yanıtlar:
Hiçbir mysqldump -all-database tüm nesneleri içermez
mysqldump --help
-A, --all-databases Dump all the databases. This will be same as --databases
with all databases selected.
Yani - - tüm veritabanları ile mysqldump sadece tüm veritabanlarını döker.
Tüm veritabanlarını yeni bir sunucuya taşımak için tam bir yedek almalısınız:
mysqldump tüm mysql örneğini
mysqldump -h... -u... -p... --events --routines --triggers --all-databases > MySQLData.sql
Dezavantajı bu şekilde oluşturulan yedeklemeler sadece mysqldump ile oluşturulan mysql aynı büyük sürümüne yüklenebilir olmasıdır. Başka bir deyişle, bir MySQL 5.0 veritabanındaki mysqldump --all-veritabanları 5.1 veya 5.5 sürümlerine yüklenemez. Sebep ? MySQL şeması, büyük sürümler arasında tamamen farklıdır.
SQL Grants'ı okunabilir ve daha taşınabilir olan kullanıcılar için dökmenin genel yolu
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
Büyük bir veritabanının mysqldump'ı nasıl optimize edebilirim? Konusundaki RolandoMySQLDBA yanıtına bakın.
--single-transactionolmak için, yedekleme çalışırken yazılan MyISAM tabloları varsa tutarlı bir yedekleme oluşturmaz. Ancak, --single-transactiontüm InnoDB'yi kullanıyorsanız ve mysqldumpçalıştırma sırasında engellemekten kaçınmak istiyorsanız ekleme iyi bir fikirdir .
--eventsek olarak gerekli olan--routinesve--triggersve ayrıca ihmal--single-transactiongereksiz tabloları kilitleme önlemek için.