当经常使用虚拟机时,拥有一个基本的只读 VM 然后有几个较小的 VM 使用该较大的 VM 作为基础并将它们的更改写入它们自己的可写副本可能非常有用。
Microsoft Sql Server 中有类似的东西吗?
我所处的情况是我们托管了我们产品的演示副本,我们的客户可以连接大约 30 天左右。当我们创建模拟账户时,我们必须创建程序使用的基础数据库的新副本,并让软件指向该副本。每个图像略超过 2GB,但平均而言,演示用户只会更改数据库中大约 100MB 的数据。
我想做的是有一个只读数据库作为基础,然后让演示数据库创建一个“差异数据库”并将其数据和日志信息写到该差异数据库中。这可能吗?我一直在搜索 MSDN 文档,但我还没有找到任何东西,不幸的是谷歌搜索已经相当无用,因为搜索Sql server differential database
被所有关于做差异备份的页面污染了(做Sql server differential database -backup
也没有返回任何有用的结果,我得到的只是有关差异部署脚本的信息)。
最接近的是数据库快照。您拍摄数据库的快照,它将作为“基本图像”。然后客户对数据库发疯并将其破解。说完一切后,您将数据库恢复到快照,瞧,一切都恢复到原来的状态。请参阅将数据库恢复为数据库快照。
您确实在快照和数据库之间节省了空间,因为快照的写时复制语义。但不幸的是,这只适用于单个客户,您不能将一个快照作为多个可写客户的来源,这就是您所要求的。快照可以作为演示启动之类的服务器,您每天早上都可以在其中恢复它。
不,真的没有这样的东西。当然,如果 VM 主动连接到可靠的管道上,则视图始终可以将基础 VM 中的原始数据与新 VM 中的更改数据合并。