这似乎是一个相当普遍的情况,但我不知道如何做到这一点。
我有一个非常大的数据库(想想很多 TB),因此无法创建完整备份。在某个时候,我想在数据库上运行一个更新脚本,它可以进行一些架构修改、更改一些数据等。
为了在安全站点上,如果出现问题,我希望能够撤消这些操作。如果在更新过程中没有人可以访问数据库,那也没关系。
为了让它更复杂一点,我不想破坏日常维护/备份过程。
我一直在考虑将数据库置于单服务器模式,然后在指定的时间段内回滚事务日志,但我不确定如何执行此操作(而且时间感觉不太可靠)。我查看了“检查点”功能,但不确定如何使用它。任何人?
使用数据库快照。创建快照,做得更糟。如果事情变得糟糕,请恢复到快照,请参阅将数据库恢复为数据库快照。数据库快照是写时复制的,因此它们几乎不占用磁盘空间(所占用的空间会随着您更新原始数据库而增加,并且写时复制必须保存以前的数据)。它们的创建和删除速度很快。
如果您必须从快照还原,它将破坏备份日志链:
这将影响您的维护,您必须做出相应的计划,例如。准备使用新的完整备份重新播种日志链。不幸的是,没有现实的选择。当然,您应该先测试您的迁移脚本,然后再在生产环境中尝试它们。您正在使用脚本,不是吗?