共用方式為


New-SqlAvailabilityReplica

建立可用性複本。

語法

New-SqlAvailabilityReplica
   -AvailabilityMode <AvailabilityReplicaAvailabilityMode>
   -FailoverMode <AvailabilityReplicaFailoverMode>
   -EndpointUrl <String>
   [-SessionTimeout <Int32>]
   [-ConnectionModeInPrimaryRole <AvailabilityReplicaConnectionModeInPrimaryRole>]
   [-ConnectionModeInSecondaryRole <AvailabilityReplicaConnectionModeInSecondaryRole>]
   [-BackupPriority <Int32>]
   [-ReadOnlyRoutingList <String[]>]
   [-ReadonlyRoutingConnectionUrl <String>]
   [-SeedingMode <AvailabilityReplicaSeedingMode>]
   [-LoadBalancedReadOnlyRoutingList <String[][]>]
   [-Name] <String>
   [[-Path] <String>]
   [-Script]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-ProgressAction <ActionPreference>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-SqlAvailabilityReplica
   -AvailabilityMode <AvailabilityReplicaAvailabilityMode>
   -FailoverMode <AvailabilityReplicaFailoverMode>
   -EndpointUrl <String>
   [-SessionTimeout <Int32>]
   [-ConnectionModeInPrimaryRole <AvailabilityReplicaConnectionModeInPrimaryRole>]
   [-ConnectionModeInSecondaryRole <AvailabilityReplicaConnectionModeInSecondaryRole>]
   [-BackupPriority <Int32>]
   [-ReadOnlyRoutingList <String[]>]
   [-ReadonlyRoutingConnectionUrl <String>]
   [-SeedingMode <AvailabilityReplicaSeedingMode>]
   [-LoadBalancedReadOnlyRoutingList <String[][]>]
   [-AsTemplate]
   [-Version <ServerVersion>]
   [-Name] <String>
   [-Script]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-ProgressAction <ActionPreference>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-SqlAvailabilityReplica
   -AvailabilityMode <AvailabilityReplicaAvailabilityMode>
   -FailoverMode <AvailabilityReplicaFailoverMode>
   -EndpointUrl <String>
   [-SessionTimeout <Int32>]
   [-ConnectionModeInPrimaryRole <AvailabilityReplicaConnectionModeInPrimaryRole>]
   [-ConnectionModeInSecondaryRole <AvailabilityReplicaConnectionModeInSecondaryRole>]
   [-BackupPriority <Int32>]
   [-ReadOnlyRoutingList <String[]>]
   [-ReadonlyRoutingConnectionUrl <String>]
   [-SeedingMode <AvailabilityReplicaSeedingMode>]
   [-LoadBalancedReadOnlyRoutingList <String[][]>]
   [-Name] <String>
   [-InputObject] <AvailabilityGroup>
   [-Script]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-ProgressAction <ActionPreference>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

New-SqlAvailabilityReplica Cmdlet 會建立可用性複本。 在裝載主要複本的 SQL Server 實例上執行此 Cmdlet。

若要在建立可用性群組之前建立可用性複本,請指定 AsTemplate 參數。 若要將復本新增至現有的可用性群組,InputObjectPath 參數會指定可用性群組。

範例

範例 1:建立可用性複本的表示法

PS C:\> $ServerObject = Get-Item "SQLSERVER:\Sql\PrimaryServer\InstanceName"
PS C:\> New-SqlAvailabilityReplica -Name "PrimaryServer\Instance" -EndpointUrl "TCP://PrimaryServerName.domain.com:5022" -FailoverMode Automatic -AvailabilityMode SynchronousCommit -AsTemplate -Version $ServerObject.Version

此範例會建立可用性複本的記憶體內部表示法。 伺服器不會認可任何變更。 您可以使用此複本作為 new-SqlAvailabilityGroup AvailabilityReplica 參數的值

第一個命令會取得主伺服器的實例。

第二個命令會建立可用性複本。 此複本會使用位於指定 URL 的資料庫鏡像端點,與可用性群組中的其他復本通訊。 此復本支持自動故障轉移和同步認可可用性模式。 Version 參數會指定將裝載這個新復本的伺服器實例版本。

範例 2:建立支援手動故障轉移和異步認可的可用性複本

PS C:\> $ServerObject = Get-Item "SQLSERVER:\Sql\PrimaryServer\InstanceName"
PS C:\> New-SqlAvailabilityReplica -Name "SecondaryServer\Instance" -EndpointUrl "TCP://PrimaryServerName.domain.com:5022" -FailoverMode Manual -AvailabilityMode AsynchronousCommit -AsTemplate -Version $ServerObject.Version

