Cách sửa chữa bảng InnoDB bị hỏng trong MySQL

Tác giả Network Engineer, T.M.Một 11, 2021, 09:32:53 SÁNG

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 2 Khách đang xem chủ đề.

Cách sửa chữa bảng InnoDB bị hỏng trong MySQL


Trong bài đăng này, chúng ta sẽ thảo luận về một số cách tốt nhất để sửa chữa bảng InnoDB bị hỏng trong MySQL, bảng này có thể bị hỏng do lỗi phần cứng, sự cố Máy chủ MySQL và các lý do khác. Những cách này bao gồm một quy trình khôn ngoan để sửa chữa bảng InnoDB bị hỏng theo cách thủ công hoặc bằng cách sử dụng phần mềm sửa chữa MySQL.

Bắt đầu từ phiên bản MySQL 5.5, InnoDB được sử dụng làm công cụ lưu trữ mặc định cho tất cả các bảng mới trong cơ sở dữ liệu MySQL. Điều tuyệt vời về InnoDB là nó hỗ trợ khôi phục sự cố. Do đó, nó không thể bị hỏng một cách dễ dàng, nhưng khi nó xảy ra, nó có thể xảy ra do sự cố Máy chủ MySQL sau khi khởi động lại, lỗi phần cứng hoặc lỗi trong nền tảng bên dưới, v.v.
 
Khi một bảng InnoDB bị hỏng, dữ liệu bên trong nó sẽ không thể đọc được và không thể truy cập được. Và, nỗ lực đọc từ một bảng bị hỏng có thể khiến Máy chủ MySQL gặp sự cố.
 
1. Làm thế nào để sửa chữa bảng InnoDB bị hỏng trong MySQL?

Trước khi cố gắng sửa chữa bảng InnoDB bị hỏng, hãy đảm bảo sao lưu các tập tin cơ sở dữ liệu MySQL của bạn trước.

Sau đây là các cách sử dụng mà bạn có thể sửa chữa bảng cơ sở dữ liệu InnoDB bị hỏng
 
2. Sửa bảng InnoDB bị hỏng theo cách thủ công

Bạn sẽ hiếm khi cần sửa chữa bảng InnoDB, vì công cụ lưu trữ giúp thực hiện khôi phục sự cố có thể khắc phục hầu hết các sự cố sau khi máy chủ được khởi động lại. Tuy nhiên, có thể nảy sinh một tình huống mà bạn cần phải xây dựng lại hoặc sửa chữa một bảng bị hỏng theo cách thủ công. Đây là cách bạn có thể làm điều đó:
 
Bước 1: Khởi động lại dịch vụ MySQL

Khởi động lại Dịch vụ MySQL, để kiểm tra xem bạn có thể truy cập vào máy chủ hay không, bằng cách thực hiện như sau:

  • Mở cửa sổ Run bằng cách nhấp vào tổ hợp phím 'Windows + R'
  • services.msc và nhấn Enter
  • Từ cửa sổ Dịch vụ, hãy tìm Dịch vụ MySQL và bấm chuột phải vào nó, sau đó bấm khởi động lại.

Nếu máy chủ có thể truy cập được, hãy chuyển sang Bước 3. Nhưng nếu nó không khởi động hoặc tiếp tục gặp sự cố, hãy sử dụng tùy chọn innodb_force_recovery được giải thích trong bước tiếp theo.
 
Bước 2: Buộc khôi phục InnoDB

Bật tùy chọn innodb_force_recovery trong tập tin cấu hình MySQL my.cnf để lấy lại quyền truy cập vào cơ sở dữ liệu MySQL và bảng bị hỏng của nó. Để làm đươc như vậy, hãy tuân theo những bước sau:

Mở tập tin my.cnf và thêm dòng mã sau vào phần [mysqld]:

Mã nguồn [Chọn]
[mysqld]
Innodb_force_recovery=1

Lưu và đóng tập tin cấu hình.

Cố gắng khởi động lại dịch vụ MySQL.
 
Bước 3: Bỏ bảng hỏng

Khi bạn có thể truy cập bảng bị hỏng, hãy xuất dữ liệu bảng bị hỏng vào một tập tin mới bằng cách sử dụng lệnh mysqldump sau:

Mã nguồn [Chọn]
$ mysqldump –u user –p db_name table_name > single_dbtable_dump.sql
Lưu ý: Thêm tên bảng được phân tách bằng khoảng trắng trong lệnh trên để xuất nhiều bảng.
Bây giờ, hãy xóa bảng bị hỏng khỏi cơ sở dữ liệu:

