Condividi tramite


Aggiungere un database a un gruppo di disponibilità (SQL Server)

Questo argomento descrive come aggiungere un database a un gruppo di disponibilità AlwaysOn usando SQL Server Management Studio, Transact-SQL o PowerShell in SQL Server 2014.

Prima di iniziare

Prerequisiti e restrizioni

Sicurezza

Autorizzazioni

Sono necessarie l'autorizzazione ALTER AVAILABILITY GROUP nel gruppo di disponibilità, l'autorizzazione CONTROL AVAILABILITY GROUP, l'autorizzazione ALTER ANY AVAILABILITY GROUP o l'autorizzazione CONTROL SERVER.

Uso di SQL Server Management Studio

Per aggiungere un database a un gruppo di disponibilità

  1. Nell'Esplora oggetti, connettersi all'istanza del server che ospita la replica primaria, ed espandere l'albero del server.

  2. Espandere il nodo Disponibilità elevata AlwaysOn e il nodo Gruppi di disponibilità .

  3. Fare clic con il pulsante destro del mouse sul gruppo di disponibilità e selezionare uno dei comandi seguenti:

Uso di Transact-SQL

Per aggiungere un database a un gruppo di disponibilità

  1. Connettersi all'istanza del server che ospita la replica primaria.

  2. Utilizzare l'istruzione ALTER AVAILABILITY GROUP , come indicato di seguito:

    ALTER AVAILABILITY GROUP group_name ADD DATABASE database_name [,...n]

    dove group_name è il nome del gruppo di disponibilità e database_name è il nome di un database da aggiungere al gruppo.

    Nell'esempio seguente viene aggiunto il database MyDb3 al gruppo di disponibilità MyAG .

    -- Connect to the server instance that hosts the primary replica.  
    -- Add an existing database to the availability group.  
    ALTER AVAILABILITY GROUP MyAG ADD DATABASE MyDb3;  
    GO  
    
  3. Dopo aver aggiunto un database a un gruppo di disponibilità, è necessario configurare il database secondario corrispondente in ogni istanza del server che ospita una replica secondaria. Per altre informazioni, vedere Avviare lo spostamento dati in un database secondario AlwaysOn (SQL Server).

Utilizzo di PowerShell

Per aggiungere un database a un gruppo di disponibilità

  1. Spostarsi nella directory (cd) dell'istanza del server che ospita la replica primaria.

  2. Usare il cmdlet Add-SqlAvailabilityDatabase.

    Ad esempio, il comando seguente aggiunge il database MyDd secondario al gruppo di disponibilità, la MyAG cui replica primaria è ospitata da PrimaryServer\InstanceName.

    Add-SqlAvailabilityDatabase `   
     -Path SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MyAG `   
     -Database "MyDb"  
    

    Annotazioni

    Per visualizzare la sintassi di un cmdlet, usare il Get-Help cmdlet nell'ambiente PowerShell di SQL Server. Per altre informazioni, vedere Get Help SQL Server PowerShell.

  3. Dopo aver aggiunto un database a un gruppo di disponibilità, è necessario configurare il database secondario corrispondente in ogni istanza del server che ospita una replica secondaria. Per altre informazioni, vedere Avviare lo spostamento dati in un database secondario AlwaysOn (SQL Server).

Per configurare e usare il provider PowerShell di SQL Server, vedere Provider PowerShell di SQL Server.

Nell'esempio seguente viene illustrato il processo completo per la preparazione di un database secondario da un database nell'istanza del server che ospita la replica primaria di un gruppo di disponibilità, l'aggiunta del database a un gruppo di disponibilità (come database primario) e l'aggiunta del database secondario al gruppo di disponibilità. In primo luogo, l'esempio esegue il backup del database e del relativo log delle transazioni. Nell'esempio vengono quindi ripristinati i backup del database e del log nelle istanze del server che ospitano una replica secondaria.

L'esempio chiama Add-SqlAvailabilityDatabase due volte: prima nella replica primaria per aggiungere il database al gruppo di disponibilità e quindi nella replica secondaria per aggiungere il database secondario in tale replica al gruppo di disponibilità. Se sono presenti più repliche secondarie, ripristinare e unire il database secondario su ciascuna di esse.

$DatabaseBackupFile = "\\share\backups\MyDatabase.bak"  
$LogBackupFile = "\\share\backups\MyDatabase.trn"  
$MyAgPrimaryPath = "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MyAg"  
$MyAgSecondaryPath = "SQLSERVER:\SQL\SecondaryServer\InstanceName\AvailabilityGroups\MyAg"  
  
Backup-SqlDatabase -Database "MyDatabase" -BackupFile $DatabaseBackupFile -ServerInstance "PrimaryServer\InstanceName"  
Backup-SqlDatabase -Database "MyDatabase" -BackupFile $LogBackupFile -ServerInstance "PrimaryServer\InstanceName" -BackupAction 'Log'  
  
Restore-SqlDatabase -Database "MyDatabase" -BackupFile $DatabaseBackupFile -ServerInstance "SecondaryServer\InstanceName" -NoRecovery  
Restore-SqlDatabase -Database "MyDatabase" -BackupFile $LogBackupFile -ServerInstance "SecondaryServer\InstanceName" -RestoreAction 'Log' -NoRecovery  
  
Add-SqlAvailabilityDatabase -Path $MyAgPrimaryPath -Database "MyDatabase"  
Add-SqlAvailabilityDatabase -Path $MyAgSecondaryPath -Database "MyDatabase"

Vedere anche

Panoramica dei gruppi di disponibilità AlwaysOn (SQL Server)
Creazione e configurazione di gruppi di disponibilità (SQL Server)
Usare il dashboard AlwaysOn (SQL Server Management Studio)
Monitorare Gruppi di disponibilità (Transact-SQL)