[Linux]Tạo bản sao lưu dự phòng cho MySQL với AutoMySQLBackup

altAutoMySQLBackup là một mã shell cho phép bạn sao lưu dự phòng cho cơ sở dữ liệu MySQL theo ngày, tuần, tháng sử dụng mysqldump. Nó có thể sao lưu nhiều cơ sở dữ liệu, nén bản sao lưu, sao lưu cơ sở dữ liệu remote, và gửi nhật kí tới email. AutoMySQLBackup sử dụng mysqldump để tạo bản lưu cho cơ sở dữ liệu của bạn. Lưu ý là mysqldump sẽ khóa cơ sở dữ liệu trong khi sao lưu đang làm việc và nó có thể mất vài giây cho tới vài phút tùy thuộc vào dung lượng của cơ sở dữ liệu. Nếu bạn chạy trên một website có lượng truy cập cao với cơ sở dữ liệu lớn thì AutoMySQLBackup là không phù hợp cho bạn!

Mã này không giúp bạn thậm chí cả khi ổ cứng bị hỏng. Bạn cần copy lại bản sao lưu một cách ngoại tuyến để có sự an toàn tốt nhất.

Sử dụng AutoMySQLBackup

Bạn có thể tải về AutoMySQLBackup như sau:

$ cd /usr/local/bin
$ wget http://mesh.dl.sourceforge.net/sourceforge/automysqlbackup/automysqlbackup.sh.2.5

Sau đó mở automysqlbackup.sh.2.5 và xem các tùy chọn cấu hình. Tất cả đều được chú thích. Bạn nên chỉnh sửa lại các thiết lập sau:

$ vi automysqlbackup.sh.2.5

[…]
USERNAME=root
[…]
PASSWORD=yourrootsqlpassword
[…]
DBHOST=localhost
[…]
# List of DBNAMES for Daily/Weekly Backup e.g. “DB1 DB2 DB3″
DBNAMES=”db_ispconfig web1 web2 web3″
[…]
# Backup directory location e.g /backups
BACKUPDIR=”/backups”
[…]
# Email Address to send mail to? (user@domain.com)
MAILADDR=”user@domain.com”
[…]

DBNAMES có thể có 1 hoặc nhiều cơ sở dữ liệu, phân cách bằng khoảng trắng.

Nếu BACKUPDIR không tồn tại automysqlbackup.sh.2.5 sẽ tự động tạo nó.

Hãy chắc chắn bạn điền đúng mật khẩu và host cơ sở dữ liệu. Nếu bạn muốn sao lưu cơ sở dữ liệu local, hãy dùng localhost; nếu bạn muốn sao lưu cơ sở dữ liệu remote, hãy dùng the remote hostname (chú ý rằng cơ sở dữ liệu remote phải được bật ở phía máy đó!).

Bây giờ ta thực thi đoạn mã:

$ chmod 755 automysqlbackup.sh.2.5

Bây giờ bạn có thể chạy automysqlbackup.sh.2.5 như sau nếu bạn đang ở thư mục /usr/local/bin:

$ ./automysqlbackup.sh.2.5

… hoặc như sau nếu bạn đang ở thư mục khác:

$ automysqlbackup.sh.2.5

Đây là kết quả trả về:

server1:~# automysqlbackup.sh.2.5
======================================================================
AutoMySQLBackup VER 2.5

http://sourceforge.net/projects/automysqlbackup/

Backup of Database Server – server1.example.com
======================================================================
Backup Start Time Fri Oct 17 16:00:51 CEST 2008
======================================================================
Daily Backup of Database ( db_ispconfig )
Rotating last weeks Backup…

Backup Information for /backups/daily/db_ispconfig/db_ispconfig_2008-10-17_16h00m.Friday.sql
compressed uncompressed ratio uncompressed_name
37231 382465 90.3% /backups/daily/db_ispconfig/db_ispconfig_2008-10-17_16h00m.Friday.sql
———————————————————————-
Backup End Fri Oct 17 16:00:52 CEST 2008
======================================================================
Total disk space used for backup storage..
Size – Location
68K /backups

======================================================================
If you find AutoMySQLBackup valuable please make a donation at

http://sourceforge.net/project/project_donations.php?group_id=101066

======================================================================
server1:~#

Hãy xem thư mục /backups…

$ ls -l /backups

… và bạn sẽ thấy 3 thư mục con, daily, weekly, và monthly:

server1:~# ls -l /backups/
total 12
drwxr-xr-x 3 root root 4096 2008-10-17 16:00 daily
drwxr-xr-x 2 root root 4096 2008-10-17 16:00 monthly
drwxr-xr-x 3 root root 4096 2008-10-17 16:00 weekly
server1:~#

Các thư mục này sẽ chứa các thư mục con có tên sau khi cơ sở dữ liệu được bạn chọn để sao lưu. Ví dụ: nếu bạn chọn cơ sở dữ liệu db_ispconfig, sẽ có một thư mục /backups/daily/db_ispconfig chứa bản sao lưu:

$ cd /backups/daily/db_ispconfig
$ ls -l

server1:/backups/daily/db_ispconfig# ls -l
total 40
-rw-r–r– 1 root root 37231 2008-10-17 16:00 db_ispconfig_2008-10-17_16h00m.Friday.sql.gz
server1:/backups/daily/db_ispconfig#

Phần mở rộng .gz có nghĩa là nó được nén. Để khôi phục cơ sở dữ liệu, đầu tiên bạn cần xả nén cho nó:

$ gunzip db_ispconfig_2008-10-17_16h00m.Friday.sql.gz

Viết bởi whatvn site:opensource.com.vn

Advertisements

Trả lời

Please log in using one of these methods to post your comment:

WordPress.com Logo

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

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s