Tạo bản sao lưu dự phòng cho MySQL với AutoMySQLBackup AutoMySQLBackup 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
Trang 1Tạo bản sao lưu dự phòng cho MySQL với
AutoMySQLBackup
AutoMySQLBackup 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
Trang 2$ 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
Trang 3BACKUPDIR="/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
Trang 4Bâ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
========================================================
==============
Trang 5Backup 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
Trang 6==============
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:~#
Trang 7Cá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