HMH's Blog

Backup cơ sở dữ liệu cho website.

Posted by hmha on Tháng Mười 8, 2008

-Backup cơ sở dữ liệu là công việc nên làm với tất cả các admin. Trước khi viết script để backup dữ liệu cần xác định nhu cầu của mình: cần backup những gì, chu trình bao lâu… Dưới đây chỉ là một script rất đơn giản tuy nhiên với nhu cầu backup cơ sở dữ liệu cho một LAMP server thì ok, dạng mô tả như hình bên dưới:

Thực hiện:

-Hãy lưu script sau thành /root/mysqlbackup.sh:
#!/bin/bash
#Thư mục backup dữ liệu trên host1
DIR="/path/mysqlbackup"
#dạng thời gian
NOW="$(date +"%d")"
#Nén
GZIP="$(which gzip)"
#tên và mật khẩu
USER="username"
PASSWORD="matkhau"
#
cd $DIR
#backup và nén.
mysqldump -h HOSTNAME -u $USER -p$PASSWORD DATABASENAME > DATABASENAME.sql_$NOW
$GZIP -9 -f DATABASENAME.sql_$NOW
#copy đến host2
scp $DIR/* remote@host2:~/path

-Để thực hiện backup hàng ngày chúng ta sử dụng crontab. Giả sử bạn muốn backup hàng ngày vào lúc 2h sáng:
# vim crontbackup
0 2 * * * /root/mysqlbackup.sh

sau đó run:
# crontab crontbackup
đừng quên:
# chmod 700 /root/mysqlbackup.sh
-Sau khi hoàn tất công việc bạn có thể an tâm vì cơ sở dữ liệu của bạn hàng ngày đều được backup ở host1 và copy đến host2 mà bạn chỉ định (ở đây chúng ta dùng ssh). Để script thực hiện suôn sẻ (không dừng lại yêu cầu nhập mật khẩu) chúng ta sử dụng phương pháp kết nối ssh không mật khẩu. Nếu bạn chưa biết cách làm thế nào để kết nối ssh không sử dụng mật khẩu có thể tìm hiểu tại đây.
-Trong script trên sử dụng tuỳ chọn -f trong câu lệnh gzip bởi vì tôi lưu trong vòng một tháng, nếu không có -f khi thực hiện gzip sẽ đưa ra câu hỏi có ghi đè lên file hay không (bởi vì file đã tồn tại) và như vậy sẽ phá vỡ sự tự động backup.

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

 
%d bloggers like this: