使用快照快速备份和还原数据库
最近在研究自动部署的问题。其中一个需求是能否对数据库进行快速地备份和还原操作。传统的完全备份和还原非常耗时,不太可取,我知道自从SQL Server 2005 以来,SQL Server 提供了快照功能,可以快速建立起一个只读快照,那么我们能否把这个快照作为备份并用来还原数据库呢?答案是:可以!不过这种备份、还原方式有若干限制,比如,需要还原的数据库必须只有一个快照,其它限制我也忘了,似乎对我不构成问题。下面来具体说明如何操作,假设我们打算对数据库 MyDb 创建一个快照 MyDBSnapshot,我们还假设数据库只有一个逻辑数据文件。
创建快照数据库
创建快照数据库和创建普通数据库类似,可以使用以下 SQL 语句:
1 | CREATE DATABASE MyDBSnapshot ON |
通过以上语句,我们针对 MyDB 数据创建了它的快照数据库 MyDBSnapshot。
将数据库还原为快照数据库创建时的状态
快照数据库创建之后,我们可以对原数据库进行各种操作,当我们需要将原数据库还原为快照数据库创建时的状态时,可以使用以下语句:
1 | RESTORE DATABASE MyDB FROM DATABASE_SNAPSHOT = 'MyDBSnapshot' |
删除快照数据库
删除快照数据库与删除普通数据库一样:
1 | DROP DATABASE MyDBSnapshot |