数据库应用电子商务-教学课件-作者-王光明-第九章_第1页
数据库应用电子商务-教学课件-作者-王光明-第九章_第2页
数据库应用电子商务-教学课件-作者-王光明-第九章_第3页
数据库应用电子商务-教学课件-作者-王光明-第九章_第4页
数据库应用电子商务-教学课件-作者-王光明-第九章_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

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

文档简介

在线教务辅导网:教材其余课件及动画素材请查阅在线教务辅导网QQ:349134187或者直接输入下面地址:11/23/20221数据库应用——电子商务在线教务辅导网:http://www.shangfuwang第九章数据库的恢复与复制第一节数据库的恢复第二节数据库的复制第三节SQLServer的恢复与复制数据库应用——电子商务第九章数据库的恢复与复制第一节数据库的恢复数据库应前言

本章主要介绍数据库的网略络恢复和复制机制相关的概念、策略和方法。第一节阐述了数据库在网络中故障出现的出现的故障类型,给出特有的网络通信故障模型,重点介绍事务故障和通信故障的处理和常用的故障恢复策略;第二节讨论网络数据库的复制问题,内容包括在网络数据库中引入多副本的目的,副本集拓扑结构,实现副本操作相关的对象和方法,以及如何利用DAO实现网络敷数据库复制的一般工作步骤。11/23/20223数据库应用——电子商务前言本章主要介绍数据库的网数据库的恢复

在数据库系统中,实现数据一致性的前提是数据库中所有数据操作都是以事务为基础,因此网络下数据库的恢复就是对出错事务的恢复。事务是数据库的基本工作单位,是一组数据库的操作语句。它一般由begintransaction开始,以rollback(回退)或commit(提交)结束。

11/23/20224数据库应用——电子商务数据库的恢复在数据库系统中,实现数数据库的恢复事务具有以下的ACID属性。原子性(Atomic):保证一个事务全部完成或者全部不做。一致性(Consistency):数据库状态保持一致。独立性(Isolation):事务各自独立,相互之间不影响,一个未完成的事务不能在提交前将自己的中间结果提供给其他事务使用。持久性(Durability):事务中所做的修改(操作结果)在提交后长期有效,直接存入物理介质。即使是在系统中断和崩溃的情况下也不会丢失。11/23/20225数据库应用——电子商务数据库的恢复事务具有以下的ACID属性。11/22/2022网络数据库系统的通信故障模型计算机网络通讯机制是根据OSI参考模型建立的。计算机系统之间通过网络介质进行信息通信,信息传输分为七个不同的层次,即应用层、表示层、会话层、传输层、网络层、链路层和物理层。其中物理介质的链路连通包括:物理线路的介质类型,物理线路的质量(如线路的屏蔽、损耗等)等。11/23/20226数据库应用——电子商务网络数据库系统的通信故障模型11/22/20226数据库应用网络数据库系统的通信故障模型(一)网络通讯信息不畅通一般有以下情况。节点的故障如计算机的网卡出现问题或者节点操作系统中网络配置不正确。通信链路故障因网络节点间配置或者网络协议使用不当以及物理线路质量或其他情况造成通讯瘫痪。异构网络的不兼容,导致部分节点通讯失效这是因为多种网络软件平台的差异性造成的。以上情况都会导致通讯中断或者正在传输的消息丢失,最终造成整个网络环境中各节点的信息不一致。11/23/20227数据库应用——电子商务网络数据库系统的通信故障模型(一)网络通讯信息不畅通11网络数据库系统的通信故障模型(二)网络数据库中的数据不一致的故障1.事务故障2.系统故障3.介质故障11/23/20228数据库应用——电子商务网络数据库系统的通信故障模型(二)网络数据库中的数据不一故障的处理

当网络数据库系统遇到各种故障时,管理系统会根据故障的类型采取不同的对策,基本的手段是利用网络数据库中的冗余数据进行处理。冗余数据一般是通过数据转储或备份形成的。(一)数据转储数据转储是指系统管理员将整个数据库中的资源复制到系统外部的物理介质上保存起来的过程。(二)日志文件日志文件是用来记录事务对数据库操作的文件,它类似于流水账一样记录着数据库中每一次操作的过程。日志文件中含有以下的内容:。1.前像(beforeimage)2.后像(afterinage)3.事务状态11/23/20229数据库应用——电子商务故障的处理当网络数据库系统遇到故障的处理(三)故障的处理由于系统中包含了数据转储和日志文件,因此对于上述的故障,可以根据不同的类型采用不同的处理方法。一般情况是由数据库管理系统根据不同的故障情况采用重做(REDO)或撤销(UNDO)两种方式来完成故障的处理。1.事务故障的处理在事务故障中,事务中的部分操作结果已被写入介质中,故障恢复时应撤销这部分操作结果。撤销可以根据日志文件中的前像内容对数据库做逆操作。2.系统故障的处理在系统故障中有两种情况:一是事务没有全部完成就被中断,那么在故障处理时要撤销这部分没有提交的操作;二是已完成并提交的事务由于其提交的结果存放在缓冲区而被丢失,那么在故障处理时要对这部分内容重做。3.介质故障的处理介质故障是数据库的存储环境被破坏造成数据丢失,这时要利用数据转储中的数据恢复数据库。11/23/202210数据库应用——电子商务故障的处理(三)故障的处理11/22/202210数据库恢复策略

数据库系统中最重要的资源是数据,同时对数据模型要求具有实体完整性、参照完整性等,所有这些都是为了保证数据库中数据的一致性。在数据库运行过程中发生的事务,系统和介质故障,都会导致数据的不一致,从而破坏了数据一致性的基本原则。因此,针对故障造成的数据不一致,必须进行数据的恢复,即利用冗余数据进行恢复。数据恢复有三种策略,每种策略对数据的复原程度有所不同。11/23/202211数据库应用——电子商务恢复策略数据库系统中最重要的资源是恢复策略(一)副本恢复策略该策略是对已经提交并保存在存储介质上的数据的恢复方法,它通过在规定的时间内将数据库系统中完成的数据全部备份到其他存储介质上,在恢复时将数据恢复到备份时的状态。可以采用增量式的备份(即只针对变化过的数据进行备份),也可以采用完全备份。对于系统故障,不论采用完全备份或增量备份都不能做到数据完全恢复,只能恢复到备份时的状态。副本恢复策略的优点是系统实现比较简单,只要制定备份规则,定时完成备份即可。但是该策略的最大不足就是不能恢复已经提交但是还没有存入物理介质的那些事务所做的数据修改。11/23/202212数据库应用——电子商务恢复策略(一)副本恢复策略11/22/202212数据库恢复策略(二)副本和日志文件共同恢复策略

这是为了克服副本恢复策略不能恢复已提交但是没有进入物理介质的那些事务的问题而采取的一种策略。日志文件可以为这部分已提交但没有保存的事务提供恢复服务,故障恢复时只需利用日志文件中的后像数据重新操作一遍即可。11/23/202213数据库应用——电子商务恢复策略(二)副本和日志文件共同恢复策略11/22/20恢复策略(三)多副本恢复策略多副本就是在网络数据库环境中有多个数据库副本,这些副本存放在不同的计算机节点上并且保持同步。多副本恢复策略一般应用在分布式数据库环境中。因为,存放在不同计算机节点上的副本不会因为某一事件同时发生相同的故障,这样当系统中某个副本出现问题时可以利用其他副本进行联机恢复。多副本在实现时可以采用磁盘镜象、数据快照等手段。11/23/202214数据库应用——电子商务恢复策略(三)多副本恢复策略11/22/202214数据数据库的复制

在网络环境下,一个数据库可能由多个用户使用,保持同步的数据库副本可以改善用户共享数据库的途径。数据库网络复制就是系统整体维护几个完全相同的副本,各个副本分别存储在系统中不同的计算机节点上。利用数据库副本可以重新产生一个数据库,使两个或多个用户同时使用自己的数据库副本。复制可以分为完全复制和部分复制。

11/23/202215数据库应用——电子商务数据库的复制在网络环境下,一个数数据库的复制数据复制具有下述一些优缺点。可用性增强。当包含某个关系的节点之一发生故障时,该关系可以在另外的节点上找到。并行度增大。几个节点可以并行地处理涉及关系的查询,这就可以减少数据在节点间的移动。更新开销增大。对关系的更新必须传播到包含该关系副本的所有节点。11/23/202216数据库应用——电子商务数据库的复制数据复制具有下述一些优缺点。11/22/2022数据库副本的用途

数据库副本是数据库的一个备份,保存多个副本就意味着在数据库中保存大量的冗余数据。每个副本都包含系统中公共表、查询、窗体、宏、模块,以及自身所在计算机上使用的本地对象。为了保持数据的一致性,对某个副本中的公共表的任何数据修改都要同步地反映到其他副本中。在多用户应用环境中,数据库副本可以改善用户共享数据库的途径。11/23/202217数据库应用——电子商务数据库副本的用途数据库副本是数据库数据库副本的用途(一)数据库副本的使用1.数据的应用在一个局域网范围内共享数据,可以通过数据库副本将数据库中公共数据复制到远程节点中,使得远程数据节点的数据和操作统一,同时保证副本数据间同步或者在某个时段将远程节点修改的公共数据传输到中心节点。2.数据的备份若数据库副本包含多个数据库的数据,当原始数据库被破坏时,可以用副本数据库中的某个数据库来恢复数据。11/23/202218数据库应用——电子商务数据库副本的用途(一)数据库副本的使用11/22/202数据库副本的用途(二)数据库副本的不足尽管数据库副本可以起到数据备份和减少服务器数据库处理数据数量的作用,但是数据复制本身就构成了大量的冗余数据,过多的冗余数据会给数据库的数据一致性维护带来更多的困难。在下列情况下,副本仍难以达到系统的恢复要求:1.需要更新多个副本中的大量记录对于那些需要对不同副本中的现存记录进行频繁更新的应用程序,可能会产生更多的记录冲突。2.对数据一致性的要求非常严格对于诸如资金过户、航班机票的预订之类的事务处理应用程序,要求复制时候的信息不能有半点差错。11/23/202219数据库应用——电子商务数据库副本的用途(二)数据库副本的不足11/22/202副本集拓扑结构

一个数据库的两个或多个以上的副本组成一个副本集,每个副本都是副本集的一部分。在副本集中含有数据库的若干副本和设计原版(DesignMaster),其中设计原版是惟一能够对数据库进行设计修改的副本。

副本集拓扑结构是指系统在向副本节点复制数据时的顺序。常见的副本集拓扑结构有星形结构、环形结构、线形结构和完全连接结构等。11/23/202220数据库应用——电子商务副本集拓扑结构一个数据库的两个或多副本集拓扑结构星形拓扑结构星形拓扑结构是通过一个连接节点将数据复制到每个相连的副本节点中。星形结构的优点在于:降低了节点出错时数据复制失败的几率;对于局域网范围来说,数据复制的速度较快;该结构比较有效、可靠。其缺点是当连接节点出错时,可能会造成数据复制失败。线形拓扑结构线形拓扑结构就是各个节点顺序连接。该结构比较简单,其不足是:如果某个中间节点出错,则数据就不能完全复制到所有的节点中。该拓扑结构应用相对较少。11/23/202221数据库应用——电子商务副本集拓扑结构星形拓扑结构11/22/202221数据库应用副本集拓扑结构环形拓扑结构环形拓扑结构是在线形结构的基础上增加了节点连接途径,节点之间首尾相连,形成环路。如果环路中有一个节点出错,数据复制还可以通过反向路径到达所有节点。环形结构的不足在于:如果环路中有两个或两个以上的节点有问题,那么数据就不能复制到所有节点。完全拓扑结构完全拓扑结构是在环形结构的基础上,对每个节点两两相连,通过增加节点连接途径来保证数据复制的可靠性。完全拓扑结构还具有节点间数据复制时间短的特点,因为每个节点两两相连,数据可以直接复制到每个节点。但是完全连接拓扑结构节点间的连接复杂,当节点比较多的时候,连接的开销比较大。11/23/202222数据库应用——电子商务副本集拓扑结构环形拓扑结构11/22/202222数据库应用与副本操作有关的对象、属性和方法

