Bloğa geri dön

MySQL'de Bozuk Tabloları Onarmak İçin Hızlı Çözümler: Bir Rehber

MySQL'de Bozuk Tabloları Onarmak İçin Hızlı Çözümler: Bir Rehber

MySQL en popüler açık kaynaklı RDBMS (İlişkisel Veritabanı Yönetim Sistemleri) sistemlerinden biridir. Hızla büyüyen LAMP Stack bileşeninin ayrılmaz bir parçasıdır ve geliştiriciler ile sistem yöneticileri arasında etkileyici bir hayran kitlesi kazanmıştır. ilişkisel olmayan veritabanları ile karşılaştırıldığında, SQL verileri etkili bir şekilde düzenlemek, depolamak ve yönetmek için mükemmel işlevler sunar. SQL veritabanının ayırt edici tablo düzenleme işlevleri ve öne çıkan yetenekleri, onu hem büyük hem de küçük ölçekli organizasyonun her seviyesinde tercih edilen bir seçenek haline getirir.

MySQL tabloları nadir durumlarda hasar görebilir; bu da böyle bir hatanın meydana geldiğini ve buralarda depolanan verilerin okunamaz olduğunu gösterir. Bozuk bir tablodan veri okumaya çalıştığınızda sunucu çöker ve bir hata veya hata listesi döndürür.

MySQL Tablo Bozulmasının Arkasındaki Olası Nedenler

Aşağıdakiler, bozuk tabloların en yaygın nedenlerinden bazılarıdır:

  • Yeniden başlatmanın ardından MySQL hizmetinin çökmesi.
  • Güç kesintisi nedeniyle makinenin beklenmedik şekilde kapanması.
  • Hatalı bellek veya donanım arızası.
  • Yazılım hataları: OS veya SQL kodu.
  • Yazma işlemi sırasında MySQL'in kapanması.
  • SQL güncellenirken sistemin KAPANMASI.

Bozulduğundan şüphelendiğiniz bir tabloyu düzeltmeden önce, bilgi dizininizin bir yedeğini oluşturun. Bu, veri kaybı olasılığını azaltmaya yardımcı olacaktır. Bu hızlı kılavuzda, MySQL'de bozuk tabloları onarmanın sorun giderme adımlarında size yol göstereceğiz.

Gereksinimler

Bu öğreticiyi takip etmek için aşağıdakilere ihtiyacınız olacak:

Adım 1: MySQL Hizmetini Durdurma ve Veri Yedekleme

İlk olarak, systemctl komutunu kullanarak MySQL hizmetini durdurun:

SQL hizmetini durdurduktan sonraki adım, mevcut tüm dosyaların yedeklerini yeni bir dizine oluşturmaktır. Tüm sistem verilerini kopyalamak için Ubuntu'nun varsayılan veri dizini olan /var/lib/mysql/ dizinini kullanın:

Adım 2: Hatayı Tanımlama

Ardından, incelememize başlayacağız ve bozuk tabloyu tespit edeceğiz. Eğer tablo MyISAM depolama motorunu kullanıyorsa, CHECK TABLE ifadesini kullanın ve tablonun durumunu doğrulayın:

Çıktı olarak bozuk tabloyu veya tabloları onaylayan bir mesaj göreceksiniz.

Adım 3: Bozuk Tabloyu Onarma

Eğer MyISAM tablosunda bir hata varsa ve bunu tespit ettiyseniz, hatayı düzeltmek için REPAIR TABLE ifadesini kullanın:

Onarım başarılı olduysa, çıktı olarak aşağıdaki hatasız mesajı görmelisiniz:

Ancak, hatanın tekrar ortaya çıktığını görürseniz, tabloları yeniden oluşturmak veya onarmak için MySQL sürüm 8.0 resmi belgesini takip edin.

