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>]
   [-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>]
   [-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>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

説明

New-SqlAvailabilityReplica コマンドレットは、可用性レプリカを作成します。 プライマリ レプリカをホストする SQL Server のインスタンスで、このコマンドレットを実行します。

可用性グループを作成する前に可用性レプリカを作成するには、 AsTemplate パラメーターを指定します。 既存の可用性グループにレプリカを追加するには、 InputObject パラメーターまたは Path パラメーターで可用性グループを指定します。

例 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-SqlAvailabilityGroupAvailabilityReplica パラメーターの値として使用できます

最初のコマンドは、プライマリ サーバーのインスタンスを取得します。

2 番目のコマンドは、可用性レプリカを作成します。 このレプリカは、指定された 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

この例では、可用性レプリカのメモリ内表現を作成します。 変更はサーバーにコミットされません。

最初のコマンドは、プライマリ サーバーのインスタンスを取得します。

2 番目のコマンドは、可用性レプリカを作成します。 このレプリカは、指定された 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

ユーザー/パスワードまたは Windows 認証の代わりに、SQL Serverの認証に使用されるアクセス トークン。

これは、たとえば、 または Managed Identityに接続SQL Azure DBして SQL Azure Managed Instance 使用するために使用Service Principalできます。

使用するパラメーターには、 を実行Get-AzAccessToken -ResourceUrl https://database.windows.netして返されるトークンまたはオブジェクトをPSAccessToken表す文字列を指定できます。

このパラメーターは、モジュールの v22 の新機能です。

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AsTemplate

このコマンドレットによって、メモリ内に一時的な AvailabilityReplica オブジェクトが作成されることを示します。 可用性レプリカを作成する前に可用性グループを作成するには、このパラメーターを指定します。 New-SqlAvailabilityGroup コマンドレットを使用して可用性グループを作成します。 AvailabilityReplica パラメーターの値として一時的な可用性レプリカを指定します。

AsTemplate を指定した場合、このコマンドレットは InputObject パラメーターと Path パラメーターの値を無視します。

このパラメーターを指定する場合は、Version パラメーターにSQL Serverバージョンも指定する必要があります。または、現在のセッションがインスタンスへのアクティブな接続を持っている必要があります。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AvailabilityMode

レプリカの可用性モードを指定します。

の値を指定できます。 $Null.

Type:AvailabilityReplicaAvailabilityMode
Accepted values:AsynchronousCommit, SynchronousCommit, Unknown, ConfigurationOnly
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-BackupPriority

バックアップを実行する際のレプリカの必要な優先度を指定します。 このパラメーターに使用できる値は、0 ~ 100 の整数です。 オンラインで使用可能なレプリカのセットのうち、優先度が最も高いレプリカがバックアップを実行します。

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

コマンドレットの実行前に確認を求めるメッセージが表示されます。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionModeInPrimaryRole

プライマリ ロールで可用性レプリカが接続を処理する方法を指定します。

このパラメーターの有効値は、次のとおりです。

  • AllowReadWriteConnections。 読み取り/書き込み接続を許可します
  • AllowAllConnections。 すべての接続を許可します
Type:AvailabilityReplicaConnectionModeInPrimaryRole
Accepted values:AllowAllConnections, AllowReadWriteConnections, Unknown
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionModeInSecondaryRole

セカンダリ ロールの場合に可用性レプリカが接続を処理する方法を指定します。 このパラメーターの有効値は、次のとおりです。

  • AllowNoConnections。 接続を禁止します
  • AllowReadIntentConnectionsOnly。 読み取りインテント接続のみを許可します
  • AllowAllConnections。 すべての接続を許可します
Type:AvailabilityReplicaConnectionModeInSecondaryRole
Accepted values:AllowNoConnections, AllowReadIntentConnectionsOnly, AllowAllConnections, Unknown
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encrypt

SQL Serverに接続するときに使用する暗号化の種類。

この値は、 Encrypt Microsoft.Data.SqlClient ドライバーの SqlConnection オブジェクトの プロパティ SqlConnectionEncryptOption にマップされます。

モジュールの v22 では、既定値は Optional (v21 との互換性のために) です。 モジュールの v23 以降では、既定値は "必須" になります。これにより、既存のスクリプトに破壊的変更が発生する可能性があります。

このパラメーターは、モジュールの v22 の新機能です。

Type:String
Accepted values:Mandatory, Optional, Strict
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EndpointUrl

データベース ミラーリング エンドポイントの URL を指定します。 この URL は、次の形式の TCP アドレスです。

TCP://system-address:port

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-FailoverMode

フェールオーバー モードを指定します。

の値を指定できます。 $Null

Type:AvailabilityReplicaFailoverMode
Accepted values:Automatic, Manual, External, Unknown
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-HostNameInCertificate

SQL Server TLS/SSL 証明書の検証に使われるホスト名。 SQL Server インスタンスが Force Encryption に対して有効になっており、hostname/shortname を使用してインスタンスに接続する場合は、このパラメーターを渡す必要があります。 このパラメーターを省略した場合、強制暗号化が有効になっているSQL Server インスタンスに接続するには、完全修飾ドメイン名 (FQDN) を -ServerInstance に渡す必要があります。

このパラメーターは、モジュールの v22 の新機能です。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

可用性グループを、レプリカが属する AvailabilityGroup オブジェクトとして指定します。

Type:AvailabilityGroup
Position:2
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-LoadBalancedReadOnlyRoutingList

負荷分散された読み取り専用ルーティング リストを指定します。

ルーティング リストは負荷分散セットの一覧であり、レプリカの一覧です。

たとえば、 のような値を渡すとします。

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

は、3 つの負荷分散セットを渡すことを意味します。1 つは 2 つのレプリカ (Server1 と Server2) で、2 つは 1 つだけ (Server3 と Server4) です。

実行時に、SQL Serverは、少なくともその中のレプリカで使用可能なセットが見つかるまで、すべての負荷分散セットを順番に確認し、負荷分散に使用します。

したがって、上記の例では、Server1 と Server2 の両方が使用できないが、Server3 がである場合、SQL Serverは Server3 を選択します。

このコマンドレットは、読み取り専用ルーティング リストのみを設定し、指定したレプリカの可用性にチェックしません。

Type:String[][]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

可用性レプリカの名前を次の形式で指定します: Computer\Instance

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Path

レプリカが属する可用性グループのパスを指定します。 このパラメーターを指定しない場合、このコマンドレットは現在の作業場所を使用します。

Type:String
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ReadonlyRoutingConnectionUrl

次の例のように、読み取り専用接続のためにレプリカにルーティングするときに使用する完全修飾ドメイン名 (FQDN) とポートを指定します。TCP://DBSERVER8.manufacturing.Contoso.com:7024

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ReadOnlyRoutingList

この可用性レプリカを介して読み取り専用接続をリダイレクトするときに接続ディレクターが使用するプローブ シーケンスを表すレプリカ サーバー名の順序付きリストを指定します。 このパラメーターは、可用性レプリカが可用性グループの現在のプライマリ レプリカである場合に適用されます。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Script

このコマンドレットによって、このコマンドレットが実行するタスクを実行する Transact-SQL スクリプトが返されることを示します。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SeedingMode

セカンダリ レプリカの初回シード処理方法を指定します。

使用できる値は以下の通りです。

  • 自動。 直接シード処理を有効にします。 この方法では、ネットワーク全体でセカンダリ レプリカがシード処理されます。 この方法では、レプリカでプライマリ データベースのコピーをバックアップしたり、復元したりする必要がありません。
  • 手動。 手動シード処理を指定します。 この方法では、プライマリ レプリカでデータベースのバックアップを作成し、セカンダリ レプリカでそのバックアップを手動で復元する必要があります。
Type:AvailabilityReplicaSeedingMode
Accepted values:Automatic, Manual
Position:Named
Default value:Manual
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SessionTimeout

接続が失敗する前に、プライマリ レプリカとこのレプリカの間の応答を待機する時間を秒単位で指定します。

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TrustServerCertificate

信頼を検証するために証明書チェーンの歩き方をバイパスしながらチャネルを暗号化するかどうかを示します。

モジュールの v22 では、既定値は $true (v21 との互換性のために) です。 モジュールの v23 以降では、既定値は "$false" になります。これにより、既存のスクリプトに破壊的変更が発生する可能性があります。

このパラメーターは、モジュールの v22 の新機能です。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Version

SQL Server のバージョンを指定します。 AsTemplate パラメーターを指定する場合は、バージョンを指定する必要があります。 テンプレート オブジェクトは、このバージョンを含むサーバー上のデザイン モードで作成されます。 次の例 (SQL Server 2017) のように、整数または文字列を指定できます。

  • 14
  • '14.0.0'
Type:ServerVersion
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

入力

Microsoft.SqlServer.Management.Smo.AvailabilityGroup

可用性グループをこのコマンドレットに渡すことができます。

出力

Microsoft.SqlServer.Management.Smo.AvailabilityReplica

このコマンドレットは可用性レプリカを返します。