为了实现网络数据库副本操作,Microsoft公司的Jet数据库引擎和DAO提供了多个对象、属性和方法。这些对象、属性和方法一般结合微软的VB等开发工具应用于类似Access数据库中,而在类似Oracle或SQLServer中的数据复制功能一般由DBMS提供并完成。

11/23/202223数据库应用——电子商务与副本操作有关的对象、属性和方法为了实与副本操作有关的对象、属性和方法(一)Document对象和Documents集合

Document对象含有关于对象的一个实例的信息,对象可以是一个数据库、表、查询或关系(仅适用于MicrosoftJet数据库)。。每个Container对象有一个包含Document对象的Documents集合,这些Document对象描述由Container指定类型的内置对象的实例。11/23/202224数据库应用——电子商务与副本操作有关的对象、属性和方法(一)Document对与副本操作有关的对象、属性和方法(二)Container对象和Containers集合Container对象把相似类型的Document对象放在一个组中。每个Database对象含有由内部Container对象组成的Containers集合。应用程序可以定义自己的文档类型和相应的容器(仅对MicrosoftJet数据库),但这些对象不一定总是通过DAO支持。某些Container对象由MicrosoftJet数据库引擎定义,也可以由其他应用程序定义。11/23/202225数据库应用——电子商务与副本操作有关的对象、属性和方法(二)Container对象与副本操作有关的对象、属性和方法(三)Property对象与Properties集合ProperlyProperty对象用来描述一个DAO对象的内部属性或用户定义的属性。它与DAO对象及PropertiusProperties集合的关系是:DAO对象包含Properties集合,Properties集合包含ProperlyProperty对象。在DAO对象中含有一些数据操作的属性,如Database,QueryDef,TableDef等。Property对象中一般具有以下一些属性:1.Name属性2.Typt属性3.Value属性4.Inherited属性11/23/202226数据库应用——电子商务与副本操作有关的对象、属性和方法(三)Property对与副本操作有关的对象、属性和方法(四)KeepLocal属性和Replicable属性1.KeepLocal属性KeepLocal属性用来保持对象的本地化,即在复制数据库时,使指定的对象不被复制。设置KeepLocal属性后,该属性将出现在Document对象的Properties集合中。2.Replicable属性Replicable属性用来设置或返回一个值,这个值决定数据库或数据库中的对象是否可以复制(仅用于MicrosoftJet工作区)。在设置一个Database,TableDef或QueryDef对象的Replicable属性前,必须先用CreateProperty方法建立它,并把它加入对象的Properties集合中。11/23/202227数据库应用——电子商务与副本操作有关的对象、属性和方法(四)KeepLocal与副本操作有关的对象、属性和方法(五)MaKeReplica方法MakeReplica方法用于从一个数据库副本中复制一个新的副本(仅用于MicrosoftJet工作区)。该方法用于Database对象,其格式如下:.对象.MakeReplica(replica,description,options)11/23/202228数据库应用——电子商务与副本操作有关的对象、属性和方法(五)MaKeRepli用DAO复制数据库的一般步骤

用DAO复制数据库的一般步骤如下:1)识别数据库中不需要复制的对象,并将它们的KeepLocal属性设置为“T”;2)将数据库的Replicable属性设置为“T”,使它变成设计原版;3)用MakeReplica方法从设计原版中生成附加的副本。在设置Replicable属性之前,应先确定在转换数据库以前数据库是否已经被复制。11/23/202229数据库应用——电子商务用DAO复制数据库的一般步骤用DAO复制数据库的一般步骤如用DAO复制数据库的一般步骤(一)保持对象本地化当把正常的数据库转换为设计原版时,需要复制数据库中的所有对象。如果不想把数据库中的所有对象都放在副本集中,则可在不想复制的对象的属性集合中添加井并设置KeepLoealKeepLocal属性。对于TableDef和中QueryDef对象,可以为它们建立KeepLocal属性,并把该属性添加到对象的属性集合中。如果已经在数据库的两个表之间建立起联系,则必须将两个表的KeepLocal属性设置为相同的值,即两个表都必须是本地的或者是可复制的。11/23/202230数据库应用——电子商务用DAO复制数据库的一般步骤(一)保持对象本地化11/2用DAO复制数据库的一般步骤(二)对象可以复制

如果在副本中建立了一个新对象,并且想把它从本地的改为可复制的,使得其他用户都可以使用它,则需要在设计原版中建立该对象,并且将其Replicable属性设置为“T”。在这种情况下,务必删除所有副本中的这个本地对象,否则会产生错误。对于TableDef和QueryDef对象,可以直接建立Replicable属性,并添加到对象的属性集合中,就像处理KeepLoealKeepLocal属性那样。注意:如果把一个对象的Replicable属性从“T”改为“F”,该对象便从可复制状态变为本地的,在这种情况下,MicrosoftJet将只在设计原版中保留该对象,而从副本集的其他副本中删除该对象。11/23/202231数据库应用——电子商务用DAO复制数据库的一般步骤(二)对象可以复制11/22用DAO复制数据库的一般步骤(三)构造设计原版

设计原版也是一个数据库副本,但它是一个可以复制的副本。为了把一个数据库变为设计原版,需要为Database对象建立Replicable属性,并把该属性添加到Database对象的属性集合中,然后将其Replicable属性设置为“T”。11/23/202232数据库应用——电子商务用DAO复制数据库的一般步骤(三)构造设计原版11/22用DAO复制数据库的一般步骤(四)用副本生成副本当把数据库的RepllcableReplicable属性设置为“T”,从而将数据库转换成设计原版时,在副本集中只有一个副本(即设计原版),只能用它来生成第一个副本。可以用MakeReplica方法来生成第一个副本和后续的副本。下面是几个应该注意的方面:1.在原始数据库的备份被变成设计原版之前,不要用它来生成另外的副本,不然,生成的将不是另外的副本,而是新的设计原版和副本集。2.在用MakeReplica方法复制数据库时,正在复制的对象一定不能被锁定,否则方法的调用会失败。3.生成一个新副本后,将把原副本中的所有可复制对象和属性复制到新副本中。11/23/202233数据库应用——电子商务用DAO复制数据库的一般步骤(四)用副本生成副本11/2用DAO复制数据库的一般步骤(五)使用数据访问对象(DAO)创建部分副本要创建部分副本,可以按照下列步骤进行操作:1.使用Database对象上的MakeReplica方法,并将options参数指定为dbRep-MakePartial常量,创建部分副本;。2.使用ReplicaFilter和PartilReplica属性来设置所需的筛选和关系,以决定从完全副本中复制哪些数据;。3.使用PopulatePanial方法从完全副本中传送与新的副本筛选准则相匹配的所有记录。11/23/202234数据库应用——电子商务用DAO复制数据库的一般步骤(五)使用数据访问对象(DA网络数据库复制的原则

网络数据库复制的功能主要是为数据恢复和提高数据共享性服务的,但是由于网络数据库实现的机制不同,在应用时就有所侧重。如类似Oracle,sybase,DB2,SQLServer等数据库系统就能很好的完成网络数据库的复制功能,这些数据库的复制功能是由DBMS控制的。11/23/202235数据库应用——电子商务网络数据库复制的原则网络数据库复制网络数据库复制的原则在采用DAO进行数据复制的网络数据库系统中,在实施数据复制时应遵循以下原则:1.对于系统操作的实时性要求较高的系统对于系统操作的实时性要求较高的系统(商品拍卖或股票系统等),不宜使用数据复制。因为数据复制占用了大量的系统资源,这样会降低整个系统的性能。2.对数据完整性和一致性要求非常高的应用系统对数据完整性和一致性要求非常高的应用系统(如银行系统、航空订票系统等),也不宜使用数据复制。11/23/202236数据库应用——电子商务网络数据库复制的原则在采用DAO进SQLServer的复制与恢复复制是使数据库更具容错性的方法,主要用于分布式结构的数据库系统中。它在多个场地保留数据库的多个备份,这些备份可以是整个数据库的副本,也可以是部分数据库的副本。另一方面,当数据库出现故障时,系统可以用副本对其进行联机恢复,而在恢复过程中,用户可以继续访问该数据库的副本,而不必中断应用。11/23/202237数据库应用——电子商务SQLServer的复制与恢复复制是使数据库更具容错性的数据复制

(一)数据复制的方式数据复制的过程类似于报纸杂志的出版过程,即把信息从信息源迅速传送到信息接受处。数据库的复制通常有三种方式:对等复制、主//从复制和级联复制。对等复制(Peer–to–peerPeer)是最理想的复制方式。在这种方式下,各个场地的数据库地位是平等的,可以互相复制数据。主//从复制(Master//Slave),即数据只能从主数据库复制到从数据库中。更新数据只能在主场地上进行,从场地供用户读数据。级联复制(Cascade)是指从主场地复制过来的数据又从该场地再次复制到其它场地,即A场地把数据复制到B场地,B场地又把这些数据或其中部分数据再复制到其它场地。11/23/202238数据库应用——电子商务数据复制(一)数据复制的方式11/22/202238数据库数据复制(二)复制类型SQLServer支持的复制类型主要有四种:完全复制备份差异复制备份事务日志复制备份文件和文件组复制备份

完全数据库复制不但拷贝数据,还拷贝备份集合中的事务日志。差异数据库复制仅拷贝自上次完整备份以后数据库的改动。11/23/202239数据库应用——电子商务数据复制(二)复制类型11/22/202239数据库应用——数据复制(三)复制设备复制设备是专门使用backup和restore命令创建的。当复制数据库或事务日志时,必须告诉在何处生成复制备份。生成复制备份的作用是将物理名和数据库复制的逻辑名关联起来。最常用的介质类型是磁带和磁盘。1.磁带设备磁带设备是指在可取出的磁带上复制备份数据库。2.磁盘设备磁盘设备就是目录的一个文件,通常存储在数据库服务器的文件系统中。3.命名管道设备SQLServer中的命名管道设备支持第三方复制备份和恢复工具。在Transact-SQL中一般不使用命名管道。11/23/202240数据库应用——电子商务数据复制(三)复制设备11/22/202240数据库应用——数据复制(四)SQLServer复制功能在SQLServer中的差异数据库复制备份和恢复,恢复的是差异数据库而不是事务日志,可避免服务器将时间花费在回滚事务以重建事务日志期间发生的所有活动。在SQLServer环境下复制数据库之前,先使用DBVV语句检查数据库的逻辑和物理一致性。不管数据库如何设置,建议复制一个数据库前先运行以下的DBCC语句:1)DBCCCHECKDB2)DBCCCHECKALLOC或NEWALLOC3)DBCCCHECKCATALOG这些语句用来对数据库进行一致性检查。11/23/202241数据库应用——电子商务数据复制(四)SQLServer复制功能11/22/202数据复制SQLServer创建数据库复制备份的方法有如下三种:1.使用Transact-SQL语句2.使用SQLServer企业管理器复制数据库3.使用SQL-DMO复制备份数据库

对于SQLServer,数据库复制划分了最大的复制备份单元。虽然在同一个媒体可以维护多个不同数据库的复制镜像,但一个数据库复制备份不能跨越不同的数据库。通常,一个数据库复制对象执行的操作是对某一个数据库进行复制。SQLServer可以将数据库复制备份写到四种类型的媒体上:磁盘、磁带、命名管道、私有媒体复制设备。11/23/202242数据库应用——电子商务数据复制SQLServer创建数据库复制备份的方法有如下三数据复制(五)复制事务日志事务日志是对从上次进行事务日志复制以后,对数据库所有操作的记录。通过事务日志复制,可以在数据库出现故障时,将数据库恢复到一个特定时间点上。当恢复一个事务日志时,SQLServer回滚事务日志记录对数据库所作的所有操作。当达到事务日志的结尾时,数据库就恢复到所记录的状态。11/23/202243数据库应用——电子商务数据复制(五)复制事务日志11/22/202243数据库应用数据恢复