Unlike the MyISAM depolama motorunun aksine, tabloları onarma işlemi InnoDB depolama motorunda farklıdır. InnoDB, MySQL 8.0'daki varsayılan depolama motorudur. Otomatik bozulma kontrolü ve onarım işlemlerine sahiptir. MySQL InnoDB, okuduğu her sayfada sağlama toplamları gerçekleştirerek bozuk sayfaları kontrol eder. Bir tutarsızlık tespit edilirse, MySQL sunucusunu otomatik olarak durdurur.

Sonuç olarak, InnoDB tablolarını onarmaya nadiren ihtiyaç duyulur. InnoDB, çoğu sorunu yeniden başlatma yoluyla çözebilen bir çökme kurtarma mekanizmasına sahiptir.

Sunucuya erişim sağlayıp sağlayamadığınızı görmek için MySQL hizmetini yeniden başlatmayı deneyin:

Yeniden başlatmanın ardından bile bozuk bir InnoDB tablosunu yeniden oluşturamazsanız, MySQL belgelerinde önerilen “Dump and Reload” yöntemini deneyin. Bu yöntem, mysqldump aracını kullanarak bozuk tabloya yeniden erişim sağlamayı içerir. Tablonun logical backup yedeğini depolamak ve saklamak için bir klasör oluşturulmalıdır. Hata düzeltildikten sonra, tabloyu veritabanına geri yükler.

Adım 4: innodb_force_recovery Seçeneğinden Yararlanın

Sunucu çökmüş veya erişilemez durumda kalmaya devam ederse, InnoDB'deki force_recovery seçeneğini kullanmayı deneyin. ON konumuna getirmek, force_recovery seçeneğini etkinleştirmek, MySQL veritabanlarını geri yüklemek için mükemmel bir yoldur. Bu seçeneği, mysqld.cnf dosyasını nano metin düzenleyicide düzenleyerek etkinleştirebilirsiniz:

Aşağıdaki satırı [mysqld] bölümünün altına ekleyin:

innodb force recovery

MySQL hizmetini yeniden başlattıktan sonra dosyayı kaydedip kapatın.

Adım 5: Bir mysqldump Dosyası Oluşturun

Bozuk tabloya erişebiliyorsanız, tüm dökümleri yeni dosyaya yerleştirmek için mysqldump seçeneğini kullanın. Yeni dosyayı tercihinize göre adlandırın ve sonuna .sql uzantısını eklediğinizden emin olun. Burada dosyayı demo.sql:

Bundan sonra, tabloyu veritabanından kaldırmak için DROP TABLE sorgusunu kullanın. MySQL istemini yeniden açmak zorunda kalmamak için aşağıdaki sözdizimini kullanabilirsiniz:

Ardından, az önce hazırladığınız demo.sql döküm belgesini kullanarak tabloyu geri yükleyin:

MySQL bozuk tablonuzu başarıyla düzelttiniz ve veritabanıyla sorunsuz bir şekilde çalışmaya hazırsınız.

Sonuç

Büyük miktarda veriyle çalışıyorsanız tablo bozulmaları veya beklenmedik sistem çökmeleri yaşanması muhtemeldir. MySQL InnoDB depolama motorunun, önceki MyISAM motoruna göre hataya karşı daha dayanıklı olduğunu belirtmekte fayda var. InnoDB depolama motorunu kullanan tablolar, otomatik kurtarma özellikleri sayesinde tablo bozulması ve arıza tehlikesi önemli ölçüde azalsa da yine de bozulabilir.auto-recovery features.

Son olarak, blogumuzda veritabanları hakkında keşfedebileceğiniz birçok konu ve eğitim bulunmaktadır. Detaylar için blog:

Keyifli Çalışmalar!

author

Akshay Nagpal

Yazar · CloudSigma

Preslav Dobrev, CloudSigma'da Kreatif Tasarımcı olarak görev yapmakta olup geleneksel ve yenilikçi pazarlama kanallarını kullanarak tutarlı bir kurumsal kimlik oluşturmaya odaklanmaktadır. Sanatsal vizyonu stratejik pazarlamayla harmanlayarak etkili marka anlatıları oluşturma konusunda oldukça yeteneklidir.

Yorumlar

Henüz yorum yapılmamış. İlk siz olun.