我使用percona的xtrabackup定期进行mysql备份,使用的是我在网上找到的一个命令(我不深入数据库,也不深入数据库的工具):
innobackupex --user=XXXX --password=XXXX --stream=tar ./ | sshpass -p XXXX ssh root@192.168.XX.XX "cat - > /var/lib/mysql_backups/name.tar"
现在,备份文件是85gb,每天都作为完全备份。我需要恢复数据库崩溃后,它不工作。
我在tar文件里看了看 tar -tif name.tar
)我读了所有的文件名列表。
1) 用什么方法从本地tar恢复db --move-back
将所有内容解压到位,而不使用磁盘上的额外空间?
2) 或者是否有可能(如果选项1不可用)从远程tar还原备份,与使用innobackupex远程备份中描述的过程相反?我试了很多次,但都找不到正确的选择。
我找到了一个选择 --remote-host
在2012年的一篇文章中使用,但在我的1.5.1版本中,缺少此选项。。。
3) being streamed=tar,如何在恢复之前准备(如果需要)tar?
先谢谢你。
1条答案
按热度按时间2ic8powd1#
关于您的问题:
1) 从本地tar恢复db的正常方法是如何使用--移回原处解压所有内容,而不使用磁盘上的额外空间?
您可以使用下面的命令行提取文件并通过管道将输出传输到目标服务器:
# Execute the command where the backup is located ssh <user>@<mysql_server> "cd <datadir> && tar -xvv" < backup.tar
使用此方法可以避免解压缩和复制所需的额外空间。接下来,您需要准备备份,这是您的第3个问题:3) being streamed=tar,如何在恢复之前准备(如果需要)tar?
$ xtrabackup --prepare --target-dir=./<datadir>
或与innobackupex
:$ innobackupex --apply-log ./<datadir>
请注意,最后,如果操作成功完成,您将看到以下消息:InnoDB: Shutdown completed; log sequence number 9059880 180618 11:05:22 completed OK!
然后mysql就可以开始了。有关更多信息,请访问以下链接:
使用xtrabackup准备备份
流式处理和压缩备份
使用innobackupex准备备份