(一)事务的类型在SQL

Server系统中,可以把事务分成两种类型:系统提供的事务和用户定义的事务。系统提供的事务是指在执行某些TransactRANSACT-SQL语句时,一条语句就是一个事务。另外一种事务是用户明确定义的事务,用户可以使用BEGINTRANSACTION语句来明确定义事务的开始,用COMMIT或ROLLBACK来明确定义事务的结束。11/23/202244数据库应用——电子商务数据恢复(一)事务的类型11/22/202244数据库数据恢复(二)恢复技术SQLServer提供了登记日志文件和数据备份两种数据恢复技术。1.基于日志文件的恢复技术在SQLServer系统中,事务可以确保数据的一致性和可恢复性。2.基于数据库后备副本的恢复技术在SQLServer中,我们不能保证所有的数据都平安无事。如果一旦数据库由于某种原因引起了数据丢失或毁坏时,我们需要通过恢复技术使数据库的损失程度最小,当然,要实现这个目标的前提是必须经常制作数据库的后备副本。11/23/202245数据库应用——电子商务数据恢复(二)恢复技术11/22/202245数据库应用数据恢复(三)死锁与死锁的解除

在事务和锁的使用过程中,死锁是一个不可避免的现象。在以下两种情况下都可能发生死锁现象。第一种情况是,当两个事务分别锁定了两个单独的粒度对象,这时每个事务又要求在对方已经锁定的对象上获得一个锁,因此每一个事务都必须等待另外一个事务释放占有的锁,这时,就发生了死锁。这种死锁是最典型的死锁形式。死锁的第二种情况是,在一个数据库中,有若干个长时间运行的事务执行并行执行的操作,当查询分析器处理一种非常复杂的连接查询时,由于不能控制处理的顺序,有可能发生死锁现象。当发生死锁现象时,SQLServer系统可以自动检测到,然后通过自动取消其中一个事务来结束死锁。11/23/202246数据库应用——电子商务数据恢复(三)死锁与死锁的解除11/22/202246数本章小结网络数据库的恢复策略可以从两方面来考虑:一是事务故障、系统故障和介质故障的恢复;另一个是特有的网络通信故障恢复。不管是哪种故障的恢复,都必须借助于日志文件,因此日志文件必须存放于理论上永远不会损坏的存储器上。处理故障时,一般由数据库管理系统根据不同的故障情况采用重做(REDO)或撤销(UNDO)两种方式来完成。网络数据库复制可以分为完全复制和部分复制。其中,完全复制是系统中的每个节点都存有关系的一个完整备份;部分复制是副本中含有部分数据,都部分副本中的数据是从完全副本中通过数据的筛选准则过滤后形成的少量数据。对于日常事务性的数据可以进行部分复制。11/23/202247数据库应用——电子商务本章小结网络数据库的恢复策略可以从两方面来考虑:一是事在线教务辅导网:教材其余课件及动画素材请查阅在线教务辅导网QQ:349134187或者直接输入下面地址:11/23/202248数据库应用——电子商务在线教务辅导网:http://www.shangfuwang第九章数据库的恢复与复制第一节数据库的恢复第二节数据库的复制第三节SQLServer的恢复与复制数据库应用——电子商务第九章数据库的恢复与复制第一节数据库的恢复数据库应前言

本章主要介绍数据库的网略络恢复和复制机制相关的概念、策略和方法。第一节阐述了数据库在网络中故障出现的出现的故障类型,给出特有的网络通信故障模型,重点介绍事务故障和通信故障的处理和常用的故障恢复策略;第二节讨论网络数据库的复制问题,内容包括在网络数据库中引入多副本的目的,副本集拓扑结构,实现副本操作相关的对象和方法,以及如何利用DAO实现网络敷数据库复制的一般工作步骤。11/23/202250数据库应用——电子商务前言本章主要介绍数据库的网数据库的恢复

在数据库系统中,实现数据一致性的前提是数据库中所有数据操作都是以事务为基础,因此网络下数据库的恢复就是对出错事务的恢复。事务是数据库的基本工作单位,是一组数据库的操作语句。它一般由begintransaction开始,以rollback(回退)或commit(提交)结束。

11/23/202251数据库应用——电子商务数据库的恢复在数据库系统中,实现数数据库的恢复事务具有以下的ACID属性。原子性(Atomic):保证一个事务全部完成或者全部不做。一致性(Consistency):数据库状态保持一致。独立性(Isolation):事务各自独立,相互之间不影响,一个未完成的事务不能在提交前将自己的中间结果提供给其他事务使用。持久性(Durability):事务中所做的修改(操作结果)在提交后长期有效,直接存入物理介质。即使是在系统中断和崩溃的情况下也不会丢失。11/23/202252数据库应用——电子商务数据库的恢复事务具有以下的ACID属性。11/22/2022网络数据库系统的通信故障模型计算机网络通讯机制是根据OSI参考模型建立的。计算机系统之间通过网络介质进行信息通信,信息传输分为七个不同的层次,即应用层、表示层、会话层、传输层、网络层、链路层和物理层。其中物理介质的链路连通包括:物理线路的介质类型,物理线路的质量(如线路的屏蔽、损耗等)等。11/23/202253数据库应用——电子商务网络数据库系统的通信故障模型11/22/20226数据库应用网络数据库系统的通信故障模型(一)网络通讯信息不畅通一般有以下情况。节点的故障如计算机的网卡出现问题或者节点操作系统中网络配置不正确。通信链路故障因网络节点间配置或者网络协议使用不当以及物理线路质量或其他情况造成通讯瘫痪。异构网络的不兼容,导致部分节点通讯失效这是因为多种网络软件平台的差异性造成的。以上情况都会导致通讯中断或者正在传输的消息丢失,最终造成整个网络环境中各节点的信息不一致。11/23/202254数据库应用——电子商务网络数据库系统的通信故障模型(一)网络通讯信息不畅通11网络数据库系统的通信故障模型(二)网络数据库中的数据不一致的故障1.事务故障2.系统故障3.介质故障11/23/202255数据库应用——电子商务网络数据库系统的通信故障模型(二)网络数据库中的数据不一故障的处理

当网络数据库系统遇到各种故障时,管理系统会根据故障的类型采取不同的对策,基本的手段是利用网络数据库中的冗余数据进行处理。冗余数据一般是通过数据转储或备份形成的。(一)数据转储数据转储是指系统管理员将整个数据库中的资源复制到系统外部的物理介质上保存起来的过程。(二)日志文件日志文件是用来记录事务对数据库操作的文件,它类似于流水账一样记录着数据库中每一次操作的过程。日志文件中含有以下的内容:。1.前像(beforeimage)2.后像(afterinage)3.事务状态11/23/202256数据库应用——电子商务故障的处理当网络数据库系统遇到故障的处理(三)故障的处理由于系统中包含了数据转储和日志文件,因此对于上述的故障,可以根据不同的类型采用不同的处理方法。一般情况是由数据库管理系统根据不同的故障情况采用重做(REDO)或撤销(UNDO)两种方式来完成故障的处理。1.事务故障的处理在事务故障中,事务中的部分操作结果已被写入介质中,故障恢复时应撤销这部分操作结果。撤销可以根据日志文件中的前像内容对数据库做逆操作。2.系统故障的处理在系统故障中有两种情况:一是事务没有全部完成就被中断,那么在故障处理时要撤销这部分没有提交的操作;二是已完成并提交的事务由于其提交的结果存放在缓冲区而被丢失,那么在故障处理时要对这部分内容重做。3.介质故障的处理介质故障是数据库的存储环境被破坏造成数据丢失,这时要利用数据转储中的数据恢复数据库。11/23/202257数据库应用——电子商务故障的处理(三)故障的处理11/22/202210数据库恢复策略

数据库系统中最重要的资源是数据,同时对数据模型要求具有实体完整性、参照完整性等,所有这些都是为了保证数据库中数据的一致性。在数据库运行过程中发生的事务,系统和介质故障,都会导致数据的不一致,从而破坏了数据一致性的基本原则。因此,针对故障造成的数据不一致,必须进行数据的恢复,即利用冗余数据进行恢复。数据恢复有三种策略,每种策略对数据的复原程度有所不同。11/23/202258数据库应用——电子商务恢复策略数据库系统中最重要的资源是恢复策略(一)副本恢复策略该策略是对已经提交并保存在存储介质上的数据的恢复方法,它通过在规定的时间内将数据库系统中完成的数据全部备份到其他存储介质上,在恢复时将数据恢复到备份时的状态。可以采用增量式的备份(即只针对变化过的数据进行备份),也可以采用完全备份。对于系统故障,不论采用完全备份或增量备份都不能做到数据完全恢复,只能恢复到备份时的状态。副本恢复策略的优点是系统实现比较简单,只要制定备份规则,定时完成备份即可。但是该策略的最大不足就是不能恢复已经提交但是还没有存入物理介质的那些事务所做的数据修改。11/23/202259数据库应用——电子商务恢复策略(一)副本恢复策略11/22/202212数据库恢复策略(二)副本和日志文件共同恢复策略

这是为了克服副本恢复策略不能恢复已提交但是没有进入物理介质的那些事务的问题而采取的一种策略。日志文件可以为这部分已提交但没有保存的事务提供恢复服务,故障恢复时只需利用日志文件中的后像数据重新操作一遍即可。11/23/202260数据库应用——电子商务恢复策略(二)副本和日志文件共同恢复策略11/22/20恢复策略(三)多副本恢复策略多副本就是在网络数据库环境中有多个数据库副本,这些副本存放在不同的计算机节点上并且保持同步。多副本恢复策略一般应用在分布式数据库环境中。因为,存放在不同计算机节点上的副本不会因为某一事件同时发生相同的故障,这样当系统中某个副本出现问题时可以利用其他副本进行联机恢复。多副本在实现时可以采用磁盘镜象、数据快照等手段。11/23/202261数据库应用——电子商务恢复策略(三)多副本恢复策略11/22/202214数据数据库的复制

在网络环境下,一个数据库可能由多个用户使用,保持同步的数据库副本可以改善用户共享数据库的途径。数据库网络复制就是系统整体维护几个完全相同的副本,各个副本分别存储在系统中不同的计算机节点上。利用数据库副本可以重新产生一个数据库,使两个或多个用户同时使用自己的数据库副本。复制可以分为完全复制和部分复制。

11/23/202262数据库应用——电子商务数据库的复制在网络环境下,一个数数据库的复制数据复制具有下述一些优缺点。可用性增强。当包含某个关系的节点之一发生故障时,该关系可以在另外的节点上找到。并行度增大。几个节点可以并行地处理涉及关系的查询,这就可以减少数据在节点间的移动。更新开销增大。对关系的更新必须传播到包含该关系副本的所有节点。11/23/202263数据库应用——电子商务数据库的复制数据复制具有下述一些优缺点。11/22/2022数据库副本的用途

数据库副本是数据库的一个备份,保存多个副本就意味着在数据库中保存大量的冗余数据。每个副本都包含系统中公共表、查询、窗体、宏、模块,以及自身所在计算机上使用的本地对象。为了保持数据的一致性,对某个副本中的公共表的任何数据修改都要同步地反映到其他副本中。在多用户应用环境中,数据库副本可以改善用户共享数据库的途径。11/23/202264数据库应用——电子商务数据库副本的用途数据库副本是数据库数据库副本的用途(一)数据库副本的使用1.数据的应用在一个局域网范围内共享数据,可以通过数据库副本将数据库中公共数据复制到远程节点中,使得远程数据节点的数据和操作统一,同时保证副本数据间同步或者在某个时段将远程节点修改的公共数据传输到中心节点。2.数据的备份若数据库副本包含多个数据库的数据,当原始数据库被破坏时,可以用副本数据库中的某个数据库来恢复数据。11/23/202265数据库应用——电子商务数据库副本的用途(一)数据库副本的使用11/22/202数据库副本的用途(二)数据库副本的不足尽管数据库副本可以起到数据备份和减少服务器数据库处理数据数量的作用,但是数据复制本身就构成了大量的冗余数据,过多的冗余数据会给数据库的数据一致性维护带来更多的困难。在下列情况下,副本仍难以达到系统的恢复要求:1.需要更新多个副本中的大量记录对于那些需要对不同副本中的现存记录进行频繁更新的应用程序,可能会产生更多的记录冲突。2.对数据一致性的要求非常严格对于诸如资金过户、航班机票的预订之类的事务处理应用程序,要求复制时候的信息不能有半点差错。11/23/202266数据库应用——电子商务数据库副本的用途(二)数据库副本的不足11/22/202副本集拓扑结构

