数据库应用基础第十一章备份与恢复.ppt
1,第十一章备份与恢复,复习,1 SQL Server的登陆模式?2角色的概念,3,3,3,3,3,本次课主要内容11.1 数据库备份与恢复的概念11.2 备份及其操作11.3 恢复及其操作,4,1 概述,数据库中的数据丢失或破坏可能原因:,计算机硬件故障软件故障病毒自然灾害盗窃,备份:是指在某种介质上(磁盘)存储数据库(或其中一部分)的复制恢复:是指及时将数据库返回到原来的状态,6,备份是非常重要的,是恢复数据库最容易和最能防止意外的有效方法。没有备份,所有的数据都可能会丢失,而且将造成不可挽回的损失,备份的作用:,7,在缺省情况下,dbo有执行backup和load的能力。dbo是某个数据库的所有者,或是数据库创建者的数据库登录别名,或者以sa注册的用户,它不是注册名,由谁做备份,8,2 备份的类型,数据库备份日志备份差异备份文件或文件组备份,备份类型,9,(1)数据库备份:按常规定期备份整个数据库,包括事务日志。还原进程重写现有数据库,如果现有数据库不存在则创建,10,(2)日志备份:不需很频繁地定期进行数据库备份,而是在两次完全数据库备份期间,进行事务日志备份,所备份的事务日志记录了两次数据库备份之间所有的数据库活动记录。如果数据库已经恢复,则将回滚备份操作开始时尚未完成的所有事务,一般来说,事务日志备份比数据库备份使用的资源少,11,(3)差异备份:差异数据库备份只记录自上次数据库备份后发生更改的数据,因为备份的内容少,因此可以更经常地备份,差异数据库备份比数据库备份速度快,12,(4)文件或文件组备份:当时间限制使得完整数据库备份不切实际时,可以考虑使用BACKUP备份数据库文件和文件组,而不是备份完整数据库。若要备份一个文件而不是整个数据库时,要考虑合理的步骤以确保数据库中所有的文件按规则备份。同时必须进行单独的事务日志备份,13,13,13,13,13,本次课主要内容11.1 数据库备份与恢复的概念11.2 备份及其操作11.3 恢复及其操作,14,11.2 备份及其操作,在进行数据库备份之前,要指定磁盘备份设备和它所处的路径,如要为master数据库添加一个名为MYDISKDUMP的磁盘备份设备,其物理名称为 C:DumpDump1.bak,1 备份设备,硬件,磁带,命名管道,15,Sp_addumpdevice devtype=device_typelogincalname=logincal_name,physicalname=physical_name,备份设备的逻辑名称,备份设备的类型,备份设备的物理名称,16,USE masterEXEC sp_addumpdevice disk,mydiskdump,c:dumpdump1.bak,17,图形化界面,19,2 删除备份设备,Sp_dropdevice logicalname=device例Use masterGoEXEC sp_dropdevice mydiskdump,20,BACKUPDATABASE|LOGdatabasename|database_name_var,nTO,nWITH.,3 用T-SQL命令进行备份,21,(1)数据库完全备份,将数据库m备份到一个磁盘文件上,备份设备为物理设备。,将数据库m备份到逻辑备份设备back1上,23,(2)数据库差异备份,将数据库m差异备份到一个磁盘文件上,备份设备为物理设备。BACKUP DATABASE m TO DISK=D:m.BAK WITH DIFFERENTIAL注意:只有已经执行了完全数据库备份的数据库才能执行差异备份。,24,24,24,24,24,本次课主要内容11.1 数据库备份与恢复的概念11.2 备份及其操作11.3 恢复及其操作,25,11.3 恢复及其操作,数据库恢复是和数据库备份相对应的操作,它是将数据库备份重新加载到系统中的过程。数据库恢复可以创建备份完成时数据库中存在的相关文件,但是备份以后的所有数据库修改将丢失。,26,1 数据库恢复模型,根据对保存数据的需要和对存储介质使用的考虑,SQL SERVER提供了3种数据库恢复模型,简单恢复、完全恢复、大容量日志记录恢复。,27,(1)简单恢复模型 可以将数据库恢复到上次备份处,但是无法将数据库还原到故障点或待定的即时点。它常用于恢复最新的完整数据库备份、差异备份。,28,(2)完全恢复模型 使用数据库备份和事务日志备份提供将数据库恢复到故障点或特定即时点的能力。(3)大容量日志记录恢复模型 为某些大规模或大容量复制操作提供最佳性能和最少日志使用空间。,31,2 用T-SQL命令进行恢复,RESTORE DATABASE|LOGdatabasename|database_name_var,nFROM,nWITH.,32,例:从一个已存在的备份介质back1恢复整个数据库m,例:从磁盘上的备份文件D:m.BAK恢复数据库m,34,1:/*2:通过SQL 语句备份数据库 3:*/4:BACKUP DATABASE mydb 5:TO DISK=C:DBBACKmydb.BAK 6:-这里指定需要备份数据库的路径和文件名,注意:路径的文件夹是必须已经创建的.文件名可以使用日期来标示-,35,7:8:/*9:通过SQL语句还原数据库10:*/11:USE master 12:RESTORE DATABASE mydb 13:FROM DISK=C:DBBACKmydb.BAK14:WITH REPLACE 注意:很多时候不能直接还原,因为数据不是独占打开.,