一、数据库的恢复模式有三种:简单,大容量,完全
二、配置数据库恢复模式
第一种:通过UI来完成。选中数据库--右键--选择属性--选项--恢复模式。通过选择下拉列表来完更改
第二种:通过t-sql
Code
use master
go
-- change to recovery mode to full
alter database databasename set recovery full|silple|bulk-logged
三、恢复模式概述
1 简单恢复模式下备份
支持数据库备份和文件备份,不支持日志备份。因为没有日志备份,数据库只能还原到最后一次数据库备份。在最后一次备份后更新的数据将丢失。
2 完全恢复模式下备份
使用日志备份在最大范围内防止出现故障时丢失数据,这种模式需要备份和还原事务日志。使用日志备份的优点是允许DBA将数据库还原到日志备份中包含的任何时点。可以使用一系列日志备份将数据库前滚到其中一个日志备份中包含的任意时点。
示例:对一个数据库现在有一个完整数据库备份DB_1,两个例行日志备份Log_1和Log_2。在Log_2日志备份后的某个时刻,数据库出现出具丢失。在还原三个备份前,DBA必须备份活动日志(日志尾部)。然后还原DB_1, Log_1和Log_2,而不恢复数据库。然后DBA还原并恢复结尾日志备份。把数据库恢复到故障点,从而恢复所有数据【这个还没搞明白怎么操作】。
3 大容量日志恢复模式下备份
一种特殊用途的恢复模式,只应偶尔用户提高某些大规模大容量操作的性能。完整恢复模式下有关备份的许多索命也适用于大容量日志恢复模式。
工作原理:大容量日志恢复模式只对大容量操作进行最小记录。大容量日志恢复模式保护大容量操作不受媒体故障的危害,提供最佳性能并占用最小日志空间。但是大容量日志恢复模式会增加这些大容量复制操作丢失数据的危险,因为大容量日志操作阻止再次捕获对每个事务逐一所做的更改。如果日志备份中包含大容量日志操作,则无法还原到该日志备份中的时点,而只能还原整个日志备份。
四、简单练习:在完全模式下对数据库和日志文件进行完整备份,然后还原和恢复。
practise
use master
go
-- change to recovery mode to full
alter database sad set recovery full
-- create trial-database backup
backup database sad to disk = 'c:\sqlbackup\sad_db.bak'
with format
go
--#################return msg#################
--Processed 192 pages for database 'sad', file 'SAD' on file 1.
--Processed 2 pages for database 'sad', file 'SAD_log' on file 1.
--BACKUP DATABASE successfully processed 194 pages in 0.253 seconds (6.253 MB/sec).
--#################retun msg#################
-- create trial-log backup
backup log sad to disk = 'c:\sqlbackup\sad_log.bak'
with norecovery
go
--#################return msg#################
--Processed 3 pages for database 'sad', file 'SAD_log' on file 1.
--BACKUP LOG successfully processed 3 pages in 0.208 seconds (0.093 MB/sec).
--#################return msg#################
-- restore the database-------------------
restore database sad
from disk='c:\sqlbackup\sad_db.bak'
with file=1, norecovery
go
--#################return msg#################
--Processed 192 pages for database 'sad', file 'SAD' on file 1.
--Processed 2 pages for database 'sad', file 'SAD_log' on file 1.
--RESTORE DATABASE successfully processed 194 pages in 2.856 seconds (0.553 MB/sec).
--#################return msg#################
--restore the log file
restore log sad
from disk='c:\sqlbackup\sad_log.bak'
with file=1, norecovery
go
--#################return msg#################
--Processed 0 pages for database 'sad', file 'SAD' on file 1.
--Processed 3 pages for database 'sad', file 'SAD_log' on file 1.
--RESTORE LOG successfully processed 3 pages in 0.038 seconds (0.512 MB/sec).
--#################return msg#################
--recovery the database
restore database sad with recovery
go
--#################return msg#################
--RESTORE DATABASE successfully processed 0 pages in 0.831 seconds (0.000 MB/sec).
--#################return msg#################