资源简介 (共32张PPT)网站数据库应用技术SQL Server 2008(项目教程)项目十二 数据库的备份与还原任务1:备份数据库任务2:还原数据库任务1:数据库备份数据库备份数据库在使用过程中会遇到一些意外问题导致数据丢失,这时数据库备份是保证数据完整一个很好的手段,DBA(数据库管理员)应该养成良好的数据备份习惯。本任务中我们使用系统操作和命令2种方式完成数据备份。12.1.1相关知识备份数据库首先要设置数据库“恢复模式”,因为数据库如果恢复模式设置不正确,会导致数据无法还原。SQL Server 2008数据库恢复模式分为三种:完整恢复模式、大容量日志恢复模式、简单恢复模式。相关知识1、完整恢复模式。为默认恢复模式。它会完整记录下操作数据库的每一个步骤。使用完整恢复模式可以将整个数据库恢复到一个特定的时间点,这个时间点可以是最近一次可用的备份、一个特定的日期和时间或标记的事务。2、大容量日志恢复模式。它是对完整恢复模式的补充。简单地说就是要对大容量操作进行最小日志记录,节省日志文件的空间(如导入数据、批量更新、SELECT INTO等操作时)。一般只有在需要进行大量数据操作时才将恢复模式改为大容量日志恢复模式。数据库备份相关知识3、简单恢复模式。在该模式下,数据库会自动把不活动的日志删除,因此简化了备份的还原,但因为没有事务日志备份,所以不能恢复到失败的时间点。通常,此模式只用于对数据库数据安全要求不太高的数据库。并且在该模式下,数据库只能做完整和差异备份。数据库备份相关知识了解了以上数据库还原模式后,备份数据库,SQL Server 2008有四种备份方式:完整备份、差异备份、事务日志备份、文件和文件组备份。数据库备份相关知识1、完整备份:备份整个数据库的所有内容,包括事务日志。该备份类型需要比较大的存储空间来存储备份文件,备份时间也比较长,在还原数据时,也只要还原一个备份文件。2、差异备份:差异备份是完整备份的补充,只备份上次完整备份后更改的数据。相对于完整备份分来说,差异备份的数据量比完整数据备份小,备份的速度也比完整备份要快。因此,差异备份通常作为常用的备份方式。在还原数据时,要先还原前一次做的完整备份,然后还原最后一次所做的差异备份,这样才能让数据库里的数据恢复到与最后一次差异备份时的内容相同。数据库备份相关知识3、事务日志备份:事务日志备份只备份事务日志里的内容。事务日志记录了上一次完整备份或事务日志备份后数据库的所有变动过程。事务日志记录的是某一段时间内的数据库变动情况,因此在进行事务日志备份之前,必须要进行完整备份。与差异备份类似,事务日志备份生成的文件较小、占用时间较短,但是在还原数据时,除了先要还原完整备份之外,还要依次还原每个事务日志备份,而不是只还原最后一个事务日志备份(这是与差异备份的区别)。数据库备份相关知识4、文件和文件组备份。如果在创建数据库时,为数据库创建了多个数据库文件或文件组,可以使用该备份方式。使用文件和文件组备份方式可以只备份数据库中的某些文件,该备份方式在数据库文件非常庞大时十分有效,由于每次只备份一个或几个文件或文件组,可以分多次来备份数据库,避免大型数据库备份的时间过长。另外,由于文件和文件组备份只备份其中一个或多个数据文件,当数据库里的某个或某些文件损坏时,可能只还原损坏的文件或文件组备份。数据库备份相关知识除此之外,我们还可以使用SQL命令进行数据备份,语法如下:完整数据库备份语句格式:BACKUP DATABASE <数据库名字>TO <备份设备名>[ MIRROR TO <备份设备名> ][ WITH[ [,] NAME = { backup_set_name } ] 指定备份集名称[ [,] DESCRIPTION = { 'text' } ] 指定备份集的描述[ [,] DIFFERENTIAL ] 指定是否为完整差异备份[ [,] EXPIREDATE = { date } | RETAINDAYS = { days } ][ [,] { INIT | NOINIT } ] 指定是否覆盖媒体集中已有的备份集[ [,] MEDIANAME = { media_name } ] 指定媒体集名称[ [,] MEDIADESCRIPTION = { 'text' } ] 指定媒体集描述]数据库备份相关知识事务日志备份语法格式:BACKUP LOG <数据库名字>TO [ ,...n ][ MIRROR TO ][ WITH [ [ , ] NAME = { backup_set_name } ][ [ , ] DESCRIPTION = { 'text' } ][ [ , ] EXPIREDATE = { date } | RETAINDAYS = { days } ][ [ , ] { INIT | NOINIT } ][ [ , ] MEDIANAME = { media_name } ][ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ][ [ , ] NO_TRUNCATE ] 指定是否截断日志记录[ [ , ] { NORECOVERY | STANDBY = undo_file_name } ]]NORECOVERY:备份事务日志的尾部并使数据库处于 RESTORING 状态。使用 STANDBY 选项等同于 BACKUP LOG WITH NORECOVERY 后跟 RESTORE WITH STANDBY。数据库备份12.1.2 任务实施步骤1:在“对象资源管理器”窗口里展开数据库,找到创建好的student,右击|属性,打开数据库属性窗口,如图12-1所示。在“选项”页面里数据库的恢复模式,这里默认设置为简单,选择后点击“确定”。1.系统操作方法图12-1 数据库恢复模式设置数据库备份12.1.2 任务实施步骤2: 在“对象资源管理器”窗口里展开数据库,找到创建好的student,右击,如图12-1所示,右击选择“任务”|“备份”,打开如图12-2所示窗口。图12-2 数据库备份数据库备份12.1.2 任务实施步骤3:图12-3窗口中,在“源”一栏里,恢复模式默认为简单模式,备份类型选择为“完整”;备份集一栏里,名称默认也可以自己取名,过期时间可以选择晚于多少天过期,或者在某一天过期。图12-3 备份类型设置数据库备份12.1.2 任务实施步骤4: 在目标一栏里,点击“添加”,设定备份的目标位置,如图12-4所示,选择在d:/program files/SQl server2008/backup文件夹下,输入备份文件名为student20150910.bak,点击确定。图12-4 选择数据备份目录数据库备份12.1.2 任务实施步骤5:回到图12-3窗口,这时在目标一栏里出现了刚才输入的备份文件的路径和文件名,点击确定即可完成备份。与此类似,可以对数据库进行差异备份和事务日志备份。数据库备份12.1.2 任务实施备份数据库student到.bak文件,然后利用此bak文件恢复一个新的数据库studentnewUse studentBack database studentTo disk = ’e:\sql server\backup\student20150910.bak’ \*数据库备份文件*/Restore filelistonlyFrom disk=’e:\sql server\backup\student20150910.bak’Restore database studentnewFrom disk =’e:\sql server\backup\student20150910.bak’With move ‘studentnew’ to ’e:\sql server\data\studentnew.mdf’,move ‘studentnew_log’ to ’e:\sql server\data\studentnew_log.ldf’数据库备份2.命令方法12.1.2 任务实施我们也可以通过数据维护计划来自动备份数据库,详细请课后自行学习。3.自动备份数据库数据库备份图12-5自动备份数据任务2:数据库还原数据库还原数据库还原又叫数据库恢复,是指将数据库恢复到备份的某个状态,本任务是将备份的student数据库进行还原操作。12.2.1相关知识恢复数据库的SQL语法格式如下:RESTORE DATABASE { database_name }[FROM […n]][ WITH [ [ , ] FILE = { file_number } ] [ [ , ] MEDIANAME = { media_name } ] [ [ , ] { RECOVERY | NORECOVERY | STANDBY = {standby_file_name } ] 是否回滚未提交的事务 [ [ , ] REPLACE ] 指定是否覆盖当前已经存在的数据库 [ [ , ] { STOPAT = { date_time } | STOPATMARK = { 'mark_name' [ AFTER datetime ]} |STOPBEFOREMARK = { 'mark_name' [ AFTER datetime ]} } ]]数据库还原相关知识SQL Server 要求在除最后的Restore语句外的所有其他还原语句上使用With NoRecovery选项。使用该语句后,数据库将处于还原步骤中中间的未完成状态,此时如果想使用数据库,进行恢复数据库操作:Restore Database <> With Recovery,语法格式如下:RESTORE LOG { database_name }FROM [ ,...n ][ WITH [ [ , ] FILE = { file_number } ] [ [ , ] MEDIANAME = { media_name } ] [ [ , ] { RECOVERY | NORECOVERY | STANDBY = {standby_file_name | @standby_file_name_var } } ] [ [ , ] REPLACE ] [ [ , ] { STOPAT = { date_time } | STOPATMARK = { 'mark_name' [ AFTER datetime ] }| STOPBEFOREMARK = { 'mark_name' [ AFTER datetime ] } } ]]数据库还原12.2.2 任务实施步骤1:选择要还原的数据库“student”,右击“任务”|“还原”|“还原数据库”,即打开“还原数据库”窗口,点击“选项”页面如图12-4所示。1.系统操作方法数据库还原图12-6 数据库还原选项设置12.2.2 任务实施步骤2:在图12-4窗口中对还原选项和恢复状态进行设置,也可以选择默认。步骤3:点击“常规”页面,出现如图12-5窗口,在备份集里出现了曾经备份的记录,选择要还原的一项,点击“确定”,即完成还原。数据库还原图12-6 数据库还原12.2.2 任务实施返回由备份集内包含的数据库和日志文件列表组成的结果集获得逻辑文件名Use studentRestore studentFrom disk=’e:\sql server\backup\student.bak’With move ‘student20150910’ to ‘e:\sql server\data\student.mdf’,Move ‘student20150910_log’ to ‘e:\sql server\data\student_log.ldf’,Stats=10,replaceGo数据库还原2.命令方式项目小结本章主要讲述了SQL Server 2008备份和还原数据的方法,备份有4种模式分别是完整备份、差异备份、事务日志备份、文件和文件组备份。数据库恢复有3种模式,分别是完整恢复模式、大容量日志恢复模式、简单恢复模式。还讲解了数据库的备份与还原命令。实 训 项 目综合实训12:备份与还原library数据库实训项目实训步骤:步骤1:设置数据还原模式为“完整模式”,备份模式为“完整模式”步骤2:数据库的备份目录E:/ SQl server2008/backup,备份文件名library_backup.bak步骤3:对备份的数据库进行还原THANKS 展开更多...... 收起↑ 资源预览