Skip to main content
Enterprise applications
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

Microsoft SQL Server 資料庫檔案和檔案群組

貢獻者

在 ONTAP 上正確放置 SQL Server 資料庫檔案是初始部署階段的關鍵。如此可確保最佳效能、空間管理、備份與還原時間、並可根據您的業務需求進行設定。

理論上、 SQL Server ( 64 位元)支援每個執行個體 32,767 個資料庫、以及 524272TB 的資料庫大小、雖然一般安裝通常有多個資料庫。不過 SQL Server 可以處理的資料庫數量取決於負載和硬體。看到 SQL Server 執行個體託管數十個、數百個甚至數千個小型資料庫、並不罕見。

每個資料庫都包含一或多個資料檔案、以及一或多個交易記錄檔。交易記錄會儲存資料庫交易的相關資訊、以及每個工作階段所做的所有資料修改。每次修改資料時、 SQL Server 都會在交易記錄中儲存足夠的資訊、以復原(復原)或重做(重新執行)動作。SQL Server 交易記錄是 SQL Server 在資料完整性和健全性方面聲譽的重要一環。交易記錄對於 SQL Server 的原子性、一致性、隔離和耐用性( ACID )功能至關重要。一旦資料頁發生任何變更、 SQL Server 就會立即寫入交易記錄檔。每個 Data 操縱語言( DML )陳述式(例如、 SELECT 、 INSERT 、 UPDATE 或 DELETE )都是完整的交易、而且交易記錄會確保整個以 Set 為基礎的作業都能進行、確保交易的完整性。

每個資料庫都有一個主要資料檔案、預設會有 .mdf 副檔名。此外、每個資料庫都可以有次要資料庫檔案。根據預設、這些檔案的副檔名為 .NDF 。

所有資料庫檔案都會分組為檔案群組。檔案群組是邏輯單元、可簡化資料庫管理。它們允許在邏輯物件放置和實體資料庫檔案之間進行分隔。當您建立資料庫物件表格時、您可以在檔案群組中指定它們應該放置的位置、而無需擔心基礎資料檔案組態。

錯誤:缺少圖形影像

將多個資料檔案放入檔案群組的功能可讓您將負載分散到不同的儲存裝置、有助於改善系統的 I/O 效能。與此相反的是、由於 SQL Server 會循序寫入交易記錄檔、因此無法從多個檔案中獲益。

檔案群組中的邏輯物件放置與實體資料庫檔案之間的分隔、可讓您微調資料庫檔案配置、充分發揮儲存子系統的效益。例如、將產品部署給不同客戶的獨立軟體廠商( ISV )、可以根據基礎 I/O 組態和部署階段的預期資料量、調整資料庫檔案數量。這些變更對應用程式開發人員來說是透明的、他們將資料庫物件放置在檔案群組中、而非資料庫檔案中。

提示 * NetApp 建議 * 避免將主要檔案群組用於系統物件以外的任何項目。為使用者物件建立個別的檔案群組或一組檔案群組、可簡化資料庫管理和災難恢復、尤其是大型資料庫。

您可以在建立資料庫或將新檔案新增至現有資料庫時指定初始檔案大小和自動成長參數。SQL Server 在選擇要將資料寫入哪個資料檔案時、會使用比例填滿演算法。它會將大量資料按比例寫入檔案中的可用空間。檔案中的可用空間越大、其處理的寫入次數就越多。

提示 * NetApp 建議 * 單一檔案群組中的所有檔案都具有相同的初始大小和自動成長參數、其成長大小以 MB 為單位定義、而非百分比。這有助於比例填滿演算法在資料檔案之間平均平衡寫入活動。

每次 SQL Server 增加檔案時、都會以零填滿新分配的空間。該程序會封鎖所有需要寫入對應檔案的工作階段、或在交易記錄增加時產生交易記錄。

SQL Server 一律會將交易記錄檔歸零、而且該行為無法變更。不過、您可以啟用或停用即時檔案初始化來控制資料檔案是否正在歸零。啟用即時檔案初始化有助於加速資料檔案成長、並縮短建立或還原資料庫所需的時間。

與即時檔案初始化有關的安全風險較小。啟用此選項時、資料檔案的未分配部分可能會包含先前刪除的作業系統檔案資訊。資料庫管理員可以檢查這類資料。

您可以將 SA_SA_SAM_VOLUM_NAME 權限(也稱為「執行 Volume 維護工作」)新增至 SQL Server 啟動帳戶、以啟用即時檔案初始化。您可以在本機安全性原則管理應用程式( secpol.msc )下執行此動作、如下圖所示。開啟「執行 Volume 維護工作」權限的內容、並將 SQL Server 啟動帳戶新增至該處的使用者清單。

錯誤:缺少圖形影像

若要檢查權限是否已啟用、您可以使用下列範例中的程式碼。此程式碼會設定兩個追蹤旗標、強制 SQL Server 將其他資訊寫入錯誤記錄檔、建立小型資料庫、以及讀取記錄內容。

DBCC TRACEON(3004,3605,-1)
GO
CREATE DATABASE DelMe
GO
EXECUTE sp_readerrorlog
GO
DROP DATABASE DelMe
GO
DBCC TRACEOFF(3004,3605,-1)
GO

如果未啟用即時檔案初始化、 SQL Server 錯誤記錄會顯示 SQL Server 除了將 ldf 記錄檔歸零之外、還會將 MDF 資料檔案歸零、如下例所示。當啟用即時檔案初始化時、它只會顯示記錄檔的零位。

錯誤:缺少圖形影像

執行 Volume 維護工作在 SQL Server 2016 中已簡化、稍後會在安裝過程中提供選項。此圖顯示選項、可授予 SQL Server 資料庫引擎服務執行 Volume 維護工作的權限。

錯誤:缺少圖形影像

控制資料庫檔案大小的另一個重要資料庫選項是自動壓縮。啟用此選項時、 SQL Server 會定期縮減資料庫檔案、減少檔案大小、並釋出空間給作業系統。這項作業需要大量資源、而且很少有用、因為當新資料進入系統時、資料庫檔案會在一段時間後再次增加。永遠不要在資料庫上啟用自動壓縮。