4.3 数据库文件
一个数据库文件与普通的操作系统文件没有什么不同(除了数据库文件,SQL Server还有备份装置,这种装置是一种逻辑装置,它映射到操作系统文件或者物理装置——例如磁带驱动器。在本章中不会再讨论用来存储备份的文件)。一个数据库会拥有至少两个并且有可能是好几个数据库文件,在数据库被创建或修改时可以指定这些文件。每一个数据库都必须拥有至少两个文件,一个是为了存放数据(也包括索引和分配页面),另一个是为了存放事务日志。
SQL Server 2005允许以下三种类型的数据库文件:
主数据文件 每一个数据库都有一个主数据文件除了用来存储数据,还能跟踪该数据库中的所有其他文件。通常情况下主数据文件的扩展名是.mdf。
辅助数据文件 一个数据库可有0个到多个辅助数据文件。通常情况下,辅助数据文件的扩展名为.ndf。
日志文件 每个数据库都至少有一个日志文件包含恢复数据库中所有事务所需的信息。通常情况下,日志文件的扩展名为.ldf。
每个数据库文件在创建时可以指定五个属性:逻辑文件名、物理文件名、初始大小、最大尺寸和成长增量,这些属性的值和关于每个文件的其他信息可以从元数据视图sys.database_files中看到,这个视图对数据库用到的每一个文件都包含有一行信息。在表4-1中列有视图sys.databases能显示的大多数列。这里没有提到的列包含与事务日志备份有关的信息,这些信息与某些特定的文件有关,我们将会在第5章中讨论事务日志。
表4-1 sys.database_files视图
|
列 |
描述 |
|
fileid |
文件标识号码(对每个数据库都是唯一的) |
|
file_guid |
文件的GUID NULL = 数据库从较早版本的数据库升级而来 |
|
type |
文件类型 0 = 行 1 = 日志 2 = 保留将来使用 3 = 保留将来使用 4 = 全文 |
|
列 |
描述 |
|
type_desc |
文件类型描述 行 日志 全文 |
|
data_space_id |
该文件所属数据空间ID。数据空间是一个文件组 0 = 日志文件 |
|
name |
文件的逻辑名称 |
|
physical_name |
操作系统文件名称 |
|
state |
文件状态 0 = 在线 1 = 还原中 2 = 恢复中 3 = 等待恢复中 4 = 置疑 5 = 保留到将来使用 6 = 离线 7 = 死亡 |
|
state_desc |
文件状态描述: 在线(ONLINE) 还原中(RESOTRE) 恢复中(RECOVERING) 等待恢复中(RECOVERY_PENDING) 置疑(SUSPECT) 离线(OFFLINE) 死亡(DEFUNCT) |
|
size |
文件当前大小,单位为页面(8KB) 0 = 不适用 对一个数据库快照,大小反映了该快照能够为这个文件使用的最大空间 |
|
max_size |
最大文件大小,单位为页面(8KB): 0 = 不允许增长 -1 = 文件可以增长到磁盘满为止 268 435 456 = 日志文件能够增长到最大2TB |
|
列 |
描述 |
|
growth |
0 = 文件大小固定,不会增长 >0 = 文件将自动增长 如果 is_percent_growth = 0,则增量以 8 KB 页为单位,并舍入到最近的 64 KB 如果 is_percent_growth = 1,增量将用整数百分比表示 |
|
is_media_read_only |
1 = 文件位于只读媒体上 0 = 文件位于读写媒体上 |
|
is_read_only |
1 = 文件标记为只读 0 = 文件标记为读/写 |
|
is_sparse |
1 = 文件是稀疏文件 0 = 文件不是稀疏文件 (稀疏文件被用在数据库快照上,本章稍后讨论) |
|
is_percent_growth |
1 = 文件的增长以百分比表示 0 = 以页数为单位表示绝对增长大小 |
|
is_name_reserved |
1 = 只有在下一次日志备份之后才能重用删除的文件名(name 或 physical_name) 从数据库删除文件时,逻辑名称将停留在保留状态,直到下一次日志备份 此列只在完整恢复模式和大容量日志恢复模式下相关 |
| 回书目 上一节 下一节 |