备份与恢复概述
1.数据库中的数据丢失或破坏可能原因
•计算机硬件故障
•软件故障
•病毒
•自然灾害
•盗窃
2.备份与恢复的概念
•备份:是指在某种介质上(磁盘)存储数据库(或其中一部分)的复制
•恢复:是指及时将数据库返回到原来的状态
备份是非常重要的,是恢复数据库最容易和最能防止意外的有效方法。没有备份,所有的数据都可能会丢失,而且将造成不可挽回的损失。
由谁来做备份?在默认情况下,dbo有执行backup和load的能力。dbo是某个数据库的所有者,或是数据库创建者的数据库登录别名,或者以sa注册的用户,它不是注册名。
备份的类型有:
(1)数据库备份
按常规定期备份整个数据库,包括事务日志。还原进程重写现有数据库,如果现有数据库不存在则创建。
(2)日志备份
不需很频繁地定期进行数据库备份,而是在两次完全数据库备份期间,进行事务日志备份,所备份的事务日志记录了两次数据库备份之间所有的数据库活动记录。一般来说,事务日志备份比数据库备份使用的资源少。
如果数据库已经恢复,则将回滚备份操作开始时尚未完成。
(3)差异备份
差异数据库备份只记录自上次数据库备份后发生更改的数据。差异数据库备份比数据库备份速度快,因为备份的内容少,因此可以更经常地备份。
(4)文件或文件组备份
当时间限制使得完整数据库备份不切实际时,可以考虑使用回滚备份数据库文件和文件组,而不是备份完整数据库。若要备份一个文件而不是整个数据库时,要考虑合理的步骤以确保数据库中所有的文件按规则备份。同时必须进行单独的事务日志备份。
备份及其操作
1.备份设备的设置
在进行数据库备份之前,要指定磁盘备份设备和它所处的路径,其语句如下:
Sp_addump device [@devtype=]‘device_type’
[@logincalname=]’logincal_name’,
[@physicalname=]’physical_name’,
•device_type:备份设备的类型
•logincal_name:备份设备的逻辑名称
•physical_name:备份设备的物理名称
如要为master数据库添加一个名为MYDISKDUMP的磁盘备份设备,其物理名称为C:\Dump\Dump1.bak,则其语句为:
USE master
EXEC sp_addumpdevice
'disk', 'mydiskdump',
'c:\dump\dump1.bak'
2.删除备份设备
若要删除备份设备信息,可使用如下语句:
Sp_drop device[@logicalname=]‘device’
3 .用T-SQL命令进行备份
使用T-SQL命令进行数据库备份的语句如下:
BACKUP{DATABASE|LOG}
{databasename|@database_name_var}
[<file_or_filegroup>[,…n]]
TO <backup_device>[,…n]
[WITH
…..
]
(1)数据库完全备份:
例如:将数据库m备份到一个磁盘文件上,备份设备为物理设备,语句如下:
BACKUP DATABASE m TO
DISK='c:\dump\m.BAK'
(2)数据库差异备份
例如:将数据库m差异备份到一个磁盘文件上,备份设备为物理设备,语句如下:
BAKCUP DATABASE m TO
DISK='c:\dump\m.BAK'
WITH DIFFERENTIAL
注意:只有已经执行了完全数据库备份的数据库才能执行差异备份。
恢复及其操作
数据库恢复是和数据库备份相对应的操作,它是将数据库备份重新加载到系统中的过程。
数据库恢复可以创建备份完成时数据库中存在的相关文件,但是备份以后的所有数据库修改将丢失。
1.数据库恢复模型
根据对保存数据的需要和对存储介质使用的考虑,SQL SERVER提供了3种数据库恢复模型,简单恢复、完全恢复、大容量日志记录恢复。
(1)简单恢复模型
可以将数据库恢复到上次备份处,但是无法将数据库还原到故障点或待定的即时点。它常用于恢复最新的完整数据库备份、差异备份。
(2)完全恢复模型
使用数据库备份和事务日志备份提供将数据库恢复到故障点或特定即时点的能力。
(3)大容量日志记录恢复模型
为某些大规模或大容量复制操作提供最佳性能和最少日志使用空间。
2. 用T-SQL命令进行恢复
语句如下:
RESTORE{DATABASE|LOG}
{databasename|@database_name_var}
[<file_or_filegroup>[,…n]]
FROM <backup_device>[,…n]
[WITH
…..
]
例如:从一个已存在的备份介质back1恢复整个数据库m,语句为
RESTORE DATABASE m FROM back1

