Crear un grupo de disponibilidad (SQL Server PowerShell)

En este tema se describe cómo usar los cmdlets de PowerShell para crear y configurar un grupo de disponibilidad de AlwaysOn mediante PowerShell en SQL Server 2012. Un grupo de disponibilidad define un conjunto de bases de datos de usuario que realizarán la conmutación por error como una sola unidad y un conjunto de asociados de conmutación por error, conocido como réplicas de disponibilidad, que admiten la conmutación por error.

[!NOTA]

Para obtener una introducción a los grupos de disponibilidad, vea Información general de los grupos de disponibilidad AlwaysOn (SQL Server).

  • Antes de empezar:  

    Requisitos previos, restricciones y recomendaciones

    Seguridad

    Resumen de tareas y cmdlets de PowerShell correspondientes

    Para configurar y usar el proveedor de SQL Server PowerShell

  • Para crear y configurar un grupo disponibilidad, use:  Usar PowerShell para crear y configurar un grupo de disponibilidad

  • **Ejemplos: ** Usar PowerShell para crear un grupo de disponibilidad

  • Tareas relacionadas

  • Contenido relacionado

[!NOTA]

Como alternativa al uso de cmdlets de PowerShell, puede usar el asistente Crear grupo de disponibilidad o Transact-SQL. Para obtener más información, vea Usar el cuadro de diálogo Nuevo grupo de disponibilidad (SQL Server Management Studio) o Crear un grupo de disponibilidad (Transact-SQL).

Antes de empezar

Se recomienda encarecidamente leer esta sección antes de intentar crear el primer grupo de disponibilidad.

Requisitos previos, restricciones y recomendaciones

  • Antes de crear un grupo de disponibilidad, compruebe que cada una de las instancias host de SQL Server reside en un nodo de clúster de conmutación por error de Windows Server (WSFC) diferente en el mismo clúster de conmutación por error de WSFC. Además, compruebe que las instancias del servidor cumplen con los otros requisitos previos de la instancia del servidor, que se cumplen todos los demás requisitos de Grupos de disponibilidad AlwaysOn y que es consciente de las recomendaciones. Para obtener más información, le recomendamos encarecidamente que consulte Requisitos previos, restricciones y recomendaciones para Grupos de disponibilidad AlwaysOn (SQL Server).

Icono de flecha usado con el vínculo Volver al principio[Top]

Seguridad

Permisos

Se requiere la pertenencia al rol fijo de servidor sysadmin y el permiso de servidor CREATE AVAILABILITY GROUP, el permiso ALTER ANY AVAILABILITY GROUP o el permiso CONTROL SERVER.

Icono de flecha usado con el vínculo Volver al principio[Top]

Resumen de tareas y cmdlets de PowerShell correspondientes

En la siguiente tabla se enumeran las tareas básicas relacionadas con la configuración de un grupo de disponibilidad y se indican las que son compatibles con cmdlets de PowerShell. Las tareas de Grupos de disponibilidad AlwaysOn se deben realizar en la secuencia en que se muestran en la tabla.

Tarea

Cmdlets de PowerShell (si hay disponibles) o instrucción Transact-SQL

Dónde realizar la tarea*

Crear extremo de creación de reflejo de la base de datos (una vez por instancia de SQL Server)

New-SqlHadrEndPoint

Se ejecuta en cada instancia del servidor que carece de extremo de creación de reflejo de la base de datos.

[!NOTA]

Para modificar un extremo de creación de reflejo de la base de datos existente, use Set-SqlHadrEndpoint.

Crear grupo de disponibilidad

Primero, utilice el cmdlet New-SqlAvailabilityReplica con el parámetro -AsTemplate para crear un objeto de réplica de disponibilidad en memoria para cada una de las dos réplicas de disponibilidad que va a incluir en el grupo de disponibilidad.

A continuación, cree el grupo de disponibilidad utilizando el cmdlet New-SqlAvailabilityGroup y haga referencia a los objetos de réplica de disponibilidad.

Se ejecuta en la instancia del servidor que va a hospedar la réplica principal inicial.

Unir la réplica secundaria al grupo de disponibilidad

Join-SqlAvailabilityGroup

Se ejecuta en cada una de las instancias del servidor que hospeda una réplica secundaria.

Preparar la base de datos secundaria

Backup-SqlDatabase y Restore-SqlDatabase

