適用於:SQL Server - 僅限 Windows
在 SQL Server 2012 (11.x) 和更新版本中,系統資料庫(master
、model
、msdb
和 tempdb
),以及 Database Engine 使用者資料庫可以使用伺服器訊息塊 (SMB) 檔案伺服器作為記憶體選項來安裝。 這同時適用於 SQL Server 獨立安裝和 SQL Server 容錯移轉叢集安裝 (FCI)。
注意
SMB 檔案共用目前不支援 FILESTREAM。
安裝考量
SMB 檔案共用格式
當您指定 SMB 檔案共享時,獨立和 FCI 資料庫的通用命名慣例 (UNC) 路徑格式支援下列值:
\\ServerName\ShareName\
\\ServerName\ShareName
如需詳細資訊,請參閱 通用命名慣例。
不支援回送 UNC 路徑(伺服器名稱為 localhost、127.0.0.1
或本機電腦名稱的 UNC 路徑。 特殊情況下,也不支援裝載在與 SQL Server 相同節點上的 SQL Server 與文件伺服器叢集。 若要避免這種情況,您應該在個別的 Windows 叢集上建立 SQL Server 和文件伺服器叢集。
不支援下列 UNC 路徑格式:
- Loopback path,例如
\\localhost\...\
或\\127.0.0.1\...\
- 系統管理共用,例如
\\servername\x$
- 其他 UNC 路徑格式,例如
\\?\x:\
- 映射的網路磁碟機
支援的資料定義語言 (DDL) 陳述式
以下的 Transact-SQL DDL 陳述式和資料庫引擎預存程序支援 SMB 檔案共用:
安裝選項
在設定使用者介面的 [Database Engine 組態] 頁面上,於 [數據目錄] 索引卷標上,將 [數據根 目錄] 參數 設定為 [
\\<FileServer>\<Share1>\
]。 以您環境中的值取代<FileServer>
和<Share1>
。在命令提示字元安裝中,將
/INSTALLSQLDATADIR
指定為\\<FileServer>\<Share1>\
。以下是使用SMB檔案共享選項在獨立伺服器上安裝SQL Server的範例語法:
Setup.exe /q /ACTION=Install /FEATURES=SQL /INSTANCENAME=MSSQLSERVER /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="<password>" /SQLSYSADMINACCOUNTS="<DomainName\UserName>" /AGTSVCACCOUNT="<DomainName\UserName>" /AGTSVCPASSWORD="<password>" /INSTALLSQLDATADIR="\\FileServer\Share1\" /IACCEPTSQLSERVERLICENSETERMS
從 SQL Server 2022 (16.x) 開始,請閱讀 Microsoft SQL Server 軟體授權條款,網址為 aka.ms/useterms。
若要安裝包含 Database Engine 和 Analysis Services 預設執行個體的單節點 SQL Server 容錯移轉叢集執行個體:
setup.exe /q /ACTION=InstallFailoverCluster /InstanceName=MSSQLSERVER /INDICATEPROGRESS /ASSYSADMINACCOUNTS="<DomainName\UserName>" /ASDATADIR=<Drive>:\OLAP\Data /ASLOGDIR=<Drive>:\OLAP\Log /ASBACKUPDIR=<Drive>:\OLAP\Backup /ASCONFIGDIR=<Drive>:\OLAP\Config /ASTEMPDIR=<Drive>:\OLAP\Temp /FAILOVERCLUSTERDISKS="<Cluster Disk Resource Name - for example, 'Disk S:'" /FAILOVERCLUSTERNETWORKNAME="<Insert Network Name>" /FAILOVERCLUSTERIPADDRESSES="IPv4;xx.xxx.xx.xx;Cluster Network;xxx.xxx.xxx.x" /FAILOVERCLUSTERGROUP="MSSQLSERVER" /Features=AS,SQL /ASSVCACCOUNT="<DomainName\UserName>" /ASSVCPASSWORD="<password>" /AGTSVCACCOUNT="<DomainName\UserName>" /AGTSVCPASSWORD="<password>" /INSTALLSQLDATADIR="\\FileServer\Share1\" /SQLCOLLATION="SQL_Latin1_General_CP1_CS_AS" /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="<password>" /SQLSYSADMINACCOUNTS="<DomainName\UserName> /IACCEPTSQLSERVERLICENSETERMS
如需 SQL Server 中各種命令行參數選項使用方式的詳細資訊,請參閱 從命令提示字元安裝及設定 Windows 上的 SQL Server。
注意
您的密碼應遵循 SQL Server 預設 密碼原則。 根據預設,密碼長度必須至少為8個字元,且包含下列四個集合中的三個字元:大寫字母、小寫字母、基底10位數和符號。 密碼長度最多可達 128 個字元。 使用盡可能長且複雜的密碼。
作系統考慮(SMB 通訊協定vs. SQL伺服器)
不同的 Windows 作業系統有不同的 SMB 通訊協定版本,而且 SMB 通訊協定版本對於 SQL Server 而言是透明的。 您可以找到不同 SMB 通訊協定版本相對於 SQL Server 的優點。
操作系統 | SMB2 通訊協定版本 | 對 SQL Server 的好處 |
---|---|---|
Windows Server 2012 和更新版本,包括 Server Core | 3.0 | 支援透明切換檔案共用,確保零停機時間,且在檔案伺服器叢集設定中,不需要資料庫管理員或檔案伺服器管理員的介入。 支援同時使用多個網路介面的輸入/輸出,以及網路介面故障的容忍。 支援具有 RDMA 功能的網路介面。 如需這些功能和伺服器訊息塊的詳細資訊,請參閱 伺服器訊息塊概觀。 支援可擴展檔案伺服器 (SoFS) 的持續可用性。 |
Windows Server 2012 R2 和更新版本,包括 Server Core | 3.2 | 支援透明切換檔案共用,確保零停機時間,且在檔案伺服器叢集設定中,不需要資料庫管理員或檔案伺服器管理員的介入。 支持使用多個網路介面同時進行 I/O 操作,並利用 SMB 多通道功能來容忍網路介面故障。 利用 SMB Direct 支援具有 RDMA 功能的網路介面。 如需這些功能和伺服器訊息塊的詳細資訊,請參閱 伺服器訊息塊概觀。 支援向外延展檔案伺服器 (SoFS) 的持續可用性。 優化用於 SQL Server 交易式樣式工作負載中常見的小型隨機讀取/寫入 I/O 作業。 預設會啟動最大傳輸單位 (MTU),可大幅提高大型循序傳送的效能,例如 SQL Server 資料倉儲及資料庫備份或還原。 |
安全性考量
SQL Server 服務帳戶和 SQL Server Agent 服務帳戶應具有 SMB 共用資料夾的
FULL CONTROL
共用許可權和 NTFS 許可權。 如果使用 SMB 檔案伺服器,SQL Server 服務帳戶可以是網域帳戶或系統帳戶。 如需共用和 NTFS 許可權的詳細資訊,請參閱在文件伺服器 上共用和 NTFS 許可權。注意
SMB 共用資料夾上的
FULL CONTROL
共用許可權和NTFS許可權應限制為SQL Server服務帳戶、SQL Server Agent服務帳戶,以及具有系統管理員伺服器角色的 Windows 使用者。使用網域帳戶作為 SQL Server 服務帳戶。 如果使用系統帳戶作為服務帳戶,請以
<domain-name>\<computer-name>*$*
格式授與計算機帳戶的許可權。注意
在 SQL Server 設定期間,如果 SMB 檔案共用指定為記憶體選項,您必須將網域帳戶指定為服務帳戶。 使用 SMB 檔案共享時,
System
帳戶只能在安裝 SQL Server 之後指定為服務帳戶。虛擬帳戶無法向遠端位置進行驗證。 所有虛擬帳戶都會使用電腦帳戶的許可權。 將計算機帳戶配置為
<domain-name>\<computer-name>*$*
格式。用來安裝 SQL Server 的帳戶應該具有對作為資料目錄的 SMB 檔案共享資料夾或任何其他資料資料夾的完全控制權(使用者資料庫資料夾、使用者資料庫記錄資料夾、
tempdb
資料夾、tempdb 記錄資料夾、備份資料夾)在叢集設定期間。用來安裝 SQL Server 的帳戶應授與 SMB 檔案伺服器上的
SeSecurityPrivilege
許可權。 若要授與此許可權,請使用文件伺服器上的本機安全策略控制台,將 SQL Server 安裝程式帳戶新增至管理稽核和安全性記錄 原則。 此設定可在 [本機原則] 的 [用戶權力指派] 區段中找到。
已知問題和限制
卸離位於網路連接記憶體上的 SQL Server 資料庫之後,您可能會在嘗試重新附加 SQL Server 資料庫時遇到資料庫許可權問題。 如需詳細資訊,請參閱錯誤 5120。
如果使用SMB檔案共享作為 SQL Server 叢集實例的記憶體選項,SQL Server故障轉移叢集診斷記錄預設無法寫入檔案共享,因為 SQL Server 資源 DLL 缺少檔案共用的讀取/寫入許可權。 若要解決這個問題,請嘗試下列其中一個方法:
授與檔案共用的讀取/寫入權限給叢集中的所有電腦物件。
將診斷記錄的位置設定為本機檔案路徑。 請參閱下列範例:
ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG PATH = 'C:\logs';
當您在 SMB 檔案共享上裝載 SQL Server 數據檔時,針對檔案的所有 I/O 都會透過伺服器或虛擬機上的網路介面。 請確定有足夠的網路頻寬可支援工作負載所需的 I/O。
由於網路連線問題或其他失敗而導致裝載 SQL Server 數據檔的檔案共用無法使用,可能會導致 SQL Server 中的 I/O 延遲或失敗。 對於任務關鍵性工作負載,請確保網路和檔案共用內建備份,且檔案共用支援 SMB 3.0 透明故障轉移,也稱為 持續可用性。