更新時(shí)間:2021-08-16 11:05:02 來源:動力節(jié)點(diǎn) 瀏覽1954次
SQL Server(所有支持的版本)
每個(gè) SQL Server 數(shù)據(jù)庫至少有兩個(gè)操作系統(tǒng)文件:一個(gè)數(shù)據(jù)文件和一個(gè)日志文件。數(shù)據(jù)文件包含數(shù)據(jù)和對象,例如表、索引、存儲過程和視圖。日志文件包含恢復(fù)數(shù)據(jù)庫中所有事務(wù)所需的信息。數(shù)據(jù)文件可以組合在文件組中以用于分配和管理目的。
SQL Server 數(shù)據(jù)庫具有三種類型的文件,如下表所示。
| 文件 | 描述 |
|---|---|
| 基本的 | 包含數(shù)據(jù)庫的啟動信息并指向數(shù)據(jù)庫中的其他文件。每個(gè)數(shù)據(jù)庫都有一個(gè)主數(shù)據(jù)文件。主數(shù)據(jù)文件的推薦文件擴(kuò)展名是 .mdf。 |
| 中學(xué) | 可選的用戶定義數(shù)據(jù)文件。通過將每個(gè)文件放在不同的磁盤驅(qū)動器上,數(shù)據(jù)可以分布在多個(gè)磁盤上。輔助數(shù)據(jù)文件的推薦文件擴(kuò)展名是 .ndf。 |
| 事務(wù)日志 | 日志保存用于恢復(fù)數(shù)據(jù)庫的信息。每個(gè)數(shù)據(jù)庫必須至少有一個(gè)日志文件。事務(wù)日志的推薦文件擴(kuò)展名是 .ldf。 |
例如,名為Sales的簡單數(shù)據(jù)庫有一個(gè)包含所有數(shù)據(jù)和對象的主文件和一個(gè)包含事務(wù)日志信息的日志文件。可以創(chuàng)建一個(gè)名為Orders 的更復(fù)雜的數(shù)據(jù)庫,其中包括一個(gè)主文件和五個(gè)輔助文件。數(shù)據(jù)庫中的數(shù)據(jù)和對象分布在所有六個(gè)文件中,四個(gè)日志文件包含事務(wù)日志信息。
默認(rèn)情況下,數(shù)據(jù)和事務(wù)日志放在相同的驅(qū)動器和路徑上以處理單磁盤系統(tǒng)。對于生產(chǎn)環(huán)境,此選擇可能不是最佳選擇。我們建議您將數(shù)據(jù)和日志文件放在不同的磁盤上。
SQL Server 文件有兩種文件名類型:
logical_file_name: logical_file_name 是用于在所有 Transact-SQL 語句中引用物理文件的名稱。邏輯文件名必須符合 SQL Server 標(biāo)識符的規(guī)則,并且在數(shù)據(jù)庫中的邏輯文件名中必須是唯一的。
os_file_name: os_file_name 是物理文件的名稱,包括目錄路徑。它必須遵循操作系統(tǒng)文件名的規(guī)則。
當(dāng) SQL Server 的多個(gè)實(shí)例在一臺計(jì)算機(jī)上運(yùn)行時(shí),每個(gè)實(shí)例都會收到一個(gè)不同的默認(rèn)目錄來保存在該實(shí)例中創(chuàng)建的數(shù)據(jù)庫的文件。
SQL Server 數(shù)據(jù)文件中的頁面按順序編號,文件中的第一頁從零 (0) 開始。數(shù)據(jù)庫中的每個(gè)文件都有一個(gè)唯一的文件 ID 號。要唯一標(biāo)識數(shù)據(jù)庫中的頁面,需要文件 ID 和頁碼。以下示例顯示了具有 4 MB 主數(shù)據(jù)文件和 1 MB 輔助數(shù)據(jù)文件的數(shù)據(jù)庫中的頁碼。

文件頭頁是包含文件屬性信息的第一頁。文件開頭的其他幾個(gè)頁面也包含系統(tǒng)信息,例如分配映射。存儲在主數(shù)據(jù)文件和第一個(gè)日志文件中的系統(tǒng)頁面之一是數(shù)據(jù)庫引導(dǎo)頁面,其中包含有關(guān)數(shù)據(jù)庫屬性的信息。
SQL Server 文件可以從它們最初指定的大小自動增長。定義文件時(shí),可以指定特定的增長增量。每次文件被填滿時(shí),它的大小都會增加增長增量。如果文件組中有多個(gè)文件,則在所有文件都已滿之前它們不會自動增長。
每個(gè)文件還可以指定最大大小。如果未指定最大大小,則文件可以繼續(xù)增長,直到用完磁盤上的所有可用空間。當(dāng) SQL Server 用作嵌入在用戶無法方便地訪問系統(tǒng)管理員的應(yīng)用程序中的數(shù)據(jù)庫時(shí),此功能特別有用。用戶可以讓文件根據(jù)需要自動增長,以減少監(jiān)控?cái)?shù)據(jù)庫中的可用空間和手動分配額外空間的管理負(fù)擔(dān)。
數(shù)據(jù)庫快照用于存儲其寫時(shí)復(fù)制數(shù)據(jù)的文件形式取決于快照是由用戶創(chuàng)建還是內(nèi)部使用:
用戶創(chuàng)建的數(shù)據(jù)庫快照將其數(shù)據(jù)存儲在一個(gè)或多個(gè)稀疏文件中。稀疏文件技術(shù)是 NTFS 文件系統(tǒng)的一個(gè)特性。起初,一個(gè)稀疏文件不包含用戶數(shù)據(jù),用戶數(shù)據(jù)的磁盤空間還沒有分配給稀疏文件。
某些 DBCC 命令在內(nèi)部使用數(shù)據(jù)庫快照。這些命令包括 DBCC CHECKDB、DBCC CHECKTABLE、DBCC CHECKALLOC 和 DBCC CHECKFILEGROUP。內(nèi)部數(shù)據(jù)庫快照使用原始數(shù)據(jù)庫文件的稀疏備用數(shù)據(jù)流。與稀疏文件一樣,備用數(shù)據(jù)流是 NTFS 文件系統(tǒng)的一項(xiàng)功能。稀疏交替數(shù)據(jù)流的使用允許將多個(gè)數(shù)據(jù)分配與單個(gè)文件或文件夾相關(guān)聯(lián),而不會影響文件大小或卷統(tǒng)計(jì)數(shù)據(jù)。
以上就是動力節(jié)點(diǎn)小編介紹的"SQL數(shù)據(jù)庫文件詳解",希望對大家有幫助,想了解更多可查看數(shù)據(jù)庫教程。動力節(jié)點(diǎn)在線學(xué)習(xí)教程,針對沒有任何Java基礎(chǔ)的讀者學(xué)習(xí),讓你從入門到精通,主要介紹了一些Java基礎(chǔ)的核心知識,讓同學(xué)們更好更方便的學(xué)習(xí)和了解Java編程,感興趣的同學(xué)可以關(guān)注一下。

初級 202925

初級 203221

初級 202629

初級 203743