Làm cách nào để khôi phục dữ liệu bảng InnoDB MySQL bằng tệp .ibdata và .frm?
1. - Tôi đã sao lưu cơ sở vài tháng trước, điều này giúp tôi nâng bản sao lưu này trong xampp trong Windows 10 và tạo các bảng để có cấu trúc (cấu hình. Windows 10, xampp-windows-x64-7. 1. 30-5-VC14) mysql của tôi. tập tin cấu hình ini ở cuối Show
2. - Up xong database cũ, mình tiến hành thực hiện alter table xxx discard tablespace cho từng table trong database mà mình muốn khôi phục, sau đó là. ibd của thư mục dữ liệu trong C. /xampp/mysql/data/system đã bị xóa (trong trường hợp này là đường dẫn này) 3. - Tôi tiến hành sao chép. ibd từ cơ sở dữ liệu tôi muốn khôi phục vào thư mục xampp của cơ sở dữ liệu cũ 4. - Copy xong file chạy. alter table xxx import tablespace Với mỗi bảng trong cơ sở dữ liệu sẽ xuất hiện cảnh báo nhưng chúng ta bỏ qua, dữ liệu sẽ được nạp trong bảng và có thể xuất ra sau IBD là một loại tệp hoặc phần 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 riêng của chúng để mỗi bảng có thể sử dụng không gian bảng riêng của mình. Nếu bạn kích hoạt nhiều không gian bảng, InnoDB sẽ lưu trữ từng bảng mới được tạo trong một *. ibd trong thư mục cơ sở dữ liệu Để mở tệp IBD, bạn cần có một số phần mềm hỗ trợ tệp IBD như MySQL-InnoDB, nếu không, bạn có thể gặp lỗi như “Windows không thể mở tệp này”. Trong trường hợp bạn không thể mở tệp IBD của mình, hãy thử nhấp chuột phải hoặc nhấn và giữ vào tệp rồi chọn một ứng dụng để mở tệp Cách khôi phục bảng từ. tệp IBDNếu bạn vô tình làm mất dữ liệu của mình, bạn có thể khôi phục các bảng từ. 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 có không gian bảng do bảng chỉ định, 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 câu lệnh DROP TABLE, TRUNCATE TABLE hoặc DROP DATABASE 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à khớp id bảng với vật lý. tệp IBD. 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 phục hồi từ. FRM và. Các tệp IBD ngay cả khi máy chủ bị sập. Thông thường tất cả các cấu trúc bảng được lưu trữ trong. tập tin 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ạo lại bảng Phương pháp khôi phụcĐây là hai trong số những cách phổ biến nhất để khôi phục bảng từ. tệp IBD
Bạn có thể tìm thấy mô tả từng bước của cả hai phương pháp bên dưới 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 khôi phục 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ụ 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 tập lệnh “Tạo bảng” mysqlfrm –server=root:mypassword@localhost –port=3311 “ 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, 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
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 ALTER TABLE mytable DISCARD TABLESPACE; Lệnh này loại bỏ liên kết giữa bảng và vùng bảng, đồng thời loại bỏ 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 ở 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 ALTER TABLE mytable NHẬP KHẨU TABLESPACE; Đừng lo lắng về những cảnh báo bạn sẽ nhận được. Đó là nó; . tệp IBD Khôi phục bảng mà không cần phiên bản MySQL Phương pháp thứ hai liên quan đến việc khôi phục bảng mà không cần phiên bản MySQL. Làm theo kịch bản mysqlfrm –diagnostic “ Sau khi thực thi tập lệnh được đề cập ở trên, tất cả thông tin đã khôi phục cho bảng sẽ được lưu trữ trong “recovery_mytable. tập tin sql” Bạn cần lặp lại các Bước 2, 3, 4 và 5 từ phương pháp đã đề cập ở trên để tạo lại tệp IBD Ghi chú. Nếu bạn chỉ có tệp IBD từ mộ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 này, hãy bỏ qua bước 1 và sử dụng tập lệnh ở bước 2 Các phương pháp khác Một cách khác để thực hiện khôi phục là thông qua mysqlbackup. Bạn có thể tạo một bản sao rõ ràng của một. 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
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 mình mà không làm 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êu 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 những rắc rối bằng cách sử dụng phần mềm khôi phục MySQL tự động, Stellar Repair for MySQL. Sản phẩm tiên tiến này sửa chữa các sự cố 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, trình kích hoạt, khóa, chế độ xem, v.v. ở định dạng ban đầu là điều mà sản phẩm này làm chủ được. Với phần mềm này bên cạnh, bạn sẽ khô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ừ tệp IBD và những thứ tương tự Bạn cũng có thể kiểm tra đánh giá phần mềm được thực hiện bởi Augusto Destrero, một quản trị viên hệ thống từ đây Phần 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 sợ, bạn thực hiện đúng các bước được đề cập ở trê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 của nó. Tốt hơn hết là bạn nên thực hiện các biện pháp phòng ngừa và sao lưu dữ liệu của mình thay vì gặp rắc rối sau này. Nhưng nếu bạn vô tình bỏ lỡ nó, các phương pháp 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 mình. Nếu bạn không thể sử dụng các phương pháp thủ công, bạn có thể tin tưởng vào Stellar Repair for MySQL để sửa chữa cơ sở dữ liệu và khôi phục nguyên vẹn tất cả dữ liệu của bạn Cách khôi phục cơ sở dữ liệu InnoDB từ. frm và. tập tin IBD?Các bước khôi phục dữ liệu từ. . Bước 1 – Tạo cơ sở dữ liệu MySQL và tạo lại bảng Bước 2 – Tìm lược đồ bảng Bước 3 – Tạo lại bảng cơ sở dữ liệu Bước 4 – Xóa cái mới. Tệp IBD Bước 5 – Sao chép cái cũ. tệp IBD Bước 6 – Nhập Tablespace Cách khôi phục cơ sở dữ liệu MySQL từ. tập tin frm?Phương pháp khôi phục . 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ụ tên là “mysqlfrm” để tạo lại cấu trúc bảng. . Bước 2. Tạo lại bảng trong cơ sở dữ liệu mới. . Bước 3. Xóa tệp IBD mới. . Bước 4. Sao chép tệp IBD cũ. . Bước 5. Kích hoạt lại bảng Làm thế nào để nhập một. IBD vào MySQL?Bạn sẽ cần biết cấu trúc chính xác của bảng (câu lệnh CREATE TABLE). . Tạo bảng có cùng cấu trúc Chạy ALTER TABLE tên_bảng DISCARD TABLESPACE; Sao chép tệp ibd vào table_name. ibd ở vị trí đích Chạy ALTER TABLE tên_bảng NHẬP KHẨU TABLESPACE; Là gì. Tệp FRM trong MySQL?Tệp FRM là tệp biểu mẫu được sử dụng làm tệp định dạng Cơ sở dữ liệu MySQL . Khi một bảng mới được tạo trong MySQL, thì tệp FRM sẽ tồn tại. Các tệp biểu mẫu này được sử dụng để xác định các trường trong bảng. Nó cũng được sử dụng để biểu diễn thông tin định dạng về cấu trúc của bảng. |