MySQL 的写时复制透明数据库

Dan*_*vid 5 mysql

是否可以创建对另一个生产数据库服务器透明的数据库?我的意思是,在生产数据库中测试新功能太危险了。如果我们创建一个基于Copy On Write机制的数据库(因为不想每次都复制大量数据),并对其进行一些修改怎么办?原来的生产数据库不会修改,只修改COW数据库。经过测试,COW数据库可以删除、保存等,但原来的可以运行,没有任何危险。

这个解决方案存在吗?有人实施过吗?

小智 5

我不知道 mysql 本身有什么做这种操作的。对于Oracle来说,有一个东西,我认为它叫做Oracle Workspace Manager,但我不确定,有很多可用的选项。

对于mysql,我认为你需要在存储级别上执行此操作,例如使用具有良好克隆功能的文件系统,例如ZFS。或者是 SAN。

  • 将 mysql 实例的数据部分放在单独的文件系统上
  • 像往常一样运行产品实例
  • 需要时克隆数据文件系统(不会破坏产品实例)
  • 配置第二个 mysql 实例,它使用克隆的 fs 作为数据目录
  • 启动第二个实例,它现在将进行恢复
  • 使用第二个实例进行测试

我自己还没有设置这个,所以可能会丢失一些小东西,但通常这是一种方法 - 我认为它并不太复杂。

它不会帮助您进行负载测试之类的事情,因为生产和测试共享相同的存储子系统,但对于通常的测试来说它很好。