Ana Sayfa » *nix » MySQL – Stored Procedure ve Function’ların Yedeklenmesi

MySQL – Stored Procedure ve Function’ların Yedeklenmesi


BerbatKötüİdare EderGüzelHarika (Toplam 1 oy. 5 puan üzerinden ortalama 5,00 || Oy vererek siz de katkıda bulunabilirsiniz.)
Loading...

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MY2RwGci' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349

Mysql Logo mysqldump kullanarak bir veritabanını yedeklemek istediğiniz zaman özellikle belirtmezseniz stored procedure'ler ve function'lar backup'a dahil edilmiyor. Neden bilmiyorum ama öntanımlı olarak mysqldump bu verileri görmezden gelerek dump dosyasına yazmıyor. Dolayısı ile database'inizde tanımlı stored procedure'ler varsa, mysqldump cümlenize –routines paramtresini de eklemeniz gerekiyor.

Aksi halde, db'yi dump dosyasından geri dönmek gibi bir durum olduğu zaman, stored procedure'lerinizin yerinde yeller estiğini görebilirsiniz. Bu sebeple yedek alırken –routines parametesini her seferinde kullanmanızı öneririm.

Ayrıca,  –routines paramteresi, tüm db içeriğini almadan sadece stored procedure'leri dump etmek üzere de kullanılabilmektedir. Aşağıda her iki gereksinim için birer örnek mysqldump cümleciği bulabilirsiniz.

 

Data ve SP`leri Yedeklemek

Hem data'yı hem de stored proceduer'leri dump etmek için herzaman kullandığınız mysqldump cümlesine ek olarak örnekte olduğu gibi –routines parametresini eklemek yeterlidir.

NOT: Stored Procedure'lerin dump edilebilmesi için, mysqldump cümlesinde belirtilen user'ın, db'sindeki “proc” isimli tabloda SELECT yetkisi olmalıdır. Zira, Stored Procedure'ler bu tabloya yazılmakta dolayısı ile mysqldump'ın buraya erişebilmesi gerekmektedir.

Örnek:

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

Bu şekilde hem veri hem de rutinler yedeklenmiş olur.

Sadece SP`leri Yedeklemek

Sadece rutinleri almak istemeniz durumunda da aşağıdaki örnek komut kullanılabilir:

# mysqldump --user=kullaniciadi --password=sifre --routines --no-create-info --no-data --no-create-db --skip-opt database_adi > database_adi.sql

Bu durumda da sadece stored procedures ve function'lar yedeklenmiş olurlar.
Bu dump dosyasını normal şekilde restore ederseniz, restore edilen db'nin (varsa) tablolarındaki veri aynı şekilde korunur ve sadece rutinler restore edilir.

Konu hakkında detaylı bilgi almak için aşağıdaki adrese de göz atabilirsiniz:
http://dev.mysql.com/doc/refman/5.6/en/mysqldump.html#option_mysqldump_routines

Visited 769 times, 1 visit(s) today
Kategoriler: *nix,ipucu,Mysql |

Bu yazılar da ilginizi çekebilir:


- Mysql – Backup to FTP (PHP Script)
- Mysql Root Şifresini Resetlemek – Password Recovery
- GreenSQL DB Firewall ile Sql Injection Önlemi
- MySQL Replication durumunu bir script ile check etmek
- Lighttpd, Mysql, Php, Eaccelerator ile OpenAds Ad Server kurulumu.

Yorumlar


Henuz yorum yapilmamis.

Yorumda bulunun.