收藏 分享(赏)

数据库课件7.ppt

上传人:无敌 文档编号:605594 上传时间:2018-04-14 格式:PPT 页数:42 大小:274.50KB
下载 相关 举报
数据库课件7.ppt_第1页
第1页 / 共42页
数据库课件7.ppt_第2页
第2页 / 共42页
数据库课件7.ppt_第3页
第3页 / 共42页
数据库课件7.ppt_第4页
第4页 / 共42页
数据库课件7.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

1、数据库应用与开发,第4章 SQL Server 2000数据库的备份与恢复,SQL Server 2000数据库的备份与恢复,随着计算机技术的发展,也为人类社会带来了不少问题。故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失。数据库系统中采取了各种保护措施,但仍不可避免灾难事故的发生。 怎么办?备份与恢复数据库,SQL Server 2000数据库的备份与恢复,4.1 SQL Server2000中数据库的备份4.2 SQL Server2000中的数据修复,SQL Server2000中数据库的备份,一、何时备份二、备份方法三、备份介质四

2、、备份需要考虑的其他事件五、备份用户数据库六、备份系统数据库,SQL Server2000中数据库的备份,概念数据库备份:DBA 定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。这些设备的数据文本称为后备副本。数据库恢复:加载数据库备份到系统中的进程。数据库只能恢复到备份时的状态,从那以后的所有更新事务必须重新运行才能恢复到故障时的状态。数据库的备份最重要的理由是为了灾难后的恢复。备份能减少在灾难后的工作量。,何时备份,决定因素直接取决于系统能承受的损失。 即没有对业务造成极大危害的前提下能丢失的数据量。 决定备份的间隔时间即备份频率的因素是数据变动的程度。如果数据库上的数据不经常修

3、改,只要修改就做备份,数据就很安全。如果数据库中的数据每天都更新,就应该每天都做备份。,备份方法,备份是十分耗费时间和资源的,不能频繁进行。DBA 应该根据数据库使用情况确定一个适当的备份周期。方法完全数据库备份差异数据库备份(增量数据库备份)事务日志备份数据库文件或文件组备份,备份方法(续),完全数据库备份全数据库备份因为容易实施,被许多系统优先采用。在一天或一周中预定的时间进行全数据库备份。使用这种类型的备份带来的问题是根据最近的完全备份进行数据库恢复时,备份之后对数据库的修改都将无法恢复。适用于: 对于系统中所存的数据可以很容易地再创建的情况, 或者不经常修改的数据库就可以考虑使用全数据

4、库备份。,备份方法(续),事务日志备份事务日志备份只备份事务日志中的信息。它必须与至少一次全数据库备份联用。事务日志备份比全数据库备份少花费许多资源,经常执行也容易多了。 采用完全备份和事务日志备份结合的方法,能够实现时间点恢复。当需要数据库恢复时,首先用最近一次完全备份恢复数据库,然后用最近一次完全备份之后创建的所有事务日志备份,按顺序恢复完全备份之后发生在数据库上的所有操作。,备份方法(续),事务日志备份(续)适用于下列情况不能接受丢失大量数据的情况。在这种情况下,可以每天做一个全数据库备份,再每小时或更频繁地做事务日志备份以减少数据丢失。 数据库的大小使得经常做全数据库备份很困难。这种情

5、况下,可以做一次全数据库备份,然后当数据修改时,再做一次事务日志备份。数据库修改频率较高。在发生大量的数据库修改时,数据库备份可能很快就过时了,如果把事务日志备份和全数据库备份联系起来使用,这些修改都能记录下来。,备份方法(续),差异备份(增量备份)增量备份像事务日志备份一样,只备份上次全数据库备份后所做的修改。与事务日志备份不同的是这种备份不允许时间点恢复,它只允许在实际所做的备份点上恢复。所以,这种备份通常要有事务日志备份作为补充。 适用于下列情况 系统中所存数据的一些修改丢失后,不致造成灾难性的损失。对于这种类型的系统,手工重建数据比建立一个事务日志备份计划更容易。数据库的大小使经常做全

