Tự động sao lưu mysql trên Ubuntu


12

Tôi có một máy chủ Ubuntu với cơ sở dữ liệu Mysql. Tôi muốn thiết lập một bản sao lưu tự động của cơ sở dữ liệu này vào ban đêm trên một máy chủ khác (ví dụ như ovh).

Tôi không biết điều gì sẽ là công cụ tốt nhất cho việc đó. Nếu ai đó có vài lời khuyên ...

Cảm ơn trước.

Câu trả lời:


29

Cách dễ nhất để tự động hóa tác vụ này sẽ là sự kết hợp giữa MySQL Dumps và cronjob. Bạn có thể tìm thấy rất nhiều thông tin về chủ đề này trên trang này và các trang internet khác, nhưng vì mục đích hoàn thành:

Tạo một tệp mysqldump.sh

Cái nào sẽ chứa lệnh kết xuất mysql mà chúng ta sẽ lên lịch trong một công việc định kỳ (thay thế người dùng, mật khẩu và đường dẫn để phù hợp với môi trường của bạn):

mysqldump -u root -p<mysql_root_password> --all-databases | gzip > /desired/backup/folder/mysqldb_`date +%F`.sql.gz

Chỉnh sửa: Nếu bạn muốn tập lệnh lưu trữ bản sao lưu ở một vị trí xa, chỉ cần gắn thiết bị tương ứng hoặc chia sẻ và sử dụng đường dẫn gắn kết trong tập lệnh.

Kiểm tra kịch bản

Đảm bảo rằng tập lệnh có quyền thực thi:

chmod +x /path/to/mysqldump.sh

Thực thi tập lệnh:

sh /path/to/mysqldump.sh

Và kiểm tra xem nó có hoạt động chính xác không (Tệp sao lưu sẽ được tạo trong thư mục sao lưu đã chỉ định).

Tạo và lên lịch cho một công việc định kỳ mới

Trong một dấu nhắc lệnh

sudo crontab -e

Và thêm dòng sau vào cuối tập tin:

30 23 * * * /path/to/mysqldump.sh

Điều này sẽ thực thi kịch bản mỗi ngày vào lúc 23:30.

Mở rộng tập lệnh đơn giản này

Có rất nhiều thứ bạn có thể làm để cải thiện phương thức sao lưu đơn giản này:

  • Sao lưu vào hệ thống khác
  • Giám sát không gian đĩa
  • Báo cáo qua email
  • ...

Vì vậy, đừng kết thúc ở đây và thử nghiệm! :-)

Sử dụng các công cụ sao lưu hoặc dịch vụ sao lưu dựa trên đám mây

Mặc dù phương pháp trên là một trong những phương pháp dễ nhất và có thể được mở rộng để phù hợp với nhu cầu cụ thể của bạn, nhưng điều đáng nói là có những lựa chọn thay thế khác:

  • các công cụ sao lưu như AutoMyQueryBackup, một ứng dụng nguồn mở có thể giúp dễ dàng quá trình định cấu hình Thông báo email, nén, mã hóa, xoay và loại (ví dụ: tăng dần) các bản sao lưu của bạn. Đối với Mai 2018, nó có sẵn cho Ubuntu Server thông qua APT.
  • các dịch vụ sao lưu dựa trên đám mây như BackupBird, myRepono, Bitcan, v.v ... có thể thú vị nếu bạn quản lý một số máy chủ cơ sở dữ liệu và muốn quản lý tập trung tất cả các bản sao lưu của chúng.

Xin lưu ý rằng tôi không liên quan đến bất kỳ giải pháp và dịch vụ nào được đề cập ở trên và tôi chỉ liệt kê chúng để tham khảo, vì vậy hãy tự chịu rủi ro khi sử dụng chúng.

Liên kết hữu ích / Tài liệu tham khảo:

Cron -> https://en.wikipedia.org/wiki/Cron

Kết xuất MySQL -> https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html


4
Sử dụng date +%F- sẽ tự động chọn kết hợp năm + tháng + ngày phù hợp với ngôn ngữ của người dùng (ví dụ: tôi sẽ nhận được YYYY-MM-DD).
muru

Ồ vâng, tốt hơn nhiều. Tôi sẽ chỉnh sửa câu trả lời :-)
Eduardo López

+1 Câu trả lời hay: chính xác những gì cần thiết ở đây, không hơn, không kém.
Jos

2
Nếu bạn phải sử dụng sudo để thực hiện thao tác này (a) hãy gọi sudo crontab -evà đừng quên làm cho tập lệnh có thể thực thi được:chmod +x /path/to/mysqldump.sh
zinon

zinon - Cảm ơn những gợi ý! Tôi cập nhật câu trả lời.
Eduardo López
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.