mysql 事务sqlserver_解释一下SQLSERVER事务日志记录

解释一下SQLSERVER事务日志记录

大家知道在完整恢复模式下,SQLSERVER会记录每个事务所做的操作,这些记录会存储在事务日志里,有些软件会利用事务日志来读取

操作记录恢复数据,例如:log explorer

那么事务日志记录怎麽查看,里面都记录了些什么?

打开可以利用下面SQL语句来查看所在数据库的事务日志记录

1 USE [GPOSDB] --要查看事务日志记录的数据库

2 GO

3 SELECT * FROM [sys].[fn_dblog](NULL,NULL)

40251469_1.jpg

事务日志记录里很多东西可以看的,里面记录了非常详细的数据库活动信息

我这里只介绍一些重要的需要知道的字段,其他字段由于本人能力有限而且觉得其他字段不是很重要就不介绍了

CurrentLSN:当前LSN号,事务日志中的每个记录都由一个唯一的日志序列号 (LSN) 标识。LSN 是这样排序的:如果 LSN2 大于 LSN1,

则 LSN2 所标识的日志记录描述的更改发生在日志记录 LSN1 描述的更改之后

Operation:当前LSN所做的操作

Context:操作的上下文

TransactoinID:事务ID号

Log Record Fixed Length:LSN记录的所占虚拟日志文件的固定长度

Previous LSN:前一个LSN号

--------------------------------------------------------------------------------------------------------------

AllocUnitID:修改的那条数据所属分配单元ID

AllocUnitName:修改了数据的表名

Page ID:0001:00000121 转换成十进制:289    所以查看pageid为289页  DBCC PAGE([pratice],1,289,3)

Slot ID:数据所在数据页面的第几条记录

PartitionID:数据所在数据页面的所在分区ID

40251469_2.jpg

如上图,修改数据的表名是Insert_Test,Page ID是0001:00000121 转换为十进制为289  Slot ID是6(即数据页的第6条记录)

通过下面SQL语句就可以查看页面所在数据

1 USE [pratice]

2 GO

3 DBCC TRACEON(3604,-1)4 GO

5

6 DBCC PAGE([pratice],1,289,3)7 GO

1 Slot 6 Offset 0x552 Length 211

2

3 Record Type = PRIMARY_RECORD Record Attributes =NULL_BITMAP4 Memory Dump @0x0A2AC552

5

6 00000000: 1000d000 3f080000 61616120 20202020?....?...aaa7 00000010: 20202020 20202020 20202020 20202020?8 00000020: 20202020 20202020 20202020 20202020?9 00000030: 20202020 20202020 20202020 20202020?10 00000040: 20202020 20202020 20202020 20202020?11 00000050: 20202020 20202020 20202020 20202020?12 00000060: 20202020 20202020 20202020 20202020?13 00000070: 20202020 20202020 20202020 202020

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值