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

In questo argomento viene illustrato come aggiungere un database a un gruppo di disponibilità AlwaysOn utilizzando SQL Server Management Studio, Transact-SQL o PowerShell in SQL Server 2012.

  • Prima di iniziare:  

    Prerequisiti e restrizioni

    Autorizzazioni

  • Per aggiungere un database a un gruppo di disponibilità utilizzando:  

    SQL Server Management Studio

    Transact-SQL

    PowerShell

Prima di iniziare

Prerequisiti e restrizioni

Autorizzazioni

È necessaria 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.

Icona freccia utilizzata con il collegamento Torna all'inizio[Torna all'inizio]

Utilizzo di SQL Server Management Studio

Per aggiungere un database a un gruppo di disponibilità

  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 ulteriori informazioni, vedere Utilizzare 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 ulteriori informazioni, vedere Avviare lo spostamento dati su un database secondario AlwaysOn (SQL Server).

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

Utilizzo 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 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 ulteriori informazioni, vedere Avviare lo spostamento dati su un database secondario AlwaysOn (SQL Server).

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

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. Utilizzare 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, utilizzare il cmdlet Get-Help nell'ambiente SQL Server PowerShell. Per ulteriori informazioni, vedere Visualizzazione della Guida di 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 ulteriori informazioni, vedere Avviare lo spostamento dati su un database secondario AlwaysOn (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"

Icona freccia utilizzata con il collegamento Torna all'inizio[Torna all'inizio]

Vedere anche

Concetti

Panoramica di Gruppi di disponibilità AlwaysOn (SQL Server)

Creazione e configurazione di gruppi di disponibilità (SQL Server)

Utilizzare il Dashboard AlwaysOn (SQL Server Management Studio)

Monitorare Gruppi di disponibilità (Transact-SQL)