MySQL veritabanları için gelişmiş yedeklemeler

onlar bittiğinde MySQL veritabanı yedeklemeleri, komutu kullanmak yaygındır mysqldump seçenek yok. Ancak, bu komut, gelişmiş yedeklemeler gerçekleştirmenize izin veren birçok ilginç seçeneğe sahiptir.

Varsayılan olarak, mysqldump komutu, veritabanındaki tüm tabloların sql yapısının bir kopyasını oluşturur. sql bir metin dosyasında belirtilir. Yalnızca bir veya daha fazla tablo eklemek için adlarını veritabanı adından sonra girin.

mysql dizinindeki terminal penceresinden:

 # Tek tablo yedeği $ mysqldump -user = user --password = tablo veritabanı anahtarı> backup_sql
 # Üç tabloyu yedekleyin $ mysqldump -user = user --password = veritabanı anahtarı tablo1 tablo2 tablo3> backup_sql
1 veya 3 tablo örneği.

1. Bazı tabloları yedekten hariç tutma


Yedeklemede belirli bir tabloyu içermemek için, değeri belirtilmesi gereken --ignore-table seçeneği ile belirtmeliyiz.

Örneğin, ticaret adlı bir veritabanının yedeğini alıyorsanız ancak satış adlı bir tablonun dahil edilmesini istemiyorsanız, aşağıdaki komutu çalıştırın:

 $ mysqldump --user = user - password = password --ignore-table = tüccar.satış tüccarı> backup_back.sql 
Başka bir deyişle, satış tablosu hariç tüm ticaret veritabanını kopyalayın. Birkaç tabloyu hariç tutmak istiyorsak aşağıdaki komutu kullanmalıyız:
 $ mysqldump --user = user --password = password --ignore-table = Commerce.sales --ignore-table = Commerce.products --ignore-table = Commerce.ticaret fiyatları> backup_copy.sql
(Birden çok tabloyu hariç tutmak için, adlarını mümkün olduğunca çok --ignore-table seçeneğiyle belirtin)

2. Her tablodaki kayıt sayısını sınırlama


Varsayılan olarak, mysqldump komutu tüm tablolardan tüm kayıtları kopyalayacaktır. Kayıtları önceden filtrelemek istiyorsanız, tüm kayıtları çıkarmak için yapılan SELECT sorgularına eklenen WHERE türü koşulunu belirtmenize olanak tanıyan --where seçeneğini ekleyin:
 $ mysqldump --user = user --password = password --where = "age> 18 AND age backup_back.sql 
Veritabanından sadece bazı kayıtları çıkarmak istiyorsak, örneğin ilk 500
 $ mysqldump --user = user -password = password --where = "1 limit 500" veritabanı> backup.sql
Bunlar 500 limitle çıkarılacaktı.

3. Yalnızca tabloların yapısını kopyalayın, verilerini değil


Varsayılan olarak, emretmek mysqldump hem tabloların yapısını hem de tüm bilgilerini döker. Yalnızca tabloların ve sütunların yapısını boşaltmakla ilgileniyorsanız, --no-data seçeneğini kullanın. Böylece tamamen aynı ama boş başka bir veritabanı oluşturabilirsiniz:
 $ mysqldump --user = user --password = password --no-data database> backup_sql
Normalde, ekler oluşturulduğunda, kod satırlarını aşağıdaki gibi kaydetmek için tek bir ifadede gruplanırlar:
 Tablo DEĞERLERİNE EKLE (1, 'ad1'), (2, 'ad2'), (3, 'ad3');
Bu, uzun satırları işleyemeyen eski sistemlerde hatalara neden olabilen davranıştır. Benzer şekilde, bu uzun satırları içeren bir yedekleme dosyasını açmaya çalışırken metin düzenleyicinizde sorunlarla karşılaşabilirsiniz.

Bu durumla karşı karşıya kalırsak, seçeneği ekleyebiliriz. --genişletilmiş-insert = yanlış her INSERT'i kendi ifadesiyle çalıştırmak için:

 $ mysqldump --user = user -password = password --extended-insert = false database> backup_sql
Sonuç aşağıdaki gibi olacaktır:
 tablo DEĞERLERİNE EKLE (1, 'ad1'); tablo DEĞERLERİNE EKLE (2, 'isim2'); Tablo DEĞERLERİNE EKLE (3, 'isim3'); 

Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.
wave wave wave wave wave