繁体   English   中英

mysql-备份相关的innodb数据库

[英]mysql - backing up related innodb databases

我有一个关于备份多个具有相互数据库关系的MySQL innodb数据库的问题。 一个问题是在数据库备份和还原期间数据的关系完整性。

这种情况的用例是一种情况,其中一个“主”数据库被用于保存顶级数据,例如无法合并到一个数据库中的多个单独域的用户信息。 设置此问题不是问题,因为MySQL允许使用innodb外键实现跨数据库关系。

但是,如何正确备份主数据库和辅助数据库(假设它们位于同一服务器上)而又不会在备份期间破坏外键。

我正在寻找一种方法来在那一瞬间捕获那些数据库中的“快照”,或者在备份期间无法保留关系的情况下...

我希望我正确理解了这个问题。

假设您有两个数据库(db1和db2),其中db2中一个或多个表的外键约束引用了db1中的某些内容。

如果要确保进行备份时所有时间点都一致,则可以让mysqldump为您完成。 每当您运行mysqldump时,都会发出--single-transaction选项,如下所示:

mysqldump -u... -p... --single-transaction --databases db1 db2 > db1_db2.sql

创建内部检查点,以便db1和db2在参照完整性方面和时间点上都是一致的, 即使在备份期间将数据输入到db1和db2中也是如此。

在还原mysqldump的过程中,外键被禁用,以允许进行干净,快速的重载。 您可以信任在还原过程中被禁用的外键,并且仅当使用--single-transaction选项创建了mysqldump --single-transaction可以。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM