mysql數據庫備份是每個數據管理員最關心的事情了,它能在關鍵時候幫助我們。建議大家在備份數據庫時,將表數據,表空間,觸發器,函數,視圖什麼的分開備份,這樣既可以節省備份時間,在恢復數據時比較方便。
採取的備份方式是,使用 shell 結合 crontab 來操作 ,在數據庫 比較多的情況下 ,建議 每個腳本中 備份5到6個庫
簡單舉個例子
mysql-adson 數據庫服務器中,有3個數據庫如下:adson_inter,adson_adm,adson_hi
採取的備份方式是 表數據庫,表空間,觸發器單獨備份;創建/mysqlbak存放備份數據,然後分別創建目錄:adson_inter,adson_adm,adson_hi
在/script/目錄下創建 adsonbak_1.sh
#!/bin/sh
rq=`date -d last-day +%Y%m%d`
#備份表結構
/usr/bin/mysqldump -uroot -pagfigjky --single-transaction --database adson_inter --skip-triggers -d -R | gzip > /mysqlbak/adson_inter/adson_inter_$rq.tb_str.sql.gz
/usr/bin/mysqldump -uroot -pagfigjky --single-transaction --database adson_adm --skip-triggers -d -R | gzip > /mysqlbak/adson_adm/adson_adm_$rq.tb_str.sql.gz
/usr/bin/mysqldump -uroot -pagfigjky --single-transaction --database adson_hi --skip-triggers -d -R | gzip > /mysqlbak/adson_hi/adson_hi_$rq.tb_str.sql.gz
#備份數據
/usr/bin/mysqldump -uroot -pagfigjky --single-transaction --database adson_inter --skip-triggers -t -R | gzip > /mysqlbak/adson_inter/adson_inter_$rq.dt_thing.sql.gz
/usr/bin/mysqldump -uroot -pagfigjky --single-transaction --database adson_adm --skip-triggers -t -R | gzip > /mysqlbak/adson_adm/adson_adm_$rq.dt_thing.sql.gz
/usr/bin/mysqldump -uroot -pagfigjky --single-transaction --database adson_hi --skip-triggers -t -R | gzip > /mysqlbak/adson_hi/adson_hi_$rq.dt_thing.sql.gz
#備份觸發器
/usr/bin/mysqldump -uroot -pagfigjky --single-transaction --database adson_inter --triggers -d -t -R | gzip > /mysqlbak/adson_inter/adson_inter_$rq.tr_thing.sql.gz
/usr/bin/mysqldump -uroot -pagfigjky --single-transaction --database adson_adm --triggers -d -t -R | gzip > /mysqlbak/adson_adm/adson_adm_$rq.tr_thing.sql.gz
/usr/bin/mysqldump -uroot -pagfigjky --single-transaction --database adson_hi --triggers -d -t -R | gzip > /mysqlbak/adson_hi/adson_hi_$rq.tr_thing.sql.gz
給 adsonbak_1.sh 執行權限,然後設置crontab
# crontab -l
0 6 * * * /bin/bash /script/adsonbak_1.sh
設置每天6點執行
然後可以結合實際,設置自動保留備份數據。