標籤:
MySQL定期備份是一項重要的工作,但人工操作太繁瑣,也難避免有所疏漏,使用下面的方法即可讓系統定期備份資料。
◆1、建立備份檔案夾
#cd /www
#makedir backup
◆2、編寫運行指令碼
#vi autobackup
寫入以下內容:
filename=`date +%Y%m%d`
mysql_bin_dir/mysqldump –opt dataname -u user -ppassword | gzip > /www/mysqlbackup/name${filename}.sql.gz
儲存退出
說明:
(1)mysql_bin_dir:mysql的bin路徑;
(2)dataname:資料庫名;
(3)user:資料庫使用者名稱;
(4)password:使用者密碼;
(5)name:自訂備份檔案首碼標識。
如上例,將自動備份mysql資料庫,並以gzip壓縮方式儲存,檔案名稱為name20080101.gz的形式。
◆3、為指令碼添加執行許可權
#chmod +x autobackup
◆4、讓crontab來完成定期執行的任務
這一步中,Redhat的方法會不一樣,後面專門給出。
編輯crontab:
#vi /etc/crontab
在最後一行中加入:
01 5 * * * root /www/autobackup
每天5點運行指令碼,也可以修改5為其他指定時間。
Redhat方法:
Redhat的crontab採用按時間調用4個目錄(/etc/cron.hourly:每小時;/etc/cron.daily:每天;/etc/cron.weekly:每周;/etc/cron.monthly:每月)中指令碼出來啟動並執行方式。
Redhat中只需要將剛才編輯的指令碼複製到相應的目錄即可。
◆5、重啟crontab
#/etc/rc.d/init.d/crond restart
完成。
Mysqldump 命令小記 -opt
預設Mysqldump匯出的SQL檔案中不但包含了匯出的資料,還包括匯出資料庫中所有資料表的結構資訊。 –opt:此Mysqldump命令參數是可選的,如果帶上這個選項代表啟用了Mysqldump命令的quick,add-drop-table,add-locks,extended-insert,lock-tables參數,也就是通過–opt參數在使用Mysqldump匯出Mysql資料庫資訊時不需要再附加上述這些參數。 –quick:代表忽略緩衝輸出,Mysqldump命令直接將資料匯出到指定的SQL檔案。 –add-drop-table:顧名思義,就是在每個CREATE TABEL命令之前增加DROP-TABLE IF EXISTS語句,防止資料表重名。 –add-locks:表示在INSERT資料之前和之後鎖定和解鎖具體的資料表,你可以開啟Mysqldump匯出的SQL檔案,在INSERT之前會出現LOCK TABLES和UNLOCK TABLES語句。 –extended-insert (-e):此參數表示可以多行插入。
Linux自動備份壓縮MySQL資料庫的實用方法