此範例會建立可用性複本的記憶體內部表示法。 伺服器不會認可任何變更。

第一個命令會取得主伺服器的實例。

第二個命令會建立可用性複本。 此複本會使用位於指定 URL 的資料庫鏡像端點,與可用性群組中的其他復本通訊。 此復本支援手動故障轉移和異步認可可用性模式。 Version 參數會指定將裝載這個新復本的伺服器實例版本。

範例 3:將可用性復本新增至可用性群組

PS C:\> New-SqlAvailabilityReplica -Name "SecondaryServer\Instance" -EndpointUrl "TCP://PrimaryServerName.domain.com:5022" -FailoverMode Manual -AvailabilityMode AsynchronousCommit -ConnectionModeInSecondaryRole AllowAllConnections -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MainAG"

此命令會將可用性復本新增至名為 『MainAG』 的現有可用性群組。 此復本支援手動故障轉移和異步認可可用性模式。 在次要角色中,此複本支援讀取存取連線。 此組態可讓您卸除此複本的唯讀處理。

參數

-AccessToken

用來向 SQL Server 驗證的存取令牌,作為使用者/密碼或 Windows 驗證的替代方案。

例如,這可用來使用 Service PrincipalManaged Identity來連線到 SQL Azure DBSQL Azure Managed Instance

要使用的參數可以是字串,表示令牌或 PSAccessToken 物件,如執行 Get-AzAccessToken -ResourceUrl https://database.windows.net所傳回。

此參數是模組 v22 的新功能。

類型:PSObject
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-AsTemplate

指出此 Cmdlet 會在記憶體中建立暫存 AvailabilityReplica 物件。 在建立可用性複本之前,請指定此參數來建立可用性群組。 使用 New-SqlAvailabilityGroup Cmdlet 建立可用性群組。 將暫存可用性複本指定為 AvailabilityReplica 參數的值。

如果您指定 AsTemplate,此 Cmdlet 會忽略 InputObjectPath 參數的值。

如果您指定此參數,也必須為 Version 參數指定 SQL Server 版本,否則目前的會話必須具有實例的作用中聯機。

類型:SwitchParameter
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-AvailabilityMode

指定複本可用性模式。

您可以指定值 $Null.

類型:AvailabilityReplicaAvailabilityMode
接受的值:AsynchronousCommit, SynchronousCommit, Unknown, ConfigurationOnly
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-BackupPriority

指定執行備份中複本所需的優先權。 此參數可接受的值為從 0 到 100 的整數。 在在線和可用的複本集合中,具有最高優先順序的複本會執行備份。

類型:Int32
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-Confirm

在執行 Cmdlet 之前,提示您進行確認。

類型:SwitchParameter
別名:cf
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

-ConnectionModeInPrimaryRole

指定可用性複本在主要角色中處理連線的方式。

此參數可接受的值為:

  • AllowReadWriteConnections。 允許讀取/寫入連線
  • AllowAllConnections。 允許所有連線
類型:AvailabilityReplicaConnectionModeInPrimaryRole
接受的值:AllowAllConnections, AllowReadWriteConnections, Unknown
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ConnectionModeInSecondaryRole

指定可用性複本在次要角色中處理連線的方式。 此參數可接受的值為:

  • AllowNoConnections。 不允許連線
  • AllowReadIntentConnectionsOnly。 只允許讀取意圖連線
  • AllowAllConnections。 允許所有連線
類型:AvailabilityReplicaConnectionModeInSecondaryRole
接受的值:AllowNoConnections, AllowReadIntentConnectionsOnly, AllowAllConnections, Unknown
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-Encrypt

線上到 SQL Server 時要使用的加密類型。

此值會對應至 Microsoft.Data.SqlClient 驅動程式之 SqlConnection 物件上的 Encrypt 屬性 SqlConnectionEncryptOption

在模組的 v22 中,預設值為 Optional (為了與 v21 相容)。 在模組的 v23+ 中,預設值會是 「強制」,這可能會為現有的腳本建立重大變更。

此參數是模組 v22 的新功能。

類型:String
接受的值:Mandatory, Optional, Strict
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-EndpointUrl

指定資料庫鏡像端點的 URL。 此網址是下列格式的 TCP 位址:

TCP://system-address:port

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-FailoverMode

指定故障轉移模式。

您可以指定值 $Null