Mã nguồn [Chọn]
$ mysql –u user –p –execute="DROP TABLE db_name.table_name"
Bước 4: Khôi phục bảng

Sử dụng tập tin xuất mới được tạo để khôi phục bảng từ tập tin xuất (tức là single_dbtable_dump):

Mã nguồn [Chọn]
$ mysql –u user –p < single_dbtable_dump.sql
Bước 5: Khởi động lại MySQL ở chế độ bình thường

Khi bảng bị hỏng được sửa chữa, hãy dừng dịch vụ MySQL và tắt chế độ khôi phục InnoDB bằng cách nhập dòng sau vào phần [mysqld]:

Mã nguồn [Chọn]
# innodb_force_recovery = ...
Bây giờ khởi động lại dịch vụ MySQL ở chế độ bình thường.

Lưu ý: Nếu bạn chưa sử dụng tùy chọn innodb_force_recovery, chỉ cần dừng và khởi động lại máy chủ ở chế độ bình thường.
 
3. Sửa bảng InnoDB bị hỏng bằng cách sử dụng phần mềm sửa chữa MySQL

Sử dụng giá trị 'innodb_force_recovery' lớn hơn 4 để lấy lại quyền truy cập vào cơ sở dữ liệu có thể dẫn đến hỏng dữ liệu. Ngoài ra, trong trường hợp bị hỏng nghiêm trọng, bạn có thể không khởi động lại máy chủ MySQL của mình.

Bạn có thể khắc phục những hạn chế này của việc sửa chữa thủ công bảng bị hỏng của cơ sở dữ liệu MySQL bằng cách sử dụng phần mềm sửa chữa MySQL chuyên dụng như Stellar Repair for MySQL.

Phần mềm có thể sửa chữa và khôi phục các bảng InnoDB của cơ sở dữ liệu MySQL trong khi vẫn giữ nguyên dữ liệu của nó. Ngoài ra, nó giúp khôi phục thuộc tính bảng, khóa, ràng buộc mối quan hệ, v.v.

Tiện ích sửa chữa cơ sở dữ liệu MySQL này giúp sửa chữa cả bảng InnoDB và MyISAM được tạo trên các hệ thống dựa trên Hệ điều hành Windows và Linux.

Các bước để sửa chữa bảng InnoDB bị hỏng bằng phần mềm như sau:

  • Tải xuống miễn phí, cài đặt và chạy Stellar Repair for MySQL
  • Từ hộp thoại Select Data Folder, chọn phiên bản MySQL bạn đang sử dụng, sau đó bấm OK
  • Từ hộp Select Database, chọn cơ sở dữ liệu mà bạn muốn sửa chữa, sau đó bấm Repair
  • Bản xem trước của cơ sở dữ liệu đã sửa chữa, bảng và các thành phần có thể phục hồi khác được hiển thị trong cửa sổ xem trước phần mềm.
  • Chọn (các) bảng bạn muốn khôi phục, sau đó bấm Save trên menu tập tin.
  • Từ hộp Save Database, chọn MySQL trong Save As và nhập thông tin đăng nhập cần thiết để Kết nối với Máy chủ. Nhấp vào Save

Bạn có thể tìm thấy tập tin cơ sở dữ liệu đã sửa chữa trong một thư mục mới tại cùng một vị trí nơi cơ sở dữ liệu gốc của bạn được lưu trữ.

Lỗi trong bảng InnoDB có thể làm cho dữ liệu bên trong nó không thể đọc được và nếu không được xử lý kịp thời, nó thậm chí có thể dẫn đến sự cố máy chủ và thời gian ngừng hoạt động ngoài kế hoạch.

Bạn có thể sửa bảng InnoDB bị hỏng bằng cách làm theo quy trình thủ công từng bước. Tuy nhiên, quy trình thủ công để sửa chữa bảng InnoDB có thể dẫn đến mất dữ liệu và có thể không mang lại kết quả như mong đợi.

Tuy nhiên, bằng cách sử dụng công cụ sửa chữa cơ sở dữ liệu MySQL như Stellar Repair cho MySQL, bạn có thể sửa chữa các bảng trên công cụ lưu trữ InnoDB và khôi phục nó về trạng thái chức năng ban đầu. Tiện ích sửa chữa tập tin này giúp sửa chữa cơ sở dữ liệu MySQL được tạo trên cả Hệ điều hành Windows và Linux. Nó không chỉ có thể sửa chữa các bảng InnoDB mà còn có thể sửa lỗi trong các bảng MyISAM của cơ sở dữ liệu MySQL.