mysql數據庫的備份和恢復

                 mysql數據庫的備份和恢復
一、在主從架構中,我們可以時時同步mysql數據庫,當我們需要拷貝文件做爲備份時,可以將從節點stop(stop slave ),然後拷貝文件即可。
二、mysql提供的一個命令mysqldump,用這個邏輯備份工具也可以爲我們進行數據備份。
1.備份:
#mysqldump -u root -p mytest > mytest_100901.sql
數據量過大時可使用gzip壓縮
#mysqldump -u root -p mytest | gzip > mytest_100901.sql.gz
2.恢復:
#mysqldump -u root -p mytest < mytest_100901.sql
gzip壓縮
# gzip < mytest_100901.sql.gz |mysqldump -u root -p mytest
還有使用圖形工具的也比較好用,mysqldump比較基本,通用
三、利用crontab,系統每天定時備份mysql數據庫

利用系統crontab來定時執行備份文件,按日期對備份結果進行保存,達到備份的目的。
1、創建保存備份文件的路徑/backup/mysqlbak
# mkdir -p /backup/mysqlbak
2、創建/bakmysql.sh文件

#cat >> /usr/sbin/bakmysql.sh <<EOF

#!/bin/bash
cd /var/backup/mysqlbak/
dateDIR=`date +"%y-%m-%d"` (取年月日做爲文件夾名,)
mkdir -p $dateDIR/data (創建文件夾)
for i in `mysql -uroot -p123456 -e "show databases" | (登錄數據庫查看數據庫)
grep -v "Database" | grep -v "information_schema"` (不備份的數據庫)
do
mysqldump -uroot -p123456 $i |
gzip > /backup/mysqlbak/$dateDIR/${i}_${dateDIR}.gz
done
EOF

3、修改文件屬性,使其可執行
# chmod a+x /bakmysql.sh

4、每天3點鐘執行備份
# crontab -e
01 3 * * * root /bakmysql.sh
以上只是每天備份一次,當每天備份多次時,可設置文件夾名爲:年、月、日、分鐘,相應的修改/etc/crontab(系統) 或者編輯某一用戶的crontab(/var/spool/cron/$USERNAME),以某以用戶身份來運行
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章