-
sql语句大全之事务日志
事务日志
每个SQL Server 2005数据库都具有事务日志,用于记录所有事务以及每个事务对数据 库所做的修改。事务日志是数据库的关键组件,如果系统出现故障,它就是近期数据的唯 一源。
在创建数据库的时候,事务日志也会随着被创建。事务日志存储在一个单独的文件上。 在修改写入数据库之前,事务日志会自动记录对数据库对象所做的修改。这是SQL Server 的一个重要的容错特性,它可以有效地防止数据库的损坏,维护数据库的完整性。
1. 事务日志支持的操作
事务日志支持以下操作:
y 恢复个别的事务 如果应用程序发出ROLLBACK语句,或者数据库引擎检测到错 误(例如失去与客户端的通信),就使用日志记录回滚未完成的事务所做的修改。
y SQL Server启动时恢复所有未完成的事务 当运行SQL Server的服务器发生故障 时,数据库可能处于这样的状态:还没有将某些修改从缓存写入数据文件,在数 据文件内有未完成的事务所做的修改。当启动SQL Server实例时,它对每个数据库 执行恢复操作。前滚日志中记录的、可能尚未写入数据文件的每个修改。在事务 日志中找到的每个未完成的事务都将回滚,以确保数据库的完整性。
y 将还原的数据库、文件、文件组或页前滚到故障点 在硬件丢失或磁盘故障影响
到数据库文件后,可以将数据库还原到故障点。首先还原上一次的完整备份和差 异备份,然后将事务日志备份后续序列还原到故障点。当还原每个日志备份时, 数据库引擎 重新应用日志中记录的所有修改,以回滚所有事务。当最后的日志备 份还原后,数据库引擎将使用日志信息回滚到该点未完成的所有事务。
y 支持事务复制 日志读取器代理程序监视已为事务复制配置的每个数据库的事务
日志,并将已设复制标记的事务从事务日志复制到分发数据库中。
y 支持备用服务器解决方案 备用服务器解决方案、数据库镜像和日志传送高度依 赖于事务日志。在日志传送方案中,主服务器将主数据库的活动事务日志发送到
每个SQL Server 2005数据库都具有事务日志,用于记录所有事务以及每个事务对数据 库所做的修改。事务日志是数据库的关键组件,如果系统出现故障,它就是近期数据的唯 一源。
在创建数据库的时候,事务日志也会随着被创建。事务日志存储在一个单独的文件上。 在修改写入数据库之前,事务日志会自动记录对数据库对象所做的修改。这是SQL Server 的一个重要的容错特性,它可以有效地防止数据库的损坏,维护数据库的完整性。
1. 事务日志支持的操作
事务日志支持以下操作:
y 恢复个别的事务 如果应用程序发出ROLLBACK语句,或者数据库引擎检测到错 误(例如失去与客户端的通信),就使用日志记录回滚未完成的事务所做的修改。
y SQL Server启动时恢复所有未完成的事务 当运行SQL Server的服务器发生故障 时,数据库可能处于这样的状态:还没有将某些修改从缓存写入数据文件,在数 据文件内有未完成的事务所做的修改。当启动SQL Server实例时,它对每个数据库 执行恢复操作。前滚日志中记录的、可能尚未写入数据文件的每个修改。在事务 日志中找到的每个未完成的事务都将回滚,以确保数据库的完整性。
y 将还原的数据库、文件、文件组或页前滚到故障点 在硬件丢失或磁盘故障影响
到数据库文件后,可以将数据库还原到故障点。首先还原上一次的完整备份和差 异备份,然后将事务日志备份后续序列还原到故障点。当还原每个日志备份时, 数据库引擎 重新应用日志中记录的所有修改,以回滚所有事务。当最后的日志备 份还原后,数据库引擎将使用日志信息回滚到该点未完成的所有事务。
y 支持事务复制 日志读取器代理程序监视已为事务复制配置的每个数据库的事务
日志,并将已设复制标记的事务从事务日志复制到分发数据库中。
y 支持备用服务器解决方案 备用服务器解决方案、数据库镜像和日志传送高度依 赖于事务日志。在日志传送方案中,主服务器将主数据库的活动事务日志发送到
一个或多个目标服务器。每个辅助服务器将该日志还原为其本地的辅助数据库。
在数据库镜像方案中,数据库(主体数据库)的每次更新都在独立的、完整的数 据库(镜像数据库)副本中立即重新生成。主体服务器实例立即将每个日志记录 发送到镜像服务器实例,镜像服务器实例将传入的日志记录应用于镜像数据库, 从而将其继续前滚。有关详细信息,请参阅数据库镜像概述。
SQL Server Database Engine的事务日志具有如下特征:
y 事务日志是作为数据库中的单独的文件或一组文件实现的。日志缓存与数据页缓 存分开管理,从而使数据库引擎内的编码更简单、更快速和更可靠。
y 日志记录和页的格式不必遵守数据页的格式。
y 事务日志可以在几个文件上实现。通过设置日志的FILEGROWTH值可以将这些文 件定义为自动扩展。这样可减少事务日志内空间不足的可能性,同时减少管理开 销。
y 重用日志文件中空间的机制速度快且对事务吞吐量影响最小。
2. 事务日志提供容错的机制
在SQL Server中,事务是指一次完成的操作的集合,虽然一个事务中可能包含了很多 的SQL语句,但是在处理上,它们就像是一个操作一样。为了维护数据库的完整性,它们 必须彻底完成或者根本不执行。如果一个事务只是部分执行,则数据库将受到损坏。
SQL Server使用数据库的事务日志来防止没有完成的事务破坏数据。具体步骤如下:
用户执行修改数据库对象的任务。 当这个事务开始时,在事务日志中会记录一个事务开始标志,并将与此操作相关
的数据读入缓冲区。
在日志中记录每一个操作,然后在日志中记录一个提交事务的标志。每一个事务
都会以这种方式记录在事务日志中,这些记录立即写到硬盘上。
在缓冲区中修改响应的数据。这些数据一直在缓冲区中,直到检查点进程发生(定
期发生),才会写到硬盘上。同时,也会在事务日志中写入“所有已经完成的事务已经作 用于数据库”,即在事务日志中写入一个检查点标志。这个标志用于在数据库恢复过程中 确定哪个事务已经作用于数据库了。
如果服务器在已经完成了这个事务(这些事务的操作信息已经写入事务日志中)
但还没有将缓冲区中的数据写入物理硬盘的情况下(检查点进程尚未触发)失效了或者在 服务器恰好处理了部分事务的情况下数据库服务器失效了,那么在这两种情况下,数据库 都不会被破坏。在服务器恢复正常后,SQL Server会开始一个恢复过程,检查数据库和事 务日志,如果事务日志中的事务还没有在数据库中生效,则会在此时作用于数据库(前滚); 如果发现部分事务还没有完成,则将这个事务在数据库中的作用去掉(回滚)。这个过程是 自动进行的。数据库完整性信息都由事务日志来完成,从而从本质上增强了SQL Server的 容错性能。
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式