《《备份还原》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《备份还原》PPT课件.ppt(56页珍藏版)》请在三一办公上搜索。
1、备份与还原,Chapter2/28,本章目标,了解备份和还原的概念掌握SQL Server的备份方法掌握备份策略的制定 掌握运用备份还原数据库的方法,Chapter3/28,为什么需要备份,数据丢失的原因程序错误 人为错误 计算机失败 磁盘失败 灾难(如火灾、地震)和偷窃 什么是备份数据的副本用于在系统发生故障后还原和恢复数据文件复制备份,Chapter4/28,创建备份和恢复计划,创建和实施备份和恢复计划是数据库管理员的职责之一。创建备份计划需要考虑的问题:您正在备份什么类型的数据库?系统和用户数据库经常有不同的备份和恢复需要。数据库的数据有多重要?数据的重要性决定备份类型数据库多久发生一次
2、改变?改变的频率驱使您决定数据库多久应该进行备份您需要多快恢复数据?您有执行备份的设备吗?需要备份硬件来执行备份,备份硬件包括:磁盘驱动器、光盘驱动器、可移动驱动器以及无格式的旧磁盘驱动器什么是计划备份的最佳时间?数据库尽可能低的时候,重要的数据库不应该等到非高峰期您需要异地保存备份吗?对于在自然灾害的情况下恢复系统来说,异地保存备份磁带的副本非常重要。,Chapter5/28,恢复的概念,数据库恢复概念基于事务完整性ACID属性中的D,即事务持续性,持续性意味着事务提交后将是永久性的,即使发生硬件故障。sql server 使用先写事务日志来实现事务持续性,每个事务都先写入事务日志,然后才写
3、入数据文件。这为恢复计划提供了以下好处:事务日志确保能够将每个事务恢复到服务器停机前的状态 事务日志使得能够在处理事务时进行备份 事务日志降低了硬件故障的影响,因为可以将事务日志和数据文 件放在不同的磁盘子系统中恢复策略应该基于对事务丢失的容忍度,涉及选择各种恢复选项、备份方法、指定备份计划以及对数据库存储在远离现场的地方。,Chapter6/28,恢复模式2-1,SQL Server的备份和恢复功能非常灵活,提供三种可选择的恢复模型。可以根据恢复需求,使用下列恢复模型来配置事务日志。,Chapter7/28,恢复模式2-2,Chapter8/28,简单恢复模型,简单恢复模型适合于只需要确保每
4、个事务的原子性,而无需确保其连续性的数据库简单恢复模型命令SQL在检查点截断(清空)事务日志,事务日志只将事务保留到它被写入数据文件为止,此后,其他事务将以循环方式重用该事务所占空间。由于这种事务日志是临时性的,因此不需要备份。这种恢复模型的优点是事务日志小,但很可能丢失最后一次完整备份或差异备份后的所有事务基于简单恢复模型的恢复计划可能是:每周执行一次完整备份,在非周末的晚上执行差异备份。使用简单恢复计划还原时,采用如下步骤:1、还原最新的完全备份2、还原最新(可选)的差异备份,Chapter9/28,完整恢复模式,提供最完美的恢复计划,使用这种模型时,所有事务(包括大容量日志操作)都写入事
5、务日志中,这种模型的主要优点是,可以将数据库中提交的每个事务都还原到故障发生的状态。实践提示:生产数据库,建议使用完整恢复模型,事务日志放到与数据文件不同的容错磁盘系统中。典型备份计划:每周执行两次完整数据库备份,其它时间每天晚上执行差异备份,另外,整个白天执行事务日志备份,从每天两次到15分钟一次。使用完整恢复计划还原时,采用如下步骤:1、备份当前事务日志2、还原最新的完整备份3、如果在最后一次完整备份后执行了差异备份,则还原最新的差异备份4、依次还原最后一次完整备份或差异备份后的所有事务日志备份,Chapter10/28,设置恢复模型,简单恢复模式完整恢复模式大容量日志恢复模式,Chapt
6、er11/28,备份类型,Chapter12/28,用户数据库备份策略,恢复到分钟:如果可能,每周运行两次完整备份,使用每晚的差异备份和在业务进行期间每10分钟事务日志备份,不使用“在检查点截断日志”选项,因为将不能恢复某些事务,要提高备份速度,尽可能使用多个备份设备。恢复到工作点:如果可能,每周运行两次完整备份,使用每晚的差异备份和在业务进行期间每10分钟事务日志备份,不使用“在检查点截断日志”选项,使用命名事务将命名标记插入事务日志中,要提高备份速度,尽可能使用多个备份设备。恢复到小时:如果可能,每周运行两次完整备份,使用每晚的差异备份和在业务进行期间每10分钟事务日志备份,不使用“在检查
7、点截断日志”选项,使用命名事务将命名标记插入事务日志中,要提高备份速度,尽可能使用多个备份设备。每日改变的恢复:每周至少运行一次完整备份,使用每晚的差异备份和在业务进行期间没4小时备份事务日志,不使用“在检查点截断日志”选项。只读:计划每30日做一个数据库完整备份,并且无论何时数据库被修改,都要补充一次额外的完整备份,Chapter13/28,备份还原策略,Chapter14/28,示例1,完整备份和还原只能选择任意的一个完整数据库备份进行还原还原到10:00还原到11:00还原到12:00,Chapter15/28,示例2,完整备份+差异备份与还原如果需要还原到11:00时的数据库状态完整数
8、据库备份1+差异数据库备份2如果需要还原到12:30时的数据库状态完整数据库备份2+差异数据库备份3,Chapter16/28,示例3,完整备份+日志备份与还原如果需要还原到11:00时的数据库状态完整备份1+日志备份1+日志备份2如果需要还原到12:30时的数据库状态完整备份2+日志备份3完整备份1+日志备份1+日志备份2+日志备份3如果需要恢复到10:45时的状态完整备份1+日志备份1+日志备份2指定到10:45的恢复即时点,Chapter17/28,备份设备,SQL Server支持的媒体 磁盘磁带 备份设备 物理如:C:BackupsAccountingFull.bak逻辑存储在 SQ
9、L Server 内的系统表中 如:Accounting_Backup,Chapter18/28,创建备份设备,使用系统存储过程创建备份设备 在SQL Server 中,可以使用sp_addumpdevice语句创建备份设备,其语法形式如下:sp_addumpdevice 磁盘类型,备份设备的逻辑名称,备份设备的物理名称【例】创建备份设备backup_xscjuse masterexecsp_addumpdevice disk,backup_xscj,e:backbackup_xscj.bak,Chapter19/28,数据备份,T-SQL创建完全备份语法:backup database 数据
10、库名 to 设备逻辑名with init/noinit-init 表示重写-noinit 表示追加(默认)【例】把xscj数据库完全备份到backup_xscj设备里 backup database xscj to backup_xscj with noinit,Chapter20/28,备份到文件,T-SQL备份到文件语法:backup database 数据库名 to disk=物理路径【例】备份xscj数据库到临时设备xscj_backup.bak里 backup database xscj to disk=c:xscj_backup.bak,Chapter21/28,差异备份,T-SQ
11、L创建差异备份语法:backup database 数据库名 to 永久备份设备逻辑名 with differential【例】追加xscj数据库的差异备份到backup_xscj设备里 backup database xscj to backup_xscj with differential,noinit,Chapter22/28,日志备份,T-SQL创建日志备份语法:backup log 数据库名 to 设备逻辑名with init/noinit【例】追加xscj数据库的日志备份到backup_xscj设备里 backup log xscj to backup_xscj with noin
12、it 注意:还原模型为简单时,不允许做日志备份.,Chapter23/28,备份故障点日志,备份故障点日志:备份服务器最后一次Down机时刻的日志语法:backup log 数据库名 to 备份设备逻辑名 with no_truncate【例】xscj数据库down掉后,在恢复xscj数据库前,做故障 点备份backup log xscj to backup_xscj with noinit,no_truncate,Chapter24/28,截断日志,当事务存储在独立的设备中时,每次修改数据都将导致事务日志增长解决方案是备份事务日志的非活动部分,然后将其删除。默认情况下,备份事务日志也将截断日
13、志。例如:如果磁盘满,则需要在没有数据库备份情况下截断事务日志,在不进行备份的情况下无法截断日志,然而可以使用backup.nolog或backup.truncateonly 来截断日志Backup log test with truncate_only,Chapter25/28,恢复数据库,TransactSQL恢复数据库从完全备份中恢复数据库语法:restore database 数据库名 from 永久备份设备逻辑名【例】先把xscj数据库备完全份到xscj_full设备里,再恢复 数据库.backup databse xscj to xscj_fullrestore database
14、xscj from xscj_full,Chapter26/28,恢复数据库,TransactSQL恢复数据库恢复数据库的日志备份语法:restore log 数据库名 from 永久备份设备逻辑名【例】恢复xscj_backup 里的日志备份内容 restore log xscj from xscj_backup,Chapter27/28,恢复数据库,TransactSQL恢复数据库从备份文件恢复数据库语法:restore database 数据库名 from disk=物理路径【例】从备份文件xscj_backup.bak中恢复数据库restore database xscj from d
15、isk=c:xscj_backup.bak,Chapter28/28,分步恢复数据库,TransactSQL恢复数据库 语法:restore database 数据库名 from 永久备份设备名with file=n,recovery/norecovery n 表示第几个文件 在备份设备中从1开始数 recovery 使数据库可以运行,但无法还原其它事务norecovery 是数据库不在运行,但可以还原其它务,Chapter29/28,分步恢复数据库,【例】从backup_xscj数据库中分布恢复数据库restore database xscj from backup_xscjwith fil
16、e=1,norecoveryrestore database xscj from backup_xscjwith file=2,norecoveryrestore log from xscj from backup_xscjwith file=3 recovery,Chapter30/28,恢复计划,实际恢复模式取决于损坏类型和使用的恢复计划恢复模型:简单数据文件损坏:1 重新启动服务器 2 还原完整备份 3 还原最新的差异备份事务日志损坏 重新启动服务器,将自动创建一个1MB的新事务日志,Chapter31/28,恢复计划,完整或大容量日志数据文件损坏:1 使用选项no_truncate备份
17、当前的事务日志 2 还原完整备份 3 还原最新的差异备份 4 还原最后一次差异或完整备份后的全部事务日志,这将恢复所有已提交的事务日志文件损坏 1 还原完整备份 2 还原最新的差异备份 3 还原最后一次差异或完整备份后的全部事务日志,这将恢复所有已提交的事务,最后一次备份后发生的事务将丢失,Chapter32/28,案例分析,案例1:完整数据库备份与还原案例2:完整+差异备份与还原方案案例3:完整+日志备份与还原方案,Chapter33/28,案例1:完整备份与还原2-1,完整数据库备份操作要点新建备份设备【任务】|【备份】指定数据库备份类型 完整备份集过期时间 覆盖媒体 完成后验证备份 写入
18、媒体前检验校验和,完整数据库备份,Chapter34/28,案例1:完整备份与还原2-2,完整数据库还原操作要点【任务】|【还原】|【数据库】目标数据库 源数据库 选择用于还原的备份集完整 还原选项 恢复状态,覆盖现有数据库指定还原操作应覆盖所有现有数据库及其相关文件,即使已存在同名的其他数据库或文件保留复制设置将已发布的数据库还原到创建该数据库的服务器之外的服务器时,保留复制设置还原每个备份之前进行提示还原初始备份之后,此选项会在还原每个附加备份集之前打开“继续还原”对话框,该对话框将要求您指示是否要继续进行还原限制访问还原的数据库使还原的数据库仅供 db_owner、dbcreator 或
19、 sysadmin 的成员使用,RESTORE WITH RECOVERY默认的方式SQL Server将回滚所有未确认的事务,前滚所有确认的事务在恢复过程完成后数据库可用RESTORE WITH NORECOVERYSQL Server将不回滚任何未确认的事务,也不前滚任何确认的事务数据库不可用RESTORE WITH STANDBY使数据库处于备用状态选择此选项需要指定一个备用文件。,完整数据库还原,Chapter35/28,阶段练习,背景Benet公司已建立一个TestDB数据库用于应用开发,TestDB包含一个数据文件和一个日志文件。现在要:对数据库进行一次完整备份模拟数据库故障(移动
20、数据库文件),使用完整备份恢复数据 目标实施一个完整备份和还原,Chapter36/28,案例2:完整+差异备份与还原2-1,差异数据库备份操作要点新建备份设备【任务】|【备份】指定数据库 备份类型 差异覆盖媒体,差异数据库备份,Chapter37/28,案例2:完整+差异备份与还原2-2,完整+差异数据库还原操作要点【任务】|【还原】|【数据库】目标数据库 源数据库 选择用于还原的备份集 完整+差异还原选项 恢复状态,完整+差异数据库还原,Chapter38/28,阶段练习,背景Benet公司已建立一个TestDB数据库用于应用开发,TestDB包含一个数据文件和一个日志文件。已对数据库进行
21、一次完整备份,现在要:对数据库进行一次差异备份使用完整备份和差异备份还原数据库 目标实施一个完整+差异备份和还原,Chapter39/28,完整+日志备份与还原方案2-1,日志备份操作要点新建备份设备【任务】|【备份】指定数据库 备份类型 事务日志覆盖媒体,事务日志备份,Chapter40/28,完整+日志备份与还原方案2-2,完整+日志还原操作要点【任务】|【还原】|【数据库】目标数据库 源数据库 选择用于还原的备份集 完整+日志还原选项 恢复状态,完整+事务日志还原,Chapter41/28,阶段练习,背景Benet公司已建立一个TestDB数据库用于应用开发,TestDB包含一个数据文件
22、和一个日志文件。已对数据库进行了一次完整备份,现在要:对数据库进行了一次日志备份使用完整+日志备份还原数据库目标实施一个完整+日志备份和还原,Chapter42/28,远程备份方案,远程备份,Chapter43/28,恢复系统数据库,默认情况下master数据库为简单还原模型,对于master数据库,只需要使用完整备份即可1、备份master数据库 执行下列操作时一定要备份数据库 创建或删除数据库 添加登录名或修改角色 修改任何服务器或数据库配置选项应该先备份master,然后备份msdb数据库2 恢复master在单用户模式下启动数据库服务器,然后还原master,Chapter44/28,
23、执行完整恢复,如果服务器彻底损坏,必须将所有备份还原到新的服务器 1 搭建windows服务器,并还原登录名以支持windows验证 2 安装sql server和service-pack升级包 3 在单用户模式下启动sql server,并还原master 4 还原msdb数据库 5 如果修改过model数据库,则还原它 6 还原用户数据库,代理服务,Chapter46/28,代理服务概述,SQL Server 代理是一个任务规划器和警报管理器,在实际应用时,可以将那些周期性的工作定义成一个任务,在SQL Server代理的帮助下自动执行;在自动执行时,若出现故障,则SQL Server代理
24、自动通知操作员,操作员获得通知后及时排除故障。如此在任务、操作员、警报三者之间既相互独立,又相互联系、相互补充,构成了自动完成某些任务的有机整体。,Chapter47/28,SQL Server代理服务配置,SQL Server 代理允许自动处理不同的管理任务,启动后可以利用SQL Server 管理平台对其进行配置,其具体步骤如下:打开SQL Server 管理平台,展开指定的服务器,用右键单击SQL Server 代理图标,从快捷菜单中选择属性选项,则出现SQL Server 代理属性对话框,选择常规页框,选择高级页框,图 SQL Server 代理属性常规页框,SQL Server 代理
25、属性高级页框,Chapter48/28,SQL Server代理服务配置,3.选择警报系统页框。使用此页可以查看和修改由SQL Server代理警报所发送的消息的设置。4.选择作业系统页框,SQL Server 代理属性警报系统页框,图SQL Server 代理属性作业系统页框,Chapter49/28,SQL Server代理服务配置,5.选择连接页框,如图所示。使用此页可查看和修改 SQL Server代理服务与SQL Server 之间的连接设置。6.选择历史记录页框,如图所示。使用此页可以查看和修改用于管理SQL Server代理服务历史记录日志的设置。,图SQL Server 代理属
26、性连接页框,图 SQL Server 代理属性历史记录页框,Chapter50/28,定义操作员,使用SQL Server 管理平台可以创建一个操作员,其具体步骤如下:打开SQL Server管理平台,展开SQL Server 代理,右击操作员图标,从快捷菜单中选择新建操作员选项,则出现新建操作员属性对话框选择通知页框,使用此页可设置向操作员通知的警报和作业。,新建操作员属性常规页框,新建操作员属性通知页框,Chapter51/28,作业管理,自动处理一个任务的第一步是创建对应的作业。一般来说,如果要创建作业,必须执行以下三个步骤:(1)定义作业步(2)如果该作业不是用户指定执行,创建作业执行
27、的计划时间(3)通知操作员作业的状态,Chapter52/28,作业步骤定义,作业步骤是作业对数据库或服务器执行的操作。每个作业必须至少有一个作业步骤。作业步骤可以为:(1)可执行程序和操作系统命令;(2)Transact-SQL 语句,包括存储过程和扩展存储过程;(3)Microsoft ActiveX 脚本;(4)复制任务;(5)Analysis Services 任务;(6)Integration Services 包。,Chapter53/28,创建作业,这里使用SQL Server 管理平台创建作业,其具体步骤如下:打开已经启动的SQL Server代理,用右键单击作业图标,从快捷菜
28、单中选择新建作业选项,则出现新建作业属性对话框,如图所示。每个作业必须有一个或者多个步骤,所以,除了定义作业属性外,在保存作业前,还至少要定义一个作业步骤。如图,图新建作业属性对话框,图 新建作业步骤常规页框,Chapter54/28,创建作业,3.选择新建作业步骤对话框中的高级页框,如图12-11所示。4.选择新建作业中的计划页框,如图12-12所示。,新建作业步骤高级页框,新建作业计划对话框,Chapter55/28,创建作业,5.选择新建作业中的通知页框,如图所示,可以为现有的作业设置作业执行状态通知。,图 新建作业属性通知页框,Chapter56/28,您的潜力,我们的动力,THANK YOU!,