InnoDB:试图用innobackupex打开以前打开的表空间

Innobackupex和Docker

我想用innobackupex 2.4.8克隆MySQL 5.6从站。 从站在docker MySQL5.6容器内部运行。 innobackupex工具ist在主机上启动,并将DSNstring提供给工具以及主机上此容器的数据目录。

stream式备份

数据库非常大(60GB),主机空间有限。 我想将这些数据移动到一个有更多空间的新主机上。 出于这个原因,我通过SSH将备份stream式传输到新的主机,然后最终运行一个新的docker容器与复制的数据。

备份第一次正常工作。 但是当第二次运行时,我收到以下错误:

InnoDB: Attempted to open a previously opened tablespace. Previous tablespace test_db/Cars at filepath: ./test_db/Cars.ibd uses space ID: 3. Cannot open filepath: ./mysql/slave_relay_log_info.ibd which uses the same space ID. 

Innobackupex司令部

这是我使用的命令

 sudo innobackupex --slave-info --safe-slave-backup \ --user=root --host=127.0.0.1 --port=3306 --protocol=TCP \ --datadir=/var/lib/docker/volumes/mysqlslave_data/_data \ --databases="test_db mysql" --stream=tar ./ | ssh newhost \ "cat - > /home/user/slave_backup.tar" 

我没有第一次添加–slave-info –safe-slave-backup标志,并怀疑这是问题的原因,因为我尝试备份的MySQL服务器是另一个主服务器的从服务器。

持有从站的docker集装箱不显示任何错误,可以重新启动。 它不受影响,只有innobackupex工具显示错误。

题?

如何解决这个问题,以及如何重置到以前的状态,而不会丢失数据?