北京邮电大学实验报告课程名称数据库系统原理实验名称数据库备份与恢复实验计算机学院网络工程11班薛玥指导教师吴起凡成绩2014-6-1实验目的1.理解SQLSERVER数据库的数据备份和恢复机制。2.掌握SQLSERVER数据库的数据备份和恢复的基本概念,例如备份方式(增量备份和完全备份)、备份介质(文件或者设备)等等。3.掌握备份和恢复的实际操作,能够备份和将备份恢复,特别是能够恢复到一个新的数据库中。4.理解备份/维护策略或备份/维护计划的概念。实验环境采用SQLSERVER数据库管理系统作为实验平台。其中,SQLSERVER数据库可以采用SQLSERVER2005、2008或2012的企业版。备份(Backup)和恢复(Restore)为最强有力的恢复手段,它不仅仅应用于保护数据库,而是应用于保护一切信息:我们对于操作系统或者其它各种信息(诸如多媒体文件)等都可以进行备份,待事故时进行恢复。由于硬件故障、用户错误、应用程序故障、软件故障、某用户拥有过多权限、局部灾难等可能导致数据库故障,所以DBA(数据库管理员)必须在平时做好备份工作,而且因为故障发生时刻是未知的,还必须做多个备份,从而可以恢复到故障前尽可能短时间的数据库状态以减少损失。DBA必须做好备份/恢复计划,并实际验证之,以确保故障时能够恢复数据库。实验内容与步骤一、校验数据库在执行数据库备份之前,首先必须保证数据库的一致性。通过实验指导书,我明白使用工具DBCC。可以用两种方法运行DBCC:通过命令行窗口或查询分析器(QueryAnalyzer)窗口。如果你认为必要,你还可以确定其操作的时间。(我从未感到有必要这样做,因为在微软的所有产品中,我对SQLServer的稳定性最为自信。我认为它是雷蒙德推出的最佳产品。但是,感觉也可能出错。)DBCC命令包括以下扩展:CheckDB:检测整个数据库的一致性,是检查数据库破坏的基本方法。CheckTable:检测特定表的问题。CheckAlloc:检测数据库的单个页面,包括表和目录。Reindex:重建某个特定表的目录。CacheStats:说明当前存储在内存缓存中的对象。DropCleanBuffers:释放当前存储在缓冲区中的所有数据,这样你就可以继续进行检测,而不必使用前面的结果。Errorlog:删除(缩短)当前日志。1.校验整个数据库的有效性:新建gsm9数据库,导入一定量的表格数据。使用DBCC扩展命令checkdb,检测整个数据库的一致性。该命令是检查数据库破坏的基本方法。输入dbcccheckdb的运行如下。2.校验单个表的有效性使用DBCC扩展命令checktable,检测特定的表。我的gsm9数据库中一共有三个表。分别对BSC、BTS、data表进行有效性检验。由于语句不区分大小写,所以我将gsm9中的data表打成“DATA”也可以顺利执行。二、备份数据库选择数据库gsm9,按照如下操作备份。1.执行完全备份在左侧可以看到自己的备份。2.执行部分备份3.在下列基于SQLSERVER2008的备份类型中任意执行3种,并解释其含义a)文件/文件组备文件组备份与文件备份的作用相同。文件组备份是文件组中所有文件的单个备份,相当于在创建备份时显式列出文件组中的所有文件。可以还原文件组备份中的个别文件,也可以将所有文件作为一个整体还原。在操作中发现,当时间约束使得完整数据库备份不切实际时,请备份数据库文件或文件组,而不是备份完整数据库。若要备份一个文件而不是整个数据库时,请建立过程以确保数据库中所有的文件按规则备份。在文件备份或文件组备份之后执行的文件差异备份。文件差异备份只包含在指定文件或文件组中更改的数据。有关详细信息,请参阅文件差异备份。具体操作方法一:具体操作方法二:b)差异备份:是相对于完全备份来说的,即备份上一次的完全备份后发生变化的所有文件。在差异备份过程中,只备份有标记的那些选中的文件和文件夹。备份后不标记为已备份文件,换言之,不清除存档属性。f)纯事务日志备份:是一种仅用于完整恢复模式或大容量日志恢复模式。日志备份序列提供了连续的事务信息链,可支持从数据库备份、差异备份或文件备份中快速恢复。有关详细信息,请参阅使用事务日志备份。4.执行压缩备份我使用的Sqlserver2005没有压缩备份选项。我利用同寝室的电脑,做了这个操作,如下图。三、恢复数据库1.恢复完整备份为一个新的数据库,要求新数据库内容和老数据库一样,下同。2.恢复部分备份为一个新的数据库。四、备份恢复方法比较1.新建一个空数据库,试用导入和导出向导将数据从旧数据库复制到新数据库中。选择“导入和导出向导”,并选择要复制的就数据库gsm6,复制到刚刚新建gsm_6,并一直点击“下一步”。成功执行后即可在左侧查询到刚刚复制好的数据库。2.新建一个空数据库,将“GSM移动通信网络配置数据库”备份直接恢复到该数据库中。比较两者的差异。比较:同:都可以完成数据库的备份,且执行成功。异:题目1,源数据直接可以导出备份数据,新数据库与备份时的原数据库完全相同。题目2,只需要提供原数据库的档案备份文件,数据库就会自动地生成新数据库,并恢复为原数据库的数据。(因为档案备份文件按照数据库内建的格式,保存了原数据库的数据库属性、数据、日志)它是通过原数据库的档案备份进行恢复。五、创建维护计划1.运行sp_configure打开服务器配置选项。2.在SQLSERVER2008ManagemnetStudio中打开管理文件夹,下面有新建维护计划等,按照向导操作。设置每天凌晨1点自动执行备份,当然实际上为了安全应该在DBCC完成后再进行,现在也可以设置成备份是在某时刻运行,但同时一定要在DBCC结束后才行,这样如果DBCC运行时间加长,则备份时间就算到了,也会自动推迟到DBCC结束后。由于自己的版本较低,我亲自在寝室同学的电脑上完成了这个操作,还可以选择备份的频率等。因为只是点击操作,所以比较简单。截图如下:实验总结本次试验,难点在于掌握备份的种类和方式。通过此次试验,我了解了sqlserver所支持的各种备份方类型,包括1.完整备份(该操作将备份包括部分事务日志在内的整个数据库(这样完整备份便可恢复))2.在完整数据库备份之间执行的完整差异备份。(完整差异备份只记录上次数据库备份后更改的数据。有关详细信息,请参阅完整差异备份。)3.部分备份。(部分备份类似于完整数据库备份,但只能包含主文件组和所有的读写文件组。或者,通过在BACKUP命令中列出只读文件,从而将它们包括在部分备份中。)4.在部分备份之后执行的部分差异备份。(部分差异备份只包含在主文件组和所有读写文件组中更改的数据。有关详细信息,请参阅部分差异备份。)5.文件和文件组备份。(文件组备份与文件备份的作用相同。文件组备份是文件组中所有文件的单个备份,相当于在创建备份时显式列出文件组中的所有文件。可以还原文件组备份中的个别文件,也可以将所有文件作为一个整体还原。)6.在文件备份或文件组备份之后执行的文件差异备份。(文件差异备份只包含在指定文件或文件组中更改的数据。有关详细信息,请参阅文件差异备份。)7.事务日志备份(仅用于完整恢复模式或大容量日志恢复模式)8.仅复制备份(SQLServer2005引入了对于创建仅复制备份的支持,此备份不影响正常的备份序列。因此,与其他备份不同,仅复制备份不会影响数据库的全部备份和还原过程。您可以为任何类型的备份创建仅复制备份。)此外,通过这次试验,我再次应用了数据库强大的功能,其中很备份操作,我也尝试着用命令行来执行备份,(详见报告)。通过自己的独立完成,我收获很多。