6、数据库备份很困难的情况。想通过联合使用全数据库备份、增量备份和事务日志备份最大程度地减少花费的时间。,备份方法(续),数据库文件或文件组备份当数据库非常巨大时,可以执行数据库文件或者文件组备份。文件组包含了一个或者多个数据库文件。执行数据库文件或者数据库文件组备份应考虑的因素必须指定文件或者文件组的逻辑名称;为了使存储的文件与数据库的其余部分一致起来,允许执行事务日志的备份;为了确保所有的数据库文件或者文件组有规律地备份,应该制定一个周期备份每一个文件的规划。,同时使用多种备份,数据备份操作定期执行完全备份,例如1天一次或2天一次进行增量备份,如4小时一次或6小时一次进行事务日志备份,如1小时

7、一次或2小时一次数据恢复操作用最近一次的完全备份恢复数据库用最近一次的增量备份恢复数据库用在最近一次的完全备份之后所创建的所有事务日志备份,按顺序恢复最近一次完全备份之后发生在数据库上的所有操作。,备份介质,备份介质就是指备份内容的载体。在SQL Server系统中,支持三种类型的备份介质磁盘文件:最常用的存储备份的介质,既可以是本地文件,也可以是网络文件。磁带:也是一种常用的备份介质。当使用磁带备份时,磁带驱动器必须安装在本地的SQL Server系统上。命名管道(Named Pipe):并不是一种实实在在的介质,但它提供了把备份放在命名管道上以便利用第三方软件包的备份和恢复功能。,演示创建

8、备份设备,备份需要考虑其他的事项,备份介质的选择 考虑性能(速度、可恢复性 ) 运行备份时机的选择 在用户数据吞吐最少的时候备份。这段时间通常称为维护窗口。 (可使用SQL Server Agent完成) 备份的存储 最好不要存储在源数据所在的同一台机器上;应为备份磁带找一个存放地点。备份保存的时间 常用备份策略是祖父父亲儿子备份计划。,备份需要考虑其他的事项,备份的验证在数据库被冲掉之前就检查并保证每个设备工作正常,这也是最重要的一点。第一次安装服务器时,在实际使用之前,运行备份,并把备份恢复到同一台服务器上,保证硬件都能正常运行。可以另外选择在开发用的或有质保的服务器上备份和恢复以保证能正

9、常运行,或找一家公司校验备份磁带。 负责备份的人员,备份实例,经某热力公司的可恢复性需求后,为该公司制定一个备份计划:,全数据库备份,该公司认为他们在午夜11:00到凌晨1:00之间数据量最少。可以设置为系统的维护窗口。作为要做的所有其他备份的起始点,我们应该在这段时间内做一个全数据库备份。,增量备份,因为需要尽可能快的恢复,我们决定每6个小时做一次增量备份。这样先从全数据库备份中恢复,然后再从上一次增量备份中恢复,最后是事务日志备份。这样将大大加快恢复的过程。,备份实例(续),经某热力公司的可恢复性需求后,为该公司制定一个备份计划:,事务日志备份,该公司在不断地计量客户的用热量,如果公司丢失

10、了任何数据,会使公司蒙受损失。公司认为所能容许的最大丢失数据量是15 分钟内的数据量。因此,在两次增量备份之间,每15分钟需要做一次事务日志备份。,备份实例(续),练习做数据库备份首先打开查询分析器,用下述语句关闭在检查点上截短日志选项:sp_dboption tms,trunc. log on chkpt.,false从企业管理器的“备份”项中选择“备份数据库”演示tms数据库的全数据库备份。,备份系统数据库,系统数据库记录了有关SQL Server系统和全部用户数据库的信息,所以也应该定期备份,以便在系统或数据库发生故障后重建。当执行了创建、修改、删除数据库的语句,或修改事务日志的sp_l

11、ogdevice系统存储过程,或者增加、删除了服务器的系统存储过程,都应该备份master数据库,否则任何自上次备份后的更改都将在还原备份时丢失。,备份系统数据库(续),当修改了msdb数据库的时候,记得备份该数据库,因为msdb数据库包含了有关作业、警报、操作员、调度等SQL Server Agent服务的信息。当修改了model数据库的时候,备份该数据库,因为model数据库包含了用于全部新的用户数据库的默认配置信息。distribution数据库存储了与复制有关的信息,因此应该备份该数据库的内容。当重建distribution数据库时,就可以使用备份来恢复。,SQL Server 200

