美文网首页
8 - 数据库事务

8 - 数据库事务

作者: heichong | 来源:发表于2024-04-18 13:46 被阅读0次

概念



数据库事务的四大特性
  • 原子性(Atomicity)
    事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。
  • 一致性(Consistency)
    一致性确保事务将数据库从一种一致的状态转换为另一种一致的状态。换句话说,事务在执行前后,数据库必须满足一些预定义的一致性规则,如约束、触发器、级联等。
  • 隔离性(Isolation)
    多个事务并发执行时,一个事务的执行不影响其他事务的执行。
  • 持久性(Durability)
    已被提交的事务对数据库的修改应该永久保存在数据库中。

事务并发

事务并发带来的问题

  • 修改丢失: T1、T2事务同时更新(A=A-1),T2覆盖了T1的更新
  • 脏读(Dirty Read): T2事务读取了T1事务尚未提交的修改,T1回滚,T2两次读取的结果不一样
  • 不可重复读(Non-repeatable Read): T2事务读取了两次数据,读取过程中T1事务改变了数据,T1事务两次读出来的数据不一样
  • 幻读: 同不可重复读,主要针对insert

三级封锁协议

两段锁和串行化

两段锁:分为两段,第一段只加锁不解锁;第二阶段只解锁不加锁; 也有可能产生死锁


不满足两段锁协议-例
例1

备份与恢复

故障种类

  • 事务故障:数据及非法输入等
  • 系统故障:数据库系统、OS问题导致的,一般指软件
  • 介质故障:数据库的存储介质发生故障。如磁盘损坏

数据库备份

  • 静态转储:转储期间不允许对数据库存取修改
  • 动态转储:转储期间允许对数据库存取修改
  • 海量转储:每次转储全部数据
  • 增量转储:每次转储上次转储后被更新过的数据

数据库恢复

故障恢复的两个操作

  • 撤销事务(UNDO):撤销未完成的事务;过程:反向扫描事务日志,执行逆操作,直至事务开始标识。
  • 重做事务(REDO):从事务开始标记起,正向扫描事务日志,重新执行事务操作,直至事务结束标识。
    故障恢复策略
  • 事务故障恢复:通过UNDO操作进行恢复;系统自动完成,对用户透明
  • 系统故障恢复:通过REDO操作进行恢复;系统重启后自动执行
  • 介质故障恢复:重装数据库,装载故障前最新备份和日志,并执行UNDO、REDO操作;需要DBA的参与

相关文章

  • 数据库事务

    上一篇事务(https://www.jianshu.com/p/0eca0fe998d8)讲到数据库事务是数据库提...

  • Django之数据库事务编程

    在了解 Django 数据库事务编程前有必要先了解下数据库事务。 数据库事务(transaction) 数据库事务...

  • 数据库笔记

    数据库 数据库⭐MySQL 默认存储引擎InnoDB(事务性存储引擎)一、事务 数据库事务? 数据库事务有什么作用...

  • 数据库事务简介(一)--- 所谓事务

    事务的概念 数据库事务简介(一)--- 所谓事务数据库事务简介(二)--- 故障恢复(未完成)数据库事务简介(三)...

  • Spring学习之事务管理基础

    Spring学习之事务管理基础 数据库事务相关概念 事务的定义 事务,一般指的是数据库事务,是指数据库操作的时候,...

  • 事务及事务隔离级别

    事务及事务隔离级别 什么是事务 事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数据库的存取。事务...

  • 搞懂Redis(四)-Redis事务

    事务本质:一组命令的集合 数据库事务与Redis事务 数据库事务数据库事务通过ACID(原子性.一致性.隔离性.持...

  • SpringBoot 数据库事务

    SpringBoot 数据库事务 事务: 数据库事务是 访问并可能更新 数据库中各种数据项的一个程序执行单元 事务...

  • SPRING的事务详解

    一、什么是事务 事务的概念 事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数据库的存取。事务的正...

  • 4.MySQL的事务与锁(1)

    本章要点 1.数据库事务2.MVCC 1 数据库事务 1.1 事务特性 事务具有的特性:ACID(Atomicit...

网友评论

      本文标题:8 - 数据库事务

      本文链接:https://www.haomeiwen.com/subject/lizexjtx.html