Mysqldump kullanarak hızlı yedekleme ve 500 GB veritabanı geri yükleme nasıl artırılır?


10

500 GB boyutunda bir veritabanı var. A veritabanındaki tablolar hem MyISAM hem de INNODB tablolarını içerir. MyISAM tabloları ana tablolar ve Innodb tabloları ana işlem tablolarıdır.

Yedekleme ve uzun bir süre veya gün bırakma mysql dökümü kullanarak geri yükleyin.

  • max_allowed_packet = 1G
  • foreign_key_checks = 0
  • auto_commit = kapalı

1
Sadece - mysqldump yardımcı programı ile --opt kullandığınızdan emin olmak istiyorum. Bu yeniden yükleme sırasında BÜYÜK bir zaman tasarrufu. onsuz mysqldump satır satır sql dosyası oluşturur. --opt yapar: Tüm oluşturma seçenekleri etkinken kilitler ekler, bırakır ve yeniden oluşturur, hızlı bir yeniden yükleme için tuşları geçici olarak devre dışı bırakır ve ardından yazma tamamlandıktan sonra dizinleri yeniden oluşturmak için anahtarları yeniden açar. Her bir ifadenin dosya boyutunu VE ayrıştırma süresini (% 70'e kadar) azaltmak için birkaç satır ekler halinde birleştirir ve --quick'in çalışma sırasında damping DB'sine karşı yükü azaltmasını sağlar. yükleme süresini% 80 azaltır
ppostma1

Yanıtlar:


5

Ancak bağlantı aynı zamanda daha hızlı olan Pertrana'dan XtraBackup'u tavsiye ediyor, zaten kullanımda olan tablolarda kilit yok ve restorasyon için zaman kazanmıyor. 500 GB veri için Percona XtraBackup'ın mevcut DB sunucusundan değilse innodb_file_per_table modeline dönüştürmek istemiyorsanız hızlı ve verimli olmasını tercih ederim. Aşağıdaki linkte nasıl ilerleyeceğiniz açıklanmaktadır.

http://www.percona.com/doc/percona-xtrabackup/innobackupex/creating_a_backup_ibk.html


1
Percona Xtrabackup ile ilgili sorun, bir veritabanını geri yüklemek için mysqld durdurulması gerektiğidir .
dr_

2

Mydumper'ı kontrol edin. MySQLdump'tan çok daha hızlı: Yeni mydumper 0.6.1 sürümü performans ve kullanılabilirlik özellikleri sunuyor

Buradan indirebilirsiniz: https://github.com/maxbube/mydumper

Mydumper nedir? Neden?

  • Paralellik (dolayısıyla hız) ve performans (pahalı karakter seti dönüştürme rutinlerinden kaçınır, genel olarak etkin kod)
  • Çıktıyı yönetmek daha kolay (tablolar için ayrı dosyalar, meta verileri dökümü vb., Verileri görüntülemek / ayrıştırmak kolay)
  • Tutarlılık - tüm iş parçacıklarında anlık görüntüyü korur, doğru ana ve ikincil günlük konumlarını sağlar vb.
  • Yönetilebilirlik - veritabanı ve tablo dahil etme ve hariç tutma özelliklerini belirlemek için PCRE'yi destekler

1

Ben soru nasıl mysqldump'ın ceated dökümü dosyalarından daha hızlı geri yükleme hakkında değil, farklı bir yedekleme çözümü hakkında olduğunu düşünüyorum.

Bunu yapmanın yollarından biri, şemanızda tablo grupları oluşturmak ve her grup için ayrı bir DB kullanıcısı oluşturmak ve tabloların tek bir DB kullanıcısını kullanmaya eklenmesine izin vermemek için MySQL izinlerini kullanmaktır.

Bu kanıtlanmış, hızlı, neredeyse paralel bir tekniktir, ancak 500G'den geri yükleme işleminin ne kadar süreceği% 100 emin değildir. Ama imho, paralel bir şeye ihtiyacın var. Örnek için aşağıdaki bağlantıya bakın.

MySQL için SQL dökümlerinden (mysqldump) hızlı, paralel geri yükleme


1

İnnobackupex ile aşağıdakileri deneyin:

innobackupex --parallel=7 --rsync  /var/mysql/backup

Paralel işlem numarasını istediğiniz gibi değiştirebilirsiniz. Myisam tablolarınız olduğundan bahsettiğiniz için, "rsync" parametresi bunların yedeklenmesini hızlandırmaya yardımcı olacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.