Резервное копирование · 3 min read · Feb 10, 2026

Резервное копирование и восстановление MySQL с помощью mysql-zrm на Debian Sarge - Страница 5

11 Инкрементные резервные копии

mysql-zrm также может выполнять инкрементные резервные копии, однако у меня были с этим некоторые проблемы. Сначала мне нужно было настроить MySQL для записи своих бинарных логов в /var/lib/mysql (отредактировав /etc/mysql/my.cnf), потому что именно там mysql-zrm ожидает их. После этого,

mysql-zrm-scheduler --now --backup-set dailyrun --backup-level 1

казалось, сработало, но

mysql-zrm --action parse-binlogs --source-directory=/var/lib/mysql --backup-set dailyrun

выдало ошибку:

| 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 |

Вот почему я думаю, что лучше делать полные резервные копии на данный момент вместо инкрементных.

12 Удаленные резервные копии

mysql-zrm также позволяет выполнять резервные копии с удаленных серверов MySQL по сети. Однако это также вызвало у меня несколько проблем.

12.1 Первая попытка

В своей первой попытке я хотел сделать резервную копию (в сыром формате) сервера MySQL на удаленной системе SuSE 10.0. Я отредактировал /etc/mysql-zrm/mysql-zrm.conf и указал удаленного пользователя, пароль и имя хоста, затем я запустил

mysql-zrm-scheduler --now --backup-set dailyrun --backup-level 0

Результат был следующим:

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

Я думаю, это произошло из-за разных версий MySQL на обеих системах.

12.2 Вторая попытка

Во второй попытке я хотел сделать резервную копию (снова в сыром формате) базы данных MySQL на удаленном сервере Debian Sarge. И локальная, и удаленная системы имели одну и ту же версию MySQL. Я запустил

mysql-zrm-scheduler --now --backup-set dailyrun --backup-level 0

и получил следующие ошибки:

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

Похоже, что не хватает директории /var/lib/mysql/web34_db1 (web34_db1 — это одна из баз данных на удаленной системе) на локальной системе! Поэтому я создал ее:

mkdir /var/lib/mysql/web34_db1

и запустил

mysql-zrm-scheduler --now --backup-set dailyrun --backup-level 0

снова, и на этот раз это сработало, но я сомневаюсь, что это так и должно быть…

12.3 Третья попытка

На этот раз я попытался сделать резервную копию с того же удаленного сервера Debian Sarge, как и раньше, но в логическом формате вместо сырого. Я запустил

mysql-zrm-scheduler --now --backup-set dailyrun --backup-level 0

и получил следующую ошибку:

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

Но на этот раз это нормальное поведение, потому что для удаленных логических резервных копий MySQL необходимо настроить с SSL, как описано на http://mysqlbackup.zmanda.com/index.php/Do_I_need_to_make_changes_to_MySQL_database_configuration%3F. К сожалению, пакеты MySQL для Debian Sarge поставляются без поддержки SSL:

mysqld --ssl --help
060927 12:26:09 [ERROR] mysqld: unknown option '--ssl'

Я вошел в оболочку MySQL:

mysql -u root -p

и выполнил

SHOW VARIABLES LIKE 'have_openssl';

и получил тот же результат:

| +---------------+-------+ | Variable_name | Value | +---------------+-------+ | have_openssl | NO | +---------------+-------+ 1 row in set (0.01 sec) |

Нет поддержки SSL…

13 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.