12、0数据库的备份与恢复,4.1 SQL Server2000中数据库的备份4.2 SQL Server2000中的数据恢复,SQL Server2000中的数据恢复,一、数据恢复概述二、验证备份三、恢复方法,数据恢复概述,恢复数据库就是将备份装载并应用事务日志备份的过程。在执行数据库恢复之前,必须限制用户对数据库的访问以及备份事务日志。数据库恢复是静态的,因此应该设置数据库的dbo_use only选项为TRUE。在执行数据库恢复操作时,对于那些已经被破坏了的数据库,系统将自动重新建立数据库文件和数据库中的对象。,验证备份,在恢复数据库的进程中,系统将自动地进行包括执行安全性检查和重建数据库及其

13、相关文件的操作,确保数据库安全和迅速地恢复。当使用RESTORE语句进行恢复时,系统将进行安全性检查。这种不可缺少的内部机制可以防止偶然使用不同的数据库备份或者不兼容的数据库备份覆盖某个已经存在的数据库。,验证备份(续),当出现了下面几种情况时,系统不能恢复数据库当在RESTORE语句中指定数据库已经存在并且在备份文件中记录的数据库不同于在RESTORE语句中指定的数据库时;如果服务器上的数据库文件集不同于备份集中数据库文件集时;如果没有提供用于恢复数据库的全部文件或者文件组,那么系统生成一个错误消息,指定用于恢复的文件。例如,如果希望恢复某个数据库sales备份到某个accounting数据

14、库,并且accounting数据库已经存在,那么系统自动地阻止这种恢复进程。如果确实希望使用数据库sales备份覆盖accounting数据库中的数据,那么必须取消系统的安全性检查。,验证备份(续),当使用完全数据库备份恢复数据库时,系统将自动地重建原来的数据库文件,并且把这些文件放在备份数据库时的这些文件所在的原始位置。这种进程是系统自动提供的,因此,用户在执行数据库恢复工作时,不需要重新建立数据库结构。在恢复数据库文件时,必须确保数据库备份文件是有效的和在备份文件中包含了所需要的备份内容。常用的验证备份信息的Transact-SQL语句有RESTORE HEADERONLY、RESTORE

15、 FILELISTONLY 、 RESTORE LABELONLY、RESTORE VERIFYONLY。,验证备份(续),使用RESTORE HEADERONLY语句可以获得指定的备份文件或者备份集的标题信息。如果在某个备份文件上有多个备份,那么系统返回该文件上所包含的全部备份的标题信息,这些信息包括:备份文件或者备份集名称和描述信息;所使用的备份介质类型,例如磁带或者磁盘;使用的备份方法,例如完全数据库备份、增量备份、日志备份或者文件备份;执行备份时的日期和时间;备份的尺寸大小;在备份文件链中的某个特定备份的序列号。,验证备份(续),使用RESTORE FILELISTONLY语句可以获得

16、在备份文件中包含的原来的数据库文件或者事务日志文件的信息。当执行该语句时,系统可以返回这些内容的信息:数据库文件和事务日志文件的逻辑名称;数据库文件和事务日志文件的物理名称;文件的类型,例如是数据库文件还是事务日志文件;文件组中所包含的成员;以MB表示的备份集的大小尺寸;以MB表示的该文件所允许的最大尺寸。,验证备份(续),使用RESTORE LABELONLY语句可以获得有关放置备份文件的备份介质的信息。使用RESTORE VERIFYONLY语句可以验证构成备份集的单个文件是否完整以及所有的备份是否可读。 恢复选项特征RECOVERY选项是系统的默认选项。此选项用在恢复最后一个事务日志时或

17、者完全数据库恢复时,可以保证数据库的一致状态。当使用该选项时,系统取消事务日志中的任何未提交的事务以及提交任何完成的事务。数据库恢复进程完成之后,可以使用数据库。如果必须使用增量备份恢复时,那么不能使用该选项。当需要恢复多个备份时,使用NORECOVERY选项。这时,系统既不取消事务日志中的任何未提交的事务,也不提交任何完成的事务,数据库是不可以使用的。,验证备份(续),使用FILE选项可以从包含了多个备份的备份文件中指定备份。必须指定一个与在备份文件中备份的放置顺序一致的文件序号。如果准备将文件恢复到另外一个位置,例如不同的硬盘驱动器、服务器等,可以使用MOVE TO选项指定恢复该备份文件的

