Script de ejemplo para configurar la creación de reflejos de SQL Server (SharePoint Foundation 2010)

 

Se aplica a: SharePoint Foundation 2010

Última modificación del tema: 2016-11-30

En este artículo se proporcionan varios ejemplos de script que se pueden usar para configurar la creación de reflejo de Microsoft SQL Server para un entorno de prueba de Microsoft SharePoint Foundation 2010. Se recomienda que un administrador de la base de datos de SQL Server configure la creación de reflejo para un entorno de producción.

Para configurar la creación de reflejo de la base de datos con SharePoint Foundation 2010, debe trabajar de forma individual con cada una de las bases de datos que desea reflejar.

En este artículo:

Los pasos de la siguiente sección se aplican a la topología del conjunto o granja de servidores que se indica a continuación:

  • Uno o más servidores front-end web

  • Tres servidores que ejecutan SQL Server 2008: servidor principal, servidor reflejado y servidor testigo

  • Una base de datos de configuración

  • Varias bases de datos de contenido

  • Una o más bases de datos de aplicación de servicio

Configuración de la creación de reflejo de la base de datos con certificados y recuperación completa

Cada paso indica el servidor en el que se debe realizar. Use Transact-SQL para enviar estos comandos a SQL Server. La información de los marcadores de posición se indica con corchetes angulares (<>); reemplácela con la información específica de la implementación.

Para configurar el servidor principal para conexiones de salida

  1. En el servidor principal, cree un certificado y abra un puerto para creación de reflejo.

    --On the master database, create the database master key, if needed
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<test1234->';
    GO
    -- Make a certificate for this server instance.
    USE master;
    CREATE CERTIFICATE <MASTER_HostA_cert> 
       WITH SUBJECT = '<Master_HostA certificate>';
    GO
    --Create a mirroring endpoint for server instance by using the certificate
    CREATE ENDPOINT Endpoint_Mirroring
       STATE = STARTED
       AS TCP (
          LISTENER_PORT=5024
          , LISTENER_IP = ALL
       ) 
       FOR DATABASE_MIRRORING ( 
          AUTHENTICATION = CERTIFICATE <MASTER_HostA_cert>
          , ENCRYPTION = REQUIRED ALGORITHM RC4
          , ROLE = ALL
       );
    GO
    
  2. En el servidor principal, haga una copia de seguridad del certificado.

    --Back up the HOST_A certificate.
    BACKUP CERTIFICATE MASTER_HostA_cert TO FILE = '<c:\MASTER_HostA_cert.cer>';
    GO
    
  3. En el servidor principal, haga una copia de seguridad de la base de datos. En este ejemplo se usa la base de datos de configuración. Repita este paso para todas las bases de datos.

    USE master;
    --Ensure that SharePoint_Config uses the full recovery model.
    ALTER DATABASE SharePoint_Config
       SET RECOVERY FULL;
    GO
    USE SharePoint_Config
    BACKUP DATABASE SharePoint_Config 
        TO DISK = '<c:\SharePoint_Config.bak>' 
        WITH FORMAT
    GO
    BACKUP Log SharePoint_Config 
        TO DISK = '<c:\SharePoint_Config_log.bak>' 
        WITH FORMAT
    GO
    
  4. Copie el archivo de copia de seguridad en el servidor reflejado. Repita este paso para todas las bases de datos.

  5. Mediante cualquier método de copia segura, copie el archivo de copia de seguridad del certificado (por ejemplo, C:\HOST_HostA_cert.cer) en el servidor reflejado.

  6. En el servidor principal, cree un inicio de sesión y un usuario para el servidor reflejado, asocie el certificado con el usuario y otorgue al inicio de sesión los permisos de conexión para la asociación.

    --Create a login on HOST_A for HOST_B
    USE master;
    CREATE LOGIN <HOST_HostB_login> WITH PASSWORD = '<1234-test>';
    GO
    --Create a user for that login.
    CREATE USER <HOST_HostB_user> FOR LOGIN <HOST_HostB_login>;
    GO
    --Associate the certificate with the user
    CREATE CERTIFICATE <HOST_HostB_cert>
       AUTHORIZATION <HOST_HostB_user>
       FROM FILE = '<c:\HOST_HostB_cert.cer>' --do not use a network path, SQL Server will give an error about the key not being valid
    GO
    --Grant CONNECT permission on the login for the remote mirroring endpoint.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<HOST_HostB_login>];
    GO
    

