您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 第11章 数据备份、恢复和报表
第11章数据备份、恢复和报表主讲教师:卫琳2020年1月29日第2页第12章备份、恢复和报表本章概述本章要点本章内容2020年1月29日第3页本章要点•数据库数据的导入和导出•备份前的准备工作和备份特点•执行备份操作•备份方法和备份策略•还原前的准备工作和还原特点•执行还原操作第11章数据备份、恢复和报表11.1数据库的导入与导出11.1.1数据库的导出1.导出数据为文本文件2.导出为Excel文件3.导出数据为access数据库1.将数据库表导出为文本文件2.将数据库表导出为EXCEL文件3.将数据库表导出为ACCESS文件11.1.2数据库的导入示例:将e:\sql\data.txt文本文件导入到sqlserver的abc数据库中selectdistinct*intotempfromstudentdeletefromstudentinsertintostudentselect*fromtemp如何去除表中重复的行11.2数据库的备份与还原实验如下:12.2.1执行备份操作•在执行备份操作之前,应该创建数据库的备份文件。备份文件既可以是永久性的,也可能是临时性的。然后,把指定的数据库备份到备份文件上。2020年1月29日第44页创建永久性的备份文件•执行备份的第一步是创建将要包含备份内容的备份文件。为了执行备份操作,在使用之前所创建的备份文件称为永久性的备份文件。这些永久性的备份文件也称为备份设备。•如果希望所创建的备份设备反复使用或执行系统的自动化操作例如备份数据库,必须使用永久性的备份文件。如果不打算重新使用这些备份文件,可以创建临时的备份文件。例如,如果正在执行一次性的数据库备份或正在测试准备自动进行的备份操作,可以创建临时备份文件。2020年1月29日第45页创建备份设备2020年1月29日第46页“备份设备”对话框2020年1月29日第47页使用多个备份文件来存储备份•在执行数据库备份过程中,MicrosoftSQLServer系统可以同时向多个备份文件写备份内容。这时的备份称为并行备份。如果使用多个备份文件,那么数据库中的数据就分散在这些备份文件中。在执行一次备份过程中,使用到的一个或多个备份文件称为备份集。•使用并行备份可以降低备份操作的时间。2020年1月29日第48页BACKUP语句•如果希望灵活地执行备份操作,那么可以使用Transact-SQL语言中的BACKUP语句•BACKUP语句的基本语法形式如下所示:•BACKUPDATABASE{database_name|@database_name_var}•TObackup_device[,...n]2020年1月29日第49页使用BACKUP语句执行备份2020年1月29日第50页备份方法•MicrosoftSQLServer2008系统提供了4种基本的备份方法,来满足企业和数据库活动的各种需要。这4种备份方法是:完全数据库备份、增量数据库备份、事务日志备份和数据库文件或文件组备份。这些备份方法的不同组合会产生不同的备份策略。•需要说明的是,在MicrosoftSQLServer2008系统中,引入了备份压缩功能。备份压缩是指对备份的数据进行压缩之后进行备份,这样可以减少备份设备所需的I/O操作,大大提高了备份速度。但是,备份压缩增加了CPU的使用率。目前,只有SQLServer2008的企业版系统支持这样功能。2020年1月29日第51页执行增量数据库备份2020年1月29日第52页使用BACKUPLOG语句执行日志备份2020年1月29日第53页“备份数据库”对话框的“常规”选项页2020年1月29日第54页“选择备份目标”对话框2020年1月29日第55页“备份数据库”对话框的“选项”选项页2020年1月29日第56页例【11-1】:将“实例数据库”备份到备份设备“实例数据库.bak”中,使用WITHFORMAT子句初始化备份设备。T-SQL语句如下:•BACKUPDATABASE实例数据库•TODISK='C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Backup•\实例数据库.bak'•WITHFORMAT12.5还原•备份和还原有着紧密的联系。备份是一种灾害预防操作,还原则是一种消除灾害的操作。本节讲述还原数据库的基本概念和具体操作。2020年1月29日第58页还原的特点•还原是与备份相对应的操作。备份和还原都是不可缺少的系统管理工作。备份是为了防止可能遇到的系统失败而采取的操作,而还原则是为了对付已经遇到的系统失败而采取的操作。因此,可以说备份是还原的基础,没有数据的备份就谈不上数据的还原。还原是备份的目的,不是为了备份而备份,而是为了还原而备份。2020年1月29日第59页验证备份的内容•在还原数据库之前,应该验证使用的备份文件是否有效,并查看备份文件中的内容是否是所需要的内容。可以使用下面的RESTORE语句验证备份的内容:–RESTOREHEADERONLY–RESTOREFILELISTONLY–RESTORELABELONLY–RESTOREVERIFYONLY2020年1月29日第60页使用RESTOREHEADERONLY语句2020年1月29日第61页RESTORE语句•可以使用RESTOREDATABASE语句执行数据库的还原操作,使用RESTORELOG语句执行事务日志的还原操作。•RESTOREDATABASE语句的语法形式如下:•RESTOREDATABASE{database_name|@database_name_var}•[FROMbackup_device[,...n]]2020年1月29日第62页RECOVERY和NORECOVERY选项•在执行还原数据库的操作时,常用的选项包括RECOVERY和NORECOVERY。也就是说,在执行还原操作时,必须指定这两个选项中的一个。RECOVERY选项是默认的选项。•在执行最后一次事务日志还原操作之后,或完全数据库还原操作之后,可以使用RECOVERY选项。这时,数据库还原到正常的状态:•如果有多个备份内容需要还原,需要使用NORECOVERY选项。2020年1月29日第63页使用RESTORE语句还原数据库2020年1月29日第64页usetestgocreatetables(snochar(6)primarykey)createtablec(cnochar(4)primarykey)createtablesc(snochar(6),cnochar(4),gradetinyint,primarykey(sno,cno),foreignkey(sno)referencess(sno),foreignkey(cno)referencesc(cno))SC表为空3.在e:\下创建testbackup文件夹4.分别创建backupfull,backdiff,backlogs备份设备。5.右击test数据库----属性----选项(恢复模式:完整)6.将test数据库完整备份到backupfull设备上。(覆盖所有现在备份集)7.Insertintoscvalues(‘01’,’1001’,60)插入第1条记录8.将test数据库差异备份到backupdiff设备上。(覆盖所有现在备份集)9.Insertintoscvalues(‘02’,’1002’,70)插入第2条记录10.备份test数据库事务日志1到backuplogs设备上。(覆盖所有现在备份集)11.Insertintoscvalues(‘03’,’1003’,80)插入第3条记录12.备份test数据库事务日志2到backuplogs设备上。(追加到现在备份集)13.Insertintoscvalues(‘04’,’1004’,900)插入第4条记录14.模拟灾难•右击服务器---停止•更改test.mdf文件名后,右击服务器-----启动•不能打开test表15.对test数据库做尾日志备份目的:对可能已损坏的数据库进行的日志备份,用于捕获所有尚未备份的日志记录,尾日志备份出现在故障时进行,用于防止丢失工作数据。•备份名称:test事务日志尾备份•选项页中的覆盖媒体选“追加到现在备份集”•选项页中的事务日志选“备份日志尾部,并使数据库处于还原状态”16.还原数据库到发生灾难时刻。右击test数据库---任务---还原---数据库…•选“覆盖所有现在备份集”•回滚未提交事务,使数据库处于可以使用状态。Sc表中可以看到有第4条记录,即恢复到了发生故障的时刻。11.5报表管理
本文标题:第11章 数据备份、恢复和报表
链接地址:https://www.777doc.com/doc-3368337 .html