MYSQL按期備份是一項重要的工做,但人工操做太繁瑣,也難避免有所疏漏,本文主要講述利用crontab定時備份mysql至本機,以及利用rsync同步數據到異機,從而達到異機定時備份。mysql
mysql定時備份篇算法
一、建立備份文件夾
#mkdir -p /u01/bak/mysqldata
二、編寫運行腳本
#vim /usr/sbin/bakmysql.shsql
代碼:
#!/bin/bash
# Name:bakmysql.sh
# This is a ShellScript For Auto DB Backup and Delete old Backup
#
backupdir=/u01/bak/mysqldata
time=` date +%Y%m%d%H `
/usr/bin/mysqldump -u root -ppassword dataname > $backupdir/name1$time.sql
/usr/bin/mysqldump -u root -ppassword dataname > $backupdir/name2$time.sql
/usr/bin/mysqldump -u root -ppassword dataname > $backupdir/name3$time.sql
#
find $backupdir -name "*.sql" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1
注:刪除5天前備份文件
三、爲腳本添加執行權限
# chmod +x /usr/sbin/bakmysql.sh
四、修改/etc/crontab
58 23 * * * root /usr/sbin/bakmysql.shvim
注:每晚23:58執行一次自動備份
五、重啓crontab
# /etc/rc.d/init.d/crond restart
六、恢復數據備份文件
#mysql -u root -p dataname < name2008010103.sqlbash
異機同步篇(使用rsync算法)服務器
一、配置hosts(主機、備機)
#vim /etc/hosts
IP1 hostname1
IP2 hostname2網絡
二、安裝rsync(主機、備機)ssh
#yum install rsyncide
三、 配置rsync服務器測試
#vim /etc/rsyncd.conf
uid = root
gid = root
max connections = 200
timeout = 600
use chroot = no
read only = no
port = 873
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
[test]
path=/u01/bak/mysqldata
comment=backup test
ignore errors
hosts allow=IP2
auth user=test
secrets file=/root/rsync.passwd
#vim /root/rsync.passwd
test 123456
#chown root:root /root/rsync.passwd
#chmod 600 /root/rsync.passwd
四、 配置rsync客戶端
#vim /etc/rsyncd.conf
uid = root
gid = root
max connections = 200
timeout = 600
use chroot = no
read only = no
port = 873
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
[test]
path=/home
comment=backup test
ignore errors
hosts allow=IP1
auth user=test
secrets file=/root/rsync.passwd
#vim /root/rsync.passwd
123456
#chown root:root/root/rsync.passwd
#chmod 600 /root/rsync.passwd
五、啓動rsync服務(主機、備機)
#/usr/bin/rsync --daemon
#netstat -an | grep 873
注:開機啓動以下
#vim /etc/rc.d/rc.local
/usr/bin/rsync --daemon
六、編寫定時同步腳本
#vim /etc/rsync.sh
代碼:
#!/bin/bash
#Name:rsync.sh
#This is a ShellScript For Data synchronization
rsync -vrtopg --progress --delete root@IP1::test/ /home --password-file=/root/rsync.passwd
七、設置定時執行
#chmod +x /etc/rsync.sh
#vim /etc/crontab
58 23 * * * root /etc/rsync.sh
八、重啓crontab
# /etc/rc.d/init.d/crond restart
至此mysql異機定時備份完成,建議一週內須查看備份效果,以及測試mysql備份可用性。
擴展閱讀(網絡參考資料,如下資料歸屬網絡做者,請注重「版權」):
http://www.howtocn.org/rsync:use_rsync_server 使用 rsync 服務
http://colderboy.blog.51cto.com/485582/132054/ rsync參數詳解、利用ssh、rsync 實現數據的定時同步