【问题标题】:Percona XtraBackup - restoring a database backup into a MySQL server containing other databasesPercona XtraBackup - 将数据库备份恢复到包含其他数据库的 MySQL 服务器
【发布时间】:2018-02-23 14:21:52
【问题描述】:

我正在尝试使用 Percona XtraBackup (15 Gb) 迁移大型 MySQL 数据库。

恢复备份的默认 innobackupex 命令需要移动或删除 mysql 数据目录(/var/lib/mysql):

mkdir /tmp/mysql
cd /var/lib/mysql/; mv * /tmp/mysql/
innobackupex --user=user --password=password --copy-back /data/backups/new_backup

目标 MySQL 服务器已包含多个数据库。有没有办法在现有数据库旁边恢复数据库(不会有架构名称冲突)?

TIA

【问题讨论】:

    标签: mysql backup percona


    【解决方案1】:

    确实可以使用 innobackup/xtrabackup 将数据库恢复到正在运行的 MySQL 服务器。

    不要使用--copy-back,而是使用--exportimport each tablespace one at a time。这很容易编写脚本。

    xtrabackup --export 将创建 .exp、.ibd 和 .cfg 文件。

    【讨论】:

      【解决方案2】:

      不,恐怕没有办法做你想做的事。

      有了这个大小的数据库,你可以使用 mysqldump 然后将数据恢复到你想要的位置https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html

      这里有一篇文章可能对您有用。它描述了如何将数据拆分为多个 csv 文件,这比使用 mysqldump 转储和恢复到/从 SQL 文件更快,尤其是当您可以选择使用多个线程时。

      https://www.percona.com/blog/2018/02/22/restore-mysql-logical-backup-maximum-speed/

      在移动或更改数据时,请务必在对实时数据使用这些技术之前进行测试。

      希望这会有所帮助。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-03
      • 1970-01-01
      • 2015-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多