溫馨提示×

Debian MariaDB恢復方法有哪些

小樊
42
2025-09-30 04:32:45
欄目: 云計算

1. 使用mariabackup工具恢復(物理備份恢復,官方推薦)
mariabackup是MariaDB官方開源的物理備份工具,適用于全量及增量備份恢復,能最大程度保證數據一致性。

  • 準備工作:停止MariaDB服務,避免數據寫入沖突;備份當前數據庫目錄(如/var/lib/mysql)以防恢復失敗。
  • 全量恢復步驟
    ① 執行mariabackup --prepare --target-dir=/path/to/full_backup,將全量備份數據轉換為可導入狀態;
    ② 停止MariaDB服務:sudo systemctl stop mariadb;
    ③ 清空現有數據庫目錄并將準備好的備份數據同步過去:sudo rsync -aP /path/to/full_backup/ /var/lib/mysql/;
    ④ 修復目錄屬主:sudo chown -R mysql:mysql /var/lib/mysql;
    ⑤ 啟動MariaDB服務:sudo systemctl start mariadb。
  • 增量恢復步驟
    對每個增量備份(如/path/to/incr_backup),先執行mariabackup --prepare --target-dir=/path/to/incr_backup --incremental-dir=/path/to/incr_backup合并增量數據到全量備份目錄,再用rsync同步到數據庫目錄。

2. 使用mysqldump工具恢復(邏輯備份恢復,通用性強)
mysqldump生成的SQL腳本包含數據庫結構(表、視圖)和數據,適合跨版本、跨平臺恢復,或需要導出部分數據的場景。

  • 恢復單庫:若已刪除目標庫,先創建空庫(mysql -u root -p -e "CREATE DATABASE dbname;"),再導入備份文件:mysql -u root -p dbname < /path/to/backup.sql。
  • 恢復全庫:直接導入備份文件到當前MariaDB實例:mysql -u root -p < /path/to/full_backup.sql。

3. 使用mysqlcheck工具修復輕微損壞
若數據庫能啟動但存在表損壞(如查詢報錯“Table corruption”),可通過mysqlcheck檢查和自動修復:
sudo mysqlcheck --all-databases --check --auto-repair -u root -p
該工具會掃描所有數據庫的表,嘗試修復索引或數據不一致問題,適用于InnoDB或MyISAM表的輕微損壞。

4. 配置innodb_force_recovery強制恢復(InnoDB嚴重損壞)
當InnoDB存儲引擎的數據文件(如ibdata1、ib_logfile*)損壞導致MariaDB無法啟動時,可通過強制恢復模式導出數據:

  • 編輯配置文件(/etc/mysql/my.cnf/etc/my.cnf),在[mysqld]段添加innodb_force_recovery = 1(值范圍1-6,數字越大修復越徹底);
  • 重啟MariaDB:sudo systemctl restart mariadb;
  • 若能啟動,立即導出所有數據(如使用mysqldump),然后刪除損壞的數據庫目錄,重新初始化MariaDB并導入數據;
  • 若無法啟動,逐步增加innodb_force_recovery的值(每次+1)直至能啟動,再執行數據導出。

5. 從系統備份恢復(物理文件恢復)
若數據庫目錄(如/var/lib/mysql)因磁盤故障、誤刪除等原因丟失,可通過系統級備份(如rsync、tar或專業備份軟件)恢復:

  • 停止MariaDB服務;
  • 將備份的系統文件恢復到原數據庫目錄(如sudo rsync -aP /backup/var_lib_mysql/ /var/lib/mysql/);
  • 修復屬主:sudo chown -R mysql:mysql /var/lib/mysql;
  • 啟動MariaDB服務:sudo systemctl start mariadb。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女