Aggiungere un database a un gruppo di disponibilità Always On

Si applica a: SQL Server

Questo argomento descrive come aggiungere un database a un gruppo di disponibilità Always On con SQL Server Management Studio, Transact-SQL o PowerShell in SQL Server.

Prerequisiti e restrizioni

Autorizzazioni

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

Usare SQL Server Management Studio

  1. In 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:

    • Per avviare la procedura guidata Aggiungi database a gruppo di disponibilità, selezionare il comando Aggiungi database . Per altre informazioni, vedere Usare la procedura guidata Aggiungi database a gruppo di disponibilità (SQL Server Management Studio).

    • Per aggiungere uno o più database specificandoli nella finestra di dialogo Proprietà gruppo di disponibilità , selezionare il comando Proprietà . Di seguito sono indicati i passaggi per l'aggiunta di un database:

      1. Nel riquadro Database di disponibilità fare clic sul pulsante Aggiungi . Viene creato e selezionato un campo del database vuoto.

      2. Immettere il nome di un database che soddisfi i prerequisiti dei database di disponibilità.

      Per aggiungere un altro database, ripetere i passaggi precedenti. Dopo avere specificato i database, fare clic su OK per completare l'operazione.

      Dopo avere utilizzato la finestra di dialogo Proprietà gruppo di disponibilità per aggiungere un database a un gruppo di disponibilità, è necessario configurare il database secondario corrispondente su ogni istanza del server che ospita una replica secondaria. Per altre informazioni, vedere Avviare lo spostamento dati su un database secondario Always On (SQL Server).

Usare Transact-SQL

  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 nome_gruppo ADD DATABASE nome_database [,...n]

    dove nome_gruppo è il nome del gruppo di disponibilità e nome_database è 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 avere aggiunto un database a un gruppo di disponibilità, è necessario configurare il database secondario corrispondente su ogni istanza del server che ospita una replica secondaria. Per altre informazioni, vedere Avviare lo spostamento dati su un database secondario Always On (SQL Server).

Utilizzare PowerShell

  1. Cambiare la directory (cd) impostandola sull'istanza del server che ospita la replica primaria.

  2. Usare il cmdlet Add-SqlAvailabilityDatabase .

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

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

    Nota

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

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

Per impostare e utilizzare il provider PowerShell per SQL Server

Per un esempio completo, vedere Esempio (PowerShell), di seguito.

Esempio (PowerShell)

Nel seguente esempio si illustra il processo completo di preparazione di un database secondario da un database nell'istanza del server che ospita la replica primaria di un gruppo di disponibilità, aggiungendo il database a un gruppo di disponibilità (come database primario), quindi creando un join del database secondario al gruppo di disponibilità. Nell'esempio si esegue innanzitutto il backup del database e del relativo log delle transazioni. Successivamente si ripristinano i backup del database e del log nelle istanze del server che ospitano una replica secondaria.

Nell'esempio viene chiamato due volte Add-SqlAvailabilityDatabase , la prima volta nella replica primaria per aggiungere il database al gruppo di disponibilità, successivamente nella replica secondaria per creare un join del database secondario in quella replica al gruppo di disponibilità. Se si dispone di più di una replica secondaria, ripristinare e creare un join del database secondario in ognuna 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"  
  

Vedi anche

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