Linux 服務器因內核恐慌、硬件故障、電源中斷等原因崩潰,導致數據庫(如 Oracle、MySQL)無法正常啟動。本文詳述從救援模式啟動、掃描 LVM 卷、掛載文件系統、備份核心數據文件到重建數據庫的完整流程,助您將損失降至最低。

no such file or directory、kernel panic 或進入 dracut 救援 Shell。ext4/xfs 日志不一致),LVM 元數據可能受損。使用系統安裝光盤(ISO)或 USB 啟動,選擇 Troubleshooting → Rescue a CentOS/RHEL system,或在 GRUB 菜單編輯內核參數添加 systemd.unit=rescue.target。
掛載根文件系統至 /mnt/sysimage(救援模式通常自動掛載)。
# 掃描所有物理卷
vgscan
# 查看卷組信息
vgdisplay
# 激活目標卷組(假設名為 vg_oracle)
vgchange -ay vg_oracle
# 查看邏輯卷
lvdisplay
# 創建掛載點
mkdir -p /mnt/recovery
# 掛載數據文件所在邏輯卷(如 lv_oradata)
mount /dev/vg_oracle/lv_oradata /mnt/recovery
# 確認關鍵文件存在
ls -l /mnt/recovery/oradata/
將數據文件(.dbf、.ctl、.log)、參數文件(spfile/pfile)、密碼文件(orapw*)通過網絡(scp/rsync)或移動硬盤拷貝至安全存儲:
# 示例:使用 rsync 備份至備份服務器
rsync -avz /mnt/recovery/oradata/ backup-user@backup-server:/backup/oradata_$(date +%F)/
# 同時備份備份控制文件、归档日志(如有)
fsck -y /dev/vg_oracle/lv_oradata(xfs 使用 xfs_repair)。STARTUP MOUNT 掛載數據庫,執行 RECOVER DATABASE 恢復。ALTER DATABASE OPEN RESETLOGS 打開數據庫。datadir(默認 /var/lib/mysql)、ibdata1、ib_logfile*、.frm/.ibd 文件。恢復時同版本安裝 MySQL,替換 datadir,執行 innodb_force_recovery 如需強制啟動。PGDATA 目錄(含 base/、global/、pg_wal/)。恢復同版本 PG,替換數據目錄,檢查 postgresql.conf、pg_hba.conf。系統崩潰不可避免,但通過規範的備份策略與熟練的恢復演練,能將 RTO(恢復時間目標)和 RPO(恢復點目標)控制在業務可接受範圍內。切記:備份未驗證恢復,等於沒有備份!