精华内容
下载资源
问答
  • 数据库恢复技术
    千次阅读
    2018-08-06 12:01:06

      事务是一系列的数据库操作,是数据库应用程序的基本逻辑单元。数据处理技术主要包括数据库恢复技术和并发控制技术。数据库恢复机制和并发控制机制是数据库管理系统的重要组成部分。

    事务的基本概念

    事务

      所谓事务时用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。
    事务和程序是两个概念,一般地讲,一个程序中包含多个事务。
    事务的开始和结束是由用户显示控制的。在SQL中,定义事务有3条语句:
    BEGIN TRANSACTION
    COMMIT
    ROLLBACK
      事务通常以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。COMMIT表示提交,即提交事务的所有操作,将事务中所有对数据库的更新写回磁盘上的物理数据库中去,事务正常结束。ROLLBACK表示回滚,即在事务运行过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的操作全部撤销,回滚到事务开始时的状态。

    事务的特性

      事务具有四个特性:原子性、一致性、持久性、隔离性
    原子性
      事务是数据库的逻辑工作单元,事务中包括的诸操作要么全执行,要么全不执行。
    一致性
      事务执行的结果必须是使数据库从一个一致性变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入数据库中,这时数据库就处于一种不正确的状态。
    隔离性
    一个事务的执行不能被其他事务干扰。即一个事务的内部操作以及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
    持续性
      持续性也称永久性,指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。
    事务ACID特性可能遭到破坏的因素有:
    1.多个事务并行运行时,不同事务的操作交叉执行;
    2.事务在运行过程中被强行停止;

    数据库恢复概述

      数据库管理系统必须具有把数据库从某一错误状态恢复到某一已知的正确状态的功能,这就是数据库的恢复。恢复子系统是数据库管理系统的一个重要组成部分,而且还相当庞大,常常占整个系统代码的百分之十以上。数据库系统采用的恢复技术是否行之有效,不仅对系统的可靠程度起着决定性作用,而且对系统的运行效率也有很大影响,是衡量系统性能优劣的重要指标。

    故障的种类

    事务内部的故障

      事务内部的故障有的是可以通过事务本身发现的,有的是非预期的,不能由事务程序处理。
    事务故障意味着事务没有达到预期的终点,因此,数据库可能处于不正确状态。恢复程序要在不影响其他事务运行的情况下,强行回滚该事务,即撤销该事务已经做出的任何对数据库的修改,使得该事务好像根本没有启动一样。这类恢复操作称为事务撤销。

    系统故障

      系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。例如,特定类型的硬件错误,操作系统故障,DBMS代码错误,系统断电等。这类故障影响正在运行的所有事务,但不破坏数据库。
    恢复子系统必须在系统重新启动时让所有非正常终止的事务回滚,强行撤销所有未完成事务。有些已完成事务可能有一部分甚至全部留在缓冲区,尚未写回到磁盘上的物理数据库中,系统故障使得这些事务对数据库的修改部分丢失或者全部丢失,这也会使数据库处于不一致状态,因此应将这些事务已提交的结果重新写入数据库。

    介质故障

      系统故障称为软故障,介质故障称为硬故障。硬故障指外存故障,如磁盘损坏、磁头碰撞、瞬时强磁场干扰等。这类故障将破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务。

    计算机病毒

      总结各类故障,对数据库的影响有两种可能性。一是数据库本身被破坏。二是数据库没有被破坏,但数据可能不正确,这时由于事务的运行被非正常终止造成的。

    恢复的实现技术

      恢复机制涉及两个关键问题:1.如何建立冗余数据;2.如何利用这些冗余数据实施数据库恢复。
    建立冗余数据最常用的技术是数据转储和登陆日志文件。通常在一个数据库系统中,这两种方法是一起使用的。

    数据转储

      数据转储是数据库恢复中采用的基本技术。所谓转储即DBA定期将整个数据库复制到磁带或另一个磁盘上保存起来的过程。这些备用的数据成为后备副本或后援副本。
    转储可以分为静态转储和动态转储。
      静态转储是在系统中无运行事务时进行的转储操作。即转储操作开始的时刻,数据库处于一致性状态,而转储期间不允许对数据库的任何存取、 修改活动。显然,静态转储得到的一定是一个数据一致性的副本。
      动态转储是指转储期间允许对数据库进行存取或修改。但是,转储结束时后援副本上的数据并不能保证正确有效。为此,必须把转储期间各事务对数据库的修改活动登记下来,建立日志文件,这样,后援副本加上日志文件就能把数据库恢复到某一时刻的正确状态。
      转储可以分为海量转储和增量转储两种方式。海量转储是指每次转储全部数据库。增量转储则指每次只转储上一次转储后更新过的数据。从恢复角度看,使用海量转储得到的后备副本进行恢复一般来说更方便一些。
    数据转储方法可以分为四类:动态增量转储、动态海量转储、静态增量转储、静态海量转储。

    登记日志文件

    日志文件的格式和内容

      日志文件是用来记录事务对数据库的更新操作的文件。日志文件主要有两种格式:以记录为单位的日志文件和以数据块为单位的日志文件。
    以记录为单位的日志文件,需要登记的内容包括:
    1.各个事务的开始标记
    2.各个事务的结束标记
    3.各个事务的所有更新操作
    每个日志记录的内容包括:
    1.事务标识(标明是哪个事务)
    2.操作的类型(插入、删除或修改)
    3.操作对象(记录内部标识)
    4.更新前数据的旧值
    5.更新后数据的新值

    日志文件的作用

      日志文件在数据恢复中起着非常重要的作用。可以用来进行事务故障恢复和系统故障恢复,并协助后备副本进行介质故障恢复。具体作用是:
    1.事务故障恢复和系统故障恢复必须用日志文件
    2.在动态转储方式必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数据库。
    3.在静态转储方式中,也可以建立日志文件。

    登记日志文件

    为保证数据库是可恢复的,登记日志文件时必须遵循两条原则:
    1.登记的次序严格按并发事务执行的时间次序
    2.必须先些日志文件,后写数据库。

    恢复策略

    事务故障的恢复

      事务故障的恢复是由系统自动完成的,对用户是透明的。系统的恢复步骤是:
    1.反向扫描日志文件(即从最后向前扫描日志文件),查找该事务的更新操作。
    2.对该事务的更新操作执行逆操作。即将日志记录中“更新前的值”写入数据库。这样如果记录中是插入操作,则相当于做删除操作;若记录中是删除操作,则做插入操作;若是修改操作,则相当于修改求前值代替修改后值。
    3.继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。
    4.如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。

    系统故障的恢复

      事务故障的恢复是由系统自动完成的,对用户是透明的。系统的恢复步骤是:
    1.正向扫描日志文件,找出在故障发生前已经提交的事务,将其事务标识记入重做队列。同时找出故障发生时尚未完成的事务,将其事务表示计入撤销队列。
    2.对撤销(UNDO)队列中的各个事务进行撤销处理。
    进行UNDO处理的方法是,反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库。
    3.对重做队列中的各个事务进行重做REDO处理
    进行REDO处理的方法是:正向扫描日志文件,对每个REDO事务重新执行日志文件登记的操作。即将日志记录中“更新后的值”写入数据库。

    介质故障的恢复

      恢复故障的方法是重装数据库,然后重做已完成的事务。
    1.装入最新的数据库后备副本,是数据库恢复到最近一次转储时的一致性状态。
    2.装入相应的日志文件副本,重做已完成的事务。即首先扫描日志文件,找出故障发生时已提交的事务的标识,将其计入重做队列。然后正向扫描日志文件,对重做队列中的所有事务进行重做处理。即将日志记录中“更新后的值”写入数据库。
      介质故障的恢复需要DBA介入。但DBA只需要重装最近转储的数据库副本和有关的各日志文件副本,然后秩序系统提供的恢复命令即可,具体的恢复操作仍有DBMS完成。

    具有检查点的恢复技术

    日志技术进行数据库恢复有两个问题:
    1.搜索整个日志将耗费大量的时间
    2.很多需要REDO处理的事务实际上已经将它们的更新操作结果写到数据库中了,然而恢复子系统又重新执行了这些操作,浪费了大量时间。
      为了解决这些问题,又发展了具有检查的的恢复技术。这种技术在日志文件中增加一类新的记录——检查点记录,增加一个重新开始文件,并让恢复子系统在登陆日志文件期间动态地维护日志。
    检查点记录的内容包括:
    1.建立检查点时刻所有正在执行的事务清单
    2.这些事务最近一个日志记录的地址。
      动态维护日志文件的方法是,周期性地执行如下操作:建立检查点,保存数据库状态。具体步骤是:
    1.将当期日志缓冲区中的所有日志记录写入磁盘的日志文件上
    2.在日志文件中写入一个检查点记录
    3.将当期数据缓冲区的所有数据记录写入磁盘的数据库中
    4.把检查点记录在日志文件中的地址写入一个重新开始文件。
      使用检查点方法可以改善恢复效率。当事务T在一个检查点之前提交,T对数据库的所有修改都一定写入数据库,写入时间是在这个检查点建立之前或者建立之时。这样进行恢复处理时,没有必要对事务T进行REDO操作。
    系统使用检查点方法进行恢复的步骤是:
    1.从重新开始文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录。
    2.由该检查点记录得到检查点建立时刻所有正在执行的事务清单AVTIVE-LIST
    这里建立两个事务队列:
    UNDO-LIST:需要执行undo操作的事务集合
    REDO-LIST:需要执行redo操作的事务集合。
    3.从检查点开始正向扫描日志文件
    如有新开始的事务Ti,把Ti暂时放入UNDO-LIST队列
    如有提交的事务Tj,把Tj从UNDO-LIST队列移到REDO-LIST队列;直到日志文件结束。
    4.对UNDO-LIST中的每个事务执行UNDO操作,对REDO-LIST中的每个事务执行REDO操作。

    数据库镜像

      随着磁盘容量越来越大,价格越来越便宜,为避免磁盘介质出现故障影响数据库的可用性,许多数据库管理系统提供了数据经销功能用于数据库恢复。根据DBA的要求,自动把整个数据库或其中 的关键数据复制到另一个磁盘上。
      由于数据库镜像是通过复制数据实现的,频繁地复制数据自然会降低系统运行效率,因此在时间应用中用户往往只选择对关键数据和日志文件镜像,而不是对整个数据库进行镜像。

    更多相关内容
  • 希贝Access数据库恢复软件是一款支持误删除 误格式化 误覆盖 等各种原因丢失的 MDB accdb文件恢复 页面级恢复 ,超越常规恢复。希贝Access数据库恢复软件可以处理微软ACCESS数据库丢失,
  • 1、数据库恢复挂起截图   2、出现恢复挂起的原因  我这里的数据库出现这种原因,是因为我的数据库数据文件和日志文件是在存储上放着的,当时存储升级微码,所以暂时把该机器上挂载的存储盘脱机了(脱机升微码快)...
  • 数据库:数据库恢复技术

    千次阅读 2020-11-22 17:08:52
    1,数据库恢复概述 故障是不可避免的,它包括计算机硬件故障、软件的错误、操作员的失误和恶意的破坏。 故障的产生将会使运行事务非正常中断,影响数据库中数据的正确性;另外会破坏数据库,造成全部或部分丢失...

    1,数据库恢复概述

    故障是不可避免的,它包括计算机硬件故障、软件的错误、操作员的失误和恶意的破坏。

    故障的产生将会使运行事务非正常中断,影响数据库中数据的正确性;另外会破坏数据库,造成全部或部分丢失数据。

    因此DBMS必须具有将数据库从错误状态恢复到某一已知的正确(一致)状态的功能,这就是数据库恢复功能,这就是数据库的恢复管理系统对故障的对策。

    DBMS提供恢复子系统,它保证故障发生后,能把数据库中的数据从错误状态恢复到某种逻辑一致的状态,保证事务的ACID特性。

    恢复子系统是数据库管理系统的一个重要组成部分。

    恢复技术是衡量系统优劣的重要指标。

    2,故障种类

    2.1,事务内部的故障

    某个事务在运行过程中由于种种原因未运行至正常终点就终止了。

    造成事务非正常终止的原因:

    • 有的是可以通过事务程序本身发现的
    • 的故障是非预期的,不能由事务程序自己来处理

    事务故障意味着:事务没有达到预期的终点(COMMIT或者显式的ROLLBACK),数据库可能处于不一致状态。

    事务故障的恢复:事务撤消(UNDO强行回滚(ROLLBACK)该事务,撤销该事务已经作出的任何对数据库的修改,使得该事务象根本没有启动一样。

    2.2,系统故障

    指造成系统停止运转的任何事件,使得系统要重新启动。

    造成系统故障的常见原因:​​​​​​

    • 特定类型的硬件错误(如CPU故障)
    • 操作系统故障
    • 数据库管理系统代码错误
    • 系统断电​​​​​

    系统故障的特征:

    • 整个系统的正常运行突然被破坏
    • 所有正在运行的事务都非正常终止
    • 不破坏数据库
    • 内存中数据库缓冲区的信息全部丢失

    系统故障的恢复:

    发生系统故障时,一些尚未完成的事务的结果可能已送入物理数据库,造成数据库可能处于不正确状态。

    恢复策略:系统重新启动时,恢复程序让所有非正常终止的事务回滚,强行撤消(UNDO)所有未完成事务。

    发生系统故障时,有些已完成的事务可能有一部分甚至全部留在缓冲区,尚未写回到磁盘上的物理数据库中,系统故障使得这些事务对数据库的修改部分或全部丢失

    恢复策略:系统重新启动时,恢复程序需要重做(REDO)所有已提交的事务,将数据库真正恢复到一致状态

    2.3,介质故障

    介质故障指外存故障,使存储在外存中的数据部分丢失或全部丢失。

    造成介质故障的常见原因:

    • 磁盘损坏
    • 磁头碰撞
    • 瞬时强磁场干扰

    介质故障破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务

    介质故障比前两类故障的可能性小得多,但破坏性大得多

    3,恢复的实现技术

    3.1,恢复的基本原理

    恢复操作的基本原理:利用存储在系统其他地方的冗余数据(数据转储、登记日志文件)来重建数据库汇总已被破坏或不正确的数据。

    3.2,数据转储

    转储: 指数据库管理员定期地将整个数据库复制到磁带、磁盘或其他存储介质上保存起来的过程,这些备用的数据文本称为后备副本后援副本

    恢复数据库被破坏后可将后备副本重新装入,并重新运行转储以后的所有更新事务。重装后备副本只能将数据库恢复到转储时的状态。

    转储状态

    静态转储:转储期间  不允许  对数据库进行操作

    特点静态转储得到的一定是一个数据一致性的副本。因为转储必须等用户事务全部结束才能进行,而且新的事务必须等待转储完毕才能开始执行。但数据库的可用性被降低。

    动态转储:转储期间    允许    对数据库进行操作

    特点:转储和用户事务可并发执行,即不必等待正在运行的事务结束,也不影响新事务的运行。但转储的数据可能已过时利用动态转储得到的副本进行故障恢复时,需要把动态转储期间各事务对数据库的修改活动登记下来,建立日志文件,后备副本加上日志文件就能把数据库恢复到某一时刻的正确状态。

    转储方式

    海量转储:每次转储全部数据库。从恢复角度看,使用海量转储得到的后备副本进行恢复往往更方便。

    增量转储:只转储上次转储后更新过的数据。如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效。

    转储方式转储状态
    动态转储静态转储
    海量转储

    动态海量转储

    静态海量转储

    增量转储

    动态增量转储

    静态增量转储

    转储的策略

    • 应定期进行数据转储,制作后备副本
    • 但转储又是十分耗费时间和资源的,不能频繁进行
    • DBA应该根据数据库使用情况确定适当的转储周期和转储方法

    3.3,登记日志文件

    日志文件是用来记录事务对数据库的更新操作的文件。

    日志文件的作用:

    • 进行事务故障恢复
    • 进行系统故障恢复
    • 协助后备副本进行介质故障恢复

    日志文件的格式:以记录为单位的日志文件以数据块为单位的日志文件

    日志文件的内容:

    • 各个事务的开始标记(BEGIN TRANSACTION)
    • 各个事务的结束标记(COMMIT或ROLLBACK)
    • 各个事务的所有更新操作

    以记录为单位的日志文件,每条日志记录的内容:

    • 事务标识(标明是哪个事务)
    • 操作类型(插入、删除或修改)
    • 操作对象(记录IDBlock NO.
    • 更新前数据的旧值(对插入操作而言,此项为空值)
    • 更新后数据的新值(对删除操作而言, 此项为空值)

    以数据块为单位的日志文件,每条日志记录的内容:

    • 事务标识
    • 被更新的数据块

    事务故障恢复和系统故障恢复必须用日志文件

    在静态转储方式中,也可以建立日志文件。

    • 当数据库毁坏后可重新装入后援副本,把数据库恢复到转储结束时刻的正确状态
    • 利用日志文件,把已完成的事务进行重做处理
    • 对故障发生时尚未完成的事务进行撤销处理
    • 不必重新运行那些已完成的事务程序就可把数据库恢复到故障前某一时刻的正确状态

    在动态转储方式中,必须建立日志文件。

    • 后备副本和日志文件结合起来才能有效地恢复数据库

     ★登记日志文件的原则

    为保证数据库是可恢复的,登记日志文件时必须遵循两条原则

    • 登记的次序严格按并发事务执行的时间次序
    • 必须先写日志文件,后写数据库

    为什么要先写日志文件

    数据库和写日志文件是两个不同的操作,在这两个操作之间有可能发生故障,若先写数据库数据,再写日志的话,万一在写日志前发生故障,则这次的数据库修改未登记,从而不能恢复。若写日志后发生故障而未修改数据库,则事务一定未完成,在恢复时会执行撤消处理

    4,恢复策略

    4.1,事务恢复故障

    事务故障:事务在运行至正常终止点前被终止

    恢复方法:由恢复子系统利用日志文件撤消(UNDO)此事务已对数据库进行的修改

    事务故障的恢复由系统自动完成,对用户是透明的,不需要用户干预

    恢复步骤:反向扫描日志文件(即从最后向前扫描日志文件),查找未完成事务的更新操作;

    对该事务的更新操作执行逆操作;

    • 插入操作, “更新前的值”为空,则相当于做删除操作
    • 删除操作,“更新后的值”为空,则相当于做插入操作
    • 若是修改操作,则相当于用修改前值代替修改后值

    继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理;

    当遇到某事务的开始标记时,停止对该事务的处理。

    重复上述过程,直到所有未完成事务全部UNDO完毕。

    4.2,系统故障的恢复

    系统故障:系统故障造成数据库不一致的原因,一是未完成事务对数据库的更新已写入数据库,二是已提交事务的结果在故障发生前留在缓冲区没来得及写入数据库

    恢复方法:撤消( Undo )未完成事务,重做( Redo )已完成事务

    系统故障的恢复由系统在重新启动时自动完成,不需要用户干预

    恢复步骤:正向扫描日志文件,找出在故障发生前已提交的事务,将它们记入重做(REDO)队列,同时找出故障发生前尚未完成的事务,将它们记入撤消(UNDO)队列。

    反向扫描日志文件,对UNDO队列的每个事务执行逆操作,即将日志记录中“更新前的值”写入数据库

    正向扫描日志文件,对REDO队列中的每个事务重新执行日志文件登记的操作,即将日志记录中“更新后的值”写入数据库

    4.3,介质故障的恢复

    介质故障:介质故障发生后,磁盘上的数据文件和日志文件均被破坏。

    恢复方法重装数据库和日志文件,然后重做自转储以来已完成的事务

    恢复步骤:装入最近转储的数据库后援副本(离故障发生时刻最近的转储副本),使数据库恢复到最近一次转储时的一致性状态;若是静态转储的数据库副本,装入后数据库即处于一致性状态;若是动态转储,则还还须同时装入转储时刻的日志文件副本,利用恢复系统故障的方法(即REDO+UNDO),才能将数据库恢复到一致性状态。

    装入有关的日志文件副本(转储结束时刻的日志文件副本) ,重做已完成的事务。首先扫描日志文件,找出故障发生时已提交的事务的标识,将其记入重做队列;然后正向扫描日志文件,对重做队列中的所有事务进行重做处理。即将日志记录中“更新后的值”写入数据库

    系统故障与事务故障的恢复由系统自动完成,对用户透明,介质故障的恢复,需要DBA重装数据库和日志文件副本,然后执行相应的恢复命令。不论那种恢复,一般都要扫描整个日志文件。

    当数据库被破坏时, 要重装后备副本, 然后利用日志文件执行事务恢复,重建数据库

     数据库本身未被破坏,但有些内容可能不正确,则可只利用日志文件恢复,使数据库回到某一正确状态。

    4.4,具有检查点的恢复技术

    利用日志文件恢复数据库,一般要扫描整个日志文件,日志是个流水帐,往往很长,这样做具有两个问题:

    • 搜索整个日志文件将耗费大量的时间;
    • 许多已提交事务的更新结果实际上已写入数据库中,重新做这些事务只会浪费大量的时间

    因此,确定哪些事务需REDO,哪些不需REDO,就很有意义。解决的方法是在日志文件中设置检查点记录,增加重新开始文件,恢复子系统在登录日志文件期间动态地维护日志。

    检查点记录的内容:建立检查点时刻所有正在执行的事务清单,这些事务最近一个日志记录的地址。

    重新开始文件的内容:记录各个检查点记录在日志文件中的地址。

    动态维护日志文件的方法:周期性地执行建立检查点,保存数据库状态的操作

    步骤:

    • 将当前日志缓冲区中的所有日志记录写入磁盘的日志文件上
    • 日志文件中写入一个检查点记录
    • 当前数据缓冲区的所有数据记录写入磁盘的数据库中
    • 检查点记录在日志文件中的地址写入一个重新开始文件

    恢复子系统可以定期或不定期地建立检查点,保存数据库状态

    • 定期:按照预定的一个时间间隔,如每隔一小时建立一个检查点
    • 定期:按照某种规则,如日志文件已写满一半建立一个检查点

    使用检查点方法可以改善恢复效率:检查点之前已提交的事务对数据库的修改在检查点之前或检查点建立时已记入磁盘,只要数据库未被破坏,不需要对这些事务执行重做(REDO)。

    利用检查点的恢复步骤:

    重新开始文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录

    设置两个队列,将检查点中的所有事务放入UNDO-LIST,并令REDO-LIST暂为空集;

    • UNDO-LIST:需要UNDO操作的事务集合;
    • REDO-LIST:需要REDO操作的事务集合;

    ③从该检查点开始扫描日志文件到文件结束为止: 凡遇有begin_transaction的事务放入UNDO-LIST; 凡遇有commit的事务,  将它从UNDO-LIST移入REDO-LIST;

    UNDO-LIST中的事务执行UNDO操作; REDO-LIST中的事务执行REDO操作

    5,数据库镜像

    数据库系统发生故障时,可利用日志文件进行数据库恢复,但前提是日志文件必须完好。然而当发生介质故障时,往往不仅数据库被摧毁,日志文件也难逃恶运,此时恢复操作就无法实施

    解决方案:数据库镜像

    数据库镜像:整个数据库或其中的关键数据同时存放在两个分离的物理磁盘上。每当主数据库更新时,DBMS自动把更新后的数据复制到另一个磁盘上,从而自动保证主数据库与镜像数据库的一致性。

    出现介质故障时:可由镜像磁盘继续提供使用,同时数据库管理系统自动利用镜像磁盘数据进行数据库的恢复,不需要关闭系统和重装数据库副本。

    没有出现故障时:可用于并发操作,一个用户对数据加排他锁修改数据,其他用户可以读镜像数据库上的数据,而不必等待该用户释放锁。

    数据库镜像的缺点:频繁地复制数据自然会降低系统运行效率,需要使用更多的磁盘设备,因此在实际应用中用户往往只选择对关键数据和日志文件镜像,不是对整个数据库进行镜像。

    磁盘双工:用两个不同控制器控制的磁盘存放同一内容,对数据库的每个写操作,两个控制器同时实现。

    机热备份:用两台机器存放同一内容

    展开全文
  • 文章目录一:数据库恢复的实现技术(1)数据转储(备份)A:转储的分类①:按照系统是否运行事物时分类②:按转储的范围分类(2)登记日志文件A:日志文件的内容B:日志文件的作用C:登记日志文件二:恢复策略(1)...

    一:数据库恢复的实现技术

    恢复机制涉及的两个关键点就是

    • 如何建立冗余数据
    • 如何利用冗余数据实现数据库恢复

    其中建立冗余数据最常用的技术是

    • 数据转储
    • 登记日志文件

    (1)数据转储(备份)

    数据转储:指DBA定期手动或者DBMS定期自动将整个数据库复制到存储介质上保存起来的过程。这些备用的数据称之为后备副本。当数据库遭到破坏后可以将后备副本重新装入,但是重装后的副本只能将数据库恢复到转储时的状态,要想恢复到故障发生时的状态,必须重新运行自转储以后的所有更新事物。因此,转储常和日志配合使用

    在这里插入图片描述

    • 例如,系统在 T a T_{a} Ta时刻停止运行事务,进行数据库转储,在 T b T_{b} Tb时刻转储完毕,得到 T b T_{b} Tb 时刻的数据库一致性副本。 系统运行到 T f T_{f} Tf时刻发生故障。为恢复数据库,首先由数据库管理员重装数据库后备副本,将数据库恢复至 T b T_{b} Tb时刻的状态,然后重新运行自 T b T_{b} Tb~ T f T_{f} Tf时刻的所有更新事务,这样就把数据库恢复到故障发生前的一致状态

    A:转储的分类

    ①:按照系统是否运行事物时分类

    静态转储:是在系统中无运行事务时进行的转储操作。即转储操作开始的时刻数据库处于一致性状态,而转储期间不允许(或不存在)对数据库的任何存取、修改活动。显然,静态转储得到的一定是一个数据一致性的副本

    • 优点:实现简单
    • 缺点:转储时必须等待正在运行的用户事物结束才能进行。降低了数据库的可用性

    动态转储:是指转储期间允许对数据库进行存取或修改,也即转储和用户事物可以并发执行

    • 优点:不用等待正在运行的事物,增强了数据库的可用性
    • 缺点:转储结束时后援副本上的数据库并不能保证正确有效

    因此,对于动态转储,还需要建立日志文件(log file)。这样后备副本加上日志文件就能把数据库恢复到某一时刻的正确状态了

    ②:按转储的范围分类

    海量转储:每次转储全部数据库

    增量转储:每次只转储上一次转储后更新过的数据


    依据上述两种分类方式,进行组合,因此共有如下四种转储
    在这里插入图片描述

    (2)登记日志文件

    日志文件:是用来记录事物对数据库更新操作的文件。主要有两种格式

    • 记录为单位的日志文件
    • 数据块为单位的日志文件

    A:日志文件的内容

    对于以记录为单位的日志文件

    日志文件中需要登记的内容包括:

    • 各个事务的开始(BEGIN TRANSACTION)标记
    • 各个事务的结束(COMMIT或ROLLBACK)标记
    • 各个事务的所有更新操作

    每个事物的开始、结束标记和每个更新操作均为一个日志记录,其内容主要包括

    • 事务标识(标明是哪个事务)
    • 操作的类型(插入、删除或修改)
    • 操作对象( 记录内部标识)
    • 更新前数据的旧值(对插入操作而言,此项为空值)
    • 更新后数据的新值(对删除操作而言,此项为空值)

    对于以块为单位的日志文件:日志记录的内容包括事务标识和被更新的数据块。由于将更新前的整个块和更新后的整个块都放入日志文件中,操作类型和操作对象等信息就不必放入日志记录中了

    B:日志文件的作用

    日志文件在数据库恢复中起着非常重要的作用,可以用来进行事务故障恢复和系统故障恢复,并协助后备副本进行介质故障恢复。具体作用是:

    • 事务故障恢复和系统故障恢复必须用日志文件
    • 动态转储方式中必须建立日志文件,后备副本和日志文件结合起来才能有效地 恢复数据库
    • 静态转储方式中也可以建立日志文件,当数据库毁坏后可重新装入后备副本
      把数据库恢复到转储结束时刻的正确状态,然后利用日志文件把已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤销处理。这样不必重新运行那些已完成的事务程序就可把数据库恢复到故障前某一时刻的正确状态

    在这里插入图片描述
    针对每一种故障,日志文件的作用如下

    • 事物故障:利用日志撤销(UNDO)未完成事物
    • 系统故障:利用日志撤销(UNDO)未完成事物;重做(REDO)已完成事物
    • 介质故障:利用日志和副本恢复
    • 静态转储副本+日志恢复到故障发生前
    • 动态转储副本+转储期间日志,可以先恢复到备份时的一致性状态,然后再利用备份后的日志还原数据

    C:登记日志文件

    为保证数据库是可恢复的,登记日志文件时必须遵循两条原则:

    • 登记的次序严格按并发事务执行的时间次序
    • 必须先写日志文件,后写数据库(Write Ahead Logging,WAL)

    二:恢复策略

    (1)事物故障的恢复

    事务故障的恢复是由系统自动完成的,对用户是透明的。系统的恢复步骤是:

    1. 反向扫描日志文件(即从最后向前扫描日志文件),查找该事务的更新操作
    2. 对该事务的更新操作执行逆操作,即将日志记录中“更新前的值"写入数据库。这样,如果记录中是插入操作,则相当于做删除操作(因此时“更新前的值"为空);若记录中是删除操作,则做插入操作;若是修改操作,则相当于用修改前值代替修改后值
    3. 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理
    4. 如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了
    LOGFILE.seek(0,SEEK_END);
    Repeat
     	LOGFILE.ReverseRead(R);
     	if R.ID=T AND R. Type=WRITE then
     	begin
     		if R.BI IS null then 执行 delete语句,删除被插入的对象
     		else if R.AI is null then 执行 insert 语句,插入被删除的对象
     		else 执行 update语句,数据对象的值从AI改回BI
     	end;
     Until R.ID=T AND R.type=STRAT;
    

    (2)系统故障的恢复

    系统故障的恢复是由系统在重新启动时自动完成的不需要用户干预,其步骤为

    1. 正向扫描日志文件(即从头扫描日志文件),找出在故障发生前已经提交的事务
      (这些事务既有BEGIN TRANSACTION记录,也有COMMIT记录),将其事务标识记入重做队列( REDO-LIST)。同时找出故障发生时尚未完成的事务(这些事务只有BEGINT RANSACTION记录,无相应的COMMIT记录),将其事务标识记入撤销队列(UNDO-LIST)
    2. 对撤销队列中的各个事务进行撤销(UNDO)处理:反向扫描日志文件,对每个撤销事务的更新操作执行逆操作即将日志记录中“更新前的值”写入数据库
    3. 对重做队列中的各个事务进行重做(REDO)处理:正向扫描日志文件,对每个重做事务重新执行日志文件登记的操作,即将日志记录中“更新后的值”写入数据库

    (3)介质故障的恢复

    • 装入最新的数据库后备副本(离故障发生时刻最近的转储副本),使数据库恢复 到最近一次转储时的一致性状态
    • 装入相应的日志文件副本(转储结束时刻的日志文件副本),重做已完成的事务:即首先扫描日志文件,找出故障发生时已提交的事务的标识,将其记入重做队列;然后正向扫描日志文件,对重做队列中的所有事务进行重做处理。即将日志记录中“更新后的值”写入数据库

    三:具有检查点的恢复技术

    (1)一个问题

    利用日志技术进行数据库恢复时,恢复子系统必须搜索日志,确定哪些事务需要重做,哪些事务需要撤销。一般来说,需要检查所有日志记录。这样做有两个问题

    • 搜索整个日志将耗费大量的时间
    • 很多需要重做处理的事务实际上已经将它们的更新操作结果写到了数据库中,然而恢复子系统又重新执行了这些操作,浪费了大量时间

    为了解决这些问题,引入具有检查点的恢复技术

    (2)概述

    具有检查点的恢复技术:这种技术在日志文件中增加了一类新的记录——检查点记录,增加一个重新开始文件,并让恢复子系统在登录日志文件期间动态维护日志。检查点记录内容包括

    • 建立检查点时刻所有正在执行的事物清单
    • 这些事物最近一个日志记录的地址

    其中重新开始文件用来记录各个检查点记录在日志文件中的地址

    在这里插入图片描述

    动态维护日志文件的方法:周期性地执行建立检查点、保存数据库状态的操作。具体步骤为:

    1. 将当前日志缓冲区中的所有日志记录写入磁盘的日志文件上
    2. 在日志文件中写入一个检查点记录
    3. 将当前数据库缓冲区的所有数据记录写入磁盘的数据库中
    4. 把检查点记录在日志文件中的地址写入一个重新开始文件

    使用检查点方法可以改善恢复效率。当事务T在一个检查点之前提交,T对数据库所做的修改一定都已写入数据库,写入时间是在这个检查点建立之前或在这个检查点建立之时。这样,在进行恢复处理时,没有必要对事务T执行重做操作。

    (3)利用检查点的恢复技术

    系统出现故障时,恢复子系统将根据事务的不同状态采取不同的恢复策略,如下图

    • T 1 T_{1} T1:在检查点之前提交
    • T 2 T_{2} T2:在检查点之前开始执行,在检查点之后故障点之前提交
    • T 3 T_{3} T3:在检查点之前开始执行,在故障点时还未完成
    • T 4 T_{4} T4:在检查点之后开始执行,在故障点之前提交
    • T 5 T_{5} T5:在检查点之后开始执行,在故障点时还未完成

    在这里插入图片描述

    • T 3 T_{3} T3 T 5 T_{5} T5在故障发生时还未完成,所以予以撤销;
    • T 2 T_{2} T2 T 4 T_{4} T4在检查点之后才提交,它们对数据库所做的修改在故障发生时可能还在缓冲区中,尚未写入数据库,所以要重做;
    • T 1 T_{1} T1在检查点之前已提交,所以不必执行重做操作

    系统使用检查点方法进行恢复的步骤是:

    ①:从重新开始文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录

    ②:由该检查点记录得到检查点建立时刻所有正在执行的事务清单ACTIVE-LIST。建立如下两个事物队列

    • UNDO-LIST:需要执行UNDO操作的事物集合
    • REDO-LIST:需要执行REDO操作的事物集合

    ③:从检查点开始正向扫描日志文件

    • 如果有新开始的事物 T i T_{i} Ti,则把 T i T_{i} Ti暂时放入UNDO-LIST
    • 如果有新提交的事物 T j T_{j} Tj,则把 T j T_{j} TjUNDO-LIST移到REDO-LIST
    • 重复,直到扫描日志文件结束

    ④:对UNDO-LIST中的每个事物执行UNDO操作;对REDO-LIST中每个事物执行REDO操作


    用上图所示的例子,恢复步骤如下

    ①:建立ACTIVE-LIST,很明显ACTIVE-LIST={ T 2 T_{2} T2, T 3 T_{3} T3}。然后初始化UNDO-LIST={ T 2 T_{2} T2, T 3 T_{3} T3},REDO-LIST={}

    ②:从检查点开始正向扫描日志文件

    • 第一个读到的是事物 T 4 T_{4} T4建立,加入UNDO-LIST
    • 第二个读到的是事物 T 2 T_{2} T2提交,那么把 T 2 T_{2} T2UNDO-LIST移动到REDO-LIST
    • 第三个读到的是事物 T 5 T_{5} T5建立,加入UNDO-LIST
    • 第四个读到的是事物 T 5 T_{5} T5提交,那么把 T 5 T_{5} T5UNDO-LIST移动到REDO-LIST

    ③:对UNDO-LIST中的每个事物执行UNDO操作;对REDO-LIST中每个事物执行REDO操作

    在这里插入图片描述

    四:数据库镜像

    数据库镜像:自动地将整个数据库或其中关键数据复制到另一个磁盘上。需要注意,在实际应用中,只对关键数据和日志文件进行镜像,而不是对整个数据库进行镜像

    • 用于数据库恢复:当出现介质故障时,可由镜像磁盘继续提供使用,同时DBMS自动利用镜像磁盘数据进行数据库的恢复,不需要关闭系统和重装数据库副本
    • 提高数据库可用性:在没有出现故障时,当一个用户对某个数据加排他锁进行修改时,其他用户可以读镜像数据库的数据,而不必等待该用户释放锁

    在这里插入图片描述

    展开全文
  • 数据库恢复技术-数据库习题

    千次阅读 2021-11-29 22:28:53
    数据库备份也受数据库恢复模式的影响 D. 数据库备份的策略应该综合考虑各方面的因素,并不是备份做得越多越全就越好 正确答案: A 任何时候都要做好备份,有备无患,以便发生异常能恢复数据,避免造成数据丢失 当...

    关于数据库备份的叙述中,错误的是( )。
    A. 如果数据库很稳定就不需要经常备份,反之要经常备份,以防止数据库损坏
    B. 数据库备份是一项很复杂的任务,应该由专业的管理人员来完成
    C. 数据库备份也受数据库恢复模式的影响
    D. 数据库备份的策略应该综合考虑各方面的因素,并不是备份做得越多越全就越好
    正确答案: A

    任何时候都要做好备份,有备无患,以便发生异常能恢复数据,避免造成数据丢失

    当数据库损坏时,数据库管理员可以通过( )方式恢复数据库。
    A. 事务日志文件
    B. 主数据文件
    C. UPDATE语句
    D. 联机帮助文件
    正确答案: A

    数据库恢复是利用冗余数据,建立冗余数据基本方式是数据转储和登记事务日志。

    数据库恢复的基础是利用转储的冗余数据,这些转储的冗余数据包括( )。
    A. 数据字典、应用程序、审计档案、数据库后备副本
    B. 数据字典、应用程序、日志文件、审计档案
    C. 日志文件、数据库后备副本
    D. 数据字典、应用程序、数据库后备副本
    正确答案: C

    数据库恢复是利用冗余数据,最基本的冗余数据是数据库后备副本(数据转储而来)和事务日志。

    若系统在运行过程中,由于某种硬件故障,使存储在外存上的数据部分损失或全部损失,这种情况称为( )。
    A. 事务故障
    B. 系统故障
    C. 介质故障
    D. 运行故障
    正确答案: C

    硬件出问题就是介质故障,是最严重的一种故障,需要DBA介入,重装数据库,然后利用日志恢复。

    ( ) 用来记录对数据库中数据进行的每一次更新操作。
    A. 后援副本
    B. 日志文件
    C. 数据库
    D. 缓冲区
    正确答案: B

    事务日志中记录对数据的每一次更新操作。

    后援副本的用途是( )。
    A. 安全性保障
    B. 一致性控制
    C. 故障后的恢复
    D. 数据的转储
    正确答案: C

    后援副本的主要用途是用于故障恢复,也可以用于搭建模拟环境。

    用于数据库恢复的重要文件是( )。
    A. 数据库文件
    B. 索引文件
    C. 日志文件
    D. 备注文件
    正确答案: C

    数据库恢复是利用冗余数据,最基本的冗余数据是数据库后备副本(数据转储而来)和事务日志文件。不管哪一种故障恢复都需要使用日志进行恢复。

    日志文件是用于记录( )。
    A. 程序运行过程
    B. 数据操作
    C. 对数据的所有更新操作
    D. 程序执行的结果
    正确答案: C

    日志文件中只记录数据的更新操作

    在数据库恢复时,对尚未做完的事务执行( )。
    A. REDO处理
    B. UNDO处理
    C. ABORT处理
    D. ROLLBACK处理
    正确答案: B

    事务具有原子性,必须全部成功或全部失败,出现故障造成事务中断,必须回退该事务中所有已完成操作。

    事务提交(commit)后,对数据库的修改还停留在缓冲区中,未写入磁盘,此时系统出现故障。系统重启后,DBMS根据( )对数据库进行恢复,将已提交的事务对数据库的修改写入磁盘。
    A. 日志文件
    B. 全局备份
    C. 增量文件
    D. 影子备份
    正确答案: A

    系统故障的恢复是在系统重启后由DBMS自动完成,根据日志文件对已提交的事务重做,未提交的回滚。

    关于事务故障与恢复的叙述,正确的是( )。
    A. 系统故障的恢复只需要进行重做(REDO)操作
    B. 事务日志是用来记录事务的执行频度
    C. 对日志设立检查点的目的是为了提高故障恢复的效率
    D. 采用增量备份方式,数据恢复可以不使用事务日志文件
    正确答案: C

    A系统故障的恢复是根据日志文件对已提交的事务重做,未提交的回滚。B日志文件中记录数据的更新操作。D不管哪种方式备份数据库,在数据恢复时都会用到日志文件。

    若事务中有表达式a/b,如果b=0时会产生的故障属于( )。
    A. 事务故障
    B. 系统故障
    C. 介质故障
    D. 死机
    正确答案: A

    这是事务故障,是可以避免的,可以在程序中增加判断。

    系统故障恢复( )。
    A. 仅需要日志文件
    B. 仅需要使用备份
    C. 必须使用日志或备份
    D. 必须使用日志和备份
    正确答案: A

    系统故障的恢复是在系统重启后由DBMS自动完成,根据日志文件对已提交的事务重做,未提交的回滚。只有介质故障才需要用到备份。

    假设日志文件尾部如图,则恢复时应执行的操作是( )。
    在这里插入图片描述

    A. Undo T1,Redo T2
    B. Undo T2,Redo T1
    C. Redo T1,Redo T2
    D. Undo T1,Undo T2
    正确答案: B

    事务T1已经提交,需要重做,事务T2未提交,应该回退。

    数据库恢复的基本原理是利用冗余数据。
    A. 正确
    B. 错误
    正确答案: A

    展开全文
  • 没有日志文件数据库恢复方法,没有日志文件数据库恢复方法,没有日志文件数据库恢复方法
  • 数据库题目之数据库恢复技术

    千次阅读 2019-01-10 15:24:08
    一、选择题 1、 是DBMS的基本单位,它是用户定义的一组逻辑一致的程序序列。 A.程序 B.命令 C.事务 D....A....事务一旦提交,对数据库的改变是永久的 ...C....事务必须是使数据库从一个一致性状...
  • 关系数据库——数据库恢复

    千次阅读 2019-12-02 14:04:14
    如何利用这些冗余数据实施数据库恢复 数据转储 数据转储定义: 转储是指DBA将整个数据库复制到其他存储介质上保存起来的过程,备用的数据称为后备副本或后援副本 如何使用 数据库遭到破坏后可以将后备副本...
  • 一、事务的基本概念 1. 事务(Transaction) (1)概念 是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做...(3)事务是恢复和并发控制的基本单位 (4)定义事务 定义方式 显式定义方式 隐...
  • 第10章 数据库恢复技术 事务是一系列的数据库操作,是数据库应用程序的基本逻辑单元。事务处理(transaction processing)技术主要包括数据库恢复技术和并发控制技术。 10.1 事务的基本概念 1、事务 所谓事务是...
  • 数据库实验四 数据库恢复与安全性

    千次阅读 2020-04-16 17:30:57
    (3)掌握oracle数据库恢复的方法 (4)学会使用exp备份数据库、使用imp恢复数据库 (5)了解flashback 的使用 (6)学会使用PLSQL/developer工具完成导入导出 (7)掌握ORACLE中有关用户创建的方法 (8)熟练掌握PL...
  • 第10章 数据库恢复技术 了解 数据库的一致性状态 数据库运行中可能产生的故障类型,它们如何影响事务的正常执行,如何破坏数据库数据 数据转储的概念及分类 数据库的镜像功能 掌握 事务的基本概念和事务的ACID...
  • postgresql数据库备份和恢复文档资料,详细介绍了PostgreSQL数据库的备份与恢复 方法,值得学习下
  • 数据库恢复技术 数据转储 登记日志文件 登记日志文件的作用以及原则 恢复策略 事务故障的恢复 系统故障的恢复 介质故障的恢复 利用检查点技术的恢复策略 数据库镜像   事务(transaction)是一系列的数据库...
  • Oracle数据库恢复删除数据的方法

    千次阅读 2021-09-03 13:52:02
    误删oracle数据库中的数据,在不考虑全库备份和利用归档日志情况,怎样快速恢复数据呢? 下面介绍3种方法。 1. 利用oracle提供的闪回方法进行数据恢复,适用于delete删除方式 首先获取删除数据的时间点: select * ...
  • 第七章 数据库恢复技术 1. 数据库系统中可能发生各种各样的故障,大致可以分为________ 、________ 、________ 和 ________ 等。 正确答案: 事务故障 系统故障 介质故障 计算机病毒 2. 数据库中为什么要有恢复子...
  • 恢复方法:由恢复子系统应利用日志文件撤消(UNDO)此事务已对数据库进行的修改,事务故障的恢复由系统自动完成,不需要用户干预 系统故障造成数据库不一致状态的原因 一些未完成事务对数据库的更新已写入数据库 ...
  • 数据库恢复技术 目录 10.1 事务的基本概念  事务的ACID特性 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持续性(Durability ) 10.2 数据库恢复概述 10.3 故障的种类 1.事务内部的...
  • 极佳SQL数据库丢失恢复工具,极佳SQL数据库误删除恢复工具, 支持 SQL7.0 2000 2005 2008 2008R2 2012 版本数据库丢失 覆盖 误还原 所在分区误格式化 数据库文件被删除 分区改变 磁盘分区损坏 等情况 下的SQL数据库 ...
  • 数据库恢复挂起

    千次阅读 热门讨论 2017-09-23 09:44:07
    问题如下,显示数据库恢复挂起,遇到这样的问题,不要怕,看我给你解决,哈哈。 首先我 想说一下是什么原因造成的,后台是由于磁盘空间满了,导致中间数据库显示恢复挂起的状态。 解决方法一是首先先把数据库脱机,...
  • 数据库 - 数据库恢复技术

    千次阅读 2015-05-12 16:28:57
    事务定义Jim(James) Gray ...恢复和并发控制的基本单位事务和程序比较 在关系数据库中,一个事务可以是一条或多条SQL语句,也可以包含一个或多个程序。 一个程序通常包含多个事务显式定义方式 BEGIN TRANSACTION
  • 阿里云RDS云数据库恢复到本地mysql数据库 前提条件: 本地mysql要与RDS数据库所用得版本一致,且本地mysql要安装在64位得linux系统中。 linux系统中 1. 要安装xtrabackup数据备份恢复工具。版本要求...
  • SQL显示数据库恢复挂起解决

    千次阅读 2019-04-12 06:17:33
    在我们进行项目开发时候经常使用数据库,SQL Server数据库已经成为我们熟悉的数据库,而我们只了解常用的功能,对于一些没有出现过的问题有点不知所措,总结是在实际情况遇到问题的收获,希望能够帮助到你!...
  • 四步搞定阿里云RDS云数据库恢复到本地mysql数据库 第1步:下载提取工具和阿里云rds数据库备份文件 1.先去阿里云数据rds后台–>备份恢复–>下载你的数据备份 2.下载阿里云官方提供的rds_backup_extract.sh数据...
  • 记一次基于InnoDB引擎的数据库恢复

    千次阅读 2018-05-05 15:59:46
    1.新建一个空的数据库,字符集为:utf8,排序规则为:utf8_general_ci,如下图所示:至于为什么为utf8,我还真不太清楚,只是看有的文章上这么写,我也就这么做了,并且可行;我估计原因是原来数据库的编码就是utf8...
  • SQL server数据库恢复挂起的解决办法

    万次阅读 多人点赞 2018-04-09 16:53:36
    在我们进行项目开发时候经常使用数据库,SQL Server数据库已经成为我们熟悉的数据库,而我们只了解常用的功能,对于一些没有出现过的问题有点不知所措,总结是在实际情况遇到问题的收获,希望能够帮助到你!...
  • SQL Server 数据库之备份和恢复数据库

    千次阅读 2022-04-11 22:14:48
    数据库的备份 数据库恢复

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 625,506
精华内容 250,202
关键字:

数据库恢复

友情链接: UDPdemo2.0.zip