Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
En este tema se describe cómo usar los cmdlets de PowerShell para crear y configurar un grupo de disponibilidad de AlwaysOn con PowerShell en SQL Server. 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 ver una introducción a los grupos de disponibilidad, consulte Introducción a los grupos de disponibilidad AlwaysOn (SQL Server).
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
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 más información, recomendamos encarecidamente que lea Requisitos previos, restricciones y recomendaciones para grupos de disponibilidad AlwaysOn (SQL Server).
Permisos
Requiere la pertenencia al rol fijo de servidor sysadmin y al permiso de servidor CREATE AVAILABILITY GROUP, al permiso ALTER ANY AVAILABILITY GROUP o al permiso CONTROL SERVER.
Usar PowerShell para crear y configurar un grupo de disponibilidad
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 están disponibles) o instrucción de Transact-SQL | Dónde realizar la tarea |
|---|---|---|
| Crear extremo de reflejo de la base de datos (una vez por instancia de SQL Server) | New-SqlHadrEndPoint | Ejecute en cada instancia de servidor que carezca de extremo de duplicación de la base de datos. Para modificar un punto de conexión de creación de reflejo de la base de datos existente, use Set-SqlHadrEndpoint. |
| Crear grupo de disponibilidad | Primero, use 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. Después, cree el grupo de disponibilidad usando 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. |
| Agregar 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. Restaure las copias de seguridad en cada instancia del servidor que aloje una réplica secundaria, con 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. |
Nota
Para realizar las tareas especificadas, cambie el directorio (cd) a la instancia o instancias del servidor indicadas.
Uso de PowerShell
Configure y use el Proveedor de SQL Server PowerShell.
Nota
Para ver la sintaxis y un ejemplo de un cmdlet dado, use el cmdlet Get-Help en el entorno de SQL Server PowerShell. Para más información, consulte Get Help SQL Server PowerShell.
Cambie el directorio (cd) a la instancia de servidor que va a hospedar la réplica principal.
Cree un objeto de réplica de disponibilidad en memoria para la réplica principal.
Cree un objeto de réplica de disponibilidad en memoria para cada réplica secundaria.
Cree el grupo de disponibilidad.
Nota
La longitud máxima del nombre de un grupo de disponibilidad es 128 caracteres.
Combine la nueva réplica secundaria con el grupo de disponibilidad. Vea Combinar una réplica secundaria con un grupo de disponibilidad (SQL Server).
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 mediante RESTORE WITH NORECOVERY.
Combine todas las bases de datos secundarias nuevas con el grupo de disponibilidad. Vea Combinar una réplica secundaria con un grupo de disponibilidad (SQL Server).
Opcionalmente, use el comando dir de Windows para comprobar el contenido del nuevo grupo de disponibilidad.
Nota
Si las cuentas de servicio de las instancias de servidor de SQL Server se ejecutan con cuentas de usuario de dominio distintas, cree en cada instancia de servidor un inicio de sesión para la otra instancia de servidor y conceda a este inicio de sesión el permiso CONNECT en el punto de conexión local de creación de reflejo de la base de datos.
Ejemplo
En el siguiente ejemplo de PowerShell se crea y configura un grupo de disponibilidad simple denominado <myAvailabilityGroup> con dos réplicas de disponibilidad y una base de datos de disponibilidad. El ejemplo:
Hace una copia de seguridad de
<myDatabase>y su registro de transacciones.Restaura
<myDatabase>y su registro de transacciones mediante la opción -NoRecovery.Crea una representación de memoria de la réplica principal, que se hospedará en la instancia local de SQL Server (denominada
PrimaryComputer\Instance).Crea una representación de memoria de la réplica secundaria, que se hospedará en una instancia de SQL Server (denominada
SecondaryComputer\Instance).Crea un grupo de disponibilidad denominado
<myAvailabilityGroup>.Combina la réplica secundaria con el grupo de disponibilidad.
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 12 `
-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 12 `
-AsTemplate
# Create the availability group
New-SqlAvailabilityGroup `
-Name "<myAvailabilityGroup>" `
-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 "<myAvailabilityGroup>"
# Join the secondary database to the availability group.
Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\SecondaryComputer\Instance\AvailabilityGroups\<myAvailabilityGroup>" -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
Cambiar el modo de disponibilidad de una réplica de disponibilidad (SQL Server)
Cambiar el modo de conmutación por error de una réplica de disponibilidad (SQL Server)
Crear o configurar un agente de escucha de un grupo de disponibilidad (SQL Server)
Configurar la copia de seguridad en réplicas de disponibilidad (SQL Server)
Configurar el acceso de solo lectura en una réplica de disponibilidad (SQL Server)
Configurar el enrutamiento de solo lectura para un grupo de disponibilidad (SQL Server)
Cambiar el tiempo de espera de la sesión en una réplica de disponibilidad (SQL Server)
Para completar la configuración del grupo de disponibilidad
Combinar una réplica secundaria con un grupo de disponibilidad (SQL Server)
Preparar manualmente una base de datos secundaria para un grupo de disponibilidad (SQL Server)
Combinar una base de datos secundaria con un grupo de disponibilidad (SQL Server)
Crear o configurar un agente de escucha de un grupo de disponibilidad (SQL Server)
Maneras alternativas de crear un grupo de disponibilidad
Usar el Asistente para grupo de disponibilidad (SQL Server Management Studio)
Utilizar el cuadro de diálogo Nuevo grupo de disponibilidad (SQL Server Management Studio)
Solucionar problemas de configuración de los grupos de disponibilidad Always On
Contenido relacionado
Blogs:
Configurar AlwaysOn con SQL Server PowerShell
Blogs del equipo de AlwaysOn de SQL Server: blog oficial del equipo de AlwaysOn de SQL Server
Documentos técnicos:
Consulte también
El punto de conexión de duplicación de bases de datos (SQL Server)
Información general de los grupos de disponibilidad AlwaysOn (SQL Server)