Khôi phục cơ sở dữ liệu mysql từ các tệp ibdata và frm

Bạn đang tìm cách khôi phục Cơ sở dữ liệu MySQL bị hỏng? . Cơ sở dữ liệu MySQL được sử dụng cho nhiều mục đích như kho dữ liệu, ứng dụng ghi nhật ký và ứng dụng thương mại điện tử. Người ta thậm chí có thể lưu trữ một bản ghi thông tin hoặc toàn bộ chi tiết của sản phẩm bằng cơ sở dữ liệu này

Khôi phục cơ sở dữ liệu mysql từ các tệp ibdata và frm

Tuy nhiên, dữ liệu và bảng trong cơ sở dữ liệu MySQL được lưu trữ ở các định dạng tệp khác nhau. Và việc mất các tệp này có thể gây hại cho doanh nghiệp của bạn. Vì vậy, trong bài viết này, chúng tôi sẽ thảo luận về một số phương pháp thực tế để khôi phục các loại tệp MySQL này. Vậy hãy bắt đầu

Cơ sở dữ liệu MySQL là gì?

MySQL là một hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) dựa trên SQL. Nó hiện đã trở thành một thành phần của dòng sản phẩm máy chủ cơ sở dữ liệu và công cụ phát triển của công ty mẹ MySQL AB. Ngày nay, nó được sử dụng rộng rãi trong các ứng dụng, chẳng hạn như kho dữ liệu, thương mại điện tử, cơ sở dữ liệu Web, ứng dụng ghi nhật ký và ứng dụng phân tán. Giờ đây, nó trở thành cơ sở dữ liệu nguồn mở phổ biến nhất thế giới nhờ hiệu suất nhanh, độ tin cậy cao, dễ sử dụng và tiết kiệm chi phí đáng kể

Ở đây, chúng ta sẽ thảo luận về cách khôi phục các tệp cơ sở dữ liệu MySQL và một số định dạng tệp này là

frm – Tệp cấu trúc bảng

ibd – Ở định dạng tệp này, dữ liệu và chỉ mục bảng InnoDB được lưu

Db. opt – Chứa các đặc điểm của cơ sở dữ liệu được chỉ định

myi – Các chỉ mục của bảng MyISAM được lưu trong tệp này

Bây giờ, hãy khám phá một số phương pháp khôi phục cơ sở dữ liệu MySQL

Các phương pháp khôi phục cơ sở dữ liệu MySQL

Nếu bạn đang sử dụng MySQL DB, thì có các tùy chọn cho Xuất dữ liệu và Nhập/Khôi phục dữ liệu. Bằng cách sử dụng bất kỳ tính năng nào trong số này, người ta có thể dễ dàng khôi phục cơ sở dữ liệu MySQL. Người dùng cũng nên tạo bản sao lưu cho cơ sở dữ liệu MySQL, sau đó khôi phục nó bằng lệnh mysqldump trong cmd.  

Có một kỹ thuật khác được sử dụng để khôi phục cơ sở dữ liệu MySQL. Và đó là nếu bạn có một bản sao lưu cho dữ liệu trước đó. Vì vậy, chúng ta hãy xem xét phương pháp này

  • Đầu tiên, Cài đặt MySQL Server trên hệ thống của bạn. Bạn cũng có thể cài đặt phiên bản tương tự nếu muốn khôi phục dữ liệu từ phiên bản hiện có
  • Sau đó, dừng dịch vụ MySQL để thêm các thư mục dữ liệu
  • Sau đó, sao chép thư mục dữ liệu sao lưu vào thư mục MySQL > data > mới
  • Khi dữ liệu cần thiết được thêm vào thư mục MySQL mới, hãy khởi động lại dịch vụ MySQL
  • Bây giờ, hãy kiểm tra và sửa chữa các bảng cơ sở dữ liệu. Người dùng cũng có thể kiểm tra các bảng cơ sở dữ liệu bằng lệnh mysqlcheck, sau đó là REPAIR. Thực hiện các bước này đảm bảo rằng các bảng cơ sở dữ liệu không bị hỏng
  • Sau khi hoàn tất việc sửa chữa dữ liệu bị hỏng, bạn có thể xuất cơ sở dữ liệu sang tệp kết xuất SQL hoặc tệp SQL

Ghi chú. Phương pháp này chỉ hoạt động đối với các bảng MyISAM và không khôi phục các bảng InnoDB

Khôi phục cơ sở dữ liệu SQL từ các tệp ibdata và frm?

