Site icon Knowledge Base| Kiến thức Dịch vụ P.A Việt Nam

Hướng dẫn xử lý database innodb MySQL bị crash

Trường hợp database sử dụng innodb bị crash bạn có thể xử lý bằng cách sau:

– Bước 1: Bạn cho start mysql với mode readonly bằng cách:

Mở file: /etc/my.cnf > thêm dòng

innodb_force_recovery = 1

Có thể thay 1 bằng  4 hoặc 6 để start mysql

– Bước 2: Backup toàn bộ database trên server với lệnh:

mysqldump -u root -p --all-databases > alldb.sql

Trường hợp dump bị lỗi có thể dùng cmd dưới đây

mysqldump -u root -p --complete-insert --routines --triggers --single-transaction --all-databases > alldb.sql

Trường hơp việc dump all database bị lỗi, bạn xem xét dump từng database 1

với script

mysql -N -e 'show databases' | while read dbname; do mysqldump --complete-insert --routines --triggers --single-transaction "$dbname" > /root/backup_db_full/"$dbname".sql; done

– Bước 3: Backup lại folder /var/lib/mysql bằng lệnh: cp -r /var/lib/mysql /var/lib/mysql.bk

– Bước 4: Cho rename các file trong /var/lib/mysql: ibdata1, ib_logfile0, ib_logfile1

– Bước 5: Mở lại file /etc/my.cnf > bỏ dòng innodb_force_recovery trước đó đã thêm > restart lại mysql ở chế độ bình thường.

– Bước 6: Chạy lệnh bên dưới để đảm bảo mv hết các table sử dụng inodb

cd /var/lib/mysql/

find . -type f -name "*.ibd" -exec mv {} {}.bak \;

– Bước 7: Xong chạy import lại file alldb.sql

mysql -u root -p < /root/alldb.sql

4.5 / 5 ( 131 bình chọn )
Exit mobile version