在使用最新版的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 Description After 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 help Sergei Glushchenko (sergei.glushchenko) wrote on 2015-10-30: #1 Would specifying --tmpdir=/tmp (or other directory) resolve the rsync issue? Maxim (sailormax) wrote on 2015-11-01: #2 yes. Sergei Glushchenko (sergei.glushchenko) wrote on 2015-11-09: #3 We'll set tmpdir to system/user default when it is not specified. Changed in percona-xtrabackup: status: New → Triaged importance: Undecided → High
解决办法:
在使用 --rsync 选项时,需要增加 --tmpdir=/tmp 选择,来指定 xtrabackup_rsyncfiles_pass1 临时文件的存储位置:
innobackupex /backup/ --rsync --tmpdir=/tmp --user=xxx --password=xxx