Hướng dẫn thực hiện Full Backup và Restore với Mariabackup

Hướng dẫn thực hiện Full Backup và Restore với Mariabackup 1

Trong bài viết này, Tino Group sẽ hướng dẫn bạn cách thực hiện Full Backup và Resore với Mariabackup nhé!

Sao lưu dữ liệu cùng Mariabackup

Khi sử dụng Mariabackup, bạn có tùy chọn thực hiện sao lưu full hoặc incremental backup (sao lưu gia tăng). Các bản sao lưu full tạo ra một bản sao lưu hoàn chỉnh của máy chủ cơ sở dữ liệu trong một thư mục trống mà chúng ta chỉ định, trong khi các bản sao lưu incremental cập nhật bản sao lưu trước đó với bất kỳ thay đổi nào đối với dữ liệu đã xảy ra kể từ khi sao lưu. 

Hướng dẫn tạo Backup trên database server

Để sao lưu cơ sở dữ liệu, bạn cần chạy Mariabackup với --backuptùy chọn yêu cầu nó thực hiện sao lưu và với --target-dirtùy chọn cho biết vị trí đặt các tệp sao lưu. Khi thực hiện một bản sao lưu đầy đủ, thư mục đích phải trống hoặc nó không được tồn tại.

Để sao lưu, hãy chạy lệnh sau:

$ mariabackup --backup \
   --target-dir=/var/mariadb/backup/ \
   --user=mariabackup --password=mypassword

Thời gian sao lưu phụ thuộc vào kích thước của cơ sở dữ liệu hoặc bảng mà bạn đang sao lưu. Bạn có thể hủy sao lưu nếu cần, vì quá trình sao lưu không sửa đổi cơ sở dữ liệu.

Mariabackup ghi các tệp sao lưu vào thư mục đích. Nếu thư mục đích không tồn tại, thì nó sẽ tạo ra nó. Nếu thư mục đích tồn tại và chứa các tệp, thì nó sẽ gây ra lỗi và hủy bỏ.

Đây là một thư mục sao lưu ví dụ:

$ ls /var/mariadb/backup/

aria_log.0000001  mysql                   xtrabackup_checkpoints
aria_log_control  performance_schema      xtrabackup_info
backup-my.cnf     test                    xtrabackup_logfile
ibdata1           xtrabackup_binlog_info

Chuẩn bị file backup để có thể restore

Các tệp dữ liệu mà Mariabackup tạo trong thư mục đích không nhất quán theo thời điểm, vì các tệp dữ liệu được sao chép vào các thời điểm khác nhau trong quá trình sao lưu. Nếu bạn cố gắng khôi phục từ các tệp này, InnoDB sẽ nhận thấy sự mâu thuẫn và sự cố để bảo vệ bạn khỏi bị hỏng

Trước khi có thể khôi phục từ bản sao lưu, trước tiên bạn cần chuẩn bị nó để làm cho các tệp dữ liệu nhất quán. Bạn có thể làm như vậy với --preparetùy chọn.

$ mariabackup --prepare \
   --target-dir=/var/mariadb/backup/

Restore file backup đã chuẩn bị trước đó

Khi quá trình sao lưu hoàn tất và bạn đã chuẩn bị sao lưu để khôi phục (bước trước), bạn có thể khôi phục bản sao lưu bằng cách sử dụng --copy-backhoặc các --move-backtùy chọn. Các --copy-backtùy chọn cho phép bạn giữ các tập tin sao lưu gốc. Các --move-backtùy chọn thực sự di chuyển các tập tin sao lưu vào datadir, vì vậy các tập tin sao lưu gốc bị mất.

$ mariabackup --copy-back \
   --target-dir=/var/mariadb/backup/

Khi Mariabackup khôi phục cơ sở dữ liệu, nó sẽ bảo toàn các đặc quyền về tệp và thư mục của bản sao lưu. Tuy nhiên, nó ghi các tệp vào đĩa với tư cách là người dùng và nhóm khôi phục cơ sở dữ liệu. Do đó, sau khi khôi phục bản sao lưu, bạn có thể cần điều chỉnh chủ sở hữu của thư mục dữ liệu để phù hợp với người dùng và nhóm cho Máy chủ MariaDB, thường là mysqlcho cả hai. Ví dụ: để thay đổi đệ quy quyền sở hữu tệp cho mysqlngười dùng và nhóm, bạn có thể thực thi:

$ chown -R mysql:mysql /var/lib/mysql/

Sau khi hoàn tất, chúng ta có thể start lại mariadb để hoạt động.

Restore bằng các công cụ khác

Sau khi một bản sao lưu đầy đủ được chuẩn bị, nó là một thư mục dữ liệu MariaDB đầy đủ chức năng. Do đó, miễn là quá trình Máy chủ MariaDB bị dừng trên máy chủ đích, về mặt kỹ thuật, bạn có thể khôi phục bản sao lưu bằng bất kỳ công cụ sao chép tệp nào, chẳng hạn như cphoặc rysnc. Ví dụ: bạn cũng có thể thực hiện các thao tác sau để khôi phục bản sao lưu:

$ rsync -avrP /var/mariadb/backup /var/lib/mysql/
$ chown -R mysql:mysql /var/lib/mysql/
$ rm /var/lib/mysql/ib_logfile*

Chúc bạn thao tác thành công!

CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO

Exit mobile version