Không khó để khôi phục cơ sở dữ liệu mysql từ các tệp frm. Nó không đủ, bạn chỉ cần sao chép. frm vào thư mục cơ sở dữ liệu nhưng bạn cũng cần sao chép tệp ib_logfiles và ibdata vào thư mục dữ liệu của mình. Bây giờ, sao chép. frm và chỉ cần khởi động lại máy chủ và cơ sở dữ liệu của bạn sẽ được khôi phục

Sau khi sao chép các tệp trên, hãy thực hiện lệnh sau

sudo chown -R mysql. mysql/var/lib/mysql

Lệnh được đề cập ở trên sẽ thay đổi chủ sở hữu tệp trong mysql và thư mục của nó thành người dùng MySql. Và điều đó rất quan trọng đối với mysql để đọc. tập tin frm và ibdata

Nếu có sẵn các bản sao lưu và bạn có kỹ thuật tốt, thì bạn có thể làm theo quy trình thủ công. Nếu bạn đã mất hoàn toàn cơ sở dữ liệu của mình, thì phương pháp thủ công sẽ không có lợi hơn trong việc khôi phục cơ sở dữ liệu đó. Có một tùy chọn thay thế có thể khôi phục ngay cả dữ liệu đã xóa vĩnh viễn

Giải pháp thay thế để khôi phục cơ sở dữ liệu MySQL

Nếu các quy trình trên không khôi phục được cơ sở dữ liệu thì bạn có thể chọn công cụ SysInfo MySQL Database Repair. Nó là một trong những công cụ tốt nhất để sửa chữa và khôi phục dữ liệu từ cơ sở dữ liệu MySQL bị hỏng. Tiện ích tạo điều kiện cho người dùng xem trước mọi đối tượng của cơ sở dữ liệu MySQL đã sửa chữa trước khi lưu nó. Nó đi kèm với một số tính năng nâng cao mà bạn hoàn toàn có thể dựa vào

Phần kết luận

Bài viết trình bày các cách khôi phục cơ sở dữ liệu MySQL bị hỏng. Có thể khó khăn với các phương pháp thủ công, nhưng cần phải truy xuất dữ liệu từ cơ sở dữ liệu bị hỏng. Như vậy, trên đây mình đã đề cập đến một giải pháp hữu hiệu giúp bạn sửa chữa, khôi phục cơ sở dữ liệu MySQL cho máy chủ MySQL

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 IBD

Nế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 số 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

  • Sinh ra một phiên bản MySQL mới và chạy phục hồi cấu trúc. yêu cầu –server hoặc –basedir cùng với –port
  • Khôi phục bảng mà không cần phiên bản MySQL. yêu cầu –diagnostic đọc. frm từng byte một và cố gắng khôi phục tất cả thông tin có thể.  

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 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ụ 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 “/mytable.frm” > “/recovered_mytable.sql”

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àn của tôi. frm
  • bàn của tôi. 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

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 “/mytable.frm” > “

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 “recovered_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

  1. Sử dụng mysqlbackup với tùy chọn --only-innodb hoặc --only-innodb-with-frm để sao lưu InnoDBinstallation
  2. Chạy mysqlbackup
  3. Áp dụng -log để tạo phiên bản nhất quán của cơ sở dữ liệu sao lưu
  4. Bắt đầu một máy chủ mysqld thứ hai (giả) trên bản sao lưu và để nó dọn sạch. Các tệp IBD trong bản sao lưu. Chờ quá trình dọn dẹp kết thúc
  5. Tắt máy chủ mysqld giả
  6. làm sạch. Tệp IBD 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 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

Làm cách nào để khôi phục dữ liệu từ tệp IBD MySQL?

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

Cách khôi phục dữ liệu bảng InnoDB MySQL bằng cách sử dụng. ibdata và. tập tin frm?

tệp frm. .
Bước 1. Giới thiệu về Lỗi. Đôi khi, khi mở cơ sở dữ liệu MySQL, bạn có thể thấy rằng dữ liệu của một hoặc nhiều bảng bị thiếu. .
Bước 2. Các lý do có thể xảy ra đằng sau việc thiếu dữ liệu trong bảng InnoDB. .
Bước 3. Kiểm tra thư mục dữ liệu MySQL. .
Bước 4. Sao chép tệp MySQL. .
Bước 5. Khôi phục dữ liệu bảng InnoDB MySQL

Cách sử dụng. frm trong MySQL?

Hướng dẫn từng bước để mở. .
Cài đặt Công cụ sửa chữa MySQL
Nhấp vào nút Duyệt để mở Cơ sở dữ liệu MySQL. tập tin frm
Bây giờ, sau khi quét, hãy khám phá tệp FRM đã chọn với thông tin chi tiết
Nhấp vào Lưu dữ liệu MySQL và chọn chế độ lưu và nhấp vào nút OK
Bây giờ lưu đã phục hồi

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;