Proses backup mysql database memiliki beberapa alternatif disesuaikan dengan pertimbangan efisiensi serta efektifitas dari kondisi database di sisi server. Dalam dokumentasi artikel ini disampaikan tahapan serta prosesnya baik itu menggunakan perintah dari /usr/bin/mysqldump maupun menggunakan bash script. Tahapan serta proses alternatifnya tersebut adalah sebagai berikut.
Backup MySQL Database
Pertama perlu diketahui terlebih dahulu untuk proses backup satu database mysql sebagai berikut.
# mysqldump nama_database > nama_database.sql
Proses backup dua atau lebih dari satu database mysql dalam satu file .sql sebagai berikut.
# mysqldump --databases nama_database1 nama_database2 > dua_database.sql
Proses backup seluruh database mysql dan disimpan dalam satu file .sql sebagai berikut.
# mysqldump --all-databases > all_databases.sql
Backup seluruh database per mysql database menggunakan bash script.
# vim allbackup-db.sh
TIMESTAMP=$(date +"%F") BACKUP_DIR="/backup/mysql/$TIMESTAMP/" MYSQL_USER="root" MYSQL=/usr/bin/mysql MYSQLDUMP=/usr/bin/mysqldump mkdir -p "$BACKUP_DIR/" databases=`$MYSQL -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"` for db in $databases; do echo "exporting database $db" $MYSQLDUMP --force --opt --databases $db > "$BACKUP_DIR/$db.sql" done
Jalankan proses backup menggunakan script tersebut dengan perintah berikut.
# chmod +x allbackup-db.sh && sh allbackup-db.sh
Atau bisa langsung didownload terlebih dahulu menggunakan wget kemudian jalankan bash script tersebut menggunakan perintah sebagai berikut.
# wget -N https://script.chrootid.com/allbackup-db.txt -O /root/allbackup-db.sh && chmod u+x,go-rwx allbackup-db.sh && /root/allbackup-db.sh
Seluruh mysql database tersimpan di dalam direktori /var/lib/mysql sehingga direktori tersebut bisa dibackup juga untuk kelengkapan databackup mysql database. Terkait dengan proses backup file atau direktorinya dapat melalui hyperlink disini dengan /var/lib/mysql sebagai nilai dari direkrtori yang hendak di generate backup.
Restore MySQL Database
Dari hasil database yang terbackup, untuk proses restorasi satu database mysql adalah sebagai berikut.
# mysql nama_database < nama_database.sql
Restorasi satu mysql database dari beberapa atau seluruh database yang tersimpan dalam satu file .sql.
# mysql --one-database nama_database < all_databases.sql
Apabila memiliki list databackup file .sql database dari hasil generate seluruh mysql database per nama database maka dapat diproses importing atau restorasinya menggunakan bash script berikut.
# vim allrestore-db.sh
TIMESTAMP=$(date +"%F") BACKUP_DIR="/backup/mysql/$TIMESTAMP/" MYSQL_USER="root" MYSQL=/usr/bin/mysql MYSQLDUMP=/usr/bin/mysqldump touch /root/dbname ls $BACKUP_DIR > /root/dbname cat /root/dbname|while read db; do echo "create database $db" $MYSQL -e "create database $db;" echo "importing database $db" $MYSQL $db < $BACKUP_DIR/$db.sql done
Nilai dari variabel $BACKUP_DIR tersebut masih merujuk pada direktori tanggal yang sama dengan hasil dari direktori yang apabila baru saja diproses generate backup. Tentunya nilai dari variabel tersebut bisa disesuaikan dengan lokasi direktori dimana seluruh file database .sql tersimpan.
Jalankan bash script tersebut menggunakan perintah sebagai berikut.
# chmod +x allrestore-db.sh && sh allrestore-db.sh
Atau bisa langsung didownload terlebih dahulu menggunakan wget kemudian jalankan bash script tersebut menggunakan perintah sebagai berikut.
# wget -N https://script.chrootid.com/allrestore-db.txt -O /root/allrestore-db.sh && chmod u+x,go-rwx allrestore-db.sh && /root/allrestore-db.sh