1. 程式人生 > >Linux自動備份壓縮MySQL資料庫的實用方法

Linux自動備份壓縮MySQL資料庫的實用方法

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):此引數表示可以多行插入。