复制/复制大型mysql数据库的最佳方式是什么
我们希望在mysql数据库(副本)上运行BI分析 目前,我们每天都会得到一个完整的mysql转储文件,但将该文件导入到“BI”服务器需要16个小时。转储文件本身大约9GB大,导致360个表的总容量为20GB(在磁盘上);最大的表文件(.ibd)约为6GB 我不是mysql专家,但我认为导入需要很多时间,因为转储文件只导入数据,数据库需要从头开始重新索引所有内容…(附带问题:有没有关于如何改进导入的想法?),但这并不能真正提高导入速度 有没有一种方法可以对源数据库进行某种形式的“快照”,以便它可以按原样复制而不是导入?复制/复制大型mysql数据库的最佳方式是什么,mysql,database-replication,Mysql,Database Replication,我们希望在mysql数据库(副本)上运行BI分析 目前,我们每天都会得到一个完整的mysql转储文件,但将该文件导入到“BI”服务器需要16个小时。转储文件本身大约9GB大,导致360个表的总容量为20GB(在磁盘上);最大的表文件(.ibd)约为6GB 我不是mysql专家,但我认为导入需要很多时间,因为转储文件只导入数据,数据库需要从头开始重新索引所有内容…(附带问题:有没有关于如何改进导入的想法?),但这并不能真正提高导入速度 有没有一种方法可以对源数据库进行某种形式的“快照”,以便它可以
我考虑一个包含所有.ibd文件(以及其他必要文件)的.zip文件。是的,导入一个大型mysqldump是出了名的慢。转储文件包含索引的定义,但不包含索引存储本身。因此,每次导入转储文件时都必须重新生成索引 在我的公司,我们使用 它是一个物理备份工具,意味着结果不是必须导入的SQL转储文件。它只是复制.ibd文件和iblog文件以协调事务。.ibd文件包含数据行和索引行 我们使用此备份和恢复解决方案来克隆数据库,最大可达您的100倍 Percona XtraBackup是免费的、开源的 有几点需要注意:
- 上次我检查时,Windows不工作(我已经好几年没有检查了,因为我不使用Windows)
- 您可以在不中断源实例服务的情况下进行备份,但要“恢复”,您需要关闭本地MySQL服务器,将备份复制到datadir中,然后重新启动MySQL服务器
- 将一个数据库导入一个实例几乎是不可能的。换句话说,备份和恢复是针对完整实例的,包括所有表和模式。这将覆盖本地实例上的任何其他内容。而mysqldump更灵活,因为您可以只转储和导入一个表或一个模式,并且可以导入到正在运行的MySQL服务器实例,而无需停止它
值得一提的是,如果您没有使用适当的备份工具,就不应该尝试对正在运行的MySQL服务器的MySQL数据目录进行zip存档。您几乎肯定会得到数据文件的不一致副本,这意味着它们将被损坏且无法恢复。有一个完整的网站专门解决这类问题: