知识技能目标:1.理解备份、恢复、备份设备的概念2.会根据不同的情况制定合适的备份和恢复策略3.掌握创建备份设备、实现备份和恢复数据库的方法第12章游标及事务第12章游标及事务引导案例:教务管理数据库建立起来后,在使用的过程中有可能因各种意外而遭到破坏,比如病毒破坏、计算机设备硬件故障等,都将导致数据的丢失和破坏。为了在发生意外后能够尽快修复数据,并把损失降到最低,需要对教务管理数据库进行定期的备份,这样在发生意外时,就可以利用之前的备份来恢复数据库。这一章介绍备份和恢复数据库的技术。12.1备份概述12.2备份数据库12.3恢复概述12.4恢复数据库小结第12章游标及事务12.1备份概述数据库备份是数据库系统运行过程中需定期进行的操作,是保护数据库中数据的重要手段。一旦数据库因意外而遭损坏,就须用这些备份来恢复数据库,从而最大程度地减少损失。此外,数据库备份对于例行的工作(例如,将数据库从一台服务器复制到另一台服务器、设置数据库镜像)也很有用。返回目录12.1备份概述备份是指复制数据库形成的数据库的副本,创建在备份设备上(如磁盘或磁带),当数据库发生意外遭到破坏,用户能够利用这些已有的备份恢复数据。实施合适的备份策略可保护数据库,避免由于各种故障造成的损坏而丢失数据。返回目录12.1.1备份的概念12.1备份概述(1)完整备份该操作将备份整个数据库的所有内容,包括所有的数据和足够的事务日志,是数据库的完整副本。在还原数据时,也只需要还原一个备份文件。(2)差异备份差异备份是完整备份的补充,只备份上次完整备份以来更改的数据。因此差异备份的数据量比完整数据备份小,速度也更快。在还原数据时,要先还原完整备份后再还原最后一个差异备份。返回目录12.1.2备份类型12.1备份概述(3)事务日志备份事务日志备份只备份事务日志里的内容,它包括了自上一次事务日志备份后数据库的事务的日志记录。在还原数据时,要先还原完整备份,然后依次还原每个事务日志备份。使用事务日志备份,可以将数据库恢复到故障点或特定的时间点。(4)文件和文件组备份使用文件和文件组备份方式可以只备份数据库中的某些文件或文件组,可以将大型数据库的备份分多次进行,避免数据库备份的时间过长。当数据库里的某个或某些文件损坏时,只还原损坏的文件或文件组备份即可。返回目录12.1.2备份类型12.2备份数据库制定备份计划时需要考虑的方面:(1)备份的内容(2)备份的人员(3)备份数据库的时间(4)备份数据库的时间间隔(5)如何备份数据库返回目录12.2.1制定备份计划12.2备份数据库在下面情况发生时,应进行数据库备份:创建、修改、删除数据库之前。创建用户自定义对象之后。因为master数据库被修改,所以必须备份master数据库。增加或删除服务器的系统存储过程。修改了master、msdb、model数据库。清除事务日志或执行了不写入事务日志的操作。返回目录12.2.1制定备份计划12.2备份数据库1.备份设备备份或还原操作中使用的磁带机或磁盘驱动器称为备份设备。在同一个设备中可以存放多个数据库的备份数据,或者是一个数据库的多个备份数据。(1)磁盘设备(2)磁带设备返回目录12.2.2创建和管理备份设备12.2备份数据库1.备份设备(3)物理和逻辑设备物理备份设备是操作系统用来标识备份设备的名称,例如:d:\backups\student\full.bak逻辑备份设备是用户为物理备份设备定义的别名,用来标识物理备份设备。例如,上述物理设备的逻辑设备名称可以是:student_backup备份或还原数据库时,物理备份设备名称和逻辑备份设备名称可以互换使用。返回目录12.2.2创建和管理备份设备12.2备份数据库2.创建磁盘备份设备(1)利用SQLServerManagementStudio创建备份设备1)打开SQLServerManagementStudio。2)在对象资源管理器中,单击服务器名称以展开服务器树。3)展开“服务器对象”,然后右键单击“备份设备”,在快捷菜单中单击“新建备份设备”。4)在随后打开“备份设备”对话框中,输入设备的名称(逻辑设备名),单击“文件”并指定该文件的完整路径(物理设备名)。5)单击“确定”按钮完成设备的创建。返回目录12.2.2创建和管理备份设备12.2备份数据库2.创建磁盘备份设备(2)用T-SQL语句创建备份设备语法格式:sp_addumpdevice'设备类型','逻辑名称','物理名称'说明:设备类型:指定备份设备的类型,可以是disk(硬盘文件作为备份设备)或tape(MicrosoftWindows支持的任何磁带设备)。逻辑名称:指定备份设备的逻辑名称。物理名称:指定备份设备的物理名称,包含完整路径。【例12.1】添加一个名为dump1的磁盘备份设备,其物理位置为d:\backup\dump1.bak。返回目录12.2.2创建和管理备份设备12.2备份数据库3.查看备份设备用SQLServerManagementStudio查看备份设备里的内容的步骤如下:1)打开MicrosoftSQLServerDatabaseEngine。2)在对象资源管理器中,单击服务器名称展开服务器树。3)依次展开“服务器对象”、“备份设备”。4)在要查看内容的备份设备名上单击右键,选择“属性”,或双击要查看的备份设备名。返回目录12.2.2创建和管理备份设备12.2备份数据库3.查看备份设备5)弹出“备份设备—设备名称”对话框,对话框中有两个选项:“常规”、“媒体内容”。选择“常规”对话框中可以查看设备的物理位置,选择“媒体内容”选项,弹出对话框,在该对话框里可以查看该备份设备里包含的数据库备份数据,如备份时的备份名称、备份类型、备份的数据库、备份时间、过期时间等等。6)查看完毕后,单击“确定”退出该对话框。返回目录12.2.2创建和管理备份设备12.2备份数据库4.删除备份设备在SQLServerManagementStudio里删除备份设备的方法如下:1)打开SQLServerManagementStudio。2)在对象资源管理器中,单击服务器名称展开服务器树。3)展开“服务器对象”、“备份设备”4)在要查看内容的备份设备名上单击右键,选择“删除”。5)弹出“删除对象”对框话,在该对话框里单击“确定”开始执行删除操作。返回目录12.2.2创建和管理备份设备12.2备份数据库备份设备创建好之后,就可以利用它们备份数据库了。1.用SQLServerManagementStudio备份数据库1)打开SQLServerManagementStudio。2)在对象资源管理器中,单击服务器名称展开服务器树。3)展开“数据库”,选择要备份的数据库。4)右键单击数据库,从弹出的快捷菜单中指向“任务”,再选择“备份”。5)在随后出现的“备份数据库”对话框中的“数据库”下拉列表框中,选择要备份的数据库的名称。返回目录12.2.3执行备份12.2备份数据库1.用SQLServerManagementStudio备份数据库6)可以对任意恢复模式(FULL、BULK_LOGGED或SIMPLE)执行数据库备份。7)选择备份的组件,是对整个数据库备份还是对指定的文件和文件组进行备份。如果只对指定的文件和文件组进行备份,选择“文件和文件组”,将会打开“选择文件和文件组”对话框,选择要备份的文件组或者文件,选择“确定”按钮,关闭“选择文件和文件组”对话框。返回目录12.2.3执行备份12.2备份数据库1.用SQLServerManagementStudio备份数据库8)备份集的名称和说明是对备份的说明性文字。9)指定备份的保留时间,以防止在指定的日期前覆盖备份。备份集过期后会可以被新的备份覆盖。10)在“备份类型”列表框中,选择备份的类型,为“完整”、“差异”或“事务日志”。11)在“备份数据库”对话框中选择左边“选项页”中的“选项”,打开选项界面,指定相关属性。12)选择“确定”按钮,开始备份过程。返回目录12.2.3执行备份12.2备份数据库2.用T-SQL语句备份数据库使用BACKUPDATABASE命令可以对数据库进行完整备份、备份一个或多个文件或文件组或差异备份。使用BACKUPLOG命令可以备份事务日志。语法格式:BACKUPDATABASE数据库TO备份设备|disk=’磁盘文件名’[WITH选项]BACKUPLOG数据库TO备份设备|disk=’磁盘文件名’[WITH选项]说明:选项可以设置备份操作的各种属性。返回目录12.2.3执行备份12.2备份数据库【例12.2】创建备份设备JwglData,并将“教务管理数据库”完整备份到该设备。【例12.3】将“教务管理数据库”完整备份到磁盘文件。【例12.4】将“教务管理数据库”差异备份到名为“JwglData”的备份设备上。【例12.5】将test数据库的完整备份、事务日志备份到名为“dump2”的备份设备上。【例12.6】将test数据库的名为“testData2”的文件备份到名为“dump2”的备份设备上。【例12.7】备份事务日志尾部。返回目录12.2.3执行备份12.2备份数据库3.通过备份设备来备份数据库1)打开SQLServerManagementStudio。2)在对象资源管理器中展开服务器实例。3)展开“服务器对象”、“备份设备”。4)在要创建数据库备份的备份设备上右击,选择“备份数据库”。5)弹出“备份数据库”对话框,在该对话框的“目标”区域里已经自动添加了该备份设备,设置其它备份属性。6)选择“确定”开始备份。返回目录12.2.3执行备份12.3恢复概述数据库备份后,一旦系统发生崩溃或者执行了错误的数据库操作,就可以从备份文件中还原数据库。即根据数据库备份文件自动创建数据库结构,并且还原数据库中的数据,使数据库恢复到备份时的状态。在还原数据库的过程中,系统自动执行安全性检查,保证数据库的一致性。返回目录12.3恢复概述恢复是从一个或多个备份中还原数据,并在还原最后一个备份后,使数据库处于一致且可用的状态并使其在线的一组完整的操作。12.3.1恢复的概念和方法返回目录12.3恢复概述数据库还原的方式与备份的方式一致,它们包括:完整备份的还原:无论是何种备份的还原,都要先做完整备份的还原。完整备份的还原只需要还原完整备份文件即可。差异备份的还原:差异备份的还原需要两步,首先还原完整备份,然后还原最后一个差异备份。事务日志备份的还原:事务日志备份的还原分为两步,首先还原完整备份和最后一个差异备份,然后依次恢复这个差异备份之后到数据库损坏之间的每一个事务日志备份。文件和文件组备份的还原:当数据库中只有某个文件或文件组损坏时适合使用这种还原模式。12.3.1恢复的概念和方法返回目录12.3恢复概述1.故障类型媒体故障(如磁盘损坏);用户错误(如误删除了某个表);硬件故障(如磁盘驱动器损坏或服务器报废);自然灾难(如地震)。12.3.2故障类型和恢复模式返回目录12.3恢复概述2.恢复模式(1)简单恢复模式在该模式下数据库只能做完整备份和差异备份,没有事务日志备份。数据库只可恢复到最近的数据备份时间。(2)完整恢复模式完整恢复模式完整地记录了所有的事务,并保留所有的事务日志记录,直到将它们备份。完整恢复模式可在最大范围内防止出现故障时丢失数据,它包括数据库备份和事务日志备份,使数据库免受媒体故障影响。12.3.2故障类型和恢复模式返回目录12.3恢复概述2.恢复模式(3)大容量日志恢复模式大容量日志恢复模式是对完整恢复模式的补充。在该恢复模式下,只对大容量操作(如导入数据、SELECTINTO等操作)进行最小记录,只记录必要的操作,不记录所有日志。提供最佳性能并占用最小日志空间,一旦出现问题,数据将有可能无法恢复。12.3.2故障类型和恢复模式返回目录12.3恢复概述3.查看或更改数据库的恢复模式通过SQLServerManagementStudio查看或者更改数据库的恢复模