在使用最新版的innobackupex(2.3.2):
innobackupex /backup --rsync --user=xx --password=xxx 备份时报错:
Error: can't create file (null)/xtrabackup_rsyncfiles_pass1
网上搜索没有找到答案,于是向官方报告 bug ,发现已经有人汇报了该bug:
https://bugs.launchpad.net/percona-xtrabackup/+bug/1511701
Bug DescriptionAfter latest update xtrabackup to 2.3.2 my backup scripts stop working.Problem in "--rsync" argument. With it in half of "copying X to Y" xtrabackup exit with error message:~~can't create file (null)/xtrabackup rsync files pass1~~With previous builds all was fine.Problem command line:~~innobackupex --defaults-file=/etc/mysql/my.cnf --user=root --password=`cat /root/passwords/.mysql` --no-timestamp --throttle=40 --rsync /var/backups/separate_disk/mysql/${WEEK_DAY_NUMBER}f 2>&1~~If remove "--rsync" - all work without errors.P.S. and previous versions uses "root" as default user name. Now it use "mysql" if in command line didn't defined "--user". (Back incompatibility)Add tags Tag helpSergei Glushchenko (sergei.glushchenko) wrote on 2015-10-30: #1Would specifying --tmpdir=/tmp (or other directory) resolve the rsync issue?Maxim (sailormax) wrote on 2015-11-01: #2yes.Sergei Glushchenko (sergei.glushchenko) wrote on 2015-11-09: #3We'll set tmpdir to system/user default when it is not specified.Changed in percona-xtrabackup:status: New → Triagedimportance: Undecided → High
解决办法:
在使用 --rsync 选项时,需要增加 --tmpdir=/tmp 选择,来指定 xtrabackup_rsyncfiles_pass1 临时文件的存储位置:
innobackupex /backup/ --rsync --tmpdir=/tmp --user=xxx --password=xxx