备份还原

上传人:小** 文档编号:57711312 上传时间:2018-10-24 格式:PPT 页数:58 大小:795.50KB
返回 下载 相关 举报
备份还原_第1页
第1页 / 共58页
备份还原_第2页
第2页 / 共58页
备份还原_第3页
第3页 / 共58页
备份还原_第4页
第4页 / 共58页
备份还原_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《备份还原》由会员分享,可在线阅读,更多相关《备份还原(58页珍藏版)》请在金锄头文库上搜索。

1、备份与还原,Page 2/28,本章目标,了解备份和还原的概念 掌握SQL Server的备份方法 掌握备份策略的制定 掌握运用备份还原数据库的方法,Page 3/28,为什么需要备份,数据丢失的原因 程序错误 人为错误 计算机失败 磁盘失败 灾难(如火灾、地震)和偷窃 什么是备份 数据的副本 用于在系统发生故障后还原和恢复数据 文件复制备份,Page 4/28,创建备份和恢复计划,创建和实施备份和恢复计划是数据库管理员的职责之一。创建备份计划需要考虑的问题: 您正在备份什么类型的数据库?系统和用户数据库经常有不同的备份和恢复需要。 数据库的数据有多重要?数据的重要性决定备份类型 数据库多久发

2、生一次改变?改变的频率驱使您决定数据库多久应该进行备份 您需要多快恢复数据? 您有执行备份的设备吗?需要备份硬件来执行备份,备份硬件包括:磁盘驱动器、光盘驱动器、可移动驱动器以及无格式的旧磁盘驱动器 什么是计划备份的最佳时间?数据库尽可能低的时候,重要的数据库不应该等到非高峰期 您需要异地保存备份吗?对于在自然灾害的情况下恢复系统来说,异地保存备份磁带的副本非常重要。,Page 5/28,恢复的概念,数据库恢复概念基于事务完整性ACID属性中的D,即事务持续性,持续性意味着事务提交后将是永久性的,即使发生硬件故障。sql server 使用先写事务日志来实现事务持续性,每个事务都先写入事务日志

3、,然后才写入数据文件。这为恢复计划提供了以下好处:事务日志确保能够将每个事务恢复到服务器停机前的状态事务日志使得能够在处理事务时进行备份事务日志降低了硬件故障的影响,因为可以将事务日志和数据文 件放在不同的磁盘子系统中恢复策略应该基于对事务丢失的容忍度,涉及选择各种恢复选项、备份方法、指定备份计划以及对数据库存储在远离现场的地方。,Page 6/28,恢复模式2-1,SQL Server的备份和恢复功能非常灵活,提供三种可选择的恢复模型。可以根据恢复需求,使用下列恢复模型来配置事务日志。,Page 7/28,恢复模式2-2,Page 8/28,简单恢复模型,简单恢复模型适合于只需要确保每个事务

4、的原子性,而无需确保其连续性的数据库 简单恢复模型命令SQL在检查点截断(清空)事务日志,事务日志只将事务保留到它被写入数据文件为止,此后,其他事务将以循环方式重用该事务所占空间。由于这种事务日志是临时性的,因此不需要备份。这种恢复模型的优点是事务日志小,但很可能丢失最后一次完整备份或差异备份后的所有事务基于简单恢复模型的恢复计划可能是:每周执行一次完整备份,在非周末的晚上执行差异备份。 使用简单恢复计划还原时,采用如下步骤: 1、还原最新的完全备份 2、还原最新(可选)的差异备份,Page 9/28,完整恢复模式,提供最完美的恢复计划,使用这种模型时,所有事务(包括大容量日志操作)都写入事务

5、日志中,这种模型的主要优点是,可以将数据库中提交的每个事务都还原到故障发生的状态。 实践提示:生产数据库,建议使用完整恢复模型,事务日志放到与数据文件不同的容错磁盘系统中。 典型备份计划: 每周执行两次完整数据库备份,其它时间每天晚上执行差异备份,另外,整个白天执行事务日志备份,从每天两次到15分钟一次。使用完整恢复计划还原时,采用如下步骤: 1、备份当前事务日志 2、还原最新的完整备份 3、如果在最后一次完整备份后执行了差异备份,则还原最新的差异备份 4、依次还原最后一次完整备份或差异备份后的所有事务日志备份,Page 10/28,大容量日志恢复模型,大容量日志恢复模型类似于完整恢复模型,但

6、不将下列操作写入日志:bulk insertDML命令 select * into tableBLOB操作:witetext 和updatetext创建索引 事务日志中标记发生大容量日志操作,并记录他们所影响的区,备份日志时,将这些区复制到日志中,代替大容量日志标记。 应用:仅当数据库执行大容量日志操作,且提高这些操作的性能非常重要,才能使用这种模型,Page 11/28,设置恢复模型,对于新的数据库,将使用系统数据库model的恢复模型,默认情况下企业版和标准版使用完整恢复模型,个人版和desktop版使用简单恢复模型,但可以通过修改系统数据库model来设置恢复模型 DDL: alter

7、database databasename set recovery option option包括:full bulk_logged simple,Page 12/28,设置恢复模型,简单恢复模式完整恢复模式大容量日志恢复模式,Page 13/28,备份类型,Page 14/28,用户数据库备份策略,恢复到分钟:如果可能,每周运行两次完整备份,使用每晚的差异备份和在业务进行期间每10分钟事务日志备份,不使用“在检查点截断日志”选项,因为将不能恢复某些事务,要提高备份速度,尽可能使用多个备份设备。 恢复到工作点:如果可能,每周运行两次完整备份,使用每晚的差异备份和在业务进行期间每10分钟事务日

