Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 12936|Yanıt: 0

[Kaynak] MySQL çökme kurtarma için Myisamchk'ı nasıl kullanacağınızı öğretiyorum

[Bağlantıyı kopyala]
Yayınlandı 15.11.2017 13:23:05 | | |

"tbl_name.frm" tablo tanımı (tablo) dosyası "tbl_name. MYD "Veri Dosyası" tbl_name. MYI" dizin dosyası
Bu 3 dosya türü farklı türlerde bozulma yaşayabilir, ancak sorun en çok veri dosyalarında ve indeks dosyalarında ortaya çıkar.
Myisamchk bir ". MYD" (veri) dosyasını çalıştırmak için eski ". MYD dosyasını gönderip yeni dosyayı orijinal dosya adıyla yeniden adlandırarak onarım aşamasını sonlandırın. Eğer --quick kullanırsanız, myisamchk geçici ". MYD" dosyası, sadece varsayıyorum". MYD" dosyası doğrudur ve sadece yeni bir indeks dosyası oluşturur, dokunulmaz". MYD" dosyasını da bu şekilde güvenlidir çünkü myisamchk otomatik olarak algılar". MYD" dosyası bozulmuş ve bu durumda tamiri terk etmek gerekiyor. Myisamchk'a iki hızlı seçenek de verebilirsiniz. Bu durumda, myisamchk bazı hatalardan (örneğin tekrar eden tuşlardan) vazgeçmez, bunun yerine ". MYD" dosyasını kullanarak onları çözer. Genellikle, sadece çok az boş disk alanına normal bir düzeltme uygularsanız, iki hızlı seçeneği kullanırsanız faydalıdır. Bu durumda, myisamchk çalıştırmadan önce en azından bir yedekleme yapmalısınız.
1. Tablodaki hatalar nasıl kontrol edilir
Bir tabloyu kontrol etmek için aşağıdaki komutu kullanın:
Myisamchk tbl_name
Bu, tüm hataların %99,99'unu yakalıyor. Bulamadığı ise, bozulmanın sadece veri dosyalarında gerçekleştiği (ki bu nadir bir durumdur). Bir tabloyu kontrol etmek istiyorsanız, genellikle myisamchk'ı bu seçenek olmadan çalıştırmalı veya -s veya --silent seçeneklerinden birini kullanmalısınız.
myisamchk -e tbl_name
Tamamen kapsamlı bir veri kontrolü yapar (-e, "genişletilmiş kontrol" anlamına gelir). Her satırda her satırda okuma kontrolü yapar ve doğru satıra işaret ettiklerini doğrular. Bu, çok sayıda anahtarlı büyük bir masada uzun sürebilir. Myisamchk genellikle ilk hatayı bulduktan sonra durur. Daha fazla bilgi isterseniz, --verbose(-v) seçeneğini ekleyebilirsiniz. Bu durum myisamchk'ın maksimum 20 hataya kadar devam etmesini sağlar. Genel kullanımda, basit bir myisamchk (tablo adı dışında argüman olmadan) yeterlidir.
myisamchk -e -i tbl_name
Önceki komut gibi, ama -i seçeneği myisamchk'a bazı istatistikleri de yazdırmasını söylüyor.
2. Masa nasıl tamir edilir
Bozulmuş bir tablonun belirtisi genellikle beklenmedik bir sorgu kırılmasıdır ve örneğin şu hataları görebilirsiniz:
"tbl_name.frm" kilitlidir ve değiştirilemez.
"tbl_name" dosyasını bulamıyorum. MYI"(Errcode :### )。
Tablo işlemcisinden ### hatasını alın (bu durumda 135 numaralı hata istisnadır).
Beklenmedik dosya sonu.
Kayıt dosyaları yok edildi.
Bu durumlarda, tabloyu düzeltmeniz gerekir. Myisamchk genellikle yanlış giden çoğu şeyi tespit edip düzeltir.
Onarım süreci, aşağıda açıklanan en fazla 4 aşamadan oluşur. Başlamadan önce, veritabanı dizini ve kontrol listesi dosyalarına verdikleri izinleri cd etmelisiniz, böylece mysqld çalıştıran Unix kullanıcıları tarafından okunabilir olup olmadığından emin olun (ve siz de kontrol ettiğiniz dosyaya erişiminiz gerekir). Dosyayı değiştirmeyi reddediyorsa, onlar da size yazılabilir olmalıdır.
Aşama 1: Masanızı kontrol edin
Koş
myisamchk *. Bilginiz
veya (myisamchk -e *. Eğer daha fazla zamanınız varsa, bu da bilinmez mi). Gereksiz bilgileri devre dışı bırakmak için -s (sessizlik) seçeneğini kullanın.

MySQL'in veri depolamak için kullandığı dosya formatı kapsamlı şekilde test edilmiştir, ancak veritabanı tablolarının bozulmasına neden olabilecek harici koşullar her zaman vardır:
MySQL süreci tek yazımda öldürülür; Bilgisayarın beklenmedik bir şekilde kapanması (örneğin, bilgisayar güç kaybederse); Donanım hatası.
Bu bölüm, MySQL veritabanında veri bozulmasının nasıl kontrol edileceğini ve nasıl yönetileceğini açıklar. Masanız çok hasarlıysa, nedenini öğrenmeye çalışmalısınız! Bkz. G.1 MySQL sunucusunu hata ayıklama.
Çökme kurtarma yapılırken, veritabanındaki her tablonun veritabanı dizinindeki 3 dosyaya karşılık geldiğini anlamak önemlidir tbl_name




Önceki:mysql #1062 –'PRIMARY' anahtarı için '1' girişinin tekrarı
Önümüzdeki:MySQL, gerçek zamanlı çalıştırılan SQL ifadelerini görüntüler
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com