Enable Stretch Database for a database

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores: solo Windows

Importante

Stretch Database está en desuso en SQL Server 2022 (16.x) y Azure SQL Database. Esta característica se quitará en una versión futura del motor de base de datos. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan.

Si quiere configurar una base de datos de Stretch Database, seleccione Tareas > Stretch > Habilitar en una base de datos de SQL Server Management Studio a fin de abrir el asistente Habilitar base de datos para Stretch. También puede utilizar Transact-SQL a fin de habilitar Stretch Database para una base de datos.

Si selecciona Tareas > Stretch > Habilitar para una tabla individual y aún no se ha habilitado la base de datos para Stretch Database, el asistente configura la base de datos para Stretch Database y le permite seleccionar tablas como parte del proceso. Siga los pasos de este artículo, en lugar de los pasos descritos en Enable Stretch Database for a table (Habilitar Stretch Database para una tabla).

Para habilitar Stretch Database en una base de datos o tabla, se requieren permisos db_owner. La habilitación de Stretch Database en una base de datos también requiere permisos CONTROL DATABASE.

Nota

Posteriormente, si deshabilita Stretch Database, recuerde que al deshabilitar Stretch Database para una tabla o una base de datos no se elimina el objeto remoto. Si quiere eliminar la tabla o la base de datos remotas, tiene que quitarlas mediante el Portal de administración de Azure. Los objetos remotos siguen acumulando gastos de Azure hasta que se eliminan manualmente.

Antes de comenzar

  • Consulte Limitaciones de Stretch Database.

  • Stretch Database migra los datos a Azure, por lo que necesita una cuenta de Azure y una suscripción para la facturación. Registro para obtener una cuenta de Azure.

  • Disponga de la información de conexión e inicio de sesión que necesita para crear un nuevo servidor de Azure o para seleccionar un servidor existente de Azure.

Requisito previo: habilitar Stretch Database en el servidor

Antes de poder habilitar Stretch Database en una base de datos o una tabla, tendrá que hacerlo en el servidor local. Esta operación requiere permisos sysadmin o serveradmin.

  • Si tiene los permisos administrativos necesarios, el asistente Habilitar base de datos para Stretch configurará el servidor para Stretch Database.

  • Si no dispone de los permisos necesarios, un administrador tendrá que habilitar la opción manualmente mediante la ejecución de sp_configure antes de usar el asistente, o bien el propio administrador tendrá que ejecutar el asistente.

Para habilitar Stretch Database en el servidor manualmente, ejecute sp_configure y active la opción Archivo de datos remotos . En el ejemplo siguiente se habilita la opción remote data archive estableciendo su valor en 1.

EXEC sp_configure 'remote data archive' , '1';
GO

RECONFIGURE;
GO

Para más información, consulte Configuración de la opción de configuración del servidor Archivo de datos remotos y sp_configure (Transact-SQL).

Uso del asistente

Para obtener información sobre el asistente Habilitar base de datos para Stretch, incluidos los datos que se deben especificar y las decisiones que hay que tomar, vea Get started by running the Enable Database for Stretch Wizard (Introducción mediante la ejecución del Asistente para Habilitar base de datos para Stretch).

Uso de Transact-SQL

Antes de habilitar Stretch Database en tablas individuales, debe habilitarlo en la base de datos.

Para habilitar Stretch Database en una base de datos o tabla, se requieren permisos db_owner. La habilitación de Stretch Database en una base de datos también requiere permisos CONTROL DATABASE.

  1. Antes de comenzar, elija un servidor de Azure existente para los datos que migra Stretch Database o cree un servidor nuevo de Azure.

  2. En el servidor de Azure, cree una regla de firewall con el intervalo de direcciones IP de SQL Server que permita a esta herramienta comunicarse con el servidor remoto.

    Puede encontrar fácilmente los valores que necesita y crear la regla de firewall intentando conectarse al servidor de Azure desde el Explorador de objetos en SQL Server Management Studio (SSMS). SSMS le ayuda a crear la regla abriendo el siguiente cuadro de diálogo, que ya incluye los valores de dirección IP necesarios.

    Importante

    La compatibilidad con Stretch Database se elimina en SQL Server Management Studio v19. Para administrar Stretch Database, puede usar SQL Server Management Studio v18.9.1 o versiones anteriores.

    Captura de pantalla que muestra una regla de firewall para Stretch

  3. Si desea configurar una base de datos de SQL Server para Stretch Database, esta debe disponer de una clave maestra de base de datos. Dicha clave protege las credenciales que Stretch Database utiliza para conectarse a la base de datos remota. En el ejemplo siguiente se crea una nueva clave maestra para la base de datos.

    USE <database>;
    GO
    
    CREATE MASTER KEY ENCRYPTION BY PASSWORD='<password>';
    GO
    

    Para obtener más información sobre la clave maestra de base de datos, consulte CREATE MASTER KEY (Transact-SQL) y Crear la clave maestra de una base de datos.

  4. Cuando configure una base de datos para Stretch Database, tendrá que proporcionar unas credenciales que Stretch Database utilizará a fin de establecer la comunicación entre el servidor SQL Server local y el servidor remoto de Azure. Tiene dos opciones.

    • Puede proporcionar una credencial de administrador.

      • Si habilita Stretch Database ejecutando el asistente, puede crear las credenciales entonces.

      • Si piensa habilitar Stretch Database mediante la ejecución de ALTER DATABASE, tendrá que crear las credenciales manualmente antes de ejecutar ALTER DATABASE para habilitar Stretch Database.

        En el siguiente ejemplo se crea una nueva credencial.

        CREATE DATABASE SCOPED CREDENTIAL [<db_scoped_credential_name>]
            WITH IDENTITY = '<identity>' , SECRET = '<secret>';
        GO
        

        Para obtener más información sobre la credencial que crea el asistente, consulte CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL). Para crear las credenciales, necesitará permisos ALTER ANY CREDENTIAL.

    • Puede usar una cuenta de servicio federado para que el servidor SQL Server se comunique con el servidor remoto de Azure cuando se cumplen las siguientes condiciones.

      • La cuenta de servicio con la que se está ejecutando la instancia de SQL Server es una cuenta de dominio.

      • La cuenta de dominio pertenece a un dominio cuyo Active Directory está federado con Microsoft Entra ID (anteriormente Azure Active Directory).

      • El servidor remoto de Azure está configurado para admitir la autenticación de Microsoft Entra.

      • La cuenta de servicio con la que se ejecuta la instancia de SQL Server debe configurarse como una cuenta dbmanager o sysadmin en el servidor remoto de Azure.

  5. Si desea configurar una base de datos para Stretch Database, ejecute el comando ALTER DATABASE.

    1. En lo que respecta al argumento SERVER, especifique el nombre de un servidor de Azure existente, incluida la parte .database.windows.net del nombre, por ejemplo, MyStretchDatabaseServer.database.windows.net.

    2. Proporcione unas credenciales de administrador existentes con el argumento de CREDENTIAL o especifique FEDERATED_SERVICE_ACCOUNT = ON. En el ejemplo siguiente se proporciona una credencial existente.

    ALTER DATABASE [<database name>]
        SET REMOTE_DATA_ARCHIVE = ON
            (
                SERVER = '<server_name>' ,
                CREDENTIAL = [<db_scoped_credential_name>]
            );
    GO
    

Pasos siguientes

Vea también