一个数据库的两个或多个以上的副本组成一个副本集,每个副本都是副本集的一部分。在副本集中含有数据库的若干副本和设计原版(DesignMaster),其中设计原版是惟一能够对数据库进行设计修改的副本。

副本集拓扑结构是指系统在向副本节点复制数据时的顺序。常见的副本集拓扑结构有星形结构、环形结构、线形结构和完全连接结构等。11/23/202267数据库应用——电子商务副本集拓扑结构一个数据库的两个或多副本集拓扑结构星形拓扑结构星形拓扑结构是通过一个连接节点将数据复制到每个相连的副本节点中。星形结构的优点在于:降低了节点出错时数据复制失败的几率;对于局域网范围来说,数据复制的速度较快;该结构比较有效、可靠。其缺点是当连接节点出错时,可能会造成数据复制失败。线形拓扑结构线形拓扑结构就是各个节点顺序连接。该结构比较简单,其不足是:如果某个中间节点出错,则数据就不能完全复制到所有的节点中。该拓扑结构应用相对较少。11/23/202268数据库应用——电子商务副本集拓扑结构星形拓扑结构11/22/202221数据库应用副本集拓扑结构环形拓扑结构环形拓扑结构是在线形结构的基础上增加了节点连接途径,节点之间首尾相连,形成环路。如果环路中有一个节点出错,数据复制还可以通过反向路径到达所有节点。环形结构的不足在于:如果环路中有两个或两个以上的节点有问题,那么数据就不能复制到所有节点。完全拓扑结构完全拓扑结构是在环形结构的基础上,对每个节点两两相连,通过增加节点连接途径来保证数据复制的可靠性。完全拓扑结构还具有节点间数据复制时间短的特点,因为每个节点两两相连,数据可以直接复制到每个节点。但是完全连接拓扑结构节点间的连接复杂,当节点比较多的时候,连接的开销比较大。11/23/202269数据库应用——电子商务副本集拓扑结构环形拓扑结构11/22/202222数据库应用与副本操作有关的对象、属性和方法

为了实现网络数据库副本操作,Microsoft公司的Jet数据库引擎和DAO提供了多个对象、属性和方法。这些对象、属性和方法一般结合微软的VB等开发工具应用于类似Access数据库中,而在类似Oracle或SQLServer中的数据复制功能一般由DBMS提供并完成。

11/23/202270数据库应用——电子商务与副本操作有关的对象、属性和方法为了实与副本操作有关的对象、属性和方法(一)Document对象和Documents集合

Document对象含有关于对象的一个实例的信息,对象可以是一个数据库、表、查询或关系(仅适用于MicrosoftJet数据库)。。每个Container对象有一个包含Document对象的Documents集合,这些Document对象描述由Container指定类型的内置对象的实例。11/23/202271数据库应用——电子商务与副本操作有关的对象、属性和方法(一)Document对与副本操作有关的对象、属性和方法(二)Container对象和Containers集合Container对象把相似类型的Document对象放在一个组中。每个Database对象含有由内部Container对象组成的Containers集合。应用程序可以定义自己的文档类型和相应的容器(仅对MicrosoftJet数据库),但这些对象不一定总是通过DAO支持。某些Container对象由MicrosoftJet数据库引擎定义,也可以由其他应用程序定义。11/23/202272数据库应用——电子商务与副本操作有关的对象、属性和方法(二)Container对象与副本操作有关的对象、属性和方法(三)Property对象与Properties集合ProperlyProperty对象用来描述一个DAO对象的内部属性或用户定义的属性。它与DAO对象及PropertiusProperties集合的关系是:DAO对象包含Properties集合,Properties集合包含ProperlyProperty对象。在DAO对象中含有一些数据操作的属性,如Database,QueryDef,TableDef等。Property对象中一般具有以下一些属性:1.Name属性2.Typt属性3.Value属性4.Inherited属性11/23/202273数据库应用——电子商务与副本操作有关的对象、属性和方法(三)Property对与副本操作有关的对象、属性和方法(四)KeepLocal属性和Replicable属性1.KeepLocal属性KeepLocal属性用来保持对象的本地化,即在复制数据库时,使指定的对象不被复制。设置KeepLocal属性后,该属性将出现在Document对象的Properties集合中。2.Replicable属性Replicable属性用来设置或返回一个值,这个值决定数据库或数据库中的对象是否可以复制(仅用于MicrosoftJet工作区)。在设置一个Database,TableDef或QueryDef对象的Replicable属性前,必须先用CreateProperty方法建立它,并把它加入对象的Properties集合中。11/23/202274数据库应用——电子商务与副本操作有关的对象、属性和方法(四)KeepLocal与副本操作有关的对象、属性和方法(五)MaKeReplica方法MakeReplica方法用于从一个数据库副本中复制一个新的副本(仅用于MicrosoftJet工作区)。该方法用于Database对象,其格式如下:.对象.MakeReplica(replica,description,options)11/23/202275数据库应用——电子商务与副本操作有关的对象、属性和方法(五)MaKeRepli用DAO复制数据库的一般步骤

