MySQL'de çoklu gigabayt veritabanlarını nasıl yedekleyebilirim? Daha hızlı geri yükleme için bonus puan


11

MySQL'de 4GB'lık bir veritabanım var. Nasıl yedekleyebilirim? Dahası, iyileşmem gerektiğinde restorasyon sürecini hızlandırabilmemin bir yolu var mı?

Şu anda her gece mysqldumpher şeyi boşaltmak için çağrı yapan bir cron işi kullanıyorum ve 3 gün yedek tutuyorum.

Yanıtlar:


14

Bir MySQL'de yaklaşık 90 GB'ımız var, bu yüzden bazı öneriler:

  • Aşağıdaki çağrıyı deneyebilirsiniz: mysqldump -u USER -pPASS --single-transaction -Q --databases foo bar(Bu anahtarların sizin için çalışıp çalışmadığını kontrol etmek için dokümanları kullanın.)
  • Yalnızca MYISAM tablolarını kullanıyorsanız, veritabanını başka bir sürücüye kopyalayıp taring etmek de bir alternatif olabilir. Bu, INNODB ile çalışmaz, çünkü ek bir dosya tutar. Ayrıca, bunu dikkatlice test etmelisiniz.
  • İkili günlükleri etkinleştirin ve yedekleyin. (Bu muhtemelen benim favorim!)
  • Çoğaltmayı ayarlayın ve yedeklerinizi kölelerinizden birinde yapın ve geri kalanını yakalayın. Çalıştığında oldukça güzel, ama sorun onu çalıştırıyor. MySQL ile çoğaltma yapmak eğlenceli değildir. :(
  • Dosya sisteminiz anlık görüntüleri destekliyor mu? Varsa, bu onları kullanmak için harika bir fırsattır.
  • Amanda gibi ticari bir çözüm kullanın .

10

En iyi yol normal çalışmayı kesintiye uğratmak olabilir. Yüksek güvenilirliğe, hataya dayanıklı sistemler için senkronize tutulan 2 DB'niz vardır ve ikincil yedeği yedeklersiniz. (örneğin, bu nasıl yapılır makalesi )

Aksi takdirde kılavuzu okuyun : myseldump'ı şu anda yaptığınız gibi kullanın veya mysqlhotcopy komut dosyasını kullanın (tıpkı mysqldump gibi kullanın) veya DB'yi durdurun ve frm, MID, MYI dosyalarını (rsync kullanarak) kopyalayın.

Bence stop + copy files mekanizması alacağınız en hızlı mekanizma.


3

Bazı veritabanlarınız salt okunur veya modifiye edilmişse, nadiren daha az sıklıkta bir cron olarak bekletin.


2

Sorunuzu cevaplamak için - extended_insert seçeneği benim için iyi çalışıyor. Geri yüklemek için yeterli kaynağınız varsa, Extended_insert tek bir sorguya büyük miktarda veri ekleyerek geri yüklemeyi hızlandırır.


1

Gerçekten Percona en düşünmelisiniz Xtrabackup

Sargı komut dosyası "innobackupex" MyISAM'ı işleyebilir, ancak kilitlemesiz / çevrimiçi yedekleme için tablolarınızın tümü InnoDB olmalıdır.

Şerefe

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.