数据库备份与恢复技术.ppt_第1页
数据库备份与恢复技术.ppt_第2页
数据库备份与恢复技术.ppt_第3页
数据库备份与恢复技术.ppt_第4页
数据库备份与恢复技术.ppt_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 主讲教师 钱哨 交通部管理干部学院计算机系钱哨教案 第三章 数据库备份与恢复技术 SQLServer2005数据库实践教程 管理与维护篇 2 第一节 学习目标 数据库备份概述 掌握如何分别在可视化及命令行方式建立和删除数据库磁盘备份设备 掌握在可视化状态下进行完全 差异 日志数据备份的方法 重点掌握通过命令行进行完全 差异 日志数据备份的方法 掌握在可视化状态下进行完全 差异 日志数据恢复数据的方法 重点掌握通过命令行进行完全 差异 日志数据恢复数据的方法 3 3 1数据库备份概述 备份 是数据的副本 用于在系统发生故障后还原和恢复数据 1 数据库备份并不是简单地将表中的数据复制 而是将数据库中的所有信息 包括表数据 视图 索引 约束条件 甚至是数据库文件的路径 大小 增长方式等信息也备份 2 创建备份的目的是为了可以恢复已损坏的数据库 但是 备份和还原数据需要在特定的环境中进行 并且必须使用一定的资源 因此 可靠地使用备份和还原以实现恢复需要有一个备份和还原策略 4 3 1数据库备份概述 备份时候 需要考虑以下因素 1 组织对数据库的备份需求 尤其是对必要性的防止数据丢失的要求 2 每个数据库的特性 其大小 使用模式 内容特性及其数据要求等 3 资源的约束 例如 硬件 人员 存储备份媒体空间以及存储媒体的物理安全性等 5 3 1数据库备份概述 1 数据库磁盘备份设备简称备份设备 是由SQLServer2005提前建立的逻辑存储定义设备 之所以称为是逻辑设备 是由于在建立备份设备时候需要明确指定具体的磁盘存储路径 即便该磁盘存储路径并不存在 也可以正常建立一个备份设备 实验1 在资源管理器中建立备份设备实验 第一步 在SQLServer管理平台的 对象资源管理器 窗口中展开 服务器对象 的子节点 备份设备 上单击鼠标右键 弹出快捷菜单 如右图所示 6 3 1数据库备份概述 实验1 在资源管理器中建立备份设备实验 第二步 单击新建备份设备选项 打开 备份设备 对话框 在 设备名称 文件框中输入 db school bakdevice 在不存在磁带机的情况下 目标 目标选项自动选中 文件 单选项 在 文件 选项对应的文本框中输入文件路径和名称 C back school back bak 如下图所示 7 3 1数据库备份概述 实验2 在资源管理器中删除备份设备实验 在SQLServer管理平台的 对象资源管理器 窗口中展开 服务器对象 的子节点 备份设备 在节点 db school bakdevice 上单击鼠标右键 弹出快捷菜单中删除该设备 如下图所示 8 3 1数据库备份概述 实验3 通过命令方式建立和删除备份设备实验 1 建立备份设备我们可以通过执行系统存储过程sp addumpdevice的形式 建立一个磁盘备份设备 基本语法是 EXECsp addumpdevice device type logical name physical name 其中各个参数的含义是 device type 设备类型 disk tape disk 表示磁盘 tape 表示磁带 logical name 逻辑磁盘备份设备名 physical name 物理磁盘备份设备名 例1 使用T SQL语句的存储过程sp addumpdevice命令行创建磁盘备份设备的物理备份设备名为 E backup student bak 逻辑备份设备名为 db student bakdevice execsp addumpdevice disk db student bakdevice E backup student bak 9 3 1数据库备份概述 实验3 通过命令方式建立和删除备份设备实验 删除备份设备删除一个磁盘备份设备的基本语法是 EXECsp dropdevice logical name delfile 其中各个参数的含义是 logical name 逻辑磁盘备份设备名 delfile 表示是否同时删除磁盘备份物理设备名 例2 使用T SQL语句的存储过程sp dropdevice命令行删除前面刚创建的磁盘备份设备 execsp dropdevice db student bakdevice delfile 10 3 1数据库备份概述 2 数据库备份方法数据库备份包括完整备份和差异性备份 这两种备份的区别如下 1 完整备份 包含数据库中全部数据和日志文件信息 也被称为是全库备份或者海量备份 对于文件磁盘量较小时候 完全备份的资源消耗并不能显现 但是一旦数据库文件的磁盘量非常大的时候 就会明显的消耗服务器的系统资源 因此对于完全备份一般需要停止数据库服务器的工作 或在用户访问量较少的时间段进行此项操作 故障发生点完全数据备份运行事务 正常运行 TaTb数据丢失Tf重装完整备份恢复 11 3 1数据库备份概述 1 完整备份 通过还原数据库 只用一步即可以从完整的备份重新创建整个数据库 如果还原目标中已经存在数据库 还原操作将会覆盖现有的数据库 如果该位置不存在数据库 还原操作将会创建数据库 还原的数据库将与备份完成时的数据库状态相符 但不包含任何未提交的事务 恢复数据库后 将回滚到未提交的事务 小知识 事务 Transaction 是用户定义的一个数据库操作序列 这些操作要么全做 要么全不做 是一个不可分割的工作单位事务和程序是两个概念在关系数据库中 一个事务可以是一条SQL语句 一组SQL语句或整个程序一个应用程序通常包含多个事务事务是恢复和并发控制的基本单位 12 3 1数据库备份概述 1 完整备份 当执行全库备份时 SQLServer将备份在备份过程中发生的任何活动 以及把任何未提交的事务备份到事务日志 在恢复备份时候 SQLServer利用备份文件中捕捉到的部分事务日志来确保数据一致性 13 3 1数据库备份概述 1 完整备份 实验1 在资源管理器中进行完全数据备份实验 第一步 打开资源管理器 鼠标右击school数据库 在展开的菜单中选择任务中的备份项 14 3 1数据库备份概述 1 完整备份 实验1 在资源管理器中进行完全数据备份实验 第二步 在展开的备份数据库界面中 选择备份类型为 完整 备份组件为数据库 在备份目标为备份到磁盘 选择添加磁盘的具体的路径及备份文件名为C school fullback bak 如图所示 点击确定后完成完全数据备份的工作 所生成的C school fullback bak文件将在后面数据库恢复中被重新应用 15 3 1数据库备份概述 1 完整备份 实验2 通过命令行进行完全数据备份实验 第一步 sp addumpdevice是系统存储过程 用于创建磁盘备份文件 其基本命令行如下所示 sp addumpdevice devtype device type logicalname logical name physicalname physical name cntrltype controller type devstatus device status usemaster 首先 进入master数据库 Go 下面 在C盘下建立文件夹back 然后分别执行下面的三个磁盘备份文件 execsp addumpdevice disk backup file1 c back backup file1 bak execsp addumpdevice disk backup file2 c back backup file2 bak execsp addumpdevice disk backup log c back backup log bak 注意 即便是C盘下面没有back文件夹 该命令也可以成功的执行 但是如果在实际进行磁盘备份中 由于没有该文件夹 将在执行backupdatabase的时候出现错误 16 3 1数据库备份概述 1 完整备份 实验2 通过命令行进行完全数据备份实验 第二步 将school数据库备份到第一步建立的磁盘备份文件中 BACKUPDATABASE database name database name var f TO n INIT NOINIT 在进行数据库备份的时候 INIT和NOINIT选项参数非常重要 使用NOINIT选项 SQLServer把备份追加到现有的备份文件 也就是在原有的数据备份基础上 继续将现有的数据库追加性的继续备份到该磁盘备份文件中 使用INIT选项 SQLServer将重写备份媒体集上所有数据 即将上次备份的文件抹去 重新将现有的数据库文件写入到该磁盘备份文件中 17 3 1数据库备份概述 1 完整备份 实验2 通过命令行进行完全数据备份实验 backupdatabaseschooltobackup file1withnoinitbackupdatabaseschooltobackup file2withinit 请反复执行这两句话 那么我们可以很快从磁盘文件的空间变化中发现init和noinit的区别 可见 init由于重新建立磁盘备份 因此文件并没有增长 而由于noinit是追加备份 因此磁盘文件增长非常明显 当然 我们也可以不需要使用磁盘备份文件 而通过直接指定磁盘路径的方式实现对数据库文件进行备份 BACKUPDATABASEschoolTODISK D Mydiffbackup bak 18 3 1数据库备份概述 2 差异备份 差异性备份 1 是无需完全数据备份 仅仅将变化的数据存储并追加到数据库备份文件中的过程 2 差异性备份仅记录自上次完整备份后更改过的数据 但是比完整备份更小 更快 可以简化频繁的备份操作 减少数据丢失的风险 3 差异性备份必须基于完整备份 因此差异性备份的前提是进行至少一次的完全数据备份 故障发生点完全数据备份运行事务差异备份 正常运行 TaTbTc数据丢失Tf重装完整备份差异数据还原恢复 19 3 1数据库备份概述 2 差异备份 在还原差异性备份之前 必须先还原其完全数据备份 如果按给定备份的要求进行一系列差异性备份 则在还原时只需还原一次完全数据备份和最近的差异性备份即可 执行差异性备份的前提和基本条件如下 用于经常被修改的数据库 要求一个完全数据备份 这是执行差异性备份的前提 备份自上次完全数据备份以来的数据库变化 执行差异性备份的语法与完全数据备份基本一致 仅仅的区别是在后面写上WITHDIFFERENTIAL参数即可 20 3 1数据库备份概述 2 差异备份 实验1 通过命令行进行差异数据备份实验 BACKUPDATABASEschoolTODISK D school back bak WITHDIFFERENTIAL 或者backupdatabaseschooltobackup file2WITHDIFFERENTIAL 21 3 1数据库备份概述 2 差异备份 实验2 在管理平台中进行差异数据备份实验 打开备份向导 在 备份数据库 窗口中 选择备份类型为 差异 在备份的目标中 指定备份到的磁盘文件位置 本例中为C back school bak文件 如图所示 然后单击 确定 按钮 备份完成后 可以找到C back school bak文件 差异备份文件要比完全备份文件小得多 因为它仅备份自上次完整备份后更改过的数据 22 3 1数据库备份概述 3 日志文件备份 日志文件备份定义 当数据库文件发生信息更改时候 其基本的操作记录将通过日志文件进行记录 对于这一部分操作信息进行的备份就是日志文件备份 运行事务故障发生点日志备份运行事务 正常运行 TaTbTf重装后备副本利用日志文件恢复恢复 23 3 1数据库备份概述 3 日志文件备份 执行日志文件备份的前提和基本条件是要求一个完全数据备份 备份日志文件的语法形式是 BACKUPLOG database name database name var TO n WITH INIT NOINIT NO TRUNCATE TRUNCATE ONLY 该命令中的基本参数的意义是 1 NO LOG选项 1 无须备份复制日志 即删除不活动的日志部分 并且截断日志 该选项会释放空间 因为并不保存日志备份 所以没有必要指定备份设备 2 NO LOG和TRUNCATE ONLY是同义的 使用NO LOG或TRUNCATE ONLY备份日志后 记录在日志中的更改不可恢复 3 为了恢复数据库的准确性 在执行日志文件应用该参数命令的同时 请立即执行BACKUPDATABASE命令 进行完全数据备份工作 以防止数据的意外丢失 24 3 1数据库备份概述 3 日志文件备份 该命令中的基本参数的意义是 2 NO TRUNCATE选项 1 当数据库文件被损坏或者丢失 应该使用NO TRUNCATE选项备份事务日志 2 该选项可以完全备份所有数据库的最新活动信息 执行后MSSQL将进行下面的活动 保存整个事务日志 即使无法访问数据库 不清理已提交事务日志的事务 可以将数据库恢复到系统出现故障的时刻 使用TRUNCATE ONLY选项 或者NO LOG选项 一般在以下情况发生 事务日志已满 清理日志文件 需要截断事务日志 25 3 1数据库备份概述 3 日志文件备份 该命令中的基本参数的意义是 2 NO TRUNCATE选项 3 该参数是只能够与BACKUPLOG命令一起使用的 4 该参数使用的意义是 指定不截断日志 并使数据库引擎尝试执行备份 而不考虑数据库的状态 5 使用NO TRUNCATE执行的备份可能具有不完整的元数据 该选项允许在数据库损坏时备份日志 实质上 当数据库遭受严重损坏后 该命令是最后的解决办法 即无论怎样都现将发生的任何操作信息先备份到日志中 尝试进行后期尽可能的还原工作 26 3 1数据库备份概述 3 日志文件备份 实验1 在管理平台中进行日志文件备份实验 打开备份向导 在 备份数据库 窗口中 选择备份类型为 事务日志 在备份的目标中 指定备份到的磁盘文件位置 本例中为c back backup log bak文件 如图所示 然后单击 确定 按钮 备份完成后 可以找到c back backup log bak文件 27 3 1数据库备份概述 3 日志文件备份 实验2 通过命令行进行日志文件备份实验 备份事务日志 追加到现有日志文件backuplogschooltodisk d school log bak WITHNOINIT 清空日志文件backuplogschoolwithno log 备份事务日志 重写现有日志文件 并尽可能的将所有发生的操作信息到日志文件中BACKUPLOGschoolTODISK c school log bak WITHINIT NO TRUNCATE 如果不想要日志或者是日志已没有什么作用时 可以考虑以下的实现方案 backuplogDBNAMEwith no log truncate only no truncate 28 第二节 学习目标 掌握在可视化状态下进行完全 差异 日志数据恢复数据的方法重点掌握通过命令行进行完全 差异 日志数据恢复数据的方法 熟练掌握案例及案例所示的命令行过程 29 3 2SQLServer2005的数据库恢复 1 在管理平台中通过数据库备份文件恢复数据库 实验1 在管理平台中利用完全数据备份还原数据库实验 第一步 首先新建一个空的school数据库 而后用鼠标右键单击 对象资源管理器 中的 school 数据库对象 在弹出的快捷菜单中选择 任务 还原 数据库 选项 如图所示 30 3 2SQLServer2005的数据库恢复 1 在管理平台中通过数据库备份文件恢复数据库 实验1 在管理平台中利用完全数据备份还原数据库实验 第二步 在 还原数据库 窗口中 选择还原的数据库为 school 选择用于还原的备份集为在备份操作中备份的完整数据集 如图所示 31 3 2SQLServer2005的数据库恢复 1 在管理平台中通过数据库备份文件恢复数据库 实验1 在管理平台中利用完全数据备份还原数据库实验 在 还原数据库 窗口中选择选项 在还原选项中选 覆盖现有数据库 复选框 如图所示 按 确定 按钮 还原操作完成后 打开 school 数据库 可以看到其中的数据进行了还原 在school中看不到进行完整备份后新增加的school数据 因为还原过程进行了完整备份的还原 32 3 2SQLServer2005的数据库恢复 1 在管理平台中通过数据库备份文件恢复数据库 实验2 在管理平台中中利用差异数据备份还原数据库实验 第一步 在实验1的基础上 将school数据库的student表中插入一条学生记录后 假设姓名是关羽 如图所示 选择一次差异数据备份 备份至backup file2 bak文件中 如图所示 33 3 2SQLServer2005的数据库恢复 1 在管理平台中通过数据库备份文件恢复数据库 实验2 在管理平台中中利用差异数据备份还原数据库实验 第二步 删除school数据库 而后先进性一次完全数据备份 但是过程和实验1却不完全一致 在还原数据库的常规选项中的操作过程相同 但是在 选项 中 必须设置其恢复状态为 不对数据库进行任何操作 不回滚未提交事务 如图所示 即将数据库临时 挂起 处于恢复状态 34 3 2SQLServer2005的数据库恢复 1 在管理平台中通过数据库备份文件恢复数据库 实验2 在管理平台中中利用差异数据备份还原数据库实验 注意 此时student表中是没有关羽同学的 当然由于school数据库被挂起 任何用户现在还无法使用该数据库 随后 我们需要在完全数据还原的基础上 进行差异性数据库还原 如图所示 35 3 2SQLServer2005的数据库恢复 1 在管理平台中通过数据库备份文件恢复数据库 实验2 在管理平台中中利用差异数据备份还原数据库实验 然后同样在还原选项中选 覆盖现有数据库 复选框 并设置其恢复状态为 回滚未提交事务 使数据库处于可用状态 完成差异数据还原工作 注意 如果你在完全数据库恢复过程中 其恢复状态没有选择第二项 而是默认的第一项 那么你这样操作在进行差异性数据还原的过程中将会出现下面的操作失误问题 如图所示 成功后 查看student表 发现 关羽 同学已经被恢复了 36 3 2SQLServer2005的数据库恢复 1 在管理平台中通过数据库备份文件恢复数据库 实验3 在资源管理器中利用日志文件还原数据库实验 第一步 在实验1的基础之上 我们建立了完全数据备份文件 而后在school数据库的student表中依然插入一条学生信息 假设该学生是 关羽 随后进行school数据库的事务日志备份工作 将备份文件存储在backup log bak文件中 如图3 19所示 2020 3 17 37 可编辑 38 3 2SQLServer2005的数据库恢复 1 在管理平台中通过数据库备份文件恢复数据库 实验3 在资源管理器中利用日志文件还原数据库实验 第一步 在实验1的基础之上 我们建立了完全数据备份文件 而后在school数据库的student表中依然插入一条学生信息 假设该学生是 关羽 随后进行school数据库的事务日志备份工作 将备份文件存储在backup log bak文件中 如图3 19所示 39 3 2SQLServer2005的数据库恢复 1 在管理平台中通过数据库备份文件恢复数据库 实验3 在资源管理器中利用日志文件还原数据库实验 第二步 而后再次向student表中再插入一条学生记录 假设这次是 貂蝉 同学 如图所示的数据 重复第一步的事务日志备份工作 此时在backup log bak文件中已经保存了两次数据插入的日志信息 一次是张飞 一次是貂蝉 随后删除school数据库 准备进行数据库的日志还原工作 40 3 2SQLServer2005的数据库恢复 1 在管理平台中通过数据库备份文件恢复数据库 实验3 在资源管理器中利用日志文件还原数据库实验 第三步 和差异数据库还原工作一样 我们必须首先进行完全数据恢复 但是在数据库恢复界面的 选项 中 必须设置其恢复状态为 不对数据库进行任何操作 不回滚未提交事务 从而使得数据库暂时处于挂起的状态 接下来 在 挂起 的数据库中再次选择还原数据库 只是这次我们选择还原的设备文件是backup log bak 即保存日志信息的文件 如图所示 我们可以看到 用于还原的备份集有两条数据 分别是插入张飞和貂蝉时候我们进行的日志文件备份 选择第一条日志信息 并在当前界面的 选项 中 同样设置其恢复状态为 不对数据库进行任何操作 不回滚未提交事务 再次使得数据库暂时处于挂起的状态 注意 此时实质上已将将张飞同学的信息恢复了 但是貂蝉同学的信息并未恢复 41 3 2SQLServer2005的数据库恢复 1 在管理平台中通过数据库备份文件恢复数据库 实验3 在资源管理器中利用日志文件还原数据库实验 问题 如果在备份集中 直接恢复第二条不就可以了吗 为什么还要非常麻烦地一条一条进行日志文件还原恢复呢 如果按照这样的逻辑 我们可以继续刚才的实验 只是会弹出图的错误对话框 还原失败 证明上面的思维方式是错误的 日志文件是有严格的时间轴顺序的 一旦违背时间轴还原 将由于找不到前面的还原信息点而产生错误 42 3 2SQLServer2005的数据库恢复 2 通过命令行进行数据库还原 1 数据库还原前准备第一点 限制数据库的访问 避开网络流量较大的时间段 限制db owner dbcreator或sysadmin角色成员访问数据库 第二点 备份事务日志 为了保证数据库的一致性 进行还原之前一定要最后进行日志文件的备份工作 从而捕捉最新的事务日志备份和数据库脱机之间的数据更改 43 3 2SQLServer2005的数据库恢复 2 通过命令行进行数据库还原 2 数据库还原的基本命令RESTOREDATABASE database name database name var FROM n WITH RESTRICTED USER FILE file number file number NORECOVERY RECOVERY STANDBY undo file name REPLACE RESTART STATS percentage 44 3 2SQLServer2005的数据库恢复 2 通过命令行进行数据库还原 2 数据库还原的基本命令参数意义是 DATABASE指定从备份还原整个数据库 如果指定了文件和文件组列表 则只还原那些文件和文件组 database name database name var 是将日志或整个数据库还原到的数据库 如果将其作为变量 database name var 提供 则可将该名称指定为字符串常量 database name var databasename 或字符串数据类型 ntext或text数据类型除外 的变量 45 3 2SQLServer2005的数据库恢复 2 通过命令行进行数据库还原 2 数据库还原的基本命令参数意义是 RECOVERY参数的含义该选项是系统的默认选项 该选项用于恢复最后一个事务日志或者完全数据库恢复 可以保证数据库的一致性 当使用该选项时 系统取消事务日志中任何未提交的事务 并提交任何完成的事务 在数据库恢复进程完成之后 就可以使用数据库 如果必须使用增量备份恢复数据库 就不能使用该选项 46 3 2SQLServer2005的数据库恢复 2 通过命令行进行数据库还原 2 数据库还原的基本命令参数意义是 NORECOVERY参数含义当需要恢复多个备份时 应使用NORECOVERY选项 这时 系统既不取消事务日志中任何未提交的事务 也不提交任何已完成的事务 在数据库恢复之前 数据库是不能使用的 47 3 2SQLServer2005的数据库恢复 2 通过命令行进行数据库还原 2 数据库还原的基本命令参数意义是 FROM参数含义指定从中还原备份的备份设备 如果没有指定FROM子句 则不会发生备份还原 而是恢复数据库 可用省略FROM子句的办法尝试恢复通过NORECOVERY选项还原的数据库 或切换到一台备用服务器上 如果省略FROM子句 则必须指定NORECOVERY RECOVERY或STANDBY 48 3 2SQLServer2005的数据库恢复 2 通过命令行进行数据库还原 2 数据库还原的基本命令参数意义是 FILE file number file number 参数含义标识要还原的备份集 例如 file number为1表示备份媒体上的第一个备份集 file number为2表示第二个备份集 49 3 2SQLServer2005的数据库恢复 2 通过命令行进行数据库还原 实验 数据库备份与还原命令综合实验 第一步 创建基本的备份设备 共3个 backup file1 bak backup file2 bak backup log bak 分别保存完全数据备份 差异数据备份 日志文件备份 但是 DBA疏忽 将family数据库文件的完全数据备份和差异数据备份也保存到backup file1 bak backup file2 bak中 usemastergoexecsp addumpdevice disk backup file1 c back backup file1 bak execsp addumpdevice disk backup file2 c back backup file2 bak execsp addumpdevice disk backup log c back backup log bak 50 3 2SQLServer2005的数据库恢复 2 通过命令行进行数据库还原 实验 数据库备份与还原命令综合实验 第二步 对数据库school和family进行完全的数据库备份 backupdatabasefamilytobackup file1backupdatabaseschooltobackup file1向school数据库的student表里面插入一条张飞同学的数据insertintostudent sno sname sex values 666 张飞 男 而后进行差异数据库的备份工作backupdatabasefamilytobackup file2WITHDIFFERENTIALbackupdatabaseschooltobackup file2WITHDIFFERENTIAL 51 3 2SQLServer2005的数据库恢复 2 通过命令行进行数据库还原 实验 数据库备份与还原命令综合实验 第四步 再次插入两条数据 每次插入数据进行一次日志文件的备份工作 insertintostudent sno sname sex values 777 吕布 男 backuplogschooltobackup logwithnoinit 这里的参数指定init和NO TRUNCATE 表示追加性的和允许在数据库损坏时备份日志 insertintostudent sno sname sex values 888 貂蝉 女 backuplogschooltobackup logwithnoinit 重写日志文件 52 3 2SQLServer2005的数据库恢复 2 通过命令行进行数据库还原 实验 数据库备份与还原命令综合实验 第四步 在特定的备份设备上检索所有备份集的所有备份首部信息 RESTOREHEADERONLYfrombackup file1RESTOREHEADERONLYfrombackup file2RESTOREHEADERONLYfrombackup log 返回由备份集内包含的原始数据库和日志文件列表RESTOREFILELISTONLYfrombackup file1RESTOREFILELISTONLYfrombackup file2RESTOREFILELISTONLYfrombackup log 我们都知道 在完全和差异数据备份中 是先保存了family数据库而后保存的是school数据库 则如果不用file参数指定显示那个数据库 则默认仅仅显示第一个保存的数据库 即family数据库信息 53 3 2SQLServer2005的数据库恢复 2 通过命令行进行数据库还原 实验 数据库备份与还原命令综合实验 第五步 下面查看第二个备份的school数据库备份相关信息 学习withfile参数的用法 RESTOREFILELISTONLYfrombackup file1WITHFILE 2RESTOREFILELISTONLYfrombackup file2WITHFILE 2返回由有关给定备份设备所标识的备份媒体的信息组成的结果集RESTORELABELONLYfrombackup file1withfile 2RESTORELABELONLYfrombackup file2withfile 2RESTORELABELONLYfrombackup logwithfile 1 54 3 2SQLServer2005的数据库恢复 2 通过命令行进行数据库还原 实验 数据库备份与还原命令综合实验 第六步 完全数据备份恢复实验 首先删除数据库dropdatabaseschool 然后再创建数据库createdatabaseschool 从文件恢复数据库RESTOREDATABASEschoolFROMDISK C back school1 WITHMOVE school data TO C ProgramFiles MicrosoftSQLServer MSSQL 1 MSSQL Data school mdf MOVE school log TO C ProgramFiles MicrosoftSQLServer MSSQL 1 MSSQL Data school ldf replace 或者你可以进行完全数据备份的恢复工作RESTOREDATABASEschoolfrombackup file1WITHFILE 2 replace 55 3 2SQLServer2005的数据库恢复 2 通过命令行进行数据库还原 实验 数据库备份与还原命令综合实验 第七步 差异数据备份恢复实验 还是先删除数据库 而后新建数据库 第一步 先还原完全数据恢复 但是先必须挂起来RESTOREDATABASEschoolfrombackup file1WITHFILE 2 noRECOVERY replace 第二步 然后恢复差异性数据库的备份RESTOREDATABASEschoolfrombackup file2WITHFILE 2 RECOVERY replace 至此 张飞同学被恢复 注意NORECOVERY与RECOVERY的差别 56 3 2SQLServer2005的数据库恢复 2 通过命令行进行数据库还原 实验 数据库备份与还原命令综合实验 第八步 以日志文件形式还原数据库 还是先删除数据库 而后新建数据库 第一步 先还原完全数据恢复 但是先必须挂起来RESTOREDATABASEschoolfrombackup file1WITHFILE 2 noRECOVERY replace 第二步 首先查看一下日志文件的备份具体时间信息 RESTOREHEADERONLYfrombackup log 57 3 2SQLServer2005的数据库恢复 2 通过命令行进行数据库还原 实验 数据库备份与还原命令综合实验 第八步 以日志文件形式还原数据库 第三步 而后开始根据具体的最后备份时间 进行日志文件的还原工作 RESTORELOGschoolFROMbackup logWITHnoRECOVERY STOPAT 2009 11 1114 39 00 特别注意就是NORECOVERY与recovery的时间问题 useschoolselect fromstudentUsemaster 58 3 3数据库备份与恢复技术实训 通过SQLServer数据库备份实验 掌握和深入理解三种基本恢复模型的创建过程 学习并掌握备份设备存储备份的过程 通过SQLServer备份方法实验 学习并熟练掌握完全 差异和日志文件的数据备份方法 通过SQLServer文件和文件组备份实验 学习并熟练掌握文件和文件组备份的备份过程 通过SQLServer数据还原实验 学习并熟练掌握完全 差异和日志文件的数据备份恢复数据的方法 掌握文件和文件组备份的备份恢复数据的方法 59 3 3数据库备份与恢复技术实训 实训1 SQL数据库恢复模型创建实验 本次实验的主要目的是熟悉数据库的三种基本恢复模型的创建过程 即完全恢复模型 大容量日志记录恢复模型和简单恢复模型实验 alterdatabased1setrecoverysimple 设置数据库恢复模型alterdatabased1setrecoverybulk logged 设置大容量日志记录恢复模型alterdatabased1setrecoveryfull 设置简单恢复模型 实验2 SQLServer备份设备实验 SQLServer备份设备包括物理设备和逻辑设备 本次实验的主要目的是创建物理设备实验 包括 本地磁盘 磁带机备份和网络永久磁盘备份 创建逻辑设备 包括 永久备份文件和临时备份文件 备份工作 60 3 3数据库备份与恢复技术实训 实训2 SQLServer备份设备实验 execsp addumpdevice disk bak2 c back device bak2 bak 创建永久磁盘备份设备execsp addumpdevice disk bak3 c back device bak3 bak execsp addumpdevice disk bak4 192 168 10 1 backup bak4 bak 创建网络永久磁盘备份设备 需要注意192 168 10 1是本次实验机房的一台计算机的IP地址 该地址的计算机需要共享backup文件夹用于网络文件的创建 execsp addumpdevice disk bak5 192 168 10 1 backup bak5 bak execsp dropdevice bak5 删除备份设备backupdatabased3tobak3 将数据库备份到备份设备backupdatabased4tobak4restoreheaderonlyfrombak2 查看备份设备中的内容backupdatabased3todisk c back file d3 bak 将数据库备份到临时备份文件backupdatabased4todisk c back file d4 bak restoredatabased3frombak3 从备份设备还原数据库restoredatabased4fromdisk c back file d4 bak 从备份文件还原数据库 61 3 3数据库备份与恢复技术实训 实训3 使用多个备份文件存储备份实验 SQLServer可同时向多个备份文件进行写操作 如果把这些文件放到多个磁带机或磁盘中 则可提高备份速度 这多个备份文件必须用同类型的媒体 并放到一个媒体集中 另一方面 媒体集中的文件必须同时使用 而不能单独使用 我们当然可以通过format命令将媒体集重新划分 但原备份集中的数据不能再使用 backupdatabased4tobak4 bak5 bak6withmedianame bak456 format 备份D4并形成MediaSetbackupdatabased3tobak4 失败 因Mediaset中文件必须同时使用backupdatabased3tobak4 bak5 bak6 成功 将D3也备份到MediaSet中restoreheaderonlyfrombak4 bak5 bak6 查看MediaSet中的备份内容backupdatabased4tobak4withmedianame bak4 format 重新划分MediaSetbackupdatabased3tobak5 bak6withmedianame bak56 formatbackupdatabased1tobak1withinit withinit重写备份设备中内容backupdatabased2tobak1withnoinit withnoinit将内容追加到备份设备中restoreheaderonlyfrombak1 62 3 3数据库备份与恢复技术实训 实训4 SQLServer备份方法实训 实验1 首先开始进行完全数据备份backupdatabased1tobak1withinitbackupdatabased1tobak1withnoinit 注意 参数init和noinit的差异性 实验2 下面开始进行差异备份 第一次备份时应做完全备份backupdatabased2tobak2withinit name d2 full 建立表b1createtableb1 c1intnotnull c2char 10 notnull 每次插入更新的数据后 都进行差异数据备份backupdatabased2tobak2withdifferential name d2 diff1 insertb1values 1 a backupdatabased2tobak2withdifferential name d2 diff2 insertb1values 2 b backupdatabased2tobak2withdifferential name d2 diff3 insertb1values 3 c backupdatabased2tobak2withdifferential name d2 diff4 restoreheaderonlyfrombak2 63 3 3数据库备份与恢复技术实训 实训4 SQLServer备份方法实训 实验3 下面开始进行日志备份 第一次备份时应做完全备份backupdatabased3tobak3withinit name d3 full createtableb1 c1intnotnull c2char 10 notnull 每次插入更新的数据后 都进行日志文件备份backuplogd3tobak3withname d3 log1 insertb1values 1 a backuplogd3tobak3withname d3 log2 insertb1values 2 b backuplogd3tobak3withname d3 log3 insertb1values 3 c backuplogd3tobak3withname d3 log4 restoreheaderonlyfrombak3 64 3 3数据库备份与恢复技术实训 实训4 SQLServer备份方法实训 实验4 下面的实验包括 完全数据备份 差异数据备份和日志文件备份createtableb1 c1intnotnull c2char 10 notnull backuplogd4tobak4withname d4 log1 insertb1values 1 a backuplogd4tobak4withname d4 log2 insertb1values 2 b backupdatabased4tobak4withdifferential name d4 diff1 insertb1values 3 c backuplogd4tobak4withname d4 log3 insertb1values 4 d backuplogd4tobak4withname d4 log4 insertb1values 5 d backupdatabased4tobak4withdifferential name d4 diff2 restoreheaderonlyfrombak4 65 3 3数据库备份与恢复技术实训 实训4 SQLServer备份方法实训 实验5 下面的实验为日志清除实验backuplogd4withtruncate only 设置D4日志满时清除日志 并做清除记录backuplogd4withno log 设置D4日志满时清除日志 但不做清除记录backuplogd4tobak4withno truncate 在D4数据库损坏时马上备份当前数据库日志 DEMO 问题 请在机房完成下面的实验第一步 完全备份数据库 修改第1次数据 第二步 差异备份数据库 修改第2次数据 第二步 日志文件备份数据库 修改第3次数据 第四步 停止SQL 删除数据库数据文件 重启SQL 请你再还原数据库 可否还原到修改第3次的数据呢 66 3 3数据库备份与恢复技术实训 实训5 SQLServer文件和文件组备份实训 文件和文件组备份主要用于超大型数据库的备份 其目的是只备份选定的文件或者文件组 但 必须同时作日志备份 在还原时用文件 文件组备份和日志备份进行还原 其特点是备份量少 恢复速度快 createdatabased5onprimary name d5 data1 filename c data d5 d5 data1 mdf size 2MB filegroupFG2 创建数据库时创建filegroupFG2 name d5 data2 filename c data d5 d5 data2 ndf 并将文件d5 data2放到FG2中size 2Mb logon name d5 log1 filename e data d5 d5 log1 ldf size 2Mb 67 3 3数据库备份与恢复技术实训 实训5 SQLServer文件和文件组备份实训 下面开始调用刚刚创建的数据库d5 学习修改数据库used5goalterdatabased5addfile name d5 data3 filename c data d5 d5 data5 ndf size 2MB tofilegroupFG2 将d5 data3加到文件组FG2中alterdatabased5addfilegroupFG3 增加文件组FG3alterdatabased5 将d5 data4加到文件组FG2中addfile name d5 data4 filename c data d5 d5 data4 ndf size 2MB tofilegroupFG3 查询数据库d5Execsp helpdbd5createtablet1 c1intnotnull c2char 10 notnull on primary 将不同表放到不同filegroup中createtablet2 c1intnotnull c2char 10 notnull onFG2createtablet3 c1intnotnull c2char 10 notnull onFG3backupdatabased5tobak5withinit name d5 full 68 3 3数据库备份与恢复技术实训 实训5 SQLServer文件和文件组备

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论