在数据库升级时,为防止升级失败造成的影响,我们通常需要:
1.准备回滚脚本,用于失败后回滚
2.在升级前备份数据库,用于失败后恢复
但回滚脚本需要花费很长时间准备,而备份恢复会导致数据库长时间不可用,为解决此类问题,可以使用数据库快照,数据库快照生成速度和还原速度都远快于备份,且操作简单。
--========================================================== --创建数据库快照 CREATE DATABASE BackupTestDB_SNAP ON (NAME='BackupTestDB', FILENAME='D:DBBackupTestDB.snap') ,(NAME='BackupTestDB_F1',FILENAME='D:DBBackupTestDB_F1.snap') AS SNAPSHOT OF BackupTestDB; GO --========================================================== --在源数据库中增加表TB4 USE BackupTestDB GO SELECT 1 AS ID INTO TB4 --========================================================== --使用快照还原数据库BackupTestDB --还原结束后发现表TB4已不存在 USE master GO RESTORE DATABASE BackupTestDB FROM DATABASE_SNAPSHOT='BackupTestDB_SNAP'