MySQL Yedek Dosyasından Tablo Ayırma

on

Geçen günler, yedeğini almış olduğumuz bir MySQL SQL yedek dosyasından, bir tablodaki dataları almak zorunda kaldım. Bu hiç de kolay bir işlem gibi gözükmüyordu, çünkü yedek dosyasının boyutu tam 41.3 GB idi. Dosyayı en verimli nasıl parçalarım diye bir araştırma yaptım ve yedek dosyasındaki tablo dökümlerindeki comment’lerden yola çıkarak satır index numaralarını bulup, bu satır arasında kalan verileri bir dosyaya yönlendirmenin yapılabileceğini gördüm.

Mysqldump ile aldığınız yedeklerde, tablolar arasında “Table structure for table `Table1`” gibi yorum satırları bulunmaktadır. Öncelikle bu yorum satırlarından yola çıkarak, SQL yedek dosyamızdaki tablo datalarının hangi satırlar arasında olduğunu bulalım;

grep -n "Table structure" my_sql_backup.sql

41.3 GB’lık bir dosyayı grep ‘lemek, her hard disk’in harcı değil 🙂 İş bilgisayarımda, sunucularda kullandığımız Enterprise SSD olduğu için, bu işlem bende saniyeler içerisinde tamamlandı. Makinenizin HDD ve CPU performansına göre bu işlem birkaç dakika sürebilir.

27:-- Table structure for table `Table1`
288:-- Table structure for table `Table2`
326:-- Table structure for table `Table3`
352:-- Table structure for table `Table4`
381:-- Table structure for table `Table5`
411:-- Table structure for table `Table6`
438:-- Table structure for table `Table7`

Yukarıdaki çıktı, tablo verilerinin hangi aralıkta olduğunu gösteriyor. Örneğin Table3 verileri, 326 ile 352. satırlar arasında yer alıyor. Şimdi sıra, bu satırları bir dosyaya yönlendirip, MySQL sunucusuna import etmekte.

sed -n 326,352p my_sql_backup > Table3.sql (index1,index2p)

Bu komutla, Tablo3 ‘e ait olan verileri bir dosyaya yönlendirmiş olduk. Artık Table3.sql dosyasını bir MySQL veritabanına import ederek verilerinize ulaşabilir, sorgulamalarınızı yapabilirsiniz.

One thought on “MySQL Yedek Dosyasından Tablo Ayırma

Leave a Reply

Your email address will not be published. Required fields are marked *