Para configurar el servidor reflejado para conexiones de salida

  1. En el servidor reflejado, cree un certificado y abra un puerto para creación de reflejo.

    --On the master database, create the database master key, if needed.
    USE master;
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1234-test>';
    GO
    -- Make a certificate on the HOST_B server instance.
    CREATE CERTIFICATE <HOST_HostB>
       WITH SUBJECT = '<HOST_HostB certificate for database mirroring>';
    GO
    --Create a mirroring endpoint for the server instance on HOST_B.
    CREATE ENDPOINT Endpoint_Mirroring
       STATE = STARTED
       AS TCP (
          LISTENER_PORT=5024
          , LISTENER_IP = ALL
       ) 
       FOR DATABASE_MIRRORING ( 
          AUTHENTICATION = CERTIFICATE <HOST_HostB>
          , ENCRYPTION = REQUIRED ALGORITHM RC4
          , ROLE = ALL
       );
    GO
    
  2. En el servidor reflejado, haga una copia de seguridad del certificado.

    --Back up the HOST_B certificate.
    BACKUP CERTIFICATE <HOST_HostB> TO FILE = '<C:\HOST_HostB_cert.cer>';
    GO 
    
  3. Mediante cualquier método de copia segura, copie el archivo de copia de seguridad del certificado (por ejemplo, C:\HOST_HostB_cert.cer) en el servidor principal.

  4. En el servidor reflejado, restaure la base de datos desde los archivos de copia de seguridad. En este ejemplo se usa la base de datos de configuración. Repita este paso para todas las bases de datos.

    RESTORE DATABASE SharePoint_Config 
        FROM DISK = '<c:\SharePoint_Config.bak>' 
        WITH NORECOVERY
    GO
    RESTORE log SharePoint_Config 
        FROM DISK = '<c:\SharePoint_Config_log.bak>' 
        WITH NORECOVERY
    GO
    

Para configurar el servidor reflejado para conexiones de entrada

  1. En el servidor reflejado, cree un inicio de sesión y un usuario para el servidor principal, asocie el certificado con el usuario y otorgue al inicio de sesión los permisos de conexión para la asociación.

    --Create a login on HOST_B for HOST_A
    USE master;
    CREATE LOGIN <MASTER_HostA_login> WITH PASSWORD = '<test1234->';
    GO
    --Create a user for that login.
    CREATE USER <MASTER_HostA_user> FOR LOGIN <MASTER_HostA_login>;
    GO
    --Associate the certificate with the user
    CREATE CERTIFICATE <MASTER_HostA_cert>
       AUTHORIZATION <MASTER_HostA_user>
       FROM FILE = '<c:\MASTER_HostA_cert.cer>' --do not use a network path, SQL Server will give an error about the key not being valid
    GO
    --Grant CONNECT permission on the login for the remote mirroring endpoint.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<MASTER_HostA_login>];
    GO
    

Para configurar el servidor principal para conexiones de entrada

  1. En el servidor principal, cree un inicio de sesión y un usuario para el servidor reflejado, asocie el certificado con el usuario y otorgue al inicio de sesión los permisos de conexión para la asociación.

    --Create a login on HOST_A for HOST_B
    USE master;
    CREATE LOGIN <HOST_HostB_login> WITH PASSWORD = '<1234-test>';
    GO
    --Create a user for that login.
    CREATE USER <HOST_HostB_user> FOR LOGIN <HOST_HostB_login>;
    GO
    --Associate the certificate with the user
    CREATE CERTIFICATE <HOST_HostB_cert>
       AUTHORIZATION <HOST_HostB_user>
       FROM FILE = '<c:\HOST_HostB_cert.cer>' --do not use a network path, SQL Server will give an error about the key not being valid
    GO
    --Grant CONNECT permission on the login for the remote mirroring endpoint.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<HOST_HostB_login>];
    GO
    

Para configurar los asociados de creación de reflejos

  1. En el servidor principal, configure la asociación de creación de reflejo. En este ejemplo se usa la base de datos de configuración. Repita este paso para todas las bases de datos.

    --At HOST_A, set the server instance on HOST_B as a partner (mirror server).
    ALTER DATABASE SharePoint_Config
        SET PARTNER = '<TCP://databasemirror.adatum.com:5024>';
    GO
    
  2. En el servidor reflejado, configure la asociación de creación de reflejo. En este ejemplo se usa la base de datos de configuración. Repita este paso para todas las bases de datos.

    --At HOST_B, set the server instance on HOST_A as a partner (principal server):
    ALTER DATABASE SharePoint_Config 
        SET PARTNER = '<TCP://databasemaster.adatum.com:5024>';
    GO
    

Configuración de un servidor testigo

