如何:建立 Windows 驗證的鏡像結束點 (Transact-SQL)
每個資料庫鏡像伺服器執行個體都需要指派給執行個體之資料庫鏡像端點的唯一接聽程式通訊埠。伺服器執行個體只可有一個資料庫鏡像端點,而這個端點具有單一通訊埠。建立資料庫鏡像端點後,該資料庫鏡像端點即可使用本機系統上的任何可用通訊埠。伺服器執行個體上的所有資料庫鏡像工作階段都會接聽該通訊埠,且資料庫鏡像的所有內送連接也都會使用該通訊埠。
當建立端點時,系統管理員會指定伺服器執行個體的驗證及加密方法。
重要事項 |
---|
若資料庫鏡像端點存在且已在使用中,我們建議您在該伺服器執行個體上為每個工作階段使用該端點。卸除使用中端點會中斷現有工作階段的連接。如果已針對工作階段設定見證,則卸除資料庫鏡像端點可能會導致該工作階段的主體伺服器失去仲裁;若發生此情況,則資料庫會離線,並中斷連接到資料庫的所有使用者。如需詳細資訊,請參閱<仲裁:見證如何影響資料庫可用性>。 |
若要使用 Windows 驗證建立鏡像端點
連結至您要建立資料庫鏡像端點的伺服器執行個體。
使用下列陳述式決定資料庫鏡像端點是否已經存在。
SELECT name, role_desc, state_desc FROM sys.database_mirroring_endpoints
重要事項 如果伺服器執行個體已經有資料庫鏡像端點,則在您於伺服器執行個體上建立的其他任何工作階段,都會使用該端點。
若要以 Transact-SQL 來建立使用 Windows 驗證的端點,請使用 CREATE ENDPOINT 陳述式。陳述式會採用下列一般形式:
CREATE ENDPOINT <endpointName>
STATE=STARTED
AS TCP ( LISTENER_PORT = <listenerPortList> )
FOR DATABASE_MIRRORING
(
[ AUTHENTICATION = WINDOWS [ <authorizationMethod> ]
]
[ [,] ENCRYPTION = REQUIRED
[ ALGORITHM { <algorithm> } ]
]
[,] ROLE = <role>
)
其中
<endpointName> 是伺服器執行個體之資料庫鏡像端點的唯一名稱。
STARTED 指定要啟動及要開始接聽連接的端點。資料庫鏡像端點通常是在 STARTED 狀態下建立。您也可以在 STOPPED 狀態 (預設值) 或 DISABLED 狀態下啟動工作階段。
<listenerPortList> 是您想要伺服器用來接聽資料庫鏡像訊息的單一通訊埠編號 (nnnn)。只允許 TCP;指定任何其他通訊協定將造成錯誤。
每個電腦系統僅能使用某個通訊埠編號一次。建立資料庫鏡像端點後,該資料庫鏡像端點即可使用本機系統上的任何可用通訊埠。若要識別系統上 TCP 端點目前使用的通訊埠,請使用下列 Transact-SQL 陳述式:
SELECT name, port FROM sys.tcp_endpoints
重要事項 每個伺服器執行個體都需要一個且唯一的接聽程式通訊埠。
對於 Windows 驗證而言,AUTHENTICATION 選項是選擇性的,除非您想要端點只使用 NTLM 或 Kerberos 來驗證連接。<authorizationMethod> 可以指定用以驗證連接的方法,並可指定為下列其中之一:NTLM、KERBEROS 或 NEGOTIATE。預設值 NEGOTIATE,將導致端點使用 Windows 交涉通訊協定來選擇 NTLM 或 Kerberos。視相對端點的驗證層級而定,交涉可讓連接需要或不需要驗證。如需有關這些方法的詳細資訊,請參閱<端點驗證類型>。
依預設,ENCRYPTION 是設定為 REQUIRED。這表示此端點的所有連接都必須使用加密。不過,您可以停用加密或使其在端點上為選擇性的。替代方案如下所示:
值
定義
DISABLED
指定透過連接傳送的資料不加密。
SUPPORTED
指定只有在相對端點指定為 SUPPORTED 或 REQUIRED 時才加密資料。
REQUIRED
指定透過連接所傳送的資料必須加密。
如果端點需要加密,其他的端點必須將 ENCRYPTION 設定為 SUPPORTED 或 REQUIRED。
<algorithm> 提供指定端點加密標準的選項。<algorithm> 的值可為下列任一演算法或演算法組合:RC4、AES、AES RC4 或 RC4 AES。
AES RC4 指定此端點將交涉加密演算法,將優先權指定給 AES 演算法。RC4 AES 指定此端點將交涉加密演算法,將優先權指定給 RC4 演算法。如果這兩個端點都指定了這兩種演算法 (但指定順序不同),則以接受連接的端點為準。
[!附註]
雖然 RC4 比 AES 快許多,但是 RC4 相對而言是較弱的演算法,而 AES 相對而言則是較強的演算法。因此,建議您使用 AES 演算法。
<role> 定義伺服器可以執行的角色。指定所需的 ROLE。
若要允許伺服器執行個體做為一個資料庫鏡像工作階段的一個角色,並做為另一個工作階段的其他角色,請指定 ROLE=ALL。若要限制伺服器執行個體做為夥伴或見證伺服器,請分別指定 ROLE=PARTNER 或 ROLE=WITNESS。
[!附註]
對於 SQL Server Express 而言,WITNESS 是唯一可用的選項。
如需 CREATE ENDPOINT 語法的完整描述,請參閱<CREATE ENDPOINT (Transact-SQL)>。
[!附註]
若要變更現有的終止點,請使用 ALTER ENDPOINT (Transact-SQL)。
範例
下列範例會在三部不同的電腦系統上建立預設伺服器執行個體的終止點:
伺服器執行個體的角色 |
主機電腦的名稱 |
---|---|
夥伴 (一開始為主體角色) |
SQLHOST01\. |
夥伴 (一開始為鏡像角色) |
SQLHOST02\. |
見證 |
SQLHOST03\. |
在此範例中,雖然任何可用的通訊埠編號都可以使用,不過三個終止點都會使用通訊埠編號 7022。AUTHENTICATION 選項是不必要的,因為終止點會使用預設類型「Windows 驗證」。ENCRYPTION 選項也沒有必要,因為終止點隨時會交涉連線的驗證方法,這是「Windows 驗證」的預設行為。另外,所有終止點都需要加密,這也是預設行為。
每個伺服器執行個體都限制為擔任夥伴或見證,每個伺服器的終止點都會明確地指定其角色 (ROLE=PARTNER 或 ROLE=WITNESS)。
重要事項 |
---|
每個伺服器執行個體都僅能有一個終止點。因此,如果您要伺服器執行個體成為某些工作階段中的夥伴,而其他的為見證,請指定 ROLE=ALL。 |
--Endpoint for initial principal server instance, which
--is the only server instance running on SQLHOST01.
CREATE ENDPOINT endpoint_mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 7022 )
FOR DATABASE_MIRRORING (ROLE=PARTNER);
GO
--Endpoint for initial mirror server instance, which
--is the only server instance running on SQLHOST02.
CREATE ENDPOINT endpoint_mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 7022 )
FOR DATABASE_MIRRORING (ROLE=PARTNER);
GO
--Endpoint for witness server instance, which
--is the only server instance running on SQLHOST03.
CREATE ENDPOINT endpoint_mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 7022 )
FOR DATABASE_MIRRORING (ROLE=WITNESS);
GO
如需完整的安全性設定範例、準備鏡像資料庫、設定夥伴以及新增見證的詳細資訊,請參閱<設定資料庫鏡像>。