Các chỉ số innodb_force_recovery trong cấu hình MySQL bạn cần biết

Đánh giá bài viết

Innodb là gi? là một trong những kiểu lưu trữ bảng trong MySQL (InnoDB Storage Engine) được dùng rất nhiều. Ở bài này mình không nói đến ưu điểm và nhược điểm của nó, mà chỉ tìm hiểu chỉ số để phục hồi, khởi động được MySQL khi bị lỗi (Crash Innodb) mà các bạn phải chấp nhận mất dữ liệu khi cấu hình để MySQL hoạt động.

 

Cấu hình trong file my.cnf

[mysqld]

innodb_force_recovery = 1

 

1 (SRV_FORCE_IGNORE_CORRUPT)

( bỏ qua các lỗi ) – Khi server đang hoạt động và có xuất hiện lỗi page . Thì innodb_force_recovery với value = 1 sẽ cố gắng thực hiện truy vấn câu lệnh SELECT * FROM tbl_name bỏ qua các lỗi của index record và page. Điều này giúp ích cho việc dump table.

 

2 (SRV_FORCE_NO_BACKGROUND)

Ngăn chặn các luồng chính đang vận hành . Nếu có lỗi xảy ra khi tiến trình lọc đang hoạt động. Giá trị recovery này sẽ ngăn chặn lại.

 

3 (SRV_FORCE_NO_TRX_UNDO)

Không chạy transaction rollbacks sau khi recovery.

 

Rollbacks là thao tác khôi phục cơ sở dữ liệu về một trạng thái cũ. Các thao tác rollback có tầm quan trọng đối với tính toàn vẹn dữ liệu của cơ sở dữ liệu.

 

4 (SRV_FORCE_NO_IBUF_MERGE)

Hoạt động ngăn chặn việc insert buffer merge. Nếu có lỗi xảy ra thì sẽ không thực hiện, không thống kê tính toán các table.

 

 

5 (SRV_FORCE_NO_UNDO_LOG_SCAN)
Bỏ qua undo logs khi đang bắt đầu start database, InnoDB xử lý ngay khi chưa hoàn thành transactions as committed.
Transaction (giao dịch) là một nhóm, có thứ tự, các hoạt động thao tác trên cơ sở dữ liệu, nhưng được xem như một đơn vị thao tác duy nhất. Khi một transaction bao gồm nhiều lệnh cập nhật, nó đảm bảo tất cả các cập nhật đều được thực hiện thành công, hoặc trong trường hợp một lệnh gặp sự cố toàn bộ transaction bị hủy bỏ. Khi đó dữ liệu trở về trạng thái như trước khi xảy ra transaction. Nói cách khác transaction ngăn chặn tình huống dữ liệu được cập nhật nửa chừng, trong đó một phần được cập nhật còn một phần bị bỏ qua.

 

6 (SRV_FORCE_NO_LOG_REDO)
Không thực hiện log roll-forward trong kết nối với việc recovery Roll forwardlà khôi phục tất cả giao dịch đã hoàn thành khi hệ thống xảy ra sự cố.

Thông tin tham khảo :
https://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html

Tagged: