Sao lưu và khôi phục Cơ sở dữ liệu MariaDB/MySQL

Tác giả sysadmin, T.Một 01, 2023, 02:36:08 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 2 Khách đang xem chủ đề.

Sao lưu và khôi phục Cơ sở dữ liệu MariaDB/MySQL


Điều quan trọng là phải thường xuyên sao lưu dữ liệu quan trọng được lưu trữ trong cơ sở dữ liệu để dữ liệu có thể được khôi phục trong trường hợp có bất kỳ sự cố nào. Ví dụ về các sự cố như vậy bao gồm lỗi máy chủ cơ sở dữ liệu, giả mạo dữ liệu, hỏng và bất kỳ số sự cố cụ thể nào khác của hệ thống tệp đang tìm cách gây hại cho cơ sở dữ liệu của bạn.

Ở đây chúng tôi sẽ giới thiệu cách sao lưu và khôi phục cơ sở dữ liệu SQL từ MariaDB/MySQL.Máy chủ thử nghiệm của chúng tôi đang chạy CentOS 7 tuy nhiên các lệnh này là dành riêng cho MariaDB/MySQL nên phiên bản hệ điều hành không quan trọng.

Hãy xem hướng dẫn của chúng tôi về cách cài đặt và định cấu hình MariaDB tại đây nếu bạn mới bắt đầu.

1. Sao lưu cơ sở dữ liệu MariaDB/MySQL

Việc sao lưu cơ sở dữ liệu có thể được thực hiện khi máy chủ đang trực tuyến và cơ sở dữ liệu đang tích cực phục vụ các truy vấn, không có thời gian ngừng hoạt động liên quan đến quá trình này. Quá trình sao lưu về cơ bản sẽ xuất ra một tệp kết xuất chứa cấu trúc cơ sở dữ liệu đầy đủ cho phép kết quả được nhập và khôi phục ở nơi khác.

Để tạo tệp kết xuất này, chúng ta có thể sử dụng lệnh 'mysqldump' như hình bên dưới.

Mã nguồn [Chọn]
mysqldump -u root -p database-name > /root/database-backup.sql
Để sử dụng mysqldump, người dùng có cấp quyền chính xác (CHỌN, HIỂN THỊ VIEW, KÍCH HOẠT) trên cơ sở dữ liệu cần được chỉ định, trong ví dụ này, chúng tôi đang sử dụng người dùng root như được chỉ định bởi cờ -u. Cờ -p chỉ định mật khẩu, tuy nhiên, cách tốt nhất là không nên cung cấp mật khẩu trong lệnh, vì điều này có nghĩa là bất kỳ ai có thể xem lịch sử lệnh sẽ có thể xem mật khẩu ở dạng văn bản rõ ràng. Thay vào đó, nếu bạn chỉ định -p mà không có mật khẩu, bạn sẽ được nhắc nhập mật khẩu sau khi nhập lệnh, đây là một tùy chọn an toàn hơn nhiều. 'database-name' là tên của cơ sở dữ liệu mà chúng tôi muốn kết xuất, sau đó chúng tôi lưu đầu ra vào tệp /root/database-backup.sql.

Xin lưu ý rằng nội dung của tệp database-backup.sql ở dạng văn bản rõ ràng và có thể chứa dữ liệu nhạy cảm tùy thuộc vào nội dung được lưu trữ trong cơ sở dữ liệu cụ thể của bạn. Nội dung của tệp sẽ chứa các truy vấn SQL cần thiết để tạo lại cơ sở dữ liệu.

Bạn có thể tùy chọn chỉ định --all-databases thay vì tên cơ sở dữ liệu sẽ kết xuất tất cả cơ sở dữ liệu thay vì một cơ sở dữ liệu cụ thể.

2. Khôi phục cơ sở dữ liệu MariaDB/MySQL

Khôi phục cơ sở dữ liệu cũng có thể được thực hiện trực tuyến. Cơ sở dữ liệu có thể được khôi phục từ tệp đã kết xuất trước đây của chúng tôi, /root/database-backup.sql vì nó chứa tất cả các truy vấn SQL cần thiết để xây dựng lại toàn bộ cơ sở dữ liệu. Việc khôi phục được thực hiện đơn giản bằng lệnh bên dưới, trong đó chúng tôi lại chỉ định người dùng và được nhắc nhập mật khẩu, đồng thời chuyển tệp.sql vào cơ sở dữ liệu 'tên cơ sở dữ liệu'.

Mã nguồn [Chọn]
mysql -u root -p database-name < /root/database-backup.sql
Khi quá trình này hoàn tất, cơ sở dữ liệu sẽ có sẵn trong phiên bản đang chạy của MariaDB/MySQL, tệp mà bạn đã nhập từ đó cũng sẽ vẫn tồn tại, vì vậy bạn có thể lưu trữ tệp đó một cách an toàn vào thời điểm này hoặc xóa tệp nếu không còn cần thiết.

Như được hiển thị chỉ với một lệnh, bạn có thể thực hiện kết xuất cơ sở dữ liệu đầy đủ sẽ hoạt động như một bản sao lưu của cơ sở dữ liệu được chỉ định hoặc thậm chí tất cả các cơ sở dữ liệu tồn tại. Tệp được tạo từ quy trình này chứa các truy vấn SQL văn bản rõ ràng có khả năng xây dựng lại toàn bộ cơ sở dữ liệu. Sau đó, tệp đã xuất có thể được nhập trở lại vào cùng một phiên bản MariaDB/MySQL hoặc thậm chí là một phiên bản khác trên một máy chủ hoàn toàn khác.