18、位置。只有当希望使用来自不同数据库备份中的数据替代已有的数据库时,才使用REPLACE选项,使用这个选项时,恢复进程不进行安全检查。,恢复方法,完全数据库备份的恢复 当从完全数据库备份中恢复数据库时,系统重新创建数据库以及与数据库相关的全部文件,然后把这些文件放在原来的位置。所有的数据库对象都由系统自动创建。 一般地,当数据库的物理磁盘文件损坏时,或者整个数据库被删除、破坏时,应该从完全数据库备份中恢复。 当执行从完全数据库备份中恢复数据库时,指定恢复选项。因为,恢复选项初始化恢复进程,以便数据库保持一致的状态。,恢复方法(续),增量备份的恢复 当从增量备份中恢复数据库时,系统只恢复从最近的完

19、全数据库备份以后数据库的变化部分,并且将数据库返回到执行增量备份时的状态。 一般地,执行从增量备份中恢复数据库所需要的时间比从事务日志备份中恢复数据库需要的时间要快。,恢复方法(续),增量备份的恢复(续)应该注意这样几个方面的因素从增量备份中恢复数据库的语法形式与从完全数据库备份中恢复数据库的语法形式一样。注:在RESTORE语句中的FROM子句中不是指定完全数据库备份,而是指定包含有增量备份的备份文件。增量备份是在完全数据库备份的基础上的备份,增量备份不能孤立地存在。如果在执行了增量备份之后,还有事务日志需要恢复,那么应该在执行增量备份时指定NORECOVERY选项。如果在执行了增量备份之后

20、,没有事务日志需要恢复,那么应该在执行增量备份时指定RECOVERY选项。,恢复方法(续),事务日志备份的恢复 一般地,为了从最近的完全数据库备份或者增量备份中恢复对数据库的变化,可以使用事务日志来恢复。 事务日志的恢复是基于完全数据库恢复的。 当需要使用多个事务日志进行恢复时,除了最后一次事务日志恢复之外,都应该使用NORECOVERY选项。 使用事务日志备份来恢复,可以将数据库恢复到指定的时间点。使用STOP AT选项可以指定恢复到某个精确的时间点。,恢复方法(续),数据库文件备份的恢复为了减少恢复巨大的数据库时所需的时间,可以从文件备份或者文件组备份中恢复数据库。如果某个特殊的文件破坏了

21、或者被偶然删除了,可以从文件备份或者文件组备份中恢复。数据库是存放在文件上的。能否将这些文件直接保存下来,作为备份,以便将来在恢复时使用呢?,不能直接恢复,可以间接恢复,一般不使用,使用T-SQL语句恢复数据库,TestDatabase 数据库在Backup1本地磁盘设备上作了4次备份,包括一次全库备份、一次差异备份和两次日志备份。现在存储介质发生故障,需要从备份中恢复,这时需要执行以下几步:第一步,恢复全库备份:RESTORE DATABASE TestDatabase FROM Backup1 WITH FILE=1,NORECOVERY,使用T-SQL语句恢复数据库,第二步,恢复差异备份

22、:RESTORE DATABASE TestDatabase FROM Backup1 WITH FILE=2,NORECOVERY第三步,恢复第一个日志备份:RESTORE LOG TestDatabase FROM Backup1 WITH FILE=3,NORECOVERY第四步,恢复第二个日志备份:RESTORE LOG TestDatabase FROM Backup1 WITH FILE=4执行这一步后,数据库TestDatabase便可以访问了。,恢复方法(续),系统数据库的恢复如果包含系统数据库的介质被破坏了,那么就必须重建系统数据库。当系统数据库被破坏时,如果仍然可以启动SQ

23、L Server服务,那么可以从有效的系统数据库备份中恢复数据库。如果master数据库被破坏了,那么就无法启动系统,这时,需要重建系统数据库。,恢复方法(续),系统数据库的恢复(续)重建和恢复数据库重新建立系统数据库。Rebuildm.exe当系统数据库重建之后,可以启动SQL Server服务。SQL Server服务启动后,系统数据库是空的,因此,需要从系统数据库的备份中恢复数据库。在恢复系统数据库时,一般地,应该首先恢复master数据库,其次是msdb数据库和distribution数据库,最后恢复model数据库。,演示恢复tms数据库,小结,备份和恢复是数据库技术中的一项有价值的研究课题。现有的方法基本上可以满足企业的一般需要。但是,从长远来看,还有许多方面需要进一步研究,例如如何使用实时的备份服务器、增加和简化备份和恢复方法等。,下课了。,下课了!,追求,

展开阅读全文
相关资源
猜你喜欢
相关搜索

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

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报