Cada paso indica el servidor en el que se debe realizar. Use Transact-SQL para enviar estos comandos a SQL Server. La información de los marcadores de posición se indica con corchetes angulares (<>); reemplácela con la información específica de la implementación.

  1. En el servidor testigo, configure el certificado y abra el puerto.

    --On the master database, create the database master key, if needed
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1234test->';
    GO
    -- Make a certificate for this server instance.
    USE master;
    CREATE CERTIFICATE <WITNESS_HostC_cert> 
       WITH SUBJECT = '<Witness_HostC certificate>';
    GO
    --Create a mirroring endpoint for server instance by using the certificate
    CREATE ENDPOINT Endpoint_Mirroring
       STATE = STARTED
       AS TCP (
          LISTENER_PORT=5024
          , LISTENER_IP = ALL
       ) 
       FOR DATABASE_MIRRORING ( 
          AUTHENTICATION = CERTIFICATE <WITNESS_HostC_cert
          , ENCRYPTION = REQUIRED ALGORITHM RC4
          , ROLE = ALL
       );
    GO
    
  2. En el servidor testigo, haga una copia de seguridad del certificado.

    --Back up the HOST_C certificate 
    BACKUP CERTIFICATE <WITNESS_HostC_cert> TO FILE = '<c:\ WITNESS_HostC_cert.cer>';
    GO
    
  3. Mediante cualquier método de copia segura, copie el archivo de copia de seguridad del certificado (por ejemplo, C:\WITNESS_HOSTC_cert.cer) en el servidor principal y el servidor reflejado.

  4. En el servidor testigo, cree inicios de sesión y usuarios para el servidor principal y el servidor reflejado, asocie los certificados con los usuarios y otorgue a los inicios de sesión los permisos de conexión para la asociación.

    --Create a login on witness HOST_C for principal HOST_A
    USE master;
    CREATE LOGIN <MASTER_HostA_login> WITH PASSWORD = '<test1234->';
    GO
    --Create a user for that login.
    CREATE USER <MASTER_HostA_user> FOR LOGIN <MASTER_HostA_login>;
    GO
    --Associate the certificate with the user
    CREATE CERTIFICATE <MASTER_HostA_cert>
       AUTHORIZATION <MASTER_HostA_user>
       FROM FILE = '<c:\MASTER_HostA_cert.cer>' --do not use a network path, SQL Server will give an error about the key not being valid
    GO
    --Grant CONNECT permission on the login for the remote mirroring endpoint.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<MASTER_HostA_login>];
    GO
    --Create a login for the mirror Host_B
    CREATE LOGIN <HOST_HostB_login> WITH PASSWORD = '<1234-test>';
    GO
    --Create a user for that login.
    CREATE USER <HOST_HostB_user> FOR LOGIN <HOST_HostB_login>;
    GO
    --Associate the certificate with the user
    CREATE CERTIFICATE <HOST_HostB_cert>
       AUTHORIZATION <HOST_HostB_user>
       FROM FILE = '<c:\HOST_HostB_cert.cer>' --do not use a network path, SQL Server will give an error about the key not being valid
    GO
    --Grant CONNECT permission on the login for the remote mirroring endpoint.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<HOST_HostB_login>];
    GO
    
  5. En el servidor principal, cree un inicio de sesión y un usuario para el servidor testigo, asocie el certificado con el usuario y otorgue al inicio de sesión los permisos de conexión para la asociación. Repita este paso para el servidor reflejado.

    --Create a login on master HostA for witness HostC
    USE master;
    CREATE LOGIN <WITNESS_HostC_login> WITH PASSWORD = '<1234test->';
    GO
    --Create a user for that login.
    CREATE USER <WITNESS_HostC_user> FOR LOGIN <WITNESS_HostC_login>;
    GO
    --Associate the certificate with the user
    CREATE CERTIFICATE <WITNESS_HostC_cert>
       AUTHORIZATION <WITNESS_HostC_user>
       FROM FILE = '<c:\WITNESS_HostC_cert.cer>' --do not use a network path, SQL Server will give an error about the key not being valid
    GO
    --Grant CONNECT permission on the login for the remote mirroring endpoint.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<WITNESS_HostC_login>];
    GO
    
  6. En el servidor principal, adjunte el servidor testigo. En este ejemplo se usa la base de datos de configuración. Repita este paso para todas las bases de datos.

    --Set up the witness server
    ALTER DATABASE SharePoint_Config
        SET WITNESS = 
        '<TCP://databasewitness.adatum.com:5024>'
    GO
    

Transferencia de permisos al servidor reflejado

Cuando se configura una base de datos reflejada, los inicios de sesión y los permisos de SQL Server para la base de datos que se va a usar con una granja de servidores de SharePoint no se configuran de forma automática en las bases de datos maestra y msdb del servidor reflejado. En su lugar, debe configurar los permisos para los inicios de sesión necesarios.

Se recomienda transferir los inicios de sesión y los permisos desde el servidor principal al servidor reflejado mediante la ejecución de un script. Se recomienda usar el script disponible en el artículo 918992 de Knowledge Base acerca de cómo transferir los inicios de sesión y las contraseñas entre instancias de SQL Server 2005 (https://go.microsoft.com/fwlink/?linkid=122053&clcid=0xC0A).

Quitar la creación de reflejo de un servidor

Para quitar la creación de reflejo de un servidor, vea el tema de procedimiento para quitar la creación de reflejo de la base de datos (Transact-SQL) (https://go.microsoft.com/fwlink/?linkid=185070&clcid=0xC0A).