Làm cách nào để sao lưu và khôi phục một bảng trong mysql?

Chơi với dữ liệu trong cơ sở dữ liệu đôi khi rất phức tạp nhưng khi bạn bắt tay vào việc thì đó chỉ là một vài dòng trên dòng lệnh. Cách đây một thời gian, chúng tôi đã chuyển từ Piwik PRO sang Matomo và tất nhiên chúng tôi muốn di chuyển nhật ký. Chúng tôi không thể chỉ sử dụng kết xuất cơ sở dữ liệu MySQL/MariaDB đầy đủ và đi kèm với nó dưới dạng tên bảng và lược đồ thì khác (Piwik PRO 3. 1. 1. -> Matomo 3. 5. 1). Nói tóm lại, chúng tôi cần xuất một vài bảng và đổi tên chúng để khớp với phiên bản mới tương tự như đã thảo luận trong Stack Overflow

Có một plugin VisitExport dành cho Piwik/Matomo cho phép bạn xuất và nhập các bảng nhật ký bằng các tệp PHP và JSON nhưng có vẻ như đó không phải là cách tiếp cận khả dụng cho trường hợp sử dụng của chúng tôi với các bảng có kích thước 500 MB hoặc hơn

Giải pháp thiết thực hơn là chỉ cần tạo một kết xuất các bảng mà chúng tôi muốn khôi phục riêng

Nhiều người quan tâm đến câu hỏi làm thế nào để tạo bản sao lưu của một bảng cơ sở dữ liệu MySQL chứ không phải toàn bộ cơ sở dữ liệu

Bản sao lưu này có thể được sử dụng, ví dụ, nếu bạn vượt quá giới hạn kích thước của các tệp trên máy chủ lưu trữ, nơi bạn lưu trữ cơ sở dữ liệu. Cũng có thể thuận tiện nếu bạn có một hoặc nhiều bảng được cập nhật thường xuyên hơn so với phần còn lại của cơ sở dữ liệu - thì bạn nên thực hiện sao lưu một bảng thường xuyên hơn

Sao lưu thường xuyên các tệp dữ liệu được sử dụng nhiều có thể rút ngắn thời gian khôi phục trong một số trường hợp. Sao lưu hàng ngày của các vùng bảng được cập nhật thường xuyên sẽ giảm số lượng giao dịch phải được áp dụng lại mà không phải thực hiện sao lưu toàn bộ cơ sở dữ liệu hàng ngày

Có một số cách để tạo bản sao lưu của bảng MySQL

Phương pháp 1. Toán tử bảng dự phòng

Toán tử MySQL "bảng sao lưu" có thể tạo các bảng cơ sở dữ liệu riêng lẻ. Điều đó chỉ có thể được áp dụng cho loại bảng MyISAM

Cú pháp của bảng sao lưu

BẢNG SAO LƯU tbl_name [, tbl_name]. ĐẾN '/way-to-backup-catalog'

Xin lưu ý toán tử này có sẵn trong MySQL phiên bản 5. 0 và các phiên bản trước đó. Bây giờ, nó không được dùng nữa và đề xuất là sử dụng tập lệnh mysqlhotcopy và tiện ích mysqldump


Phương pháp 2. Tập lệnh Mysqlhotcopy

Mysqlhotcopy là một tập lệnh Perl đặc biệt để sao lưu MySQL. Tập lệnh này cho phép bạn tạo bản sao lưu của một bảng cơ sở dữ liệu, nhưng nó có một số hạn chế

Thứ nhất, nó không hoạt động từ xa (bạn phải chạy nó trên máy tính có cơ sở dữ liệu)

Thứ hai, tập lệnh chỉ sao lưu một số loại bảng nhất định như MyISAM và ARCHIVE

Thứ ba, nó không hoạt động trên hệ thống Window

Phương pháp 3. Tiện ích Mysqldump

Tiện ích mysqldump tổng quát hơn mysqlhotcopy, vì nó cho phép bạn sao lưu bất kỳ loại bảng nào. Đây là tiện ích “tích hợp sẵn” và bạn không cần tải xuống

Mysqldump cho phép bạn tạo bản sao lưu của một hoặc nhiều bảng cơ sở dữ liệu MySQL. Cú pháp là

mysqldump-u NGƯỜI DÙNG-p BẢNG CƠ SỞ DỮ LIỆU MẬT KHẨU> C. \ table_backup. sql

Phương pháp 4. Sao chép tập tin trực tiếp

