溫馨提示×

MariaDB在Linux上如何進行數據恢復

小樊
48
2025-09-16 16:42:31
欄目: 云計算

MariaDB在Linux上的數據恢復方法如下:

  1. 停止服務

    sudo systemctl stop mariadb  
    
  2. 備份當前數據(可選)

    sudo cp -R /var/lib/mysql /var/lib/mysql_backup  
    
  3. 從SQL備份恢復

    mysql -u root -p < /path/to/backup.sql  
    
  4. 從物理備份恢復

    sudo rsync -aAXv /path/to/backup/mysql/ /var/lib/mysql/  
    sudo chown -R mysql:mysql /var/lib/mysql  
    sudo systemctl start mariadb  
    
  5. 使用工具恢復(如xtrabackup/mariabackup)

    • xtrabackup(需先安裝):
      # 恢復全量備份  
      innobackupex --apply-log /path/to/backup  
      sudo rsync -aP /path/to/backup/ /var/lib/mysql/  
      sudo chown -R mysql:mysql /var/lib/mysql  
      sudo systemctl start mariadb  
      
    • mariabackup(官方工具):
      # 恢復全量備份  
      mariabackup --prepare --target-dir=/path/to/backup  
      sudo rsync -aP /path/to/backup/ /var/lib/mysql/  
      sudo chown -R mysql:mysql /var/lib/mysql  
      sudo systemctl start mariadb  
      
  6. 修復表(針對損壞的表)

    • MyISAM表
      sudo myisamchk -r /var/lib/mysql/database_name/table_name.MYI  
      
    • InnoDB表
      編輯配置文件(/etc/my.cnf),添加:
      [mysqld]  
      innodb_force_recovery = 1  
      
      逐步增加值(最大6)直至能啟動服務,然后導出數據。
  7. 基于二進制日志恢復(針對誤操作)

    # 查看二進制日志定位誤操作  
    mysqlbinlog /var/lib/mysql/mysql-bin.000001 --start-datetime="YYYY-MM-DD HH:MM:SS" --database=database_name  
    # 生成恢復SQL并執行  
    mysqlbinlog --start-datetime="YYYY-MM-DD HH:MM:SS" --database=database_name /var/lib/mysql/mysql-bin.000001 > recovery.sql  
    mysql -u root -p < recovery.sql  
    

注意:操作前確保有完整備份,優先使用官方工具(如mariabackup),復雜場景建議咨詢專業人士。

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