sys.master_files (Transact-SQL)

适用于:SQL ServerAzure SQL 托管实例Analytics Platform System (PDW)

包含数据库中存储 master 的数据库的每个文件的行。 sys.master_files 是单个系统范围的视图。

列名称 数据类型 说明
database_id int 应用此文件的数据库的 ID。 数据库始终1为 <a0/a0master>。
file_id int 数据库内文件的 ID。 主数据库 file_id 始终 1是 。
file_guid uniqueidentifier 文件的唯一标识符。

NULL = 数据库已从早期版本的 SQL Server 升级(对 SQL Server 2005 (9.x) 和早期版本有效)。
type tinyint 文件类型:

0 = 行

1 = 日志

2 = FILESTREAM

3 = 仅用于信息性目的标识。 不支持。 不保证以后的兼容性。

4 = 全文(早于 SQL Server 2008(10.0.x);在 SQL Server 2008(10.0.x)及更高版本中升级到或创建的全文目录报告文件类型 0。)
type_desc nvarchar(60) 文件类型的说明:

ROWS
LOG
FILESTREAM
FULLTEXT (早于 SQL Server 2008(10.0.x)的全文目录)。
data_space_id int 此文件所属数据空间的 ID。 数据空间是一个文件组。

0 = 日志文件
name sysname 数据库中文件的逻辑名称。
physical_name nvarchar(260) 操作系统文件名。
state tinyint 文件状态:

0 = ONLINE

1 = RESTORING

2 = RECOVERING

3 = RECOVERY_PENDING

4 = SUSPECT

5 = 仅用于信息性目的标识。 不支持。 不保证以后的兼容性。

6 = OFFLINE

7 = DEFUNCT
state_desc nvarchar(60) 文件状态的说明:

ONLINE
RESTORING
RECOVERING
RECOVERY_PENDING
SUSPECT
OFFLINE
DEFUNCT

有关详细信息,请参阅文件状态
size int 当前文件大小(以 8 KB 为单位的页数)。 对于数据库快照来说,size 表示该快照可以一直用于文件的最大空间。

注意:此字段填充为 FILESTREAM 容器的零。 查询 sys.database_files 目录视图,了解 FILESTREAM 容器的实际大小。
max_size int 最大文件大小(以 8 KB 为单位的页数):

-1 = 文件增长到磁盘已满为止。

268435456 = 日志文件最大大小为 2 TB。

注意:使用无限的日志文件大小报告 -1 升级的数据库,以获取日志文件的最大大小。

注意:如果 max_size = -1growth = 0,则不允许增长。
growth int 0 = 文件是固定大小且不会增长。

> 0 = 文件自动增长。

如果is_percent_growth = 0,增长增量以 8 知识库(KB) 页为单位,舍入到最近的 64 个知识库(KB)。

如果 is_percent_growth = 1为增长增量,则表示为整数百分比。
is_media_read_only bit 1 = 文件位于只读媒体上。

0 = 文件在读/写媒体上。
is_read_only bit 1 = 文件标记为只读。

0 = 文件标记为读/写。
is_sparse bit 1 = 文件是稀疏文件。

0 = 文件不是稀疏文件。

有关详细信息,请参阅查看数据库快照的稀疏文件大小 (Transact-SQL)
is_percent_growth bit 1 = 文件增长百分比。

0 = 页面的绝对增长大小。
is_name_reserved bit 1 = 已删除的文件名是可重用的。 必须先执行日志备份,然后才能将名称(namephysical_name)重新用于新文件名。

0 = 文件名无法重复使用。
create_lsn numeric(25,0) 文件创建时的日志序列号 (LSN)。
drop_lsn numeric(25,0) 文件删除时的 LSN。
read_only_lsn numeric(25,0) 包含该文件的文件组从可读/写更改为只读(最新更改)时的 LSN。
read_write_lsn numeric(25,0) 包含该文件的文件组从只读更改为可读/写(最新更改)时的 LSN。
differential_base_lsn numeric(25,0) 差异备份的基准。 此 LSN 包含在差异备份中之后的数据区已更改。
differential_base_guid uniqueidentifier 差异备份所基于的基础备份的唯一标识符。
differential_base_time datetime 对应于 differential_base_lsn.
redo_start_lsn numeric(25,0) 下一次前滚必须开始时的 LSN。

NULL 除非 state = RESTORINGstate = RECOVERY_PENDING
redo_start_fork_guid uniqueidentifier 恢复分叉的唯一标识符。 first_fork_guid还原的下一个日志备份必须与此值匹配。 这将展示容器的当前状态。
redo_target_lsn numeric(25,0) 对此文件的联机前滚可以停止时的 LSN。

NULL 除非 state = RESTORINGstate = RECOVERY_PENDING
redo_target_fork_guid uniqueidentifier 可恢复容器的恢复分叉。 与 redo_target_lsn.
backup_lsn numeric(25,0) 文件的最新数据或差异备份的 LSN。
credential_id int credential_id用于存储文件的源sys.credentials。 例如,当 SQL Server 在 Azure 虚拟机上运行,数据库文件存储在Azure Blob 存储中时,将使用访问凭据配置到存储位置。

注解

在删除或重新生成大型索引时,或者在删除或截断大型表时,数据库引擎将延迟实际页释放及其关联锁,直至事务提交完毕为止。 延迟删除操作不会立即释放分配的空间。 因此,删除或截断大型对象后立即返回 sys.master_files 的值可能不会反映可用的实际磁盘空间。

tempdb对于数据库,sys.master_files显示初始tempdb大小。 这些值用作在 SQL Server 启动时创建的模板 tempdbtempdb 此视图中没有反映增长。 若要获取文件的当前大小 tempdb ,请改为查询 tempdb.sys.database_files

权限

查看相应行所需的最小权限为 CREATE DATABASEALTER ANY DATABASEVIEW ANY DEFINITION