• 数据库之事务与常见故障


    事务的概念

    一、事务

    所谓事务是用户定义的一个数据操作序列,这些操作要么全做要么全部做,是一个不可分割的工作单位。例如:在关系数据库中,一个事务可以是一条SQL语句、一组SQL语句或是整个程序。

    事务和程序

    一个程序包含多个事务

    事务的特性

    1.原子性

    2.一致性

    3.隔离性

    4.持续性

    事务通常是以BEGIN TRANSACTION开始,以COMMIT或ROLL结束。

    故障的种类

    一、事务内部的故障

    事务内部的更多的故障是非预期的,是不能由应用程序处理。如运算溢出、并发事务发生死锁而被选中撤销该事物、违反了某些完整性限制。事务故障仅指这类非预期的故障
    这类恢复操作称为事务撤销(UNDO)

    二、系统故障

    情况一、发生系统故障时,一些尚未完成的事务的结果可能已送入物理数据库,从而造成数据库可能处于不正确的状态。为保证数据i一致性,需要清除这些事务对数据库的所有修改。系统恢复子系统必须在系统重新启动时,让所有非正常终止的事务回滚,强行撤销(UNDO)
    情况二、发生故障系统,有些已完成的事务可能有一部分甚至全部留在缓存区中,尚未写回到磁盘上的物理数据库中,系统故障使得这些事务对数据库的修改部分或全部丢失,这也会使数据库处于不一致的状态,因此应将这些事务已经提交的结果重新写入数据库。在系统重新启动后,恢复子系统需要撤销所有未完成的事务外,还需要重做(REDO)所有已提交的事务

    终结的说:没有提交的要撤销(UNDO),已经提交的要重做(REDO)

    ####三、介质故障 #####系统故障常称为软故障(Soft Crash),介质故障常称为硬故障(Hard Crash)。硬故障指外存故障,如磁盘损坏、磁头碰撞、瞬间强磁场干扰等。这类故障破坏数据库或部分数据库。并影响正在存取这部分数据的所有事务。这类故障毕业前两类故障发生的可能性小,但破坏性最大
  • 相关阅读:
    PyCharm 安装package matplotlib为例
    Julia 下载 安装 juno 开发环境搭建
    进程 线程 协程
    Eclipse Golang 开发环境搭建 GoClipse 插件
    TaxonKit
    tar: Removing leading `/' from member names
    Linux 只列出目录的方法
    unbuntu 安装 teamviewer
    ubuntu 设置静态IP
    Spring 配置文件中 元素 属性 说明
  • 原文地址:https://www.cnblogs.com/gxcstyle/p/6869882.html
Copyright © 2020-2023  润新知