Hướng
dẫn này sẽ mô tả làm cách nào để sao lưu (backup) và khôi phục cơ sở dữ
liệu MySQL của bạn với mysql-zrm trên hệ thống Debian Sarge. mysql-zrm
là một phần trong Zmanda Recovery Manager của MySQL, nó là một công cụ
mới giúp bạn có thể tạo logic đầy đủ hay sao lưu thô cơ sở dữ liệu
(không quan tâm đến phương tiện lưu trữ của bạn và cấu hình MySQL), tạo
báo cáo về sao lưu, thẩm tra tình trạng của các sao lưu và khôi phục cơ
sở dữ liệu của bạn.
Nó
cũng có thể gửi thông báo bằng e-mail về trạng thái sao lưu, từ đó bạn
có thể bổ sung nhiều biện pháp sao lưu (dựa trên ứng dụng của bạn và
thời gian (ví dụ như hàng ngày hay hàng tuần…)).
Điều đầu tiên
tôi muốn nói ở đây rằng, đây không chỉ là cách duy nhất cho thiết lập
một hệ thống như vậy. Trong thực tế có nhiều cách thực hiện khác nhau
để giải quyết được vấn đề này và đây chỉ là một trong những cách đó.
1, Chú ý mở đầu
mysql-zrm
làm việc trên MySQL 4.1 và các phiên bản cao hơn, chính vì vậy bạn phải
có một máy chủ MySQL đã cài đặt trên hệ thống Debian Sarge hay tương tự
thế:
| apt-get install mysql-client-4.1 mysql-common-4.1 mysql-server-4.1 |
Phần này cũng được cài gói libdbd-mysql-perl, đây là một gói rất cần thiết cho mysql-zrm khi mysql-zrm được viết bằng Perl.
2, Cài đặt
Zmanda
đã đưa ra một gói rpm của mysql-zrm cho phân phối dựa trên rpm giống
như Fedora, RedHat, SuSE, CentOS,.. tuy nhiên, không có gói nào cho
Debian Sarge. Vì vậy bạn phải tải gói mysql-zrm từ http://www.zmanda.com/downloads.html. Lúc đó bản này đang là 1.0.3 và tải về thư mục /tmp.
cd /tmp
wget http://www.zmanda.com/downloads/community/ZRM-MySQL/1.0.3/Source/MySQL-zrm-1.0.3.tar.gz |
Sau đó mở các gói và vào thư mục gốc:
tar xvfz MySQL-zrm-1.0.3.tar.gz
cd MySQL-zrm-1.0.3 |
Đáng
tiếc là các hướng dẫn cài đặt trong file INSTALL lại nói rằng bạn có
thể cài đặt gói mysql-zrm rpm nếu bạn đang ở một nhánh dựa trên rpm.
Không có dòng hướng dẫn cài đặt nào cho gói nguồn trên trang web
Zmanda. Chính vì vậy tôi đã phải tự tìm cách để cài mysql-zrm trên hệ
thống Debian Sarge của tôi. Sau đây là những gì tôi đã làm:
chown root:root *
mv mysql-zrm /usr/bin
mv mysql-zrm-reporter /usr/bin
mv mysql-zrm-scheduler /usr/bin
gzip mysql-zrm.1
mv mysql-zrm.1.gz /usr/share/man/man1
gzip mysql-zrm.conf.5
mv mysql-zrm.conf.5.gz /usr/share/man/man5
gzip mysql-zrm-reporter.1
mv mysql-zrm-reporter.1.gz /usr/share/man/man1
gzip mysql-zrm-reporter.conf.5
mv mysql-zrm-reporter.conf.5.gz /usr/share/man/man5
gzip mysql-zrm-scheduler.1
mv mysql-zrm-scheduler.1.gz /usr/share/man/man1
mkdir /etc/mysql-zrm
mv *.conf /etc/mysql-zrm
mkdir -p /usr/lib/mysql-zrm/Data/Report/Plugin
mv Report.pm /usr/lib/mysql-zrm/Data
mv Base.pm /usr/lib/mysql-zrm/Data/Report
mv *.pm /usr/lib/mysql-zrm/Data/Report/Plugin
mkdir /var/log/mysql-zrm
gzip AUTHORS
gzip COPYING
gzip INSTALL
gzip README
mkdir /usr/share/doc/MySQL-zrm
mv * /usr/share/doc/MySQL-zrm
mkdir /var/lib/mysql-zrm
touch /etc/mysql-zrm/mysql-zrm-release |
Các file thực thi đã được chuyển đến /usr/bin, các file cấu hình được
đặt trong /etc/mysql-zrm và các trang thực thi (mysql-zrm,
mysql-zrm-reporter và mysql-zrm-scheduler) vì vậy nếu bạn không chắc về
cách sử dụng của những thực thi này bạn có thể chạy:
3, Cấu hình cơ bản
File cấu hình chính là /etc/mysql-zrm/mysql-zrm.conf. Trong file này, cần phải chỉ ra user và password của người dùng.
vi /etc/mysql-zrm/mysql-zrm.conf
|
user="root"
password="yourrootsqlpassword" |
Nếu
không chỉ ra user và password thì mysql-zrm cho rằng các giá trị là mặc
định với tất cả các thiết lập khác. Với cấu hình này, mysql-zrm sẽ thực
hiện backup tất cả cơ sở dữ liệu trong định dạng thô và nó sẽ giữ các
backup này mãi mà không gửi thông báo email.
Định dạng thô
nghĩa là, nó sao lưu cơ sở dữ liệu như các file nhị phân có thể được
copy ngược lại cơ sở dữ liệu trong trường hợp mất dữ liệu, nhưng nó có
thể gây ra các vấn đề nếu bạn copy những file này giữa các phiên bản
MySQL khác nhau.
Bản sao của định dạng thô là định dạng logic
tạo file văn bản với kết xuất SQL Server đơn giản trong cơ sở dữ liệu
của bạn. Các kết xuất SQL này có thể được lưu trong hầu hết tất cả các
phiên bản MySQL và bạn có thể thực hiện nó một cách thủ công.
Nếu bạn muốn có được các thông báo e-mail đến địa chỉ email của bạn
example@example.com thì bạn phải thêm /etc/mysql-zrm/mysql-zrm.conf:
Địa chỉ email này đang được bảo vệ khỏi chương trình thư rác, bạn cần bật Javascript để xem nó
| vi /etc/mysql-zrm/mysql-zrm.conf |
| mailto=
example@example.comĐịa chỉ email này đang được bảo vệ khỏi chương trình thư rác, bạn cần bật Javascript để xem nó
|
Nếu bạn muốn tạo các backup theo định dạng logic và muốn giữ chúng
trong vòng một tuần (thay vì mãi mãi), hãy thêm đoạn sau vào
/etc/mysql-zrm/mysql-zrm.conf:
| vi /etc/mysql-zrm/mysql-zrm.conf |
# allowed values for backup-mode are "raw" and "logical"
backup-mode=logical
retention-policy=7D |
Nếu bạn muốn tạo một backup cho một MySQL thứ bản bạn hãy thêm dòng sau vào /etc/mysql-zrm/mysql-zrm.conf:
| vi /etc/mysql-zrm/mysql-zrm.conf |
Bằng cách này chúng sẽ thực hiện sao lưu các file quan trọng cho MySQL thứ bản.
Nếu bạn chỉ muốn sao lưu cơ sở dữ liệu exampledb và anotherexampledb
thay vì tất cả cơ sở dữ liệu, bạn hãy thêm chúng vào
/etc/mysql-zrm/mysql-zrm.conf:
| vi /etc/mysql-zrm/mysql-zrm.conf |
| databases=exampledb anotherexampledb |
Nếu bạn chỉ cần backup các bảng text, user và page từ cơ sở dữ liệu
exampledb/etc/mysql-zrm/mysql-zrm.conf: bạn hãy thêm chúng vào
| vi /etc/mysql-zrm/mysql-zrm.conf |
tables=text user page
database="exampledb" |
Chú ý: các thiết lập all-databases, databases, và tables/database là có thể qua lại.
Mặc định /etc/mysql-zrm/mysql-zrm.conf cho hầu hết các chú thích để
giải thích tất cả các tùy chọn cấu hình. Hiện tại tôi đang sử dụng các
thiết lập đó:
| vi /etc/mysql-zrm/mysql-zrm.conf |
user="root"
password="yourrootsqlpassword"
mailto="
example@example.com"
backup-mode=logical
retention-policy=7D
# all-databases=1 is optional, as it is the default setting
all-databases=1Địa chỉ email này đang được bảo vệ khỏi chương trình thư rác, bạn cần bật Javascript để xem nó
|
4, Các ví dụ
Với mysql-zrm bạn có thể duy trì nhiều backup, gọi là một tập hợp backup sets
ví dụ như backup hàng ngày, hàng tuần và backup cho cơ sở dữ liệu hệ
thống hoạt động thương mại (osCommerce) của bạn, backup cho cơ sở dữ
liệu vBulletin…
Bây giờ hãy tạo backup đầu tiên của bạn (chúng ta đã tạo trong thiết lập backup dailyrun):
| mysql-zrm-scheduler --now --backup-set dailyrun --backup-level 0 |
Nó sẽ ngay lập tức sao lưu tất cả cơ sở dữ liệu tới thư mục
/var/lib/mysql-zrm/dailyrun và cũng sẽ tạo thư mục
/etc/mysql-zrm/dailyrun. --backup-level 0 nghĩa là: thực hiện một
backup đầy đủ (nếu bạn có thể thực hiện các backup dự phòng tăng
(--backup-level 1) nhưng vấn đề này sẽ được nói sau còn bây giờ chúng
ta thực hiện các backup)
Nếu
bạn cho phép các thông báo email, bạn sẽ nhận được một email với trạng
thái backup lúc đó. Nhưng bạn cũng có thể tạo một báo cáo về trạng thái
backup bằng dòng lệnh sau:
| mysql-zrm-reporter --where backup-set=dailyrun --show backup-status-info |
Kết quả thực hiện dòng lệnh:
backup_set backup_date backup_level backup_status comment
----------------------------------------------------------------------------
dailyrun Tue 26 Sep 2006 07:57:47 PM CEST 0 Backup succeeded ---- |
Bạn cũng có thể tạo một số các báo cáo khác với các câu lệnh dưới đây:
mysql-zrm-reporter --where backup-set=dailyrun --show backup-method-info
mysql-zrm-reporter --where backup-set=dailyrun --show backup-retention-info
mysql-zrm-reporter --where backup-set=dailyrun --show backup-performance-info
mysql-zrm-reporter --where backup-set=dailyrun --show restore-full-info
mysql-zrm-reporter --where backup-set=dailyrun --show restore-incr-info
mysql-zrm-reporter --where backup-set=dailyrun --show replication-info |
Hãy thử chúng để xem chúng cung cấp cho bạn những thông tin gì.
Bây
giờ chúng ta muốn tạo một backup hàng ngày và hàng tuần để chạy tự động
bằng hệ thống (không cần sự tương tác). Thiết lập các backup này như
sau:
mysql-zrm-scheduler --add --interval daily --backup-set dailyrun --backup-level 0
mysql-zrm-scheduler --add --interval weekly --backup-set weeklyrun --backup-level 0 |
(Với lệnh thứ hai, chúng ta tạo được một backup mới gọi là weeklyrun.)
Còn bây giờ hãy kiểm tra lại các backup đã được ghi trong chương trình:
| mysql-zrm-scheduler --query |
Cho ra
Logging to /var/log/mysql-zrm/mysql-zrm-scheduler.log
0 3 * * * /usr/bin/mysql-zrm --action backup --destination /var/lib/mysql-zrm --backup-set dailyrun --backup-level 0
0 4 * * * /usr/bin/mysql-zrm --action purge --destination /var/lib/mysql-zrm
0 2 * * 0 /usr/bin/mysql-zrm --action backup --destination /var/lib/mysql-zrm --backup-set weeklyrun --backup-level 0 |
Như bạn có thể thấy, backup hàng ngày được chạy hàng ngày vào lúc 03:00h và hàng tuần vào Chủ nhật lúc 02:00h.
(BTW thay vì
| mysql-zrm-scheduler --query |
bạn có thể chạy
để có được thông tin như vậy)
Nếu bạn muốn bắt đầu backup hàng ngày tại thời điểm khác, ví dụ là 13:35, bạn có thể thực hiện nó như sau:
| mysql-zrm-scheduler --add --interval daily --backup-set dailyrun --start 13:35 --backup-level 0 |
Để gỡ bỏ một backup đã được ghi trong chương trình bạn có thể làm như sau:
| mysql-zrm-scheduler --delete --interval weekly |
Nó
sẽ gỡ bỏ backup hàng tuần được chạy vào 02:00h Chủ nhật. Nếu bạn muốn
gỡ backup hàng ngày được ghi trong chương trình vào lúc 13:35h bạn hãy
làm như sau:
| mysql-zrm-scheduler --delete --interval daily --start 13:35 |
Nhưng bạn cũng có thể chạy
để cho phép dễ dàng hơn bằng mysql-zrm-scheduler.
5, Các báo cáo tùy chỉnh và HTML
Trong
mục 4, tôi đã đề cập đến các loại báo cáo gì đang sẵn có. Nhưng bạn
cũng có thể tạo các báo cáo tùy chỉnh, ví dụ: bạn có thể chỉ định cột
nào hay thông tin nào bạn muốn xem. Ví dụ:
| mysql-zrm-reporter --fields backup-set,backup-date,backup-level,backup-status --where backup-set=dailyrun |
Tạo một báo cáo cho thiết lập backup dailyrun thể hiện trong các cột backup-set, backup-date, backup-level và backup-status:
backup_set backup_date backup_level backup_status
----------------------------------------------------------------------------
dailyrun Tue 26 Sep 2006 07:57:47 PM CEST 0 Backup succeeded
dailyrun Tue 26 Sep 2006 07:58:08 PM CEST 0 Backup succeeded
dailyrun Tue 26 Sep 2006 07:58:31 PM CEST 0 Backup succeeded
dailyrun Tue 26 Sep 2006 08:24:04 PM CEST 0 Backup succeeded |
Danh sách của tất cả các cột có sẵn:
http://mysqlbackup.zmanda.com/index.php/What_information_can_be_obtained_from_a_backup_report%3F
mysql-zrm
cho bạn tạo các báo cáo HTML. Hãy thừa nhận rằng bạn có một máy chủ web
(ví dụ Apache) được cài đặt trên hệ thống của bạn với đường dẫn gốc /var/www. Bây giờ chạy
| mysql-zrm-reporter
--show backup-status-info --where backup-set=dailyrun --type html
--output /var/www/backup-status-dailyrun.html |
Sẽ tạo file HTML backup-status-dailyrun.html trong thư mục /var/www của bạn (bạn có thể truy cập trọng trình duyệt, ví dụ http://server1.example.com/backup-status-dailyrun.html)

6, Xác thực các backup của bạn
Bây giờ chúng ta sẽ kiểm tra tình trạng của thiết lập backup dailyrun. Thực hiện như sau:
| mysql-zrm --action verify-backup --backup-set dailyrun |
Cho ra:
Use of uninitialized value in concatenation (.) or string at /usr/bin/mysql-zrm line 1305.
INFO: mysql-zrm-version
INFO: Verification successful |
(Bạn có thể bỏ qua báo cảnh dòng đầu tiên, nó hoàn toàn không nghiêm trọng)
Tiếp theo chúng ta kiểm tra một backup cụ thể bên trong tập backup dailyrun. Đầu tiên đã chạy
| mysql-zrm-reporter -show restore-full-info --where backup-set=dailyrun |
để tìm ra backup nào có sẵn:
backup_set backup_date backup_level backup_directory
-----------------------------------------------------------------------------------------
dailyrun Tue 26 Sep 2006 07:57:47 PM CEST 0 /var/lib/mysql-zrm/dailyrun/20
060926195747
dailyrun Tue 26 Sep 2006 07:58:08 PM CEST 0 /var/lib/mysql-zrm/dailyrun/20
060926195808
dailyrun Tue 26 Sep 2006 07:58:31 PM CEST 0 /var/lib/mysql-zrm/dailyrun/20
060926195831
dailyrun Tue 26 Sep 2006 08:24:04 PM CEST 0 /var/lib/mysql-zrm/dailyrun/20
060926202404 |
Như
bạn có thể thấy, có bốn backup trong thiết lập backup dailyrun của
chúng ta. Nếu muốn kiểm tra backup cuối cùng trong thư mục /var/lib/mysql-zrm/dailyrun/20060926202404. Hãy làm như sau:
| mysql-zrm --action verify-backup --backup-set dailyrun --no-quiet --source-directory /var/lib/mysql-zrm/dailyrun/20060926202404 |
Kết quả cho ra như sau:
Use of uninitialized value in concatenation (.) or string at /usr/bin/mysql-zrm line 1305.
INFO: mysql-zrm-version
INFO: Verification successful |
7, Khi phục dữ liệu
Hãy
cho rằng cơ sở dữ liệu của chúng ta bị tranh chấp và chúng ta đã mất dữ
liệu. Và làm thế nào để có thể khôi phục dữ liệu từ các backup MySQL.
Trước tiên chúng ta chạy:
| mysql-zrm-reporter -show restore-full-info --where backup-set=dailyrun |
để tìm ra các backup sẵn có:
backup_set backup_date backup_level backup_directory
-----------------------------------------------------------------------------------------
dailyrun Tue 26 Sep 2006 07:57:47 PM CEST 0 /var/lib/mysql-zrm/dailyrun/20
060926195747
dailyrun Tue 26 Sep 2006 07:58:08 PM CEST 0 /var/lib/mysql-zrm/dailyrun/20
060926195808
dailyrun Tue 26 Sep 2006 07:58:31 PM CEST 0 /var/lib/mysql-zrm/dailyrun/20
060926195831
dailyrun Tue 26 Sep 2006 08:24:04 PM CEST 0 /var/lib/mysql-zrm/dailyrun/20
060926202404 |
Nếu muốn khôi phục từ backup mới nhất trong /var/lib/mysql-zrm/dailyrun/20060926202404:
| mysql-zrm --action restore --backup-set dailyrun --source-directory /var/lib/mysql-zrm/dailyrun/20060926202404 |
Kết quả cho ra như sau:
Use of uninitialized value in concatenation (.) or string at /usr/bin/mysql-zrm line 1305.
INFO: mysql-zrm-version
INFO: Restored database from raw backup: egroupware
INFO: Restored database from raw backup: mysql
INFO: Restore done in 14 seconds.
MySQL server has been shutdown. Please restart after verification. |
Dữ liệu đã được khôi phục nhưng máy chủ MySQL đã bị tắt. Vì vậy chúng ta phải bắt đầu nó với:
8, Các biện pháp Backup
Cho tới thời điểm này, chúng ta đã có một cấu hình toàn cục trong
/etc/mysql-zrm/mysql-zrm.conf được áp dụng đến tất cả các tập backup.
Bây giờ giả dụ rằng chúng ta có một tập backup osCommerce cho cơ sở dữ
liệu osCommerce, tập backup vBulletin là cho cơ sở dữ liệu vBulletin.
Nó
hoàn toàn không giống kiểu backup tất cả dữ liệu của chúng ta bởi vì
backup chỉ bao gồm cơ sở dữ liệu osCommerce với tập backup osCommerce
và tương tự với tập backup vBulletin. Chúng ta có thể giải quyết vấn đề
này như sau:
Mỗi một tập backup có thư mục con của nó trong thư mục /etc/mysql-zrm
ví dụ: tập backup osCommerce có thư mục /etc/mysql-zrm/osCommerce. Bây
giờ, bất cứ khi nào mysql-zrm được chạy, trước tiên nó kiểm tra cấu
hình toàn cục trong /etc/mysql-zrm/mysql-zrm.conf sau đó kiểm tra thư
mục của tập backup hiện thời cho file mysql-zrm.conf mà các thiết lập
của nó ghi đè lên các thiết lập toàn cục trong
/etc/mysql-zrm/mysql-zrm.conf, ví dụ: nếu tập backup hiện thời là
osCommerce thì mysql-zrm sẽ đọc trước cấu hình từ
/etc/mysql-zrm/mysql-zrm.conf và sau đó cấu hình từ
/etc/mysql-zrm/osCommerce/mysql-zrm.conf.
Nếu bạn chỉ muốn sao chép cơ sở dữ liệu MySQL osCommerce trong tập
backup osCommerce, chúng ta đặt nó vào trong
/etc/mysql-zrm/osCommerce/mysql-zrm.conf:
| vi /etc/mysql-zrm/osCommerce/mysql-zrm.conf |
9, Tháo các Backup cũ
Nếu bạn không có tập retention-policy
trong cấu hình mysql-zrm thì các backup MySQL được giữ mãi mãi nghĩa là
đĩa cứng của bạn sẽ bị đầy sau một thời gian. Tuy nhiên bạn hoàn toàn
có thể tháo các backup cũ một cách đơn giản bằng việc xóa thư mục
backup. Ví dụ: nếu bạn có một backup trong
/var/lib/mysql-zrm/dailyrun/20060926195831 và không cần nó nữa thì bạn
có thể xóa nó như sau:
| rm -fr /var/lib/mysql-zrm/dailyrun/20060926195831 |
10, Bản ghi
mysql-zrm ghi ra file .log như /var/log/mysql-zrm/mysql-zrm.log.
11, Ghi dự phòng tăng
mysql-zrm
có thể thực hiện ghi dự phòng tăng dù có vài vấn đề với nó. Đầu tiên
tôi phải cấu hình MySQL để viết bin-logs của nó đến /var/lib/mysql
(bằng cách soạn thảo /etc/mysql/my.cnf) bởi vì đó là nơi mysql-zrm mong
đợi chúng. Sau đó
| mysql-zrm-scheduler --now --backup-set dailyrun --backup-level 1 |
dường như làm việc, nhưng
| mysql-zrm --action parse-binlogs --source-directory=/var/lib/mysql --backup-set dailyrun |
phát sinh một lỗi:
Use of uninitialized value in concatenation (.) or string at /usr/bin/mysql-zrm line 1305.
INFO: mysql-zrm-version
ERROR: cannot open index file /var/lib/mysql/index No such file or directory |
Đó là lý do tại sao tôi nghĩ nó sẽ tốt hơn nếu thực hiện đầy đủ các backup vào thời điểm này thay vì ghi dự phòng tăng.
12, Các backup từ xa
Mysql-zrm
cho phép bạn có thể thực hiện các backup từ các máy chủ MySQL từ xa
trên mạng. Tuy nhiên đây điều này cũng có thể gây ra một vài vấn đề đối
với tôi.
12.1, Lần thử đầu
Trong bước
đầu tiên, tôi muốn thực hiện một backup (trong định dạng thô) của một
máy chủ MySQL trên một hệ thống SuSE 10.0 từ xa. Tôi soạn
/etc/mysql-zrm/mysql-zrm.conf và đặt user, password, tên máy chủ vào.
Sau đó chạy
| mysql-zrm-scheduler --now --backup-set dailyrun --backup-level 0 |
Kết quả như sau:
Logging to /var/log/mysql-zrm/mysql-zrm-scheduler.log
Use of uninitialized value in concatenation (.) or string at /usr/bin/mysql-zrm line 1305.
INFO: mysql-zrm-version
WARNING: Binary logging is off. Incremental and logical backup will not work.
INFO: backup-set=dailyrun
INFO: backup-date=20060927095528
INFO: backup-date-epoch=1159343728
INFO: mysql-version=4.1.13
INFO: backup-directory=/var/lib/mysql-zrm/dailyrun/20060927095528
INFO: backup-level=0
WARNING: Database test is empty and hence will not be backedup
WARNING: Database tmp is empty and hence will not be backedup
ERROR: Output of command: 'mysqlhotcopy' is
DBI
connect(';host=192.168.0.163;mysql_read_default_group=mysqlhotcopy','root',...)
failed: Client does not support authentication protocol requested by
server; consider upgrading MySQL client at /usr/bin/mysqlhotcopy line
182
ERROR: mysqlhotcopy command did not succeed.
Command used
is mysqlhotcopy --quiet --user=root --password=*****
--host=192.168.0.163 db_ispconfig mysql
"/var/lib/mysql-zrm/dailyrun/20060927095528" > /tmp/4Z75iIAeo5
2>&1
Return value is 65280
INFO: backup-status=Backup failed
INFO: Backup failed
ERROR: /usr/bin/mysql-zrm did not finish successfully
Tôi phỏng đoán điều này đã xảy ra bởi vì các phiên bản MySQL khác nhau trên cả hai hệ thống.
12.2, Lần thử thứ hai
Trong
lần thử thứ hai, tôi muốn tạo một backup (giống như trong định dạng
thô) của cơ sở dữ liệu MySQL trên một máy chủ Debian Sarge từ xa. Cả
hai hệ thống cục bộ và từ xa đều có cùng một phiên bản MySQL. Tôi chạy
| mysql-zrm-scheduler --now --backup-set dailyrun --backup-level 0 |
và có các lỗi dưới đây:
Logging to /var/log/mysql-zrm/mysql-zrm-scheduler.log
Use of uninitialized value in concatenation (.) or string at /usr/bin/mysql-zrm line 1305.
INFO: mysql-zrm-version
INFO: backup-set=dailyrun
INFO: backup-date=20060927100653
INFO: backup-date-epoch=1159344413
INFO: mysql-version=4.1.11-Debian_4sarge7-log
INFO: backup-directory=/var/lib/mysql-zrm/dailyrun/20060927100653
INFO: backup-level=0
WARNING: Database test is empty and hence will not be backedup
ERROR: Output of command: 'mysqlhotcopy' is
Cannot open dir '/var/lib/mysql/web34_db1': No such file or directory at /usr/bin/mysqlhotcopy line 293.
ERROR: mysqlhotcopy command did not succeed.
Command
used is mysqlhotcopy --quiet --user=root --password=*****
--host=192.168.0.110 mysql web34_db1
"/var/lib/mysql-zrm/dailyrun/20060927100653" > /tmp/yxFsViAlbm
2>&1
Return value is 512
INFO: backup-status=Backup failed
INFO: Backup failed
ERROR: /usr/bin/mysql-zrm did not finish successfully
Nó dường như có lỗi thư mục /var/lib/mysql/web34_db1 (web34_db1 là một
trong những cơ sở dữ liệu trên hệ thống từ xa) trong hệ thống hiện tại.
Vì vậy tôi đã tạo nó:
| mkdir /var/lib/mysql/web34_db1 |
và chạy
| mysql-zrm-scheduler --now --backup-set dailyrun --backup-level 0 |
lúc này nó đã làm việc, nhưng tôi nghi ngờ rằng đây là cách nó được cho là…
12.3, Lần thử thứ ba
Thời
điểm này, tôi cố gắng tạo một backup từ cùng một hệ thống Debian Sarge
từ xa như trước nhưng trong logic thay vì định dạng thô. Tôi chạy
| mysql-zrm-scheduler --now --backup-set dailyrun --backup-level 0 |
và có lỗi như sau:
Logging to /var/log/mysql-zrm/mysql-zrm-scheduler.log
Use of uninitialized value in concatenation (.) or string at /usr/bin/mysql-zrm line 1305.
INFO: mysql-zrm-version
WARNING: Binary logging is off. Incremental and logical backup will not work.
INFO: backup-set=dailyrun
INFO: backup-date=20060927095501
INFO: backup-date-epoch=1159343701
INFO: mysql-version=4.1.13
INFO: backup-directory=/var/lib/mysql-zrm/dailyrun/20060927095501
INFO: backup-level=0
ERROR: Binary logging is off. Logical backup cannot be done
INFO: backup-status=Backup failed
INFO: Backup failed
ERROR: /usr/bin/mysql-zrm did not finish successfully
Nhưng lúc này nó hoạt động bình thường bởi vì với các backup logic từ xa MySQL cần phải cấu hình với SSL như miêu tả trên
060927 12:26:09 [ERROR] mysqld: unknown option '--ssl'
Ghi vào tiện ích MySQL
và chạy
| SHOW VARIABLES LIKE 'have_openssl'; |
và có cùng một kết quả:
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_openssl | NO |
+---------------+-------+
1 row in set (0.01 sec)
Không hỗ trợ SSL… |
13, Các liên kết
• mysql-zrm: http://mysqlbackup.zmanda.com
• mysql-zrm Manual: http://mysqlbackup.zmanda.com/index.php/Zmanda_Recovery_Manager_for_MySQL
• Zmanda: http://www.zmanda.com
• MySQL: http://www.mysql.com
• Debian: http://www.debian.org