Adición de una base de datos a un grupo de disponibilidad Always On

Se aplica a: SQL Server

En este tema se explica cómo agregar una base de datos a un grupo de disponibilidad AlwaysOn con SQL Server Management Studio, Transact-SQL o PowerShell en SQL Server.

Requisitos previos y restricciones

Permisos

Se requiere el permiso ALTER AVAILABILITY GROUP en el grupo de disponibilidad, el permiso CONTROL AVAILABILITY GROUP, el permiso ALTER ANY AVAILABILITY GROUP o el permiso CONTROL SERVER.

Use SQL Server Management Studio

  1. En el Explorador de objetos, conéctese a la instancia del servidor que hospeda la réplica principal y expanda el árbol.

  2. Expanda los nodos Alta disponibilidad de AlwaysOn y Grupos de disponibilidad .

  3. Haga clic con el botón secundario en el grupo de disponibilidad y seleccione uno de los siguientes comandos:

    • Para iniciar la función Agregar base de datos al Asistente para grupo de disponibilidad, seleccione el comando Agregar base de datos . Para más información, consulte Uso del Asistente para agregar una base de datos al grupo de disponibilidad (SQL Server Management Studio).

    • Para agregar una o varias bases de datos especificándolas en el cuadro de diálogo Propiedades de grupo de disponibilidad , seleccione el comando Propiedades . Los pasos para agregar una base de datos son los siguientes:

      1. En el panel Bases de datos de disponibilidad , haga clic en el botón Agregar . Esto crea y selecciona un campo de la base de datos en blanco.

      2. Escriba el nombre de una base de datos que cumpla los requisitos previos de las bases de datos de disponibilidad.

      Para agregar otra base de datos, repita los pasos anteriores. Cuando haya terminado de especificar las bases de datos, haga clic en Aceptar para completar la operación.

      Después de utilizar el cuadro de diálogo Propiedades de grupo de disponibilidad para agregar una base de datos a un grupo de disponibilidad, debe configurar la base de datos secundaria correspondiente en cada instancia de servidor que hospeda una réplica secundaria. Para más información, consulte Iniciar el movimiento de datos en una base de datos secundaria AlwaysOn (SQL Server).

Uso de Transact-SQL

  1. Conéctese a la instancia del servidor que hospeda la réplica principal.

  2. Use la instrucción ALTER AVAILABILITY GROUP del siguiente modo:

    ALTER AVAILABILITY GROUP group_name ADD DATABASE database_name [,...n]

    donde group_name es el nombre del grupo de disponibilidad y database_name es el nombre de una base de datos que se va a agregar al grupo.

    En el ejemplo siguiente se agrega la base de datos MyDb3 al grupo de disponibilidad 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. Después de agregar una base de datos a un grupo de disponibilidad, debe configurar la base de datos secundaria correspondiente en cada instancia de servidor que hospeda una réplica secundaria. Para más información, consulte Iniciar el movimiento de datos en una base de datos secundaria AlwaysOn (SQL Server).

Uso de PowerShell

  1. Cambie el directorio (cd) a la instancia del servidor que hospeda la réplica principal.

  2. Use el cmdlet Add-SqlAvailabilityDatabase .

    Por ejemplo, en el comando siguiente se agrega la base de datos secundaria MyDd al grupo de disponibilidad MyAG , cuya réplica principal está hospedada en PrimaryServer\InstanceName.

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

    Nota

    Para ver la sintaxis de un cmdlet, use el cmdlet Get-Help en el entorno de SQL Server PowerShell. Para más información, consulte Get Help SQL Server PowerShell.

  3. Después de agregar una base de datos a un grupo de disponibilidad, debe configurar la base de datos secundaria correspondiente en cada instancia de servidor que hospeda una réplica secundaria. Para más información, consulte Iniciar el movimiento de datos en una base de datos secundaria AlwaysOn (SQL Server).

Para configurar y usar el proveedor de SQL Server PowerShell

Para ver un ejemplo completo, vea Ejemplo (PowerShell)a continuación.

Ejemplo (PowerShell)

En el ejemplo siguiente se muestra el proceso completo para preparar una base de datos secundaria de una base de datos en la instancia del servidor que hospeda la réplica principal de un grupo de disponibilidad, agregando la base de datos a un grupo de disponibilidad (como una base de datos principal) y uniendo después la base de datos secundaria al grupo de disponibilidad. Primero, en el ejemplo se realiza una copia de seguridad de la base de datos y del registro de transacciones. En el ejemplo se restauran las copias de seguridad de la base de datos y de registros a las instancias de servidor que hospeda una réplica secundaria.

En el ejemplo se llama dos veces a Add-SqlAvailabilityDatabase : la primera, en la réplica principal para agregar la base de datos al grupo de disponibilidad y, después, en la réplica secundaria para unir la base de datos secundaria de esa réplica al grupo de disponibilidad. Si tiene más de una réplica secundaria, restaure y una la base de datos secundaria en cada una de ellas.

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

Consulte también

Información general de los grupos de disponibilidad AlwaysOn (SQL Server)
Creación y configuración de grupos de disponibilidad (SQL Server)
Usar el panel AlwaysOn (SQL Server Management Studio)
Supervisar grupos de disponibilidad (Transact-SQL)