類型:AvailabilityReplicaFailoverMode
接受的值:Automatic, Manual, External, Unknown
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-HostNameInCertificate

用來驗證 SQL Server TLS/SSL 憑證的主機名。 如果您的 SQL Server 實例已啟用強制加密,而且您想要使用主機名/shortname 連線到實例,則必須傳遞此參數。 如果省略此參數,則必須將完整功能變數名稱 (FQDN) 傳遞至 -ServerInstance 才能連線到啟用強制加密的 SQL Server 實例。

此參數是模組 v22 的新功能。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-InputObject

將可用性群組指定為複本所屬 AvailabilityGroup 物件。

類型:AvailabilityGroup
Position:2
預設值:None
必要:True
接受管線輸入:True
接受萬用字元:False

-LoadBalancedReadOnlyRoutingList

指定負載平衡唯讀路由清單。

路由清單是負載平衡集的清單,接著是複本清單。

例如,傳遞類似的值

@('Server1','Server2'),@('Server3'),@('Server4')

表示我們正在傳遞 3 個負載平衡集:1 個複本 (Server1 和 Server2) 和 2 只傳遞一個 (Server3 和 Server4) 。

在運行時間,SQL Server 會依序查看所有負載平衡集合,直到找到至少可在其中複本上使用的集合,並將其用於負載平衡為止。

因此,在上述範例中,如果 Server1 和 Server2 都無法使用,但 Server3 為 ,SQL Server 會挑選 Server3。

此 Cmdlet 只會設定唯讀路由清單,而且不會檢查指定複本可用性。

類型:String[][]
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-Name

以下列格式指定可用性複本的名稱:Computer\Instance

類型:String
Position:1
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-Path

指定複本所屬可用性群組的路徑。 如果您未指定此參數,此 Cmdlet 會使用目前的工作位置。

類型:String
Position:2
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ProgressAction

決定 PowerShell 如何回應腳本、Cmdlet 或提供者所產生的進度更新,例如 Write-Progress Cmdlet 所產生的進度列。 Write-Progress Cmdlet 會建立顯示命令狀態的進度列。

類型:ActionPreference
別名:proga
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ReadonlyRoutingConnectionUrl

指定路由至複本以進行只讀連線時要使用的完整功能變數名稱 (FQDN) 和埠,如下列範例所示: TCP://DBSERVER8.manufacturing.Contoso.com:7024

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ReadOnlyRoutingList

指定複本伺服器名稱的排序列表,此列表代表透過此可用性複本重新導向只讀連線時要使用的連接控制器探查順序。 如果可用性複本是可用性群組的目前主要複本,則適用此參數。

類型:String[]
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-Script

指出此 Cmdlet 會傳回執行此 Cmdlet 所執行工作的 Transact-SQL 腳本。

類型:SwitchParameter
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-SeedingMode

指定初始植入次要複本的方式。

允許的值:

  • 自動。 啟用直接植入。 此方法會透過網路植入次要複本。 此方法不需要您在復本上備份和還原主資料庫複本。
  • 手動。 指定手動植入。 此方法會要求您在主要復本上建立資料庫的備份,並在次要復本上手動還原該備份。
類型:AvailabilityReplicaSeedingMode
接受的值:Automatic, Manual
Position:Named
預設值:Manual
必要:False
接受管線輸入:False
接受萬用字元:False

-SessionTimeout

指定在連線失敗之前,等候主要複本與此複本之間回應的時間量,以秒為單位。

類型:Int32
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-TrustServerCertificate

指出通道是否會在略過憑證鏈結以驗證信任時加密。

在模組的 v22 中,預設值為 $true (為了與 v21 相容)。 在模組的 v23+ 中,預設值會是 『$false』,這可能會為現有的腳本建立重大變更。

此參數是模組 v22 的新功能。

類型:SwitchParameter
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-Version

指定 SQL Server 版本。 如果您指定 AsTemplate 參數,則必須指定版本。 範本物件會在包含此版本的伺服器上,以設計模式建立。 您可以指定整數或字串,如下列範例所示(SQL Server 2017):

  • 14
  • '14.0.0'
類型:ServerVersion
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-WhatIf

顯示 Cmdlet 執行時會發生什麼事。 Cmdlet 未執行。

類型:SwitchParameter
別名:wi
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

輸入

Microsoft.SqlServer.Management.Smo.AvailabilityGroup

您可以將可用性群組傳遞至此 Cmdlet。

輸出

Microsoft.SqlServer.Management.Smo.AvailabilityReplica

此 Cmdlet 會傳回可用性複本。