Sql Server 日志(四)

         在完整恢复模式下,SQL Server将所有日志都记录在日志文件中,那么,SQL Server是怎样记录日志的呢?

         先查看下日志文件里面所存的内容

   select * from sys.fn_dblog(null,null)

         

         CurentLSN:当前日志序列号

         Operation:操作类型

         TransactionID:事务ID  

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

         PreviousLSN:前一个日志序列号

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

         AllocUnitName:修改的对象名称

         Page ID:数据所在的页

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

         CheckPoint Begin:CheckPoint 开始时间

         CheckPoint End:CheckPoint 结束时间

         Dirty Pages:脏数据页

         Oldest Replicated Begin LSN:如果数据库配置复制,最老的复制LSN

         Next Replicated End LSN:下一个复制LSN

         Last Distributed End LSN:最新的分发LSN

         Beginlog Status:开始记录事务日志的状态,这个状态表示现时能够正常记录事务日志

         Begin Time:事务开始时间

         Transaction Time:事务开始时间 

         End Time:事务结束时间

         Transaction Begin:记录这个事务的begin transaction的时候的cureent LSN

         Preplog Begin LSN:启动数据库前的前一个事务日志LSN

         Prepare Time:准备启动数据库的时间

         New Split Page:哪个数据页产生了页拆分

         Rows Deleted:数据页有多少行被删除了

         Description:描述这个事务是干什么的

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

         常见Operation和Context

         

Operation

Context

解释

LOP_SET_BITS

LCX_DIFF_MAP

设置位图,资料: 差异(Differential)备份:只备份上次完整备份后,做修改的部分。备份单位是区(Extent)。意味着某个区内即使只有一页做了变动,则在差异备份里会被体现.差异备份依靠一个BitMap进行维护,一个Bit对应一个区,自上次完整备份后,被修改的区会被置为1,而BitMap中被置为1对应的区会被差异备份所备份。而到下一次完整备份后,BitMap中所有的Bit都会被重置为0

而这个BitMap在数据库第7页:

DCM页 差异变更(Differential Changed Map,DCM)页面他跟踪一个文件中的哪一个区在最新一次完整数据库备份之后被修改过。SQLSERVER用在增量备份时只对已发生数据变更的分区进行增量备份即可

LOP_BEGIN_XACT

 

事务开始

LOP_MODIFY_ROW

LCX_HEAP

修改堆表中的某一行记录

LOP_PREP_XACT

 

准备启动数据库

LOP_COMMIT_XACT

 

提交事务

LOP_MODIFY_ROW

LCX_BOOT_PAGE

修改数据库启动页

LOP_MODIFY_HEADER

LCX_PFS

修改PFS页的页头部信息

LOP_INSERT_ROWS

LCX_CLUSTERED

插入数据到聚集索引的索引页

LOP_INSERT_ROWS

LCX_INDEX_LEAF

插入数据到索引的叶子节点即数据页

LOP_FORMAT_PAGE

LCX_CLUSTERED

重新组织聚集索引

LOP_DELETE_SPLIT

LCX_CLUSTERED

删除聚集索引表的一行记录引起页拆分

LOP_MODIFY_HEADER

LCX_HEAP

修改堆表的某页的页头信息

LOP_BEGIN_CKPT

LCX_NULL

检查点开始

LOP_END_CKPT

LCX_NULL

检查点结束

LOP_SET_FREE_SPACE

LCX_PFS

修改PFS页设置那个数据页是空闲的

LOP_ROOT_CHANGE

LCX_CLUSTERED

聚集索引的根节点改变

LOP_INSERT_ROWS

LCX_HEAP

插入数据到堆表

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

       在大容量日志模式下,日志不会记录对数据页的操作,当使用bcp,bulk insert,select into 等大容量日志操作的时候,像下图的修改数据和插入数据的记录在日志记录中找不到。

       

                 

       所以,在大容量日志模式下,插入速度才比较快。

      

 

posted @ 2015-09-22 16:34  风言  阅读(362)  评论(0编辑  收藏  举报