要将MySQL服务器复制到另一台服务器或云,有几种方法。
我们可以区分两种不同类型的副本:
物理拷贝
逻辑副本
物理拷贝通常是最快的。但是,它需要一些工具来确保您拥有一致的在线备份。例如,您可以使用MySQL企业备份(MEB)。
或者,也可以使用CLONE插件为新实例提供来自源服务器的现有数据。这是我喜欢的方法。
最后,最后一个物理解决方案是使用文件系统快照,但这需要正确的基础结构,甚至需要更加小心地进行一致的在线备份。
然而,如果计划转移到MySQL数据库管理服务,如OCI上的MySQL HeatWave,这些物理解决方案是不合适的。它们还需要相同版本的MySQL。
同样,如果您计划将数据从一个MySQL托管服务实例复制到另一个实例,集成备份可能是一个解决方案
在prem上复制
让我们来看看copyInstance()从一个on-prem实例到另一个on-prem实例的例子:
在OCI中复制
现在我们来看看如何将MySQL HeatWave实例从一个区域复制到另一个区域,并同时执行版本降级:
当然,我们需要使用远程VCN对等来对等这两个区域。
一旦互连准备就绪,我们就可以使用安装在计算实例上的MySQL Shell 8.1将MySQLHeatWave实例从us-ashburn-1复制到eu-frankfurt-1:
正如我们在MySQLHeatWave中一样,我们需要启用strip_restricted_grants兼容性选项,并排除MySQL_audit模式。还需要排除ocidm用户(请参见上文)。
这个过程到此结束:
结论
要将MySQL实例复制到另一台服务器,如果您在prem上并使用相同的版本,克隆插件是最快、最简单的方法。
否则,MySQL Shell是首选方案。这是云中的推荐选择。
从MySQL 8.1开始,MySQL SHELL提供了在使用复制方法时消除中间存储需求的能力。
喜欢MySQL数据库!
转载:https://blogs.oracle.com/mysql/post/how-to-copy-a-mysql-instance