MySQLdump – InnoDB single-transaction ve quick dump

Büyük ve yoğun kullanılan InnoDB veritabanlarının mysqldump ile yedeklenmesı esnasında database’i kullanan uygulamayı bloke etmemek için single-transaction isimli bir özellik bulunuyor.  Sadece InnoDB tablolar için kullanılabilen bu parametre sayesinde yedeklenme sırasında uygulama kesintiye uğramıyor.  Büyük veri tabanlarını (mesela 70-80GB gibi) yedeklemek zaman isteyen bir süreç olduğundan dolayı yedekleme sırasında db’yi kullanan uygulamayı kilitlememek bu anlamda önemli bir nokta haline geliyor.

Single-transaction özelliğini kullanmak için mysqldump cümlesine parametre olarak eklemek yeterli:

# mysqldump --user=kullaniciadi --password=sifre --single-transaction database_adi > database_adi.sql

mysqldump dökümanıında single-transaction ile ilgili açıklama şu şekilde:
Yazinin devami icin tiklayin.


MySQL Database Schema Export

Bir mysql database’inin tablo yapısını, tabloların içerdiği veriyi almaksızın çıkartmak için aşağıdaki mysqldump cümlesi kullanılabilir.

# mysqldump --no-data --tables -u kullaniciadi -p db_adi >> db_adi.sql

–no-data parametresini kaldırırsanız, database yapısı içerdiği verilerle alınacaktır.

Bunun yanısıra database’iniz de tanımlı stored procedurler ya da function’lar var ise bu rutinleri de almak için mysqldump’ı aşağıdaki gibi kullanabilirsiniz.

# mysqldump --no-data --tables --routines -u kullaniciadi -p db_adi >> db_adi.sql

Daha fazla bilgi için bkz:

http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html