Compartir a través de


Ejemplo: Configurar la creación de reflejo de la base de datos mediante la autenticación de Windows (Transact-SQL)

En este ejemplo se muestran todas las fases necesarias para crear una sesión de creación de reflejo de la base de datos con un testigo mediante la autenticación de Windows. En los ejemplos de este tema se usa Transact-SQL. Tenga en cuenta que, como alternativa al uso de los pasos Transact-SQL, puede utilizar el Asistente para Configurar la Seguridad del Reflejo de la Base de Datos. Para obtener más información, vea Establecer una sesión de reflejo de base de datos mediante la autenticación de Windows (SQL Server Management Studio).

Prerrequisito

En el ejemplo se usa la base de datos de ejemplo AdventureWorks , que usa el modelo de recuperación simple de forma predeterminada. Para usar el reflejo de la base de datos en esta base de datos, debe modificarla para utilizar el modelo de recuperación completa. Para ello en Transact-SQL, use la instrucción ALTER DATABASE, como se indica a continuación:

USE master;  
GO  
ALTER DATABASE AdventureWorks   
SET RECOVERY FULL;  
GO  

Para obtener información sobre cómo cambiar el modelo de recuperación en SQL Server Management Studio, vea Ver o cambiar el modelo de recuperación de una base de datos (SQL Server).

Permisos

Requiere el permiso ALTER en la base de datos y el permiso CREATE ENDPOINT, o la pertenencia al rol fijo de servidor sysadmin .

Ejemplo

En este ejemplo, los dos asociados y el testigo son las instancias de servidor predeterminadas en tres sistemas informáticos. Las tres instancias de servidor ejecutan el mismo dominio de Windows, pero la cuenta de usuario (usada como cuenta de servicio de inicio) es diferente para la instancia de servidor testigo del ejemplo.

En la tabla siguiente se resumen los valores usados en este ejemplo.

Rol de espejo inicial Sistema anfitrión Cuenta de usuario de dominio
Principal PARTNERHOST1 <Mydomain>\<dbousername>
Reflejo PARTNERHOST5 <Mydomain>\<dbousername>
Testigo WITNESSHOST4 <Somedomain>\<witnessuser>
  1. Cree un punto de conexión en la instancia del servidor principal (instancia predeterminada en PARTNERHOST1).

    CREATE ENDPOINT Endpoint_Mirroring  
        STATE=STARTED   
        AS TCP (LISTENER_PORT=7022)   
        FOR DATABASE_MIRRORING (ROLE=PARTNER)  
    GO  
    --Partners under same domain user; login already exists in master.  
    --Create a login for the witness server instance,  
    --which is running as Somedomain\witnessuser:  
    USE master ;  
    GO  
    CREATE LOGIN [Somedomain\witnessuser] FROM WINDOWS ;  
    GO  
    -- Grant connect permissions on endpoint to login account of witness.  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Somedomain\witnessuser];  
    --Grant connect permissions on endpoint to login account of partners.  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Mydomain\dbousername];  
    GO  
    
  2. Cree un punto de conexión en la instancia del servidor reflejado (instancia predeterminada en PARTNERHOST5).

    CREATE ENDPOINT Endpoint_Mirroring  
        STATE=STARTED   
        AS TCP (LISTENER_PORT=7022)   
        FOR DATABASE_MIRRORING (ROLE=ALL)  
    GO  
    --Partners under same domain user; login already exists in master.  
    --Create a login for the witness server instance,  
    --which is running as Somedomain\witnessuser:  
    USE master ;  
    GO  
    CREATE LOGIN [Somedomain\witnessuser] FROM WINDOWS ;  
    GO  
    --Grant connect permissions on endpoint to login account of witness.  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Somedomain\witnessuser];  
    --Grant connect permissions on endpoint to login account of partners.  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Mydomain\dbousername];  
    GO  
    
  3. Cree un punto de conexión en la instancia del servidor testigo (instancia predeterminada en WITNESSHOST4).

    CREATE ENDPOINT Endpoint_Mirroring  
        STATE=STARTED   
        AS TCP (LISTENER_PORT=7022)   
        FOR DATABASE_MIRRORING (ROLE=WITNESS)  
    GO  
    --Create a login for the partner server instances,  
    --which are both running as Mydomain\dbousername:  
    USE master ;  
    GO  
    CREATE LOGIN [Mydomain\dbousername] FROM WINDOWS ;  
    GO  
    --Grant connect permissions on endpoint to login account of partners.  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Mydomain\dbousername];  
    GO  
    
  4. Cree la base de datos reflejada. Para obtener más información, vea Preparar una base de datos reflejada para la creación de reflejo (SQL Server).

  5. En la instancia del servidor reflejado en PARTNERHOST5, establezca la instancia del servidor en PARTNERHOST1 como asociado (lo que lo convierte en la instancia inicial del servidor principal).

    ALTER DATABASE AdventureWorks   
        SET PARTNER =   
        'TCP://PARTNERHOST1.COM:7022'  
    GO  
    
  6. En la instancia del servidor principal de PARTNERHOST1, establezca la instancia del servidor en PARTNERHOST5 como asociado (lo que lo convierte en la instancia inicial del servidor reflejado).

    ALTER DATABASE AdventureWorks   
        SET PARTNER = 'TCP://PARTNERHOST5.COM:7022'  
    GO  
    
  7. En el servidor principal, establezca el testigo (que está en WITNESSHOST4).

    ALTER DATABASE AdventureWorks   
        SET WITNESS =   
        'TCP://WITNESSHOST4.COM:7022'  
    GO  
    

Tareas relacionadas

Véase también

ALTER DATABASE (Transact-SQL)
El extremo de creación de reflejo de la base de datos (SQL Server)
Seguridad de transferencia para la duplicación de bases de datos y los grupos de disponibilidad AlwaysOn (SQL Server)
Administrar los metadatos cuando una base de datos pasa a estar disponible en otra instancia de servidor (SQL Server)
Centro de seguridad para el motor de base de datos SQL Server y la base de datos SQL Azure