1. 程式人生 > >Mysql數據文件損壞如何恢復至最新狀態

Mysql數據文件損壞如何恢復至最新狀態

imp size flow port ado 恢復 -o 關閉 ng-

準備環境:

兩臺主機:
A: 192.168.1.6 數據損壞
B: 192.168.1.7 數據恢復

搭建步驟:

主機A(192.168.1.6):

  • 完全備份數據庫

mysqldump -A -F --single-transaction --master-data=1 > /backup/fullbak`date +%F`.sql

技術分享圖片技術分享圖片

標紅的位置是完全備份後最新生成的新的二進制文件及位置(之前全部備份),用於二進制日誌恢復

  • 修改數據庫

mysql> create database db1;
mysql> create database db2;
  • 模擬數據文件損壞

# rm -rf /var/lib/mysql/*
  • 關閉數據庫

systemctl stop mariadb
  • 備份二進制日誌

mysqlbinlog --start-position=245 mariadb-bin.000002 > /backup/bin.sql
  • 復制備份日誌至主機B

scp /backup/fullbak2018-06-16.sql /backup/bin.sql  192.168.1.7:/root/


主機B(192.168.1.7):

  • 關閉網絡監聽

vim /etc/my.cnf
[mysqld]
skip_networking
  • 開啟數據庫

systemctl start mariadb
  • 恢復數據

mysql < /root/fullbak2018-06-16.sql    完全備份恢復

mysql < /root/bin.sql 二進制日誌恢復



Mysql數據文件損壞如何恢復至最新狀態