Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Các cách tốt nhất để sửa chữa bảng InnoDB bị hỏng trong MySQL

Tóm tắt: Trong bài đăng này, chúng tôi 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ố. Vì vậy, 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 MySQL Server bị lỗi 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ố.

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

Lưu ý: 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 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

1. 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:

  1. Mở cửa sổ Run bằng cách nhấp vào ‘Windows + R’ các phím với nhau.
  2. Nhập msc và nhấn Enter .
  3. Từ Dịch vụ cửa sổ, tìm Dịch vụ MySQL và nhấp chuột phải vào nó, sau đó nhấp vào 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 máy chủ 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 innodb_force_recovery trong tệp 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 như vậy, hãy làm theo các bước sau:

  • Mở tệp my.cnf và thêm dòng mã sau vào phần [mysqld]:
[mysqld]
Innodb_force_recovery=1

  • Lưu và đóng tệp 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 kết xuất dữ liệu bảng vào một tệp mới bằng cách sử dụng lệnh mysqldump sau:

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 để kết 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:

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 kết xuất mới được tạo để khôi phục bảng từ tệp kết xuất (tức là single_dbtable_dump):

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]:

#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.

2. Khắc phục bảng InnoDB bị hỏng bằng cách sử dụng phần mềm sửa chữa MySQL

Việc 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 khi sửa chữa bảng bị hỏng của cơ sở dữ liệu MySQL theo cách thủ công bằng cách sử dụng phần mềm sửa MySQL chuyên dụng chẳng hạn như Stellar Repair cho 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 hệ thống dựa trên HĐH 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:

  1. Tải xuống miễn phí, cài đặt và chạy Stellar Repair cho MySQL
  2. Từ Chọn Thư mục Dữ liệu hộp thoại, chọn phiên bản MySQL bạn đang sử dụng, sau đó nhấp vào OK .
  3. Từ Chọn Cơ sở dữ liệu , chọn cơ sở dữ liệu mà bạn muốn sửa chữa, sau đó nhấp vào Sửa chữa .
  4. 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ể khôi phục khác được hiển thị trong cửa sổ xem trước phần mềm.
  5. Chọn (các) bảng bạn muốn khôi phục, sau đó nhấp vào Lưu trên menu Tệp.
  6. Từ Lưu Cơ sở dữ liệu , chọn MySQL trong Lưu dưới dạng 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 Lưu .

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

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

Kết luận

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 này giúp sửa chữa cơ sở dữ liệu MySQL được tạo trên cả HĐH 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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Loại dữ liệu tốt nhất để lưu trữ các giá trị tiền tệ trong cơ sở dữ liệu MySQL

  2. Chuyển kết quả cơ sở dữ liệu thành mảng

  3. JSON_SET () so với JSON_INSERT () so với JSON_REPLACE () trong MySQL:Sự khác biệt là gì?

  4. Làm thế nào để tìm bảng lớn nhất trong cơ sở dữ liệu MySQL?

  5. Làm thế nào để lấy kích thước của cơ sở dữ liệu mysql?