sql server 2000中,如何查询事务日志?事务日志有什么作用?

发布网友 发布时间:2022-03-23 20:24

我来回答

5个回答

懂视网 时间:2022-03-24 00:46

事务日志的用途是事务处理。事务日志是一个与数据库文件分开的文件。它存储对数据库进行的所有更改,并全部记录插入、更新、删除、提交、回退和数据库模式变化。事务日志还称作前滚日志或重做日志。事务日志是备份和恢复的重要组件,也是使用 SQL Remote 或 [复制代理] 复制数据所必需的。

  

  事务日志是一个与数据库文件分开的文件。它存储对数据库进行的所有更改,并全部记录插入、更新、删除、提交、回退和数据库模式变化。事务日志还称作前滚日志或重做日志。事务日志是备份和恢复的重要组件,也是使用 SQL Remote 或 [复制代理] 复制数据所必需的。

  

  在缺省情况下,所有数据库都使用事务日志。事务日志的使用是可选的,但是,除非您因特殊原因而不使用,否则您应始终使用它。运行带有事务日志的数据库可提供更强的故障保护功能、更好的性能以及数据复制功能。

热心网友 时间:2022-03-23 21:54

你好!

1.如果要看日志内容,sql server下不直接支持,但是可以用LogExplorer(只支持2000)等工具来查看
如果你的意思是想看数据库在执行什么语句,可以用Sql profiler
菜单 Tool->Sql Server Profiler
进到Profiler的界面后新建一个跟踪(new Trace),选择好你的数据库和相应的用户、密码,然后就可以看到所有传到Sql Server来执行的语句了。
如果想更多的了解,可以去找些 Sql Server Profiler的资料看下,最好还是自己试几下,操作很简单,但是平时开发过程中调试很好用

2.每个 Microsoft® SQL Server™ 2000 数据库都有事务日志,用以记录所有事务和每个事务对数据库所做的修改。记录事务及其修改有三个作用:
恢复个别的事务。
如果应用程序发出 ROLLBACK 语句,或者 SQL Server 检测到错误(例如失去与客户端的通讯),就使用日志记录回滚未完成的事务所做的修改。
SQL Server 启动时恢复所有未完成的事务。
当运行 SQL Server 的服务器发生故障时,数据库可能处于这样的状态:还没有将修改从高速缓冲存储器写入数据文件,在数据文件内有未完成的事务所做的修改。当启动 SQL Server 的复本时,它对每个数据库执行恢复操作。前滚日志中记录的、可能尚未写入数据文件的每个修改。然后回滚在事务日志中找到的每个未完成的事务,以确保数据库的完整性。
将还原的数据库前滚到故障点。
丢失数据库(在没有 RAID 驱动器的服务器上,硬盘驱动器出现故障时可能会出现这种情况)后,可以将数据库还原到故障点。首先还原上一次的完整数据库备份或差异数据库备份,然后将事务日志备份序列还原到故障点。当还原每个日志备份时,SQL Server 重新应用日志中记录的所有修改以前滚所有事务。当最后的日志备份还原后,SQL Server 将使用日志信息回滚到该点未完成的所有事务。
SQL Server 2000 事务日志的特点是:
事务日志不是作为一个表实现,而是作为单独的文件或数据库内的一组文件实现。日志高速缓存与数据页的高速缓冲存储器分开管理,从而使数据库引擎内的编码更简单、更快速和更可靠。
日志记录和页的格式不必遵守数据页的格式。
事务日志可以在几个文件上实现。可以根据需要定义这些文件为自动增长。这样可减少事务日志内空间不足的可能性,同时减少管理开销。
截断日志中未用部分的机制速度快且对事务吞吐量影响最小。

