Creare un gruppo di disponibilità (SQL Server PowerShell)

In questo argomento si illustra come utilizzare i cmdlet di PowerShell per creare e configurare un gruppo di disponibilità AlwaysOn utilizzando PowerShell in SQL Server 2012. Un gruppo di disponibilità consente di definire un set di database utente di cui verrà eseguito il failover come unità singola e un set di partner di failover, noti come repliche di disponibilità, che supportano il failover.

[!NOTA]

Per un'introduzione ai gruppi di disponibilità, vedere Panoramica di Gruppi di disponibilità AlwaysOn (SQL Server).

  • Prima di iniziare: 

    Prerequisiti, restrizioni e raccomandazioni

    Sicurezza

    Riepilogo delle attività e cmdlet di PowerShell corrispondenti

    Per impostare e utilizzare il provider PowerShell per SQL Server

  • Per creare e configurare un gruppo di disponibilità tramite:  Uso di PowerShell per creare e configurare un gruppo di disponibilità

  • **Esempi: ** Utilizzo di PowerShell per creare un gruppo di disponibilità

  • Attività correlate

  • Contenuto correlato

[!NOTA]

In alternativa all'utilizzo dei cmdlet di PowerShell, è possibile utilizzare la procedura guidata Crea gruppo di disponibilità o Transact-SQL. Per ulteriori informazioni, vedere Utilizzare la finestra di dialogo Nuovo gruppo di disponibilità (SQL Server Management Studio) o Creare un gruppo di disponibilità (Transact-SQL).

Prima di iniziare

Prima di iniziare a creare il primo gruppo di disponibilità, è consigliabile leggere questa sezione.

Prerequisiti, restrizioni e raccomandazioni

  • Prima di creare un gruppo di disponibilità, verificare che le istanze host di SQL Server si trovino ognuna in un nodo WSCF (Windows Server Failover Clustering) diverso di un singolo cluster di failover WSFC. Inoltre, verificare che le istanze del server abbiano soddisfatto gli altri prerequisiti dell'istanza del server, che tutti gli altri requisiti di Gruppi di disponibilità AlwaysOn vengano soddisfatti e che si tengano presenti i consigli. Per ulteriori informazioni, si consiglia di leggere Prerequisiti, restrizioni e consigli per i gruppi di disponibilità AlwaysOn (SQL Server).

Icona freccia usata con il collegamento Torna all'inizio[Top]

Sicurezza

Autorizzazioni

Sono necessarie l'appartenenza al ruolo predefinito del server sysadmin e l'autorizzazione server CREATE AVAILABILITY GROUP oppure l'autorizzazione ALTER ANY AVAILABILITY GROUP o CONTROL SERVER.

Icona freccia usata con il collegamento Torna all'inizio[Top]

Riepilogo delle attività e cmdlet di PowerShell corrispondenti

Nella tabella seguente sono elencate le attività di base necessarie per la configurazione di un gruppo di disponibilità e vengono indicate le attività supportate dai cmdlet di PowerShell. È necessario eseguire le attività Gruppi di disponibilità AlwaysOn nell'ordine con cui sono elencate nella tabella.

Attività

Cmdlet di PowerShell (se disponibile) o istruzione Transact-SQL

Posizione in cui eseguire l'attività*

Creare un endpoint del mirroring del database (una volta per ogni istanza di SQL Server)

New-SqlHadrEndPoint

Eseguire in ogni istanza del server in cui non è presente l'endpoint del mirroring del database.

[!NOTA]

Per modificare un endpoint del mirroring del database esistente, utilizzare Set-SqlHadrEndpoint.

Creare un gruppo di disponibilità

Utilizzare innanzitutto il cmdlet New-SqlAvailabilityReplica con il parametro -AsTemplate per creare un oggetto della replica di disponibilità in memoria per ognuna delle due repliche di disponibilità che si desidera includere nel gruppo di disponibilità.

Creare quindi il gruppo di disponibilità tramite il cmdlet New-SqlAvailabilityGroup e facendo riferimento agli oggetti replica di disponibilità.

Eseguire nell'istanza del server che dovrà ospitare la replica primaria iniziale.

Creare un join della replica secondaria al gruppo di disponibilità

Join-SqlAvailabilityGroup

Eseguire in ogni istanza del server in cui viene ospitata una replica secondaria.

Preparare il database secondario

Backup-SqlDatabase e Restore-SqlDatabase

Creare i backup nell'istanza del server in cui viene ospitata la replica primaria.

Ripristinare i backup in ogni istanza del server in cui viene ospitata una replica secondaria, utilizzando il parametro di ripristino NoRecovery. Se i percorsi di file differiscono tra i computer in cui sono ospitate la replica primaria e la replica secondaria di destinazione, utilizzare anche il parametro di ripristino RelocateFile.

Avviare la sincronizzazione dei dati creando un join di ogni database secondario al gruppo di disponibilità

Add-SqlAvailabilityDatabase

Eseguire in ogni istanza del server in cui viene ospitata una replica secondaria.

* Per eseguire un'attività specifica, impostare la directory (cd) sull'istanza o sulle istanze del server indicate.

Icona freccia usata con il collegamento Torna all'inizio[Top]

Per impostare e utilizzare il provider PowerShell per SQL Server

Icona freccia usata con il collegamento Torna all'inizio[Top]

Utilizzo di PowerShell per creare e configurare un gruppo di disponibilità

[!NOTA]