Se crean las copias de seguridad de la instancia del servidor que hospeda la réplica principal.

Se restauran las copias de seguridad de cada una de las instancias del servidor que hospedan una réplica de secundaria mediante el parámetro de restauración NoRecovery. Si las rutas de acceso de archivo difieren entre equipos que hospedan la réplica principal y la réplica secundaria de destino, utilice también el parámetro de restauración RelocateFile.

Iniciar la sincronización de datos uniendo cada base de datos secundaria al grupo de disponibilidad

Add-SqlAvailabilityDatabase

Se ejecuta en cada una de las instancias del servidor que hospedan una réplica secundaria.

* Para realizar una tarea determinada, cambie de directorio (cd) a la instancia o instancias del servidor indicadas.

Icono de flecha usado con el vínculo Volver al principio[Top]

Para configurar y usar el proveedor de SQL Server PowerShell

Icono de flecha usado con el vínculo Volver al principio[Top]

Usar PowerShell para crear y configurar un grupo de disponibilidad

[!NOTA]

Para ver la sintaxis y un ejemplo de un cmdlet dado, utilice el cmdlet Get-Help en el entorno de SQL Server PowerShell. Para obtener más información, vea Obtener ayuda de SQL Server PowerShell.

  1. Cambie el directorio (cd) a la instancia de servidor que va a hospedar la réplica principal.

  2. Cree un objeto de réplica de disponibilidad en memoria para la réplica principal.

  3. Cree un objeto de réplica de disponibilidad en memoria para cada réplica secundaria.

  4. Cree el grupo de disponibilidad.

    [!NOTA]

    La longitud máxima del nombre de un grupo de disponibilidad es 128 caracteres.

  5. Una la nueva réplica secundaria al grupo de disponibilidad. Para obtener más información, vea Combinar una réplica secundaria con un grupo de disponibilidad (SQL Server).

  6. Para cada base de datos del grupo de disponibilidad, cree una base de datos secundaria restaurando las copias de seguridad recientes de la base de datos principal, utilizando RESTORE WITH NORECOVERY.

  7. Una cada nueva base de datos secundaria al grupo de disponibilidad. Para obtener más información, vea Combinar una réplica secundaria con un grupo de disponibilidad (SQL Server).

  8. Opcionalmente, use el comando dir de Windows para comprobar el contenido del nuevo grupo de disponibilidad.

[!NOTA]

Si las cuentas de servicio de SQL Server de las instancias del servidor se ejecutan en cuentas de usuario de dominio diferentes, en cada instancia del servidor, cree un inicio de sesión para la otra instancia del servidor y conceda a este inicio de sesión el permiso CONNECT al extremo de creación de reflejo de la base de datos local.

Icono de flecha usado con el vínculo Volver al principio[Top]

Ejemplo: Usar PowerShell para crear un grupo de disponibilidad

En el siguiente ejemplo de PowerShell se crea y configura un grupo de disponibilidad simple denominado MyAG con dos réplicas de disponibilidad y una base de datos de disponibilidad. El ejemplo:

  1. Hace una copia de seguridad de MyDatabase y su registro de transacciones.

  2. Restaura MyDatabase y su registro de transacciones, con la opción -NoRecovery.

  3. Crea una representación de memoria de la réplica principal, que se hospedará en la instancia local de SQL Server (denominada PrimaryComputer\Instance).

  4. Crea una representación de memoria de la réplica secundaria, que se hospedará en una instancia de SQL Server (denominada SecondaryComputer\Instance).

  5. Crea un grupo de disponibilidad denominado MyAG.

  6. Combina la réplica secundaria con el grupo de disponibilidad.

  7. Combina la base de datos secundaria con el grupo de disponibilidad.

# 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"

Tareas relacionadas

Para configurar una instancia del servidor para grupos de disponibilidad AlwaysOn

Para configurar el grupo de disponibilidad y las propiedades de réplica

Para completar la configuración del grupo de disponibilidad

Maneras alternativas de crear un grupo de disponibilidad

Para solucionar de problemas de configuración de grupos de disponibilidad de AlwaysOn

Icono de flecha usado con el vínculo Volver al principio[Top]

Contenido relacionado

Icono de flecha usado con el vínculo Volver al principio[Top]

Vea también

Conceptos

El extremo de creación de reflejo de la base de datos (SQL Server)

Información general de los grupos de disponibilidad AlwaysOn (SQL Server)