用DAO复制数据库的一般步骤如下:1)识别数据库中不需要复制的对象,并将它们的KeepLocal属性设置为“T”;2)将数据库的Replicable属性设置为“T”,使它变成设计原版;3)用MakeReplica方法从设计原版中生成附加的副本。在设置Replicable属性之前,应先确定在转换数据库以前数据库是否已经被复制。11/23/202276数据库应用——电子商务用DAO复制数据库的一般步骤用DAO复制数据库的一般步骤如用DAO复制数据库的一般步骤(一)保持对象本地化当把正常的数据库转换为设计原版时,需要复制数据库中的所有对象。如果不想把数据库中的所有对象都放在副本集中,则可在不想复制的对象的属性集合中添加井并设置KeepLoealKeepLocal属性。对于TableDef和中QueryDef对象,可以为它们建立KeepLocal属性,并把该属性添加到对象的属性集合中。如果已经在数据库的两个表之间建立起联系,则必须将两个表的KeepLocal属性设置为相同的值,即两个表都必须是本地的或者是可复制的。11/23/202277数据库应用——电子商务用DAO复制数据库的一般步骤(一)保持对象本地化11/2用DAO复制数据库的一般步骤(二)对象可以复制

如果在副本中建立了一个新对象,并且想把它从本地的改为可复制的,使得其他用户都可以使用它,则需要在设计原版中建立该对象,并且将其Replicable属性设置为“T”。在这种情况下,务必删除所有副本中的这个本地对象,否则会产生错误。对于TableDef和QueryDef对象,可以直接建立Replicable属性,并添加到对象的属性集合中,就像处理KeepLoealKeepLocal属性那样。注意:如果把一个对象的Replicable属性从“T”改为“F”,该对象便从可复制状态变为本地的,在这种情况下,MicrosoftJet将只在设计原版中保留该对象,而从副本集的其他副本中删除该对象。11/23/202278数据库应用——电子商务用DAO复制数据库的一般步骤(二)对象可以复制11/22用DAO复制数据库的一般步骤(三)构造设计原版

设计原版也是一个数据库副本,但它是一个可以复制的副本。为了把一个数据库变为设计原版,需要为Database对象建立Replicable属性,并把该属性添加到Database对象的属性集合中,然后将其Replicable属性设置为“T”。11/23/202279数据库应用——电子商务用DAO复制数据库的一般步骤(三)构造设计原版11/22用DAO复制数据库的一般步骤(四)用副本生成副本当把数据库的RepllcableReplicable属性设置为“T”,从而将数据库转换成设计原版时,在副本集中只有一个副本(即设计原版),只能用它来生成第一个副本。可以用MakeReplica方法来生成第一个副本和后续的副本。下面是几个应该注意的方面:1.在原始数据库的备份被变成设计原版之前,不要用它来生成另外的副本,不然,生成的将不是另外的副本,而是新的设计原版和副本集。2.在用MakeReplica方法复制数据库时,正在复制的对象一定不能被锁定,否则方法的调用会失败。3.生成一个新副本后,将把原副本中的所有可复制对象和属性复制到新副本中。11/23/202280数据库应用——电子商务用DAO复制数据库的一般步骤(四)用副本生成副本11/2用DAO复制数据库的一般步骤(五)使用数据访问对象(DAO)创建部分副本要创建部分副本,可以按照下列步骤进行操作:1.使用Database对象上的MakeReplica方法,并将options参数指定为dbRep-MakePartial常量,创建部分副本;。2.使用ReplicaFilter和PartilReplica属性来设置所需的筛选和关系,以决定从完全副本中复制哪些数据;。3.使用PopulatePanial方法从完全副本中传送与新的副本筛选准则相匹配的所有记录。11/23/202281数据库应用——电子商务用DAO复制数据库的一般步骤(五)使用数据访问对象(DA网络数据库复制的原则

网络数据库复制的功能主要是为数据恢复和提高数据共享性服务的,但是由于网络数据库实现的机制不同,在应用时就有所侧重。如类似Oracle,sybase,DB2,SQLServer等数据库系统就能很好的完成网络数据库的复制功能,这些数据库的复制功能是由DBMS控制的。11/23/202282数据库应用——电子商务网络数据库复制的原则网络数据库复制网络数据库复制的原则在采用DAO进行数据复制的网络数据库系统中,在实施数据复制时应遵循以下原则:1.对于系统操作的实时性要求较高的系统对于系统操作的实时性要求较高的系统(商品拍卖或股票系统等),不宜使用数据复制。因为数据复制占用了大量的系统资源,这样会降低整个系统的性能。2.对数据完整性和一致性要求非常高的应用系统对数据完整性和一致性要求非常高的应用系统(如银行系统、航空订票系统等),也不宜使用数据复制。11/23/202283数据库应用——电子商务网络数据库复制的原则在采用DAO进SQLServer的复制与恢复复制是使数据库更具容错性的方法,主要用于分布式结构的数据库系统中。它在多个场地保留数据库的多个备份,这些备份可以是整个数据库的副本,也可以是部分数据库的副本。另一方面,当数据库出现故障时,系统可以用副本对其进行联机恢复,而在恢复过程中,用户可以继续访问该数据库的副本,而不必中断应用。11/23/202284数据库应用——电子商务SQLServer的复制与恢复复制是使数据库更具容错性的数据复制

(一)数据复制的方式数据复制的过程类似于报纸杂志的出版过程,即把信息从信息源迅速传送到信息接受处。数据库的复制通常有三种方式:对等复制、主//从复制和级联复制。对等复制(Peer–to–peerPeer)是最理想的复制方式。在这种方式下,各个场地的数据库地位是平等的,可以互相复制数据。主//从复制(Master//Slave),即数据只能从主数据库复制到从数据库中。更新数据只能在主场地上进行,从场地供用户读数据。级联复制(Cascade)是指从主场地复制过来的数据又从该场地再次复制到其它场地,即A场地把数据复制到B场地,B场地又把这些数据或其中部分数据再复制到其它场地。11/23/202285数据库应用——电子商务数据复制(一)数据复制的方式11/22/202238数据库数据复制(二)复制类型SQLServer支持的复制类型主要有四种:完全复制备份差异复制备份事务日志复制备份文件和文件组复制备份

完全数据库复制不但拷贝数据,还拷贝备份集合中的事务日志。差异数据库

温馨提示

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

评论

0/150

提交评论