目前站長們大多使用的網站程序無外乎ASPsp.netphpjsp 數據庫的話,大多是accesssqlservermysql
我們分2種情況來說明下。
對于win服務器下的自動數據備份,網站文件,自然是比較好備份的,那么如果數據庫也可以自動備份,那就基本實現完美自動備份。
如果你有獨立服務器,那么這個備份工作就更加簡單,下面我們來看看:
獨立服務器數據異地自動備份
網站文件我們使用綠環FTP備份軟件,在異地的服務器上掛上綠環FTP,設置好備份任務,然后設置好網站數據FTP,利用綠環的自動備份功能,就可以輕松對網站的文件進行自動異地備份。
數據庫,我們先在服務器上做備份,然后利用綠環把備份文件異地備份到備份服務器。
mysql數據庫:我們可以使用以下批處理腳本:
net stop mysql
xcopy c:mysqldatabs*.* d:db_bakbs%date:~0,10% /y
net start mysql
比如,設置這個為批處理文件bak.bat,然后設置windows的計劃任務,每天定時運行該批處理,就可以自動備份MYSQL了,注意,里邊的路徑,請自己修改為自己的路徑,c:mysqldatabs*.*為MYSQL數據文件路徑,d:db_bakbs%date:~0,10%后邊這個為MYSQL數據庫備份路徑。
有的朋友的計劃任務不能正常運行,請查看服務里邊的計劃任務的服務Task Scheduler是否開啟,另注意服務器裝有麥咖啡的朋友,請注意你的麥咖啡規則設置,看是否有限制備份的規則存在。
對于SQLserver,我們知道,SQLsever本身有按計劃備份的功能,所以,你可以用同樣的原理,進行備份,然后進行異地備份操作。本文不在這里詳述了。
同樣,對于linux下的mysql備份,就更簡單,利用crontab系統每天定時備份MySQL數據庫,至于詳細設置,本文引用下網上的老鳥的做法:
1、創建保存備份文件的路徑/mysqldata
#mkdir /mysqldata
2、創建/usr/sbin/bakmysql文件
#vi /usr/sbin/bakmysql
輸入
rq=` date +%Y%m%d `
tar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql
或者寫成
rq=` date +%Y%m%d `
mysqldump --all-databases -u root -p980405 > /mysqldata/mysql$rq.tar.gz
/var/lib/mysql是你數據庫文件的目錄,部分用戶是/usr/local/mysql/data,每個人可能不同
/mysqldata/表示保存備份文件的目錄,這個每個人也可以根據自己的要求來做。
3、修改文件屬性,使其可執行
# chmod +x /usr/sbin/bakmysql
4、修改/etc/crontab
#vi /etc/crontab
在下面添加
01 3 * * * root /usr/sbin/bakmysql
表示每天3點鐘執行備份
5、重新啟動crond
# /etc/rc.d/init.d/crond restart
完成。
這樣每天你在/mysqldata可以看到這樣的文件
mysql20100101.tar.gz
在tar命令執行前,停止數據庫服務進程或鎖定數據庫,你可以利用時間差設置個計劃任務,暫停掉數據庫,或者在執行備份腳本時候設置,注意,當使用上面的第2種熱備份模式,是不需要停止MYSQL服務器的,不然你就沒法備份了。
以上是對于對立服務器用戶,那么對于虛擬主機用戶,我想你可以在本地電腦設置綠環FTP,備份文件就沒問題了,對于數據庫,你可以設置一個自動腳本,每天0點觸發這個腳本,關于mysql的備份腳本,網上很多,至于如何觸發,有很多方法吧,我想用過discuz的朋友,都知道discuz中計劃任務的原理吧,另外dede系統也有自動定時生成HTML的腳本,都是這樣的原理。
當然,對于ASP程序的用戶,如果沒有數據庫,那就更簡單了。
好了,進行了以上的相關設置,那么就可以實現數據全自動異地備份,就再也不怕服務器被封了。