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-transaction
olmak için, yedekleme çalışırken yazılan MyISAM tabloları varsa tutarlı bir yedekleme oluşturmaz. Ancak, --single-transaction
tüm InnoDB'yi kullanıyorsanız ve mysqldump
çalıştırma sırasında engellemekten kaçınmak istiyorsanız ekleme iyi bir fikirdir .
--events
ek olarak gerekli olan--routines
ve--triggers
ve ayrıca ihmal--single-transaction
gereksiz tabloları kilitleme önlemek için.