我只是想知道SQL数据库快照和常规SQL数据库之间的区别是什么?有人可以帮我理解两者之间的区别吗?
提前致谢。
答案 0 :(得分:1)
快照是另一个数据库的只读副本,是在某个时间点生成的。对原始数据库所做的任何更改都会导致在拍摄快照时将数据版本写入快照使用的文件。因此,性能受到了影响,但是在过去的某个时刻(当您告诉要创建快照时)确切了解数据库的外观非常有用。
绝对值得注意的是,快照在首次创建时不包含自己的数据,因为它可以为它引用原始数据库,至少在原始数据库更改之前。
答案 1 :(得分:0)
首次创建快照时,它是一个空shell,它将所有查询(只读快照)委派给原始数据库。
当对原始数据库进行更改时,所涉及的页面将复制到快照中。此时对快照的查询将在逻辑数据库上执行,该逻辑数据库是将快照中的页面与原始数据库中的页面分层的结果。
效果是快照似乎是在创建快照的同时创建的原始数据库的完整副本。
这可能有用的一种情况是部署更改。如果出现问题,快照可以是一种非常便宜的保险形式。假设在部署期间仅修改了原始数据库中的一部分页面,则在还原期间只需要将该页面的子集从快照复制回原始数据库。