热心网友 时间:2022-03-23 23:12

  SQL Server中的事务日志无疑是SQL Server中最重要的部分之一。因为SQL SERVER利用事务日志来确保持久性(Durability)和事务回滚(Rollback)。从而还部分确保了事务的ACID属性.在SQL Server崩溃时,DBA还可以通过事务日志将数据恢复到指定的时间点。当SQL Server运转良好时,多了解一些事务日志的原理和概念显得并不是那么重要。但是,一旦SQL SERVER发生崩溃时,了解事务日志的原理和概念对于快速做出正确的决策来恢复数据显得尤为重要.本系列文章将会从事务日志的概念,原理,SQL Server如何使用日志来确保持久性属性等方面来谈SQL Server的事务日志.

事务日志的物理组织构架
  事务日志仅仅是记录与其对应数据库上的事务行为和对数据库修改的日志文件.在你新建数据库时,伴随着数据库文件,会有一个默认以ldf为扩展名的事务日志文件. 当然,一个数据库也可以配有多个日志文件,但是在逻辑上,他们可以看成一个.
  在SQL Server对于日志文件的管理,是将逻辑上一个ldf文件划分成多个逻辑上的虚拟日志文件(virtual log files,简称VLFs).以便于管理。
  那为什么SQL Server要把日志文件划分出多个VLFS呢?因为SQL Server通过这种方式使得存储引擎管理事务日志更加有效.并且对于日志空间的重复利用也会更加高效。使用VLF作为收缩数据库的最小单位比使用ldf文件作为最小单位无疑是更加高效的.
  VLFS的个数和大小无法通过配置进行设定,而是由SQL Server进行管理.当Create或Alter数据库时,SQL Server通过ldf文件的大小来决定VLFS的大小和数量。在日志文件增长时,SQL Server也会重新规划VLFS的数量.
  注意:根据这个原理不难看书,如果设置日志文件的增量过小,则会产生过多的VLFS,也就是日志文件碎片,过多的日志文件碎片会拖累SQL Server性能.

事务日志的逻辑组织构架
  当针对数据库对象所做的任何修改保存到数据库之前,相应的日志首先会被记录到日志文件。这个记录会被按照先后顺序记录到日志文件的逻辑末尾,并分配一个全局唯一的日志序列号(log sequence number,简称LSN),这个序列号完全是按照顺序来的,如果日志中两个序列号LSN2>LSN1,则说明LSN2所在LSN1之后发生的.
  由此可以看出,将日志文件分为多个文件除了磁盘空间的考虑之外。完全不会像数据那样可以并行访问,所以将日志文件分为多个完全不会有性能上的提升.
  LSN号可以看作是将日志文件和其记录数据之间的纽带.每一条日志不仅有LSN号,还有其对应事务的事务日志,许多类型的操作都记录在事务日志中。

查看SQL SERVER的事务日志
  在SQL SERVER 7.0和2000中,可以用下面的命令查看:
  DBCC log ( {dbid|dbname}, [, type={0|1|2|3|4}] )
  参数:
  Dbid or dbname - 任一数据库的ID或名字
  type - 输出结果的类型:
  0 - 最少信息(operation, context, transaction id)
  1 - 更多信息(plus flags, tags, row length)
  2 - 非常详细的信息(plus object name, index name,page id, slot id)
  3 - 每种操作的全部信息
  4 - 每种操作的全部信息加上该事务的16进制信息
  默认 type = 0
  要查看MSATER数据库的事务日志可以用以下命令:
  DBCC log (master)

  一般情况下可以借助其他工具来查看SQL SERVER的事务日志,如LOG EXPLOERE等

热心网友 时间:2022-03-24 00:46

1、SQL SERVER中的事务日志设计上用于数据安全,或技术人员故障分析,在当前微软官方未提供查看工具,第三方查看工具为LOG EXPLORER。
2、事务日志的主要功能是:
出现故障或问题时,SQL Server会依据日志的记录对未完成的数据操作进行回滚。
3、此外,事务日志还用于双机热备,增量备份等等方面。

热心网友 时间:2022-03-24 02:38

用来恢复事物
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com