Add-SqlAvailabilityDatabase

將主資料庫加入可用性群組,或將輔助資料庫聯結至可用性群組。

Syntax

Add-SqlAvailabilityDatabase
   -Database <String[]>
   [[-Path] <String[]>]
   [-Script]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-SqlAvailabilityDatabase
   -Database <String[]>
   [-InputObject] <AvailabilityGroup[]>
   [-Script]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

Add-SqlAvailabilityDatabase Cmdlet 會將主資料庫新增至可用性群組,或將輔助資料庫聯結至可用性群組。 InputObject 或 Path 參數會指定可用性群組。 資料庫只能屬於一個可用性群組。

若要將資料庫新增至可用性群組,請在裝載主要複本的伺服器實例上執行此 Cmdlet。 指定一或多個本機用戶資料庫。

若要將輔助資料庫加入可用性群組,請在裝載次要復本的伺服器實例上手動準備輔助資料庫。 然後在裝載次要複本的伺服器實例上執行此 Cmdlet。

Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.

範例

範例 1:將資料庫新增至可用性群組

PS C:\> Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MainAG" -Database "Database16"

此命令會將資料庫 『Database16』 新增至可用性群組 『MainAG』。 在可用性群組的主伺服器實例上執行此命令。 此命令不會準備輔助資料庫以進行數據同步處理。

範例 2:將資料庫加入可用性群組

PS C:\> Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\SecondaryServer\InstanceName\AvailabilityGroups\MainAG" -Database "Database16"

此命令會將名為 『Database16』 的輔助資料庫聯結至裝載次要複本之其中一個伺服器實例上的可用性群組 『MainAG』。

範例 3:新增資料庫並將輔助資料庫加入可用性群組

PS C:\> $DatabaseBackupFile = "\\share\backups\Database16.bak"
PS C:\> $LogBackupFile = "\\share\backups\Database16.trn"
PS C:\> $AGPrimaryPath = "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MainAG"
PS C:\> $MyAGSecondaryPath = "SQLSERVER:\SQL\SecondaryServer\InstanceName\AvailabilityGroups\MainAG"
PS C:\> Backup-SqlDatabase -Database "Database16" -BackupFile $DatabaseBackupFile -ServerInstance "PrimaryServer\InstanceName"
PS C:\> Backup-SqlDatabase -Database "Database16" -BackupFile $LogBackupFile -ServerInstance "PrimaryServer\InstanceName" -BackupAction Log
PS C:\> Restore-SqlDatabase -Database "Database16" -BackupFile $DatabaseBackupFile -ServerInstance "SecondaryServer\InstanceName" -NoRecovery
PS C:\> Restore-SqlDatabase -Database "Database16" -BackupFile $LogBackupFile -ServerInstance "SecondaryServer\InstanceName" -RestoreAction Log -NoRecovery
PS C:\> Add-SqlAvailabilityDatabase -Path $AGPrimaryPath -Database 'Database16'
PS C:\> Add-SqlAvailabilityDatabase -Path $AGSecondaryPath -Database "Database16"

此範例會從裝載可用性群組主要複本之伺服器實例上的資料庫準備輔助資料庫。 它會將資料庫新增至可用性群組作為主資料庫。最後,它會將輔助資料庫聯結至可用性群組。

第六個命令會將主伺服器上的 『Database16』 記錄檔備份至$LogBackupFile中的位置。

範例 4:建立腳本以將資料庫新增至可用性群組

PS C:\> Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MainAG" -Database "Database16" -Script

此命令會建立 Transact-SQL 腳本,將資料庫 'Database16' 新增至可用性群組 'MainAG'。

參數

-AccessToken

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

例如,這可用來連線至 SQL Azure DB 或使用 或使用 SQL Azure Managed InstanceService PrincipalManaged Identity

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

這個參數是模組 v22 的新功能。

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

-Confirm

在執行 Cmdlet 前提示您確認。

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

-Database

指定使用者資料庫的陣列。 此 Cmdlet 會將此參數指定的資料庫加入或聯結至可用性群組。 您指定的資料庫必須位於 SQL Server 的本機實例上。

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
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

-HostNameInCertificate

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

這個參數是模組 v22 的新功能。

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

-InputObject

指定可用性群組做為 AvailabilityGroup 物件,此 Cmdlet 會加入或聯結資料庫。

Type:AvailabilityGroup[]
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Path

指定這個 Cmdlet 加入或聯結資料庫的可用性群組路徑。 如果您未指定此參數,此 Cmdlet 會使用目前的工作位置。

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

-Script

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

Type:SwitchParameter
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

-WhatIf

顯示執行 Cmdlet 後會發生的情況。 Cmdlet 並不會執行。

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

輸入

System.String[], Microsoft.SqlServer.Management.Smo.AvailabilityGroup[]

輸出

System.Object