mysql - Innobackupex 从 SSH 恢复

标签 mysql restore percona

我使用 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) 使用 --move-back 从本地 TAR 恢复数据库的正常方法是如何解压所有内容而不使用磁盘上的额外空间?

2) 或者是否有可能(如果选项 1 不可用)从远程 TAR 恢复备份,逆向 Taking backup remotely using innobackupex 中描述的过程?我尝试了多次,但找不到正确的选项。

我在 2012 年的帖子中发现了一个选项 --remote-host,但在我的 1.5.1 版本中缺少此选项...

3) 正在流式传输=tar,如何在恢复之前准备(如果需要)tar?

提前谢谢您。

最佳答案

关于您的问题:

1) how is the normal way to restore the DB from local TAR using --move-back to decompress everything in place and not use extra space on the disk?

您可以使用下面的命令行提取文件并将输出通过管道传输到目标服务器:

# Execute the command where the backup is located ssh <user>@<mysql_server> "cd <datadir> && tar -xvv" < backup.tar

使用此方法,您将避免解压缩和复制所需的额外空间。接下来,您需要准备备份,这是您的问题 3:

3) being streamed=tar, how do I prepare (if necessary) the tar before restore?

$ xtrabackup --prepare --target-dir=./<datadir>

或者使用 innobackupex :

$ innobackupex --apply-log ./<datadir>

请注意,最后,如果操作成功完成,您将看到以下消息:

InnoDB: Shutdown completed; log sequence number 9059880 180618 11:05:22 completed OK!

然后 MySQL 将准备好启动。

更多信息可以在这些链接中找到:

Preparing the backup with xtrabackup

Streaming and compressing backups

Preparing the backup with innobackupex

关于mysql - Innobackupex 从 SSH 恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50909223/

相关文章:

mysql - 我如何查看 MySQL View 由什么组成?

python - 用于 celery 的原始 PyMySQL 多线程

mysql - 使用错误的引号样式运行 SQL 语句

c# - 使用包含大量数据的文本框恢复 WinForm

sql-server - RESTORE 过程是否依赖于架构?

mysql - 如果 "SELECT fieldname INTO var"返回 0 行,存储过程将停止

python - Django - 无法在下拉列表中检索数据库中的数据

windows - 在代码管理菜单中恢复visual studio code中删除的文件

php - 我可以选择性地使用memcached吗?

mysql - 您如何监控复制和客户端证书的 MariaDB SSL 到期?