Add-SqlAvailabilityDatabase

Adiciona bancos de dados primários a um grupo de disponibilidade ou une bancos de dados secundários a um grupo de disponibilidade.

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

O cmdlet Add-SqlAvailabilityDatabase adiciona bancos de dados primários a um grupo de disponibilidade ou une bancos de dados secundários a um grupo de disponibilidade. O parâmetro InputObject ou Path especifica o grupo de disponibilidade. Um banco de dados pode pertencer a apenas um grupo de disponibilidade.

Para adicionar bancos de dados a um grupo de disponibilidade, execute esse cmdlet na instância do servidor que hospeda o réplica primário. Especifique um ou mais bancos de dados de usuário local.

Para unir um banco de dados secundário ao grupo de disponibilidade, prepare manualmente o banco de dados secundário na instância do servidor que hospeda o réplica secundário. Em seguida, execute esse cmdlet na instância do servidor que hospeda o réplica secundário.

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

Exemplos

Exemplo 1: Adicionar um banco de dados a um grupo de disponibilidade

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

Esse comando adiciona o banco de dados 'Database16' ao grupo de disponibilidade 'MainAG'. Execute este comando na instância do servidor primário do grupo de disponibilidade. Esse comando não prepara bancos de dados secundários para sincronização de dados.

Exemplo 2: Unir um banco de dados a um grupo de disponibilidade

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

Esse comando une um banco de dados secundário chamado 'Database16' ao grupo de disponibilidade 'MainAG' em uma das instâncias de servidor que hospeda um réplica secundário.

Exemplo 3: adicionar um banco de dados e unir um banco de dados secundário a um grupo de disponibilidade

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"

Este exemplo prepara um banco de dados secundário de um banco de dados na instância de servidor que hospeda o réplica primário de um grupo de disponibilidade. Ele adiciona o banco de dados a um grupo de disponibilidade como um banco de dados primário. Por fim, ele une o banco de dados secundário ao grupo de disponibilidade.

O sexto comando faz backup do arquivo de log para 'Database16' no servidor primário para o local no $LogBackupFile.

Exemplo 4: Criar um script para adicionar um banco de dados a um grupo de disponibilidade

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

Esse comando cria um script Transact-SQL que adiciona o banco de dados 'Database16' ao grupo de disponibilidade 'MainAG'.

Parâmetros

-AccessToken

O token de acesso usado para autenticar em SQL Server, como uma alternativa ao usuário/senha ou à Autenticação do Windows.

Isso pode ser usado, por exemplo, para se conectar e SQL Azure DBSQL Azure Managed Instance usar um Service Principal ou um Managed Identity.

O parâmetro a ser usado pode ser uma cadeia de caracteres que representa o token ou um PSAccessToken objeto conforme retornado executando Get-AzAccessToken -ResourceUrl https://database.windows.net.

Esse parâmetro é novo na v22 do módulo.

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

-Confirm

Solicita sua confirmação antes de executar o cmdlet.

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

-Database

Especifica uma matriz de bancos de dados de usuário. Esse cmdlet adiciona ou une os bancos de dados que esse parâmetro especifica ao grupo de disponibilidade. Os bancos de dados especificados devem residir na instância local do SQL Server.

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

-Encrypt

O tipo de criptografia a ser usado ao se conectar a SQL Server.

Esse valor é mapeado para a Encrypt propriedade SqlConnectionEncryptOption no objeto SqlConnection do driver Microsoft.Data.SqlClient.

Na v22 do módulo, o padrão é Optional (para compatibilidade com v21). Na v23+ do módulo, o valor padrão será 'Obrigatório', o que pode criar uma alteração interruptiva para scripts existentes.

Esse parâmetro é novo na v22 do módulo.

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

-HostNameInCertificate

O nome do host a ser usado na validação do certificado TLS/SSL do SQL Server. Você deve passar esse parâmetro se a instância de SQL Server estiver habilitada para Forçar Criptografia e quiser se conectar a uma instância usando nome do host/nome curto. Se esse parâmetro for omitido, será necessário passar o FQDN (Nome de Domínio Totalmente Qualificado) para -ServerInstance para se conectar a uma instância de SQL Server habilitada para Forçar Criptografia.

Esse parâmetro é novo na v22 do módulo.

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

-InputObject

Especifica o grupo de disponibilidade, como um objeto AvailabilityGroup, ao qual esse cmdlet adiciona ou une bancos de dados.

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

-Path

Especifica o caminho de um grupo de disponibilidade ao qual esse cmdlet adiciona ou une bancos de dados. Se você não especificar esse parâmetro, esse cmdlet usará o local de trabalho atual.

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

-Script

Indica que esse cmdlet retorna um script Transact-SQL que executa a tarefa que este cmdlet executa.

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

-TrustServerCertificate

Indica se o canal será criptografado ao ignorar a movimentação da cadeia de certificados para validar a confiança.

Na v22 do módulo, o padrão é $true (para compatibilidade com v21). Na v23+ do módulo, o valor padrão será "$false", o que pode criar uma alteração interruptiva para scripts existentes.

Esse parâmetro é novo na v22 do módulo.

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

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

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

Entradas

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

Saídas

System.Object