在SQL Server中,除了系统数据库外,你创建的每一个数据库都有三种可供选择的恢复模式: Simple(简单), full(完整), bulk-logged(批量日志)。 下面这条语句可以显示出所有在线数据库的恢复模式:
SELECT name, (SELECT DATABASEPROPERTYEX(name, 'RECOVERY')) RecoveryModel FROM master..sysdatabases ORDER BY name
SQL Server 2005及以上版本也可以使用下面这条语句来查看:
SELECT name, recovery_model_desc FROM master.sys.databases ORDER BY name
如果想改变数据库的恢复模式,可以使用下面SQL语句:
简单恢复模式:ALTER DATABASE AdventureWorks SET RECOVERY SIMPLE
完整恢复模式:ALTER DATABASE AdventureWorks SET RECOVERY FULL
批量日志恢复模式:ALTER DATABASE AdventureWorks SET RECOVERY BULK_LOGGED
在实际情况中,你应该选择使用哪种恢复模式呢?答案在于你能承受丢失多少数据。让我们用下面这些图表来说明这三种恢复模式之间的不同。下面这张图是一个数据库分别在9点和11点进行了一次完整备份。