📖 Linux 伺服器備份與還原

分類:伺服器管理 | 作者:pake | 發布時間:2024-09-13 14:17

Fedora 伺服器備份與還原機制

伺服器備份與還原是確保系統可靠性與資料安全的重要環節。常見的備份方式包括完整備份(Full Backup)、差異備份(Differential Backup)、增量備份(Incremental Backup)。本篇將介紹如何使用 tarrsyncBacula 等工具進行 Linux 伺服器的備份與還原。


目錄


備份概述

為何需要備份?

備份類型

  1. 完整備份 (Full Backup):備份所有資料,每次執行佔用較多空間。
  2. 差異備份 (Differential Backup):備份上次完整備份後改變的文件。
  3. 增量備份 (Incremental Backup):僅備份上次任何備份(完整或增量)後變更的文件。

完整備份 (Full Backup)

完整備份會備份所有指定的資料,適合重要資料的週期性備份。

使用 tar 進行完整備份

tar -cvpzf /backup/full_backup_$(date +%F).tar.gz --exclude=/backup --one-file-system /

使用 rsync 進行完整備份

rsync -av --delete / /backup/full_backup/

差異備份 (Differential Backup)

差異備份僅儲存從 上次完整備份 後改變的檔案。

tar -cvpzf /backup/differential_backup_$(date +%F).tar.gz --newer-mtime="$(date -d '7 days ago' +%F)" /

或使用 rsync

rsync -av --compare-dest=/backup/full_backup/ / /backup/differential_backup/

增量備份 (Incremental Backup)

增量備份只備份從上次任何類型的備份(完整或增量)以來變更的檔案。

tar -cvpzf /backup/incremental_backup_$(date +%F_%H%M%S).tar.gz --listed-incremental=/backup/incremental.snar /

或使用 rsync

rsync -av --backup --backup-dir=/backup/incremental_$(date +%F) / /backup/full_backup/

使用 rsync 進行高效能備份

使用 rsync 進行遠端備份

rsync -avz --progress /data/ user@remote-server:/backup/

使用 rsync 進行本地鏡像備份

rsync -av --delete /data/ /backup/mirror/

設定 crontab 自動備份

crontab -e

加入:

0 2 * * * rsync -av --delete /data/ /backup/mirror/

此排程會每日凌晨 2 點執行備份。


使用 Bacula 進行自動備份

Bacula 是一款專業的企業級備份解決方案,可自動執行完整、差異和增量備份。

安裝 Bacula

sudo dnf install bacula-server bacula-client -y

設定 Bacula 伺服器

  1. 編輯 /etc/bacula/bacula-dir.conf 設定備份來源與存儲位置。
  2. 設定 /etc/bacula/bacula-sd.conf 來管理備份存儲設備。
  3. 啟動 Bacula 服務:
sudo systemctl enable --now bacula-dir bacula-sd bacula-fd
  1. 建立備份作業並執行:
bconsole
run job=backup-job-name

資料庫備份

MySQL / MariaDB 備份

mysqldump -u root -p --all-databases > /backup/mysql_backup_$(date +%F).sql

還原 MySQL / MariaDB

mysql -u root -p < /backup/mysql_backup.sql

PostgreSQL 備份

pg_dumpall -U postgres > /backup/postgresql_backup.sql

還原 PostgreSQL

psql -U postgres -f /backup/postgresql_backup.sql

備份還原測試

測試完整備份還原:

tar -xvpzf /backup/full_backup_*.tar.gz -C /restore_location

測試增量還原:

tar --listed-incremental=/backup/incremental.snar -xvpzf /backup/incremental_backup_*.tar.gz -C /restore_location

測試 rsync 備份還原:

rsync -av /backup/mirror/ /data/

結語

本篇介紹了 Linux 伺服器的備份與還原方法,涵蓋完整備份、差異備份、增量備份、遠端備份與自動化備份策略。透過這些技巧,您可以確保伺服器的資料安全與可恢復性,並根據需求選擇最佳的備份方案。

⬅ 上一篇 下一篇 ➡
🔙 返回 伺服器管理 📚 返回教學列表 🏠 返回首頁