Trong một số trường hợp, các bảng được lưu trữ trong các tệp riêng biệt (ví dụ: bảng MyISAM). Điều này cho phép bạn tạo bản sao lưu bằng cách sao chép đơn giản tất cả các tệp được liên kết với bảng (. từ,. MYD, và. MYI). Bạn cần dừng máy chủ hoặc thực hiện “khóa đọc” (bạn có thể sao chép tất cả các tệp với điều kiện máy chủ hiện đang ở trạng thái “không cập nhật”)

Phương pháp này không hoạt động đối với loại bảng InnoDB, vì trong trường hợp đó, MySQL có thể lưu trữ dữ liệu bảng ở các vị trí khác nhau và không chỉ trong thư mục cơ sở dữ liệu

Bảng sao lưu MySQL cũng có thể được thực hiện bằng cách sử dụng phần mềm đặc biệt

Phương pháp 5. Bàn làm việc MySQL

MySQL Workbench là một công cụ phát triển trực quan bao gồm nhiều thành phần khác nhau để quản trị cơ sở dữ liệu MySQL đồ họa

MySQL Workbench cho phép bạn tạo bản sao lưu của một bảng cơ sở dữ liệu bằng trình chỉnh sửa trực quan. Để thực hiện việc này, hãy vào Quản trị máy chủ, mở cơ sở dữ liệu và chọn Kết xuất dữ liệu. Nhấp vào cơ sở dữ liệu của bạn và chọn một bảng từ danh sách mà bạn muốn sao lưu

Phương pháp 6. sao lưu tiện dụng

Handy Backup có một trình cắm tích hợp cho phép bạn tạo bản sao lưu của một bảng cơ sở dữ liệu MySQL


Làm cách nào để sao lưu và khôi phục một bảng trong mysql?

Chương trình tạo một tệp kết xuất cho mỗi bảng. Tệp này chứa tất cả thông tin cần thiết để xây dựng lại bảng

Bạn có thể sử dụng nhiều tùy chọn bổ sung và lợi thế của Handy Backup khi lưu các bảng MySQL, bao gồm những thứ như

  • Mã hóa và nén tích hợp;
  • Lưu trữ nhiều phiên bản và bản sao khác nhau của một bảng;
  • Sử dụng lưu trữ trực tuyến như NAS, FTP hoặc dịch vụ đám mây (WebDAV, S3, OneDrive, Dropbox, v.v. );
  • Chạy phần mềm khác trước hoặc sau một tác vụ (e. g. , để dừng và khởi động lại MySQL);
  • Lên lịch chính xác thời gian bắt đầu và lặp lại để sao lưu, cũng như kích hoạt các tác vụ theo sự kiện

Giải pháp được đề nghị

Làm cách nào để sao lưu và khôi phục một bảng trong mysql?

Phiên bản 8. 4. 3, được xây dựng vào ngày 24 tháng 11 năm 2022. 115 MB
Phần mềm sao lưu từ Novosoft LLC. 249 USD mỗi giấy phép.

Giải pháp hoàn hảo cho một máy chủ, phiên bản dành cho doanh nghiệp nhỏ chứa phần bổ trợ MySQL chuyên dụng và tất cả phần bổ trợ lưu trữ ngay lập tức

Bạn cũng có thể mua plug-in này độc lập cho phiên bản Tiêu chuẩn và Chuyên nghiệp. Ngoài ra, bạn có thể tìm thêm nhiều thông tin về plug-in trên trang này

Làm cách nào để khôi phục một bảng trong MySQL?

Có một số cách mà chúng tôi có thể tiếp cận vấn đề này. Chúng tôi chỉ có thể tạo một bản sao lưu nhất quán cho toàn bộ tập dữ liệu nhưng điều này sẽ tạo ra một tệp lớn, duy nhất chứa tất cả dữ liệu. Để khôi phục một bảng, chúng tôi sẽ phải trích xuất dữ liệu cho bảng từ tệp đó .

Làm cách nào chúng tôi có thể sao lưu bảng MySQL và làm cách nào để khôi phục nó?

Bạn có thể sao lưu và khôi phục Cơ sở dữ liệu MySQL bằng mysqldump thông qua dòng lệnh hoặc PHPMyAdmin. .
Khôi phục cơ sở dữ liệu MySQL. .
Khôi phục một cơ sở dữ liệu MySQL đơn lẻ từ một tệp kết xuất MySQL đầy đủ. .
Xuất và nhập cơ sở dữ liệu MySQL trong một lệnh

Chúng tôi có thể khôi phục một bảng trong SQL Server không?

Bạn có thể sử dụng lệnh STOPAT để khôi phục bảng từ bản sao lưu cơ sở dữ liệu SQL . Bây giờ, để chỉ khôi phục một bảng từ tệp sao lưu SQL Server, bạn cần sao chép dữ liệu từ bản sao lưu sang cơ sở dữ liệu đích.