close

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

Tác giả: Nguyen Văn Phong Ngày cập nhật: 26/09/2021 Chuyên mục: Hỗ trợ Web hosting
Disclosure
Website Wiki.tino.org được cung cấp bởi Tino Group. Truy cập và sử dụng website đồng nghĩa với việc bạn đồng ý với các điều khoản và điều kiện trong chính sách bảo mật - điều khoản sử dụng nội dung. Wiki.tino.org có thể thay đổi điều khoản sử dụng bất cứ lúc nào. Việc bạn tiếp tục sử dụng Wiki.tino.org sau khi thay đổi có nghĩa là bạn chấp nhận những thay đổi đó.
Why Trust Us
Các bài viết với hàm lượng tri thức cao tại wiki.tino.org được tạo ra bởi các chuyên viên Marketing vững chuyên môn và được kiểm duyệt nghiêm túc theo chính sách biên tập bởi đội ngũ biên tập viên dày dặn kinh nghiệm. Mọi nỗ lực của chúng tôi đều hướng đến mong muốn mang đến cho cộng đồng nguồn thông tin chất lượng, chính xác, khách quan, đồng thời tuân thủ các tiêu chuẩn cao nhất trong báo cáo và xuất bản.

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/
  • 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à 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!

Bài viết liên quan

CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO
Trụ sở chính: L17-11, Tầng 17, Tòa nhà Vincom Center, Số 72 Lê Thánh Tôn,  Phường Bến Nghé, Q. 1, TP. Hồ Chí Minh

Văn phòng kinh doanh: Số 42 Trần Phú, Phường 4, Quận 5, TP HCM
GPKD số 0315679836 do Sở KH và ĐT TP Hồ Chí Minh cấp
Hotline: 0364 333 333
Góp ý/Phản ánh dịch vụ: 0933 000 886