in

Cách sao lưu database MySQL tự động

Nếu bạn là một quản trị mạng và có máy chủ của riêng mình, bạn nên đặc biệt chú ý đến cơ sở dữ liệu (database) của mình. Đặc biệt là khi bạn có website thì cần sao lưu cơ sở dữ liệu mỗi ngày. Tuy nhiên đây là một việc nhàm chán. Hiện nay nhiều Control Panel đều có tính năng sao lưu bao gồm database, nhưng nếu nhu cầu của bạn là sao lưu một cơ sở dữ liệu nào đó thường xuyên thì sao?

Bài viết này sẽ giúp bạn thực hiện tự động sao lưu dữ liệu bằng cron – một lệnh lập lịch tự động chạy trên hệ điều hành Unix / Linux. Bạn có thể tìm thấy cron trong hầu hết các bản phân phối Unix / Linux và thường thì nó sẽ tự động cập nhật với hệ điều hành. Nó đọc một file cấu hình ( /etc/crontab ) khi nó khởi động và tiếp tục chạy trong khi máy tính đang chạy.

Mặc định, lệnh này sẽ thực thi một số chương trình tại một số thời điểm nhất định. Ví dụ bạn có thể thiết lập để cron tự thực hiện lệnh khởi động lại máy chủ của mình lúc 3:00 sáng mỗi ngày. Vì vậy,  bạn có thể tận dụng lệnh cron để sao lưu cơ sở dữ liệu MySQL tự động.

Cách sao lưu database MySQL tự động

Bước 1: Chạy lệnh crontab -e hoặc bạn chỉnh sửa file /etc/crontab.

Bước 2: Thêm dòng sau:
15 2 * * * root mysqldump -u root -pPASSWORD –all-database | gzip > /backup/database_`date ‘+% m-% d-% Y”.sql.gz

  • Phần đầu tiên là “15 2 * * *” có nghĩa tương ứng là “phút, giờ, ngày trong tháng, tháng, ngày trong tuần”. Ký tự ‘*’ là viết tắt của “any”.
  • Tiếp theo, “root”, có nghĩa là chạy lệnh với tư cách là tài khoản root.
  • Phần cuối cùng là lệnh.
    • mysqldump -u root -pPASSWORD –all-databases có nghĩa là sao lưu tất cả các cơ sở dữ liệu MySQL.
    • | gzip có nghĩa là chuyển bản sao lưu sang gzip để nén nó.
    • /backup/database_`date ‘+% m-% d-% Y”.sql.gz nghĩa là đặt tệp sau khi nén vào  /backup/ và đặt tên là database_`date ‘+% m-% d-% Y’`.sql.gz. “date” là lệnh hiển thị thời gian hiện tại. date ‘+% m-% d-% Y “hiển thị ngày hiện tại sử dụng định dạng’ MM-DD-YYYY ‘. Vì vậy, lệnh này tạo một tệp sao lưu nén mỗi ngày và tên của nó là “database_MM-DD-YYYY”. Ở đây “MM-DD-YYYY” cho biết ngày sao lưu.

Bước 3: Chạy lệnh /etc/init.d/cron restart để khởi động lại cron.

Vậy là xong, máy tính của bạn hoặc máy chủ của bạn sẽ sao lưu dữ liệu MySQL vào lúc 2:15 sáng hàng ngày.

Xem thêm: 

Written by Linh Nguyễn

Mình đang thực hiện trang Trải Nghiệm Số tại địa chỉ trainghiemso.vn, ngoài ra còn là BTV Công Nghệ tại báo VietNamNet. Trang blog này mình tổng hợp lại các bài viết do mình thực hiện, cũng như viết lảm nhảm cho vui.

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments