Bu yazıda MySql database'nizin içindeki table ve dataları MySql
ile birlikte gelen uygulamalardan mysqldump ile nasıl yedekleyebileceğiniz anlatılacaktır.
MySql günümüzde çoğu yerde kullanılan bir database haline geldi. Hatta windows
ortamında bile kullanımı yaygınlaşıyor. Performansı ve dağıtım ilkesi (free)
elbette buna en büyük sebep. Eğer hala kullanmadıysanız http://www.mysql.com/
işletim sisteminize uygun olan sürümünü (birde release olursa daha iyi olur)
indirip kurabilirsiniz. Ve bu durumda sanırım bu yazı size göre değil, ama haberdar
olmak açısından okumaya devam edebilrsiniz.
Bir database'iniz olduğunu ve içinde çok sayıda table'ın ve datalarının bulunduğunu
hatta dataların neredeyse hergün yenilendiğini düşünün. Birde bir gün kazaara
yada başka bir şekilde bu database'inize bişeyler olduğunu düşünün ! Başınıza
ne işler açılabileceğinizi sanırım kestirebildiniz. Zaten bu yazıyı ikinci kısmı
yaşamamanız için yazıyorum.
MySql'inizin kurulduğu sistemde, onu kurduğunuz yerde; standart kurduysanız
/usr/local/bin altında, yada kendi istediğiniz herhangi bir yere kurduysanız
../istediginiz_yer/bin altında mysqldump adlı bir komut bulunmaktadır. Kesin
vardır eğer başına bir iş gelmediyse...
Sizinde herhangi bir amaçla kullandığınız bir database'niz var ve bir sürü table'ı
ve data'ları var heran yeni datalar gelebiliyor, gelin başınıza gereksiz işler
açmamak için bunları yedekleyelim. Ne demiş atalarımız "Sakla samanı gelir
zamanı."; gerçi biz samanın yedeğini alıyoruz ama olsun, o zamanlar yedek
alma derdi yoktu sanırım. Evet şimdi samanımız şöyle olsun:
Database İsmi, asdf_db
olsun ve içinde bilmem_ne table'ı, table'inda id, metin, dev, reg1, reg2 ve
ht field'ları olsun. Ve bunlara inanılmaz data geliyor vaybee ne iş.
Önce bir görelem bakalım database'miz nasıl görünyor.
Databse kullanıcı isim ve şifremiz; admin74, 4353234 .
| [root!tty2] -> [~] # mysql -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 278 to server version: 3.22.32 Type 'help' for help. mysql>use asdf_db; Database changed mysql>
show tables; mysql> select * from bilmem_ne; mysql> |
Gerçekten çok data varmış ! Şimdi yedek alalım bakalım.
Komut satırında :
| [root!tty2] -> [~] # mysqldump –uadmin74 –p4353234 asdf_db > asdf_db.sql
[root!tty2] -> [~] # |
| [root!tty2] -> [~] # mysqldump –user=admin74 –-p=4353234 asdf_db
> asdf_db.sql [root!tty2] -> [~] # |
evet yedek aldık.
şimdi bakalım sql dosyasını içine
| [root!tty2] -> [~] # more asdf_db.sql # MySQL dump 7.1 # # Host: localhost Database: asdf_db #-------------------------------------------------------- # Server version 3.22.32 # # INSERT
INTO bilmem_ne VALUES ('1',' llull;jj;dheyhd','dev5','324_3','45_3','55'); |
Sanırım oldu bu iş.
Birde mysqldump'ın --opt opsiyonu var onu kullanmakta fayda var zira kendisi
dump işlemlerinde çıkacak sorunlar için tedbir alınması anlamına geliyor bir
miktar, --opt'yi aşağıdaki opsiyonların birleşimi gibide düşünebiliriz.
--quick --add-drop-table --add-locks --extended-insert --lock-tables
| [root!tty2] -> [~] # mysqldump –uadmin74 –p4353234 --opt asdf_db
> asdf_db.sql [root!tty2] -> [~] # |
| [root!tty2] -> [~] # more asdf_db.sql # MySQL dump 7.1 * * # Table structure for table 'bilmem_ne' DROP TABLE IF EXISTS bilmem_ne; CREATE TABLE bilmem_ne ( * * # Dumping data for table
'forums' |
| [root!tty2] -> [~] # mysqldump --no-data database1 databsa2 > tum_database.sql |
| [root!tty2] -> [~] # mysqldump –uadmin74 –p4353234 --all-databases > asdf_db-bilmem_n.sql |
| [root!tty2] -> [~] # mysqldump –uadmin74 –p4353234 --opt asdf_db bilmem_ne > asdf_db-bilmem_n.sql |
| [root!tty2] -> [~] # mysqldump –uadmin74 –p4353234 --opt asdf_db | gzip > asdf_db.sql.gz |
| [root!tty2] -> [~] # mysql –u admin74 –p asdf_db < asdf_db.sql Enter Password: [root!tty2] -> [~] # |
| [root!tty2] -> [~] # mysql –u admin74 –p -e "source asdf_db.sql"
asdf_db Enter Password: [root!tty2] -> [~] # |
| [root!tty2] -> [~] # crontrab -e admin74 |
| #If you don't **** #* #* #* 0 3 * * * /usr/local/bin/mysqldump –uadmin74 –p4353234 --opt asdf_db | gzip > /yedek/asdf_db.sql.gz ~ ~ |
Database ile çalışanlar bilirki heran bir sorun çıkabilir, çıkmayabilirde günlük hayatımızdaki gibi tedbiri elden bırakmamakta fayda var. Mysql datalarını yedeklemenin başka yöntemleri de var ancak. Bu yöntem genelde diğer yöntemlere kök teşkil eder...
13.09.2003(Son Güncelleme)
XX.XX.2001
ATILIM BOY
aboy ~ enderunix.org
http://www.EnderUNIX.ORG/
aboy ~ trunix.org
http://www.Trunix.ORG/
Copyright (c) 2003 ATILIM BOY Kaynak gosterilmek şartıyla kullanılabilir.
EnderUNIX Software Development Team Member.