Mysql數據文件損壞如何恢復至最新狀態
阿新 • • 發佈:2018-06-16
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數據文件損壞如何恢復至最新狀態