8、志备份,不使用“在检查点截断日志”选项,使用命名事务将命名标记插入事务日志中,要提高备份速度,尽可能使用多个备份设备。 恢复到小时:如果可能,每周运行两次完整备份,使用每晚的差异备份和在业务进行期间每10分钟事务日志备份,不使用“在检查点截断日志”选项,使用命名事务将命名标记插入事务日志中,要提高备份速度,尽可能使用多个备份设备。 每日改变的恢复:每周至少运行一次完整备份,使用每晚的差异备份和在业务进行期间没4小时备份事务日志,不使用“在检查点截断日志”选项。 只读:计划每30日做一个数据库完整备份,并且无论何时数据库被修改,都要补充一次额外的完整备份,Page 15/28,备份还原策略,Pa

9、ge 16/28,示例1,完整备份和还原 只能选择任意的一个完整数据库备份进行还原 还原到10:00 还原到11:00 还原到12:00,Page 17/28,示例2,完整备份+差异备份与还原 如果需要还原到11:00时的数据库状态 完整数据库备份1+差异数据库备份2 如果需要还原到12:30时的数据库状态 完整数据库备份2+差异数据库备份3,Page 18/28,示例3,完整备份+日志备份与还原 如果需要还原到11:00时的数据库状态 完整备份1+日志备份1+日志备份2 如果需要还原到12:30时的数据库状态 完整备份2+日志备份3 完整备份1+日志备份1+日志备份2+日志备份3 如果需要恢

10、复到10:45时的状态 完整备份1+日志备份1+日志备份2 指定到10:45的恢复即时点,Page 19/28,备份设备,SQL Server支持的媒体 磁盘 磁带 备份设备 物理 如: C:BackupsAccountingFull.bak 逻辑 存储在 SQL Server 内的系统表中如:Accounting_Backup,Page 20/28,创建备份设备,使用系统存储过程创建备份设备 在SQL Server 中,可以使用sp_addumpdevice语句创建备份设备,其语法形式如下:sp_addumpdevice 磁盘类型,备份设备的逻辑名称,备份设备的物理名称【例】创建备份设备ba

11、ckup_xscjuse masterexec sp_addumpdevice disk ,backup_xscj, e:backbackup_xscj.bak,Page 21/28,数据备份,T-SQL创建完全备份语法:backup database 数据库名 to 设备逻辑名with init /noinit-init 表示重写-noinit 表示追加(默认)【例】把xscj数据库完全备份到backup_xscj设备里backup database xscj to backup_xscj with noinit,Page 22/28,备份到文件,T-SQL备份到文件语法: backup d

12、atabase 数据库名 to disk=物理路径【例】备份xscj数据库到临时设备xscj_backup.bak里backup database xscj to disk=c:xscj_backup.bak,Page 23/28,差异备份,T-SQL创建差异备份语法:backup database 数据库名 to 永久备份设备逻辑名with differential【例】追加xscj数据库的差异备份到backup_xscj设备里backup database xscj to backup_xscj with differential, noinit,Page 24/28,日志备份,T-SQL

13、创建日志备份语法:backup log 数据库名 to 设备逻辑名with init/noinit【例】追加xscj数据库的日志备份到backup_xscj设备里backup log xscj to backup_xscj with noinit注意:还原模型为简单时,不允许做日志备份.,Page 25/28,备份故障点日志,备份故障点日志:备份服务器最后一次Down机时刻的日志语法:backup log 数据库名 to 备份设备逻辑名 with no_truncate 【例】xscj数据库down掉后,在恢复xscj数据库前,做故障 点备份backup log xscj to backup_

14、xscj with noinit, no_truncate,Page 26/28,截断日志,当事务存储在独立的设备中时,每次修改数据都将导致事务日志增长 解决方案是备份事务日志的非活动部分,然后将其删除。默认情况下,备份事务日志也将截断日志。 例如:如果磁盘满,则需要在没有数据库备份情况下截断事务日志,在不进行备份的情况下无法截断日志,然而可以使用backup nolog或backup truncateonly 来截断日志 Backup log test with truncate_only,Page 27/28,恢复数据库,TransactSQL恢复数据库 从完全备份中恢复数据库 语法:re

15、store database 数据库名 from 永久备份设备逻辑名【例】先把xscj数据库备完全份到xscj_full设备里,再恢复数据库.backup databse xscj to xscj_fullrestore database xscj from xscj_full,Page 28/28,恢复数据库,TransactSQL恢复数据库 恢复数据库的日志备份 语法:restore log 数据库名 from 永久备份设备逻辑名【例】恢复xscj_backup 里的日志备份内容restore log xscj from xscj_backup,Page 29/28,恢复数据库,Trans

16、actSQL恢复数据库 从备份文件恢复数据库 语法:restore database 数据库名 from disk=物理路径【例】从备份文件xscj_backup.bak中恢复数据库restore database xscj from disk=c:xscj_backup.bak,Page 30/28,分步恢复数据库,TransactSQL恢复数据库语法:restore database 数据库名 from 永久备份设备名with file=n ,recovery/norecoveryn 表示第几个文件 在备份设备中从1开始数recovery 使数据库可以运行,但无法还原其它事务 norecovery 是数据库不在运行,但可以还原其它务,Page 31/28,分步恢复数据库,【例】从backup_xscj数据库中分布恢复数据库restore database xscj from backup_xscj with file=1 ,norecoveryrestore database xscj from backup_xscj with file=2 ,norecoveryrestore log from xscj from backup_xscj with file=3 recovery,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号