搜尋本站文章

2009-11-09

將 SQL Server 資料庫建立在網路硬碟(例如:NAS,Network Attached Storage):network database




本文僅討論實作方式,並未包含:效能、安全等主題的討論。



若在建立資料庫時,選擇是建立到網路硬碟時,將遇到以下的錯誤訊息:
訊息 5110,層級 16,狀態 2,行 1
檔案 "\\10.0.1.8\d$\DBNetDB01.mdf" 所在的網路路徑不支援資料庫檔案。
訊息 1802,層級 16,狀態 1,行 1
CREATE DATABASE 失敗。某些列出的檔案名稱無法建立。請檢查相關的錯誤。







若是確認要在網路硬碟(例如:NAS,Network Attached Storage) 上建立資料庫,請啟用追蹤旗標 1807 。

啟用追蹤旗標 1807 會略過檢查,並允許您使用網路資料庫檔案設定 SQL Server。

因為網路錯誤有損害資料庫完整性的風險,以及使用網路檔案共享來儲存資料庫也可能影響效能。

建議:
您利用存放區域網路 (SAN)、iSCSI 型網路或本機連接的磁碟來儲存 SQL Server 資料庫檔案,因為這個組態可使 SQL Server 效能和可靠性最佳化。
依預設,不會對 SQL Server 啟用使用網路資料庫檔案 (儲存在具備網路功能的伺服器或網路連接的儲存體上)。



實作練習

適用版本:
SQL Server 7、2000、2005、2008

準備工作
請先設定、確認執行個體的「SQL Server 服務帳戶」,對於遠端的網路硬碟具備寫入的權限。

工作1:啟用追蹤旗標 1807
工作2:建立資料庫在 UNC 網路硬碟。


請參考以下的範例碼:
-- 啟用追蹤旗標 1807 。
DBCC TRACEON (1807)
GO

-- 列出所有針對目前工作階段而啟用的追蹤旗標。
DBCC TRACESTATUS;
GO

-- 建立資料庫,已啟用追蹤旗標 1807。
CREATE DATABASE [NetDB01] ON  PRIMARY
( NAME = N'NetDB01', FILENAME = N'\\10.0.1.8\c$\NetDB01.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB )
LOG ON
( NAME = N'NetDB01_log', FILENAME = N'\\10.0.1.8\c$\NetDB01_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)
GO

-- 停用指定的追蹤旗標 1807
DBCC TRACEOFF(1807)
GO

-- 列出所有針對目前工作階段而啟用的追蹤旗標。
DBCC TRACESTATUS;
GO

-- 檢查資料庫的檔案
SELECT * FROM NetDB01.sys.database_files

-- 對此資料庫新增資料表與資料
SELECT *
INTO NetDB01.dbo.TransactionHistory
FROM AdventureWorks2008.Production.TransactionHistory


請參考下圖所示:






參考資料:
說明 SQL Server 對網路資料庫檔案的支援
Description of support for network database files in SQL Server
http://support.microsoft.com/kb/304261

每個資料庫管理員都應知道的磁碟機快取與 SQL Server 並用說明
Description of using disk drive caches with SQL Server that every database administrator should know
http://support.microsoft.com/kb/234656/