MSSQL查看事务日志的虚拟日志文件(VLF)信息sys.dm_db_log_info

0    203    1

Tags:

👉 本文共约3295个字,系统预计阅读时间或需13分钟。

简介

返回事务日志的虚拟日志文件 (VLF) 信息。 请注意,所有事务日志文件都合并在表输出中。 输出中的每行均表示事务日志中的 VLF,并提供与日志中该 VLF 相关的信息。

虚拟日志文件 (VLF)

SQL Server 数据库引擎在内部将每个物理日志文件分成多个虚拟日志文件 (VLF)。 虚拟日志文件没有固定大小,且物理日志文件所包含的虚拟日志文件数不固定。 数据库引擎在创建或扩展日志文件时动态选择虚拟日志文件的大小。 数据库引擎会尝试维护一些虚拟文件。 在扩展日志文件后,虚拟文件的大小是现有日志大小和新文件增量大小之和。 管理员不能配置或设置虚拟日志文件的大小或数量。

语法

参数

database_id | NULL | DEFAULT

数据库的 ID。 database_idint。有效的输入包括数据库的 ID 号、NULL 或 DEFAULT。 默认值为 NULL。 NULL 和 DEFAULT 是当前数据库的上下文中的等效值。

指定 NULL 可返回当前数据库的 VLF 信息。

你可以指定内置函数 DB_ID。 如果在不指定数据库名称的情况下使用 DB_ID,则当前数据库的兼容级别必须是 90 或更高。

返回的表

展开表

列名称数据类型描述
database_idint数据库 ID。 在 Azure SQL 数据库中,这些值在单一数据库或弹性池中是唯一的,但在逻辑服务器中不是唯一的。
file_idsmallint事务日志的文件 ID。
vlf_begin_offsetbigint虚拟日志文件 (VLF) 相对于事务日志文件开头的偏移位置。
vlf_size_mbfloat虚拟日志文件 (VLF)大小(以 MB 为单位),舍入为两位小数。
vlf_sequence_numberbigint虚拟日志文件 (VLF) 序列号(按已创建的顺序)。 用于唯一标识日志文件中的 VLF。
vlf_activebit指示虚拟日志文件 (VLF)是否正在使用。 0 - VLF 未使用。 1 - VLF 处于活动状态。
vlf_statusint虚拟日志文件 (VLF) 的状态。 可能的值包括 0 - VLF 处于非活动状态 1 - VLF 已初始化,但未使用 2 - VLF 处于活动状态。
vlf_paritytinyint虚拟日志文件 (VLF)的奇偶校验。 在内部用于确定 VLF 内的日志结尾。
vlf_first_lsnnvarchar(48)虚拟日志文件 (VLF) 中第一条日志记录的日志序列号 (LSN)
vlf_create_lsnnvarchar(48)创建虚拟日志文件 (VLF) 的日志记录的日志序列号 (LSN)
vlf_encryptor_thumbprintvarbinary(20)适用于:SQL Server 2019 (15.x) 及更高版本 如果 VLF 使用透明数据加密进行加密,则显示 VLF 加密器的指纹,否则显示 NULL

注解

sys.dm_db_log_info 动态管理函数将替换 DBCC LOGINFO 语句。

SQL Server 事务日志体系结构和管理指南中详细介绍了根据增长事件创建多少个 VLF 的公式。 从 SQL Server 2022 (16.x) 开始,此公式略有更改。

权限

需要数据库中的 VIEW SERVER STATE 权限。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复