Per visualizzare la sintassi e un esempio di un cmdlet specifico, utilizzare il cmdlet Get-Help nell'ambiente PowerShell SQL Server. Per ulteriori informazioni, vedere Visualizzazione della Guida di SQL Server PowerShell.

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

  2. Creare un oggetto replica di disponibilità in memoria per la replica primaria.

  3. Creare un oggetto replica di disponibilità in memoria per ognuna delle repliche secondarie.

  4. Creare il gruppo di disponibilità.

    [!NOTA]

    La lunghezza massima consentita per il nome del gruppo di disponibilità è 128 caratteri.

  5. Creare un join della nuova replica secondaria al gruppo di disponibilità. Per ulteriori informazioni, vedere Creare un join di una replica secondaria a un gruppo di disponibilità (SQL Server).

  6. Per ogni database nel gruppo di disponibilità, creare un database secondario ripristinando i backup recenti del database primario, utilizzando RESTORE WITH NORECOVERY.

  7. Creare un join di ogni nuovo database secondario al gruppo di disponibilità. Per ulteriori informazioni, vedere Creare un join di una replica secondaria a un gruppo di disponibilità (SQL Server).

  8. Facoltativamente, utilizzare il comando dir di Windows per verificare il contenuto del nuovo gruppo di disponibilità.

[!NOTA]

Se gli account del servizio SQL Server delle istanze del server vengono eseguiti con account utente di dominio diversi, in ogni istanza del server creare un account di accesso per l'altra istanza del server e concedere a questo account l'autorizzazione CONNECT per l'accesso all'endpoint del mirroring del database locale.

Icona freccia usata con il collegamento Torna all'inizio[Top]

Esempio: Uso di PowerShell per creare un gruppo di disponibilità

Nell'esempio di PowerShell seguente si crea e si configura un gruppo di disponibilità semplice denominato MyAG con due repliche di disponibilità e un database di disponibilità. Esempio:

  1. Viene eseguito il backup di MyDatabase e del relativo log delle transazioni.

  2. Vengono ripristinati MyDatabase e il relativo log delle transazioni, utilizzando l'opzione -NoRecovery.

  3. Viene creata una rappresentazione in memoria della replica primaria, che sarà ospitata dall'istanza locale di SQL Server (denominata PrimaryComputer\Instance).

  4. Viene creata una rappresentazione in memoria della replica secondaria, che sarà ospitata da un'istanza di SQL Server (denominata SecondaryComputer\Instance).

  5. Viene creato un nuovo gruppo di disponibilità denominato MyAG.

  6. Viene creato un join della replica secondaria al gruppo di disponibilità.

  7. Viene creato un join del database secondario al gruppo di disponibilità.

# Backup my database and its log on the primary
Backup-SqlDatabase `
    -Database "MyDatabase" `
    -BackupFile "\\share\backups\MyDatabase.bak" `
    -ServerInstance "PrimaryComputer\Instance"

Backup-SqlDatabase `
    -Database "MyDatabase" `
    -BackupFile "\\share\backups\MyDatabase.log" `
    -ServerInstance "PrimaryComputer\Instance" `
    -BackupAction Log 

# Restore the database and log on the secondary (using NO RECOVERY)
Restore-SqlDatabase `
    -Database "MyDatabase" `
    -BackupFile "\\share\backups\MyDatabase.bak" `
    -ServerInstance "SecondaryComputer\Instance" `
    -NoRecovery

Restore-SqlDatabase `
    -Database "MyDatabase" `
    -BackupFile "\\share\backups\MyDatabase.log" `
    -ServerInstance "SecondaryComputer\Instance" `
    -RestoreAction Log `
    -NoRecovery

# Create an in-memory representation of the primary replica.
$primaryReplica = New-SqlAvailabilityReplica `
    -Name "PrimaryComputer\Instance" `
    -EndpointURL "TCP://PrimaryComputer.domain.com:5022" `
    -AvailabilityMode "SynchronousCommit" `
    -FailoverMode "Automatic" `
    -Version 11 `
    -AsTemplate

# Create an in-memory representation of the secondary replica.
$secondaryReplica = New-SqlAvailabilityReplica `
    -Name "SecondaryComputer\Instance" `
    -EndpointURL "TCP://SecondaryComputer.domain.com:5022" `
    -AvailabilityMode "SynchronousCommit" `
    -FailoverMode "Automatic" `
    -Version 11 `
    -AsTemplate

# Create the availability group
New-SqlAvailabilityGroup `
    -Name "MyAG" `
    -Path "SQLSERVER:\SQL\PrimaryComputer\Instance" `
    -AvailabilityReplica @($primaryReplica,$secondaryReplica) `
    -Database "MyDatabase"

# Join the secondary replica to the availability group.
Join-SqlAvailabilityGroup -Path "SQLSERVER:\SQL\SecondaryComputer\Instance" -Name "MyAG"

# Join the secondary database to the availability group.
Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\SecondaryComputer\Instance\AvailabilityGroups\MyAG" -Database "MyDatabase"

Attività correlate

Per configurare un'istanza del server per i gruppi di disponibilità AlwaysOn

Per configurare le proprietà della replica e del gruppo di disponibilità

Per completare la configurazione del gruppo di disponibilità

Modalità alternative di creazione di un gruppo di disponibilità

Per risolvere i problemi relativi alla configurazione di Gruppi di disponibilità AlwaysOn

Icona freccia usata con il collegamento Torna all'inizio[Top]

Contenuto correlato

Icona freccia usata con il collegamento Torna all'inizio[Top]

Vedere anche

Concetti

Endpoint del mirroring del database (SQL Server)

Panoramica di Gruppi di disponibilità AlwaysOn (SQL Server)