HELPER VPS

VPS 備份與快照:啟用自動備份及申請還原的方法

保護伺服器資料的方法有三種:建立伺服器時啟用的自動備份、在想要的時刻保留整個硬碟的快照,以及在伺服器內自行建立的備份檔案。以下整理了各自的用途及使用次序。

自動備份與快照有何分別

兩者都是複製整個伺服器硬碟的方法,但建立時機及付款方式不同。

  • 自動備份:建立伺服器時開啟的附加選項。整個伺服器磁碟的副本會按固定週期自動建立,費用為伺服器費用的 5.6%,並添加到發票中。如需還原,請在首次付款確認後在支援頁面提出請求,我們將處理。
  • 快照:另行訂購的產品。在大型更新前等你決定的時刻保存整個硬碟,按儲存空間每 GB 每月 $0.009 計算。訂購時由 20GB 至 2,000GB 以 10GB 為單位選擇容量。

每日變動的網站及資料庫由自動備份自動保護,作業系統升級等難以回復的工作前留下一個快照,兩項功能便互補不足。產品說明見自動備份及快照頁面。

啟用自動備份

  • 在帳戶按新伺服器,選擇地區、大小及映像。
  • 啟用額外選項中的自動備份。
  • 右邊摘要即時顯示伺服器連備份的合計月費。
  • 點擊建立伺服器並支付所選的計費週期,然後在週期結束前支付續期發票以保持伺服器運行。

自動備份是建立伺服器時選擇的選項。要保護已在使用的伺服器資料,可訂購快照或一併使用下方的伺服器內備份。以 API 建立伺服器時,在請求中加入 "backups": true 即可啟用相同選項。

從自動備份申請還原

還原由我們的支援人員處理,他們會準確回滾到您想要的時間點。首次付款確認後,請在支援頁面按以下方式提出請求。

  • 主題選擇伺服器。
  • 在伺服器名稱欄填寫要還原的伺服器名稱。
  • 在內容寫上想回到的日期及時間(UTC),以及是否回復到同一伺服器。

還原後,伺服器磁碟會變回備份時間點的內容,之後建立的檔案會消失。如有想保留的近期檔案,請在提出前下載到自己的電腦。回覆會顯示在客戶支援頁面。

訂購快照

  • 在快照頁面按訂購。
  • 選擇儲存容量。與伺服器硬碟大小相同或稍大的容量,便可充裕容納整個硬碟。
  • 在名稱欄寫上目標伺服器名稱,即時知道是哪部伺服器的快照。可使用英文字母、數字、句點及連字號。
  • 訂購時支付所選的計費週期,準備完成後將顯示在您帳戶的產品清單中。

對於持續寫入的伺服器,例如數據庫,在建立快照時短暫暫停服務或停止伺服器可以獲得最乾淨的映像。要回滾到快照或從中建立新伺服器,請在首次付款確認後在支援頁面提供伺服器名稱和快照名稱,我們將處理。

在伺服器內自行備份

自動備份及快照保護整部伺服器,伺服器內備份則是把檔案及資料庫在其他地方多存一份的方法。遵循 3-2-1 原則,即三份副本、兩種儲存、其中一份放在別處,最為穩妥。

第 1 步:打包檔案及資料庫

終端機
mkdir -p /root/backup
tar czf /root/backup/www-$(date +%F).tar.gz /var/www
mysqldump --single-transaction --all-databases | gzip > /root/backup/db-$(date +%F).sql.gz

PostgreSQL 以 sudo -u postgres pg_dumpall | gzip > /root/backup/pg-$(date +%F).sql.gz,Docker 卷宗以 docker run --rm -v VOLUME_NAME:/data -v /root/backup:/out alpine tar czf /out/VOLUME_NAME.tar.gz -C /data . 打包。

第 2 步:每日自動執行

以 crontab -e 開啟排程工作並加入下列三行,便會每日凌晨 3 時(伺服器時間)建立備份檔案,並清理超過 7 日的檔案。在 crontab 內,% 前面要加上反斜線。

crontab -e
0 3 * * * tar czf /root/backup/www-$(date +\%F).tar.gz /var/www
5 3 * * * mysqldump --single-transaction --all-databases | gzip > /root/backup/db-$(date +\%F).sql.gz
30 3 * * * find /root/backup -name '*.gz' -mtime +7 -delete

第 3 步:再送一份到其他地方

備份檔案只放在同一伺服器,可能與伺服器一同消失。以 rsync 送到其他地區的伺服器,或以 rclone 上載到物件儲存,便在別處多一份。

終端機
rsync -az /root/backup/ backup@BACKUP_SERVER_IP:/backups/web-1/

按情況應選擇哪種方法

三種方法與其互相取代,不如一同使用最穩妥。請按你伺服器的用途如下組合。

  • 個人網誌、小型網站:建立伺服器時啟用自動備份,並在大幅更改佈景主題或外掛前取得一個 WordPress 匯出檔案,已經足夠。
  • 網店、會員服務:在自動備份之外每日建立資料庫轉存,並送一份到其他地區,訂單紀錄及會員資料可按小時取回。
  • 開發及測試伺服器:大型實驗前留下一個快照,實驗完成後刪除快照,節省儲存費用。
  • 使用多部相同配置的伺服器:長期保存作為基準的伺服器快照,便可快速把新伺服器設定為相同狀態。

無論哪種組合,關鍵在於伺服器以外是否也有一份副本,以及是否曾實際用該副本還原。只要照顧好這兩點,即使突發失誤或故障,亦可從容恢復服務。

亦請一併考慮費用。自動備份按伺服器收費的 5.6% 計算,每月金額相同;快照只按保存容量收費。伺服器內備份不另收費、只用硬碟空間,但送到別處的副本需要接收方的儲存空間。以必須保護的資料大小及需要還原的頻率為準選擇,便可兼顧成本與安全。

還原演練與好習慣

備份能還原才有價值。每月左右建立一部小伺服器,解開備份檔案並確認網站能否開啟,實際發生時便不會手忙腳亂。確認完成的測試伺服器即時刪除便可。

  • 大型工作前先留下一個快照或備份檔案。
  • 在備份檔案名稱加入日期及伺服器名稱,即時知道是哪個時間點。
  • 含資料庫密碼及 API 金鑰等機密資料的備份,只存放在安全地方。
  • 重新安裝伺服器前,先完成重新安裝指南中搬走資料的步驟。

如硬碟空間不足、難以長期保存備份,亦可為伺服器加上 NVMe 區塊硬碟 作為備份專用空間。如使用 Docker,亦請一併查看Docker 安裝指南的卷宗管理。

值得一併查看的指南

接續此指南最好一併完成的設定。

查看所有指南