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 卷名:/data -v /root/backup:/out alpine tar czf /out/卷名.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 安裝指南中的卷管理。

推薦一起閱讀的指南

接著本指南做好會更好的設定。

檢視全部指南