数据库恢复技术

数据库恢复技术

事务

事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。

  • 事务和程序是两个概念 在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序 一个程序通常包含多个事务

  • 事务是恢复和并发控制的基本单位

显式定义方式

   BEGIN TRANSACTION                  
          SQL 语句1
          SQL 语句2
          。。。。
     COMMIT/ROLLBACK
复制代码
  • COMMIT
    • 事务正常结束
    • 提交事务的所有操作(读+更新)
    • 事务中所有对数据库的更新写回到磁盘上的物理数据库中
  • ROLLBACK
    • 事务异常终止
    • 事务运行的过程中发生了故障,不能继续执行
    • 系统将事务中对数据库的所有已完成的操作全部撤销
    • 事务滚回到开始时的状态

事务的特性(ACID)

  • 原子性(Atomicity)
    • 事务中包括的诸操作要么都做,要么都不做
  • 一致性(Consistency)
    • 事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态
  • 隔离性(Isolation)
    • 一个事务的执行不能被其他事务干扰
  • 持续性(Durability )
    • 一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。
    • 接下来的其他操作或故障不应该对其执行结果有任何影响。

一致性与原子性举例:

1640228043273.png

故障的种类

(1) 事务内部的故障:

事务内部故障可分为预期的和非预期的,其中大部分的故障都是非预期的。预期的事务内部故障是指可以通过事务程序本身发现的事务内部故障;非预期的事务内部故障是不能由事务程序处理的,如运算溢出故障、并发事务死锁故障、违反了某些完整性限制而导致的故障等。

(2) 系统故障:

系统故障也称为软故障,是指数据库在运行过程中,由于硬件故障、数据库软件及操作系统的漏洞、突然停电灯情况,导致系统停止运转,所有正在运行的事务以非正常方式终止,需要系统重新启动的一类故障。这类事务不破坏数据库,但是影响正在运行的所有事务。

(3) 介质故障:

介质故障也称为硬故障,主要指数据库在运行过程中,由于磁头碰撞、磁盘损坏、强磁干扰、天灾人祸等情况,使得数据库中的数据部分或全部丢失的一类故障。

(4)计算机病毒故障:

计算机病毒故障是一种恶意的计算机程序,它可以像病毒一样繁殖和传播,在对计算机系统造成破坏的同时也可能对数据库系统造成破坏(破坏方式以数据库文件为主)。

区别系统故障还是介质故障就看有没有破坏数据库中的数据,若损坏了数据,则为介质故障,反之,则为系统故障。

数据库恢复实现技术

①数据转储

  • 静态转储与动态转储
  • 海量转储与增量转储

1640233811086.png

②登记日志文件

1640233783815.png

  • 重做(REDO) 队列: 在故障发生前已经提交的事务 这些事务既有BEGIN TRANSACTION记录,也有COMMIT记录
  • 撤销 (UNDO)队列:故障发生时尚未完成的事务 这些事务只有BEGIN TRANSACTION记录,无相应的COMMIT记录


作者:AirHua
链接:https://juejin.cn/post/7045080984873615374
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值