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 --backup
tùy chọn yêu cầu nó thực hiện sao lưu và với --target-dir
tù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 --prepare
tù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-back
hoặc các --move-back
tùy chọn. Các --copy-back
tùy chọn cho phép bạn giữ các tập tin sao lưu gốc. Các --move-back
tù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.
- Đầu tiên, dừng tiến trình Máy chủ MariaDB .
- Sau đó, đảm bảo rằng
datadir
trống. - Sau đó, chạy Mariabackup với một trong các tùy chọn được đề cập ở trên:
$ mariabackup --copy-back \
--target-dir=/var/mariadb/backup/
- Sau đó, bạn có thể cần phải sửa các quyền đối với tệp.
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à mysql
cho cả hai. Ví dụ: để thay đổi đệ quy quyền sở hữu tệp cho mysql
ngườ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ư cp
hoặ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!