Ada kalanya saya ingin melakukan backup untuk setiap table atau view menjadi sebuah script SQL yang mewakili table atau view tersebut. Setelah baca-baca manual alhasil nihil. Wah, mesti diakalin nih pikir saya. Pertama-tama yang saya cari adalah daemon [root@gondor ~]# whereis mysqld mysqld: /usr/libexec/mysqld /usr/share/man/man8/mysqld.8.gz Langkah selanjutnya ialah mencari dimanakah MySQL menyimpan data. Cara yang saya lakukan adalah dengan menjalankan perintah berikut : [root@gondor ~]# /usr/libexec/mysqld --verbose --help | grep '^datadir' datadir /var/lib/mysql/ Rupanya MySQL menyimpan data di folder [root@gondor ~]# ls -xFl /var/lib/mysql/ total 111024 -rw-rw---- 1 mysql mysql 102760448 2009-11-24 16:09 ibdata1 -rw-rw---- 1 mysql mysql 5242880 2009-11-24 16:09 ib_logfile0 -rw-rw---- 1 mysql mysql 5242880 2009-11-24 11:44 ib_logfile1 drwx------ 2 mysql mysql 4096 2009-02-16 14:15 mysql/ drwx------ 2 mysql mysql 4096 2009-03-04 13:58 sample_db/ drwx------ 2 mysql mysql 4096 2009-02-16 14:15 test/ Rupanya terdapat 3 (tiga) buah database yaitu [root@gondor ~]# mkdir -v MySQL-Backup-Test mkdir: created directory `MySQL-Backup-Test' Kemudian saya masuk ke folder tersebut atau istilahnya masuk ke working directory yang baru saja dibuat. [root@gondor ~]# cd MySQL-Backup-Test/ [root@gondor MySQL-Backup-Test]# pwd /root/MySQL-Backup-Test Biasanya untuk melakukan backup suatu database secara keseluruhan--sebagai contoh saya backup database yang bernama [root@gondor MySQL-Backup-Test]# mysqldump --compact --complete-insert --user=root --password=mypass mysql > backup.sql [root@gondor MySQL-Backup-Test]# /bin/ls -xFl total 392 -rw-r--r-- 1 root root 395384 2009-11-24 23:21 backup.sql Seperti terlihat di atas saya backup database yang bernama
[root@gondor MySQL-Backup-Test]# for filename in /var/lib/mysql/mysql/*.frm; do mysqldump --compact --complete-insert --user=root --password=mypass mysql `basename $filename .frm` > `basename ${filename%.frm}.sql`; done
[root@gondor MySQL-Backup-Test]# ls -xFl
total 828
-rw-r--r-- 1 root root 395384 2009-11-24 23:21 backup.sql
-rw-r--r-- 1 root root 785 2009-11-24 23:29 columns_priv.sql
-rw-r--r-- 1 root root 3915 2009-11-24 23:29 db.sql
-rw-r--r-- 1 root root 482 2009-11-24 23:29 func.sql
-rw-r--r-- 1 root root 1635 2009-11-24 23:29 help_category.sql
-rw-r--r-- 1 root root 6875 2009-11-24 23:29 help_keyword.sql
-rw-r--r-- 1 root root 8281 2009-11-24 23:29 help_relation.sql
-rw-r--r-- 1 root root 359994 2009-11-24 23:29 help_topic.sql
-rw-r--r-- 1 root root 1650 2009-11-24 23:29 host.sql
-rw-r--r-- 1 root root 881 2009-11-24 23:29 procs_priv.sql
-rw-r--r-- 1 root root 1699 2009-11-24 23:29 proc.sql
-rw-r--r-- 1 root root 969 2009-11-24 23:29 tables_priv.sql
-rw-r--r-- 1 root root 365 2009-11-24 23:29 time_zone_leap_second.sql
-rw-r--r-- 1 root root 321 2009-11-24 23:29 time_zone_name.sql
-rw-r--r-- 1 root root 363 2009-11-24 23:29 time_zone.sql
-rw-r--r-- 1 root root 422 2009-11-24 23:29 time_zone_transition.sql
-rw-r--r-- 1 root root 534 2009-11-24 23:29 time_zone_transition_type.sql
-rw-r--r-- 1 root root 6213 2009-11-24 23:29 user.sql
Seperti terlihat perintah tersebut menghasilkan sebuah file script SQL yang bersesuaian dengan suatu tabel atau view yang terdapat di dalam database Informasi sistem GNU/Linux yang saya gunakan adalah Fedora 9 ( |
|||
