IBD là loại tệp hoặc tiện ích mở rộng được liên kết với MySQL-Innodb. Innodb có một tính năng gọi là ‘nhiều không gian bảng cho phép tất cả các bảng và chỉ mục được lưu trữ trong tệp của riêng họ để mỗi bảng có thể sử dụng không gian bảng riêng của nó. Nếu bạn bật nhiều không gian bảng, Innodb sẽ lưu trữ mỗi bảng mới được tạo trong tệp *.ibd trong thư mục cơ sở dữ liệu.
Để mở tệp IBD, bạn yêu cầu một số phần mềm hỗ trợ tệp IBD như MySQL-Innodb, nếu không bạn có thể phải đối mặt với một lỗi như Windows có thể mở tệp này. Trong trường hợp bạn có thể mở tệp IBD của mình, hãy thử nhấp chuột phải hoặc nhấn dài vào tệp và sau đó chọn một ứng dụng để mở nó.
Cách khôi phục bảng từ tệp .ibd
Nếu bạn vô tình mất dữ liệu, bạn có thể khôi phục các bảng từ tệp .ibd mà không cần gỡ máy chủ MySQL xuống. Nếu bạn cập nhật hoặc xóa một bảng với không gian bảng được chỉ định bởi bảng, nó có thể được khôi phục bằng cách làm theo một vài bước đơn giản hoặc thông qua bảng thả, bảng cắt ngắn hoặc câu lệnh cơ sở dữ liệu thả.
Innodb sử dụng tệp ib_log để khôi phục dữ liệu. Nó yêu cầu tệp IBDATA1 chứa từ điển dữ liệu. Từ điển dữ liệu là một hệ thống trùng lặp được sử dụng để ghi cấu trúc bảng và ID bảng khớp với tệp .ibd vật lý. Các tệp IBD cũng được di chuyển cùng với Từ điển dữ liệu InnoDB mỗi lần. Dữ liệu có thể được khôi phục từ các tệp .frm và .ibd ngay cả khi máy chủ bị lỗi. Thông thường tất cả các cấu trúc bảng được lưu trữ trong các tệp .frm. Vấn đề có thể được giải quyết bằng cách khôi phục cấu trúc bảng để tìm dữ liệu bị mất hoặc bằng cách tái tạo bảng.
Phương pháp phục hồi
Đây là hai trong số các cách phổ biến nhất để khôi phục bảng từ tệp .ibd:
- Sinh sản một phiên bản MySQL mới và khôi phục cấu trúc đang chạy: Yêu cầu, trình điều khiển của máy tính hoặc điều đó cùng với mậttport.
- Phục hồi bảng mà không yêu cầu về ví dụ MySQL: Yêu cầu, DiaDiagnostic đọc các tệp .frm byte-by-byte và cố gắng khôi phục tất cả thông tin có thể. & Nbsp;
Bạn có thể tìm thấy mô tả từng bước của cả hai phương thức dưới đây.
Chạy phục hồi cấu trúc
Phương pháp đầu tiên là sinh ra một phiên bản MySQL mới và chạy phục hồi cấu trúc. Bạn có thể làm theo các bước được đề cập dưới đây để khôi phục bảng thông qua phương pháp này:
Bước 1: Tạo lại cấu trúc từ các tệp FRM
MySQL cung cấp một công cụ có tên là MySqlfrm, để tạo lại cấu trúc bảng. Công cụ này trích xuất cấu trúc và tạo ra một tập lệnh trên bảng tạo bảng.
mysqlfrmTHERServer = root: myPassword@localhostTHER = 3311, /mytable.frm
Cổng trong hướng dẫn không phải là cổng của máy chủ MySQL, nó là bất kỳ cổng nào có sẵn. Phần cuối của tập lệnh có nghĩa là chuyển hướng đầu ra trong một tệp.
Bước 2: Tạo lại bảng trong cơ sở dữ liệu mới
Trong cơ sở dữ liệu mới, hãy tạo bảng mới với tập lệnh được tạo ở bước 1. Tập lệnh đó sẽ tạo 2 tệp trong thư mục dữ liệu cơ sở dữ liệu là:
- mytable.frm
- mytable.ibd
Bước 3: Xóa tệp IBD mới
Để xóa tệp IBD mới, hãy thực hiện lệnh SQL sau:
Thay đổi bảng mytable loại bỏ không gian bảng;
Lệnh này xóa liên kết giữa bảng và không gian bảng và xóa tệp IBD.
Bước 4: Sao chép tệp IBD cũ
Tệp IBD được khôi phục từ máy chủ cũ phải được sao chép thay cho tệp IBD bị xóa trong bước 3.
Bước 5: Kích hoạt lại bảng
Liên kết bị hỏng ở bước 3 được khôi phục bằng lệnh sau:
Thay đổi bảng không gian bảng nhập khẩu mytable;
Đừng lo lắng về những cảnh báo bạn sẽ nhận được. Đó là nó; Đây là cách bạn có thể khôi phục bảng từ tệp .ibd.
Phục hồi bảng mà không yêu cầu về ví dụ MySQL
Phương pháp thứ hai liên quan đến việc phục hồi bảng mà không có ví dụ MySQL. Theo kịch bản:
mysqlfrm
Sau khi thực hiện tập lệnh được đề cập ở trên, tất cả các thông tin được phục hồi cho bảng sẽ được lưu trữ trong tệp Recovered_mytable.sql.
Bạn cần lặp lại các bước 2, 3, 4 và 5 từ phương thức được đề cập ở trên để tạo lại tệp IBD.
Lưu ý: Nếu bạn chỉ có tệp IBD từ bảng, bạn cần tạo lại các bảng hoặc ít nhất là lược đồ bảng bị hỏng hoặc bị hỏng thông qua tập lệnh SQL. Trong trường hợp như vậy, bỏ qua Bước 1 và sử dụng tập lệnh trong bước 2.
Các phương pháp khác
Một cách khác để thực hiện phục hồi là thông qua MySQLBackup. Bạn có thể tạo một bản sao sạch của tệp .ibd thông qua tính năng này. Thực hiện theo các bước được đề cập dưới đây:
- Sử dụng mysqlbackup với tùy chọn --only-innodb hoặc --Only-innodb-with-frm để sao lưu innodbInstallation.
- Chạy mysqlbackup
- Áp dụng -log để tạo một phiên bản nhất quán của cơ sở dữ liệu sao lưu.
- Bắt đầu một máy chủ MySQLD thứ hai [giả] trên bản sao lưu và để nó làm sạch các tệp .ibd trong bản sao lưu. Đợi cho việc dọn dẹp kết thúc.
- Tắt máy chủ MySQLD giả.
- Lấy một tệp .ibd sạch từ bản sao lưu.
Các bước đơn giản này có thể giúp bạn khôi phục các bảng từ tệp IBD của bạn mà không mất bất kỳ thực thể nào.
Phương pháp thay thế dễ dàng hơn
Trong trường hợp bạn thấy các phương pháp nói trên hơi quá kỹ thuật hoặc thích một cách dễ dàng hơn, bạn có thể bỏ qua các rắc rối bằng cách sử dụng phần mềm khôi phục MySQL tự động, Sửa chữa Stellar cho MySQL. Sản phẩm nâng cao này sửa chữa các vấn đề trong cơ sở dữ liệu MySQL và khôi phục các đối tượng cơ sở dữ liệu một cách an toàn. Khôi phục bảng, kích hoạt, khóa, chế độ xem, v.v ... Ở định dạng ban đầu của chúng là thứ mà sản phẩm này làm chủ. Với phần mềm này bên cạnh bạn, bạn đã giành chiến thắng phải phụ thuộc vào các quy trình phức tạp như khôi phục bảng từ các tệp IBD và tương tự.Stellar Repair for MySQL. This advanced product repairs issues within MySQL databases and safely restores database objects. Restoring tables, triggers, keys, views, etc. in their original format is something this product masters in. With this software by your side, you won’t have to depend on complicated processes like recovering tables from IBD files and the like.
Bạn cũng có thể kiểm tra đánh giá phần mềm được thực hiện bởi Augusto Destrero, người là một sysadmin từ đây.
Sự kết luận
Mất dữ liệu hoặc bảng từ cơ sở dữ liệu của bạn có thể đáng sợ. Nếu, thay vì hoảng loạn, bạn thực hiện các bước được đề cập ở trên đúng hạn, bạn có thể lưu dữ liệu MySQL quý giá của mình hoặc ít nhất là có được một bản sao rõ ràng về nó. Nó luôn luôn tốt hơn để thực hiện các biện pháp phòng ngừa và có một bản sao lưu dữ liệu của bạn thay vì gặp rắc rối sau này. Nhưng nếu bạn đã bỏ lỡ nó bởi bất kỳ cơ hội nào, các phương thức thủ công được đề cập ở trên sẽ giúp bạn tiết kiệm thời gian và dữ liệu của bạn. Nếu bạn không thể sử dụng các phương thức thủ công, bạn có thể đặt niềm tin vào sửa chữa sao cho MySQL để sửa chữa cơ sở dữ liệu và khôi phục tất cả dữ liệu của bạn còn nguyên vẹn.