1、北京邮电大学实验报告课程名称 数据库系统概念 实验名称 数据库备份与恢复实验 _计算机_系_302_班 姓名 华逸群_计算机_系_302_班 姓名 魏乐业教师_叶文 吴起凡_ 成绩_2013 年 6 月 6 日实验目的1 理解 SQL SERVER 数据库的数据备份和恢复机制。2 掌握 SQL SERVER 数据库的数据备份和恢复的基本概念,例如备份方式(增量备份和完全备份) 、备份介质(文件或者设备)等等。3 掌握备份和恢复的实际操作,能够备份和将备份恢复,特别是能够恢复到一个新的数据库中。4 理解备份/维护策略或备份/维护计划的概念。 实验环境采用 SQL SERVER 数据库管理系统作为
2、实验平台。其中,SQL SERVER 数据库可以采用 SQL SERVER 2005、2008 或 2012 的企业版。备份(Backup)和恢复( Restore)为最强有力的恢复手段,它不仅仅应用于保护数据库,而是应用于保护一切信息:我们对于操作系统或者其它各种信息(诸如多媒体文件)等都可以进行备份,待事故时进行恢复。由于硬件故障、用户错误、应用程序故障、软件故障、某用户拥有过多权限、局部灾难等可能导致数据库故障,所以 DBA(数据库管理员)必须在平时做好备份工作,而且因为故障发生时刻是未知的,还必须做多个备份,从而可以恢复到故障前尽可能短时间的数据库状态以减少损失。DBA 必须做好备份/
3、恢复计划,并实际验证之,以确保故障时能够恢复数据库。实验内容与步骤一、校验数据库在执行数据库备份之前,首先必须保证数据库的一致性。这里最重要的工具是:DBCC。可以用两种方法运行 DBCC:通过命令行窗口或查询分析器(Query Analyzer)窗口。如果你认为必要,你还可以确定其操作的时间。 (我从未感到有必要这样做,因为在微软的所有产品中,我对 SQL Server 的稳定性最为自信。我认为它是雷蒙德推出的最佳产品。但是,感觉也可能出错。 )DBCC 命令包括以下扩展:CheckDB:检测整个数据库的一致性,是检查数据库破坏的基本方法。 CheckTable:检测特定表的问题。 Chec
4、kAlloc:检测数据库的单个页面,包括表和目录。 Reindex:重建某个特定表的目录。 CacheStats:说明当前存储在内存缓存中的对象。 DropCleanBuffers:释放当前存储在缓冲区中的所有数据,这样你就可以继续进行检测,而不必使用前面的结果。 Errorlog:删除(缩短)当前日志。1 检查整个数据库的有效性(1) 校验整个数据库的有效性;2 校验单个表(1) 校验单个表的有效性二、备份数据库选定一个数据库:1 执行完全备份2 执行部分备份3 在下列基于SQL SERVER 2008的备份类型中任意执行3种,并解释其含义a) 差异备份b) 仅复制备份c) 大容量事务日志备
5、份4 执行压缩备份三、恢复数据库1 恢复完整备份为一个新的数据库,要求新数据库内容和老数据库一样,下同。2 恢复部分备份为一个新的数据库。3 恢复压缩备份为一个新的数据库。四、备份恢复方法比较1 新建一个空数据库,试用导入和导出向导将数据从旧数据库复制到新数据库中。2 新建一个空数据库,将“GSM 移动通信网络配置数据库”备份直接恢复到该数据库中。比较两者的差异。两种恢复方法的比较第一种方法中,源数据直接可以导出到备份数据。 ,该新数据库与备份时的原数据库完全相同。第二种方法则通过原数据库的档案备份进行恢复。因为档案备份文件按照数据库内建的格式,保存了原数据库的所有信息(数据库属性、数据、日志
6、) ,因此采用该方法,只需要提供原数据库的档案备份文件,数据库就会自动地生成新数据库,并恢复为原数据库的数据。五、创建维护计划1 运行 sp_configure 打开服务器配置选项。2.在 SQL SERVER 2008 Managemnet Studio 中打开管理文件夹,下面有新建维护计划等,按照向导操作。设置每天凌晨 1 点自动执行备份,当然实际上为了安全应该在 DBCC 完成后再进行,现在也可以设置成备份是在某时刻运行,但同时一定要在 DBCC 结束后才行,这样如果 DBCC 运行时间加长,则备份时间就算到了,也会自动推迟到 DBCC 结束后。实验总结在实验中有哪些重要问题或者事件?你如何处理的?你的收获是什么?有何建议和意见等等。刚开始使用 dbcc 指令时,由于原来将数据库建立在系统数据库的 master 端,所以在想使用指令时遇到系统要求使用 singer user 的要求,后来在看了下边的要求后,先将数据备份,又恢复到一个新数据库中才解决此问题。各种备份方式啊,真多。都不好找,废了半天功夫只找到了为数不多的几个备份方式,方式真的很多,还需要继续努力,去掌握这纷繁复杂的备份方式。数据导出时不知道该选取何种方式,后来与其他组请教之后明白直接可以从一个数据库导出到另一个数据库。数据库是一个大千世界,想了解他还需要继续努力。