SQL Server 데이터베이스 미러링 구성용 샘플 스크립트(SharePoint Server 2010)

 

적용 대상: SharePoint Foundation 2010, SharePoint Server 2010

마지막으로 수정된 항목: 2016-11-30

이 문서에는 테스트 Microsoft SharePoint Server 2010 환경에 대해 Microsoft SQL Server 미러링을 설정하는 데 사용할 수 있는 일련의 샘플 스크립트가 나와 있습니다. SQL Server 데이터베이스 관리자는 프로덕션 환경에 대해 미러링을 구성하는 것이 좋습니다.

SharePoint Server 2010을 통해 데이터베이스 미러링을 설정하려면 미러링할 각 데이터베이스에 대해 개별적으로 작업을 수행해야 합니다.

이 문서의 내용

다음 섹션의 단계는 다음 서버 팜 토폴로지에 적용됩니다.

  • 하나 이상의 프런트 엔드 웹 서버

  • SQL Server 2008을 실행하는 세 서버(주 서버, 미러 서버, 미러링 모니터 서버)

  • 단일 구성 데이터베이스

  • 여러 콘텐츠 데이터베이스

  • 하나 이상의 서비스 응용 프로그램 데이터베이스

인증서 및 전체 복구를 통해 데이터베이스 미러링 구성

각 단계에는 해당 단계를 수행해야 하는 서버가 나와 있습니다. Transact-SQL을 사용하여 이러한 명령을 SQL Server로 보냅니다. 자리 표시자 정보는 꺾쇠 괄호(<>)로 표시되어 있으며, 이러한 항목은 실제 배포의 정보로 바꾸십시오.

아웃바운드 연결에 대해 주 서버를 설정하려면

  1. 주 서버에서 인증서를 만들고 미러링용 포트를 엽니다.

    --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. 주 서버에서 인증서를 백업합니다.

    --Back up the HOST_A certificate.
    BACKUP CERTIFICATE MASTER_HostA_cert TO FILE = '<c:\MASTER_HostA_cert.cer>';
    GO
    
  3. 주 서버에서 데이터베이스를 백업합니다. 이 예제에서는 구성 데이터베이스를 사용합니다. 모든 데이터베이스에 대해 이 작업을 반복합니다.

    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. 백업 파일을 미러 서버에 복사합니다. 모든 데이터베이스에 대해 이 작업을 반복합니다.

  5. 안전 복사 방법을 사용하여 백업 인증서 파일(예: C:\HOST_HostA_cert.cer)을 미러 서버에 복사합니다.

  6. 주 서버에서 미러 서버용 로그인 및 사용자를 만들고, 인증서를 사용자와 연결한 다음 파트너 관계를 위한 로그인 연결 권한을 부여합니다.

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

아웃바운드 연결에 대해 미러 서버를 설정하려면

  1. 미러 서버에서 인증서를 만들고 미러링용 포트를 엽니다.

    --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. 미러 서버에서 인증서를 백업합니다.

    --Back up the HOST_B certificate.
    BACKUP CERTIFICATE <HOST_HostB> TO FILE = '<C:\HOST_HostB_cert.cer>';
    GO 
    
  3. 안전 복사 방법을 사용하여 백업 인증서 파일(예: C:\HOST_HostB_cert.cer)을 주 서버에 복사합니다.

  4. 미러 서버에서 백업 파일로부터 데이터베이스를 복원합니다. 이 예제에서는 구성 데이터베이스를 사용합니다. 모든 데이터베이스에 대해 이 작업을 반복합니다.

    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
    

인바운드 연결에 대해 미러 서버를 설정하려면

  1. 미러 서버에서 주 서버용 로그인 및 사용자를 만들고, 인증서를 사용자와 연결한 다음 파트너 관계를 위한 로그인 연결 권한을 부여합니다.

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

인바운드 연결에 대해 주 서버를 설정하려면

  1. 주 서버에서 미러 서버용 로그인 및 사용자를 만들고, 인증서를 사용자와 연결한 다음 파트너 관계를 위한 로그인 연결 권한을 부여합니다.

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

미러링 파트너를 설정하려면

  1. 주 서버에서 미러링 파트너 관계를 설정합니다. 이 예제에서는 구성 데이터베이스를 사용합니다. 모든 데이터베이스에 대해 이 작업을 반복합니다.

    --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. 미러 서버에서 미러링 파트너 관계를 설정합니다. 이 예제에서는 구성 데이터베이스를 사용합니다. 모든 데이터베이스에 대해 이 작업을 반복합니다.

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

미러링 모니터 서버 설정

각 단계에는 해당 단계를 수행해야 하는 서버가 나와 있습니다. Transact-SQL을 사용하여 이러한 명령을 SQL Server로 보냅니다. 자리 표시자 정보는 꺾쇠 괄호(<>)로 표시되어 있으며, 이러한 항목은 실제 배포의 정보로 바꾸십시오.

  1. 미러링 모니터 서버에서 인증서를 설정하고 포트를 엽니다.

    --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. 미러링 모니터 서버에서 인증서를 백업합니다.

    --Back up the HOST_C certificate 
    BACKUP CERTIFICATE <WITNESS_HostC_cert> TO FILE = '<c:\ WITNESS_HostC_cert.cer>';
    GO
    
  3. 안전 복사 방법을 사용하여 백업 인증서 파일(예: C:\WITNESS_HOSTC_cert.cer)을 주 서버 및 미러 서버에 복사합니다.

  4. 미러링 모니터 서버에서 주 서버 및 미러 서버용 로그인 및 사용자를 만들고, 인증서를 사용자와 연결한 다음 파트너 관계를 위한 로그인 연결 권한을 부여합니다.

    --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. 주 서버에서 미러링 모니터 서버용 로그인 및 사용자를 만들고, 인증서를 사용자와 연결한 다음 파트너 관계를 위한 로그인 연결 권한을 부여합니다. 미러 서버에 대해 작업을 반복합니다.

    --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. 주 서버에서 미러링 모니터 서버를 연결합니다. 이 예제에서는 구성 데이터베이스를 사용합니다. 모든 데이터베이스에 대해 이 작업을 반복합니다.

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

미러 서버로 사용 권한 전송

미러된 데이터베이스를 설정할 때 SharePoint 팜을 사용하기 위해 필요한 SQL Server 로그인 및 사용 권한은 미러 서버의 마스터msdb 데이터베이스에서 자동으로 구성되지 않습니다. 대신 필요한 로그인에 대한 사용 권한을 구성해야 합니다.

스크립트를 실행하여 주 서버에서 미러 서버로 로그인 및 사용 권한을 전송하는 것이 좋습니다. 권장 스크립트는 기술 자료 문서 918992: SQL Server 2005 인스턴스 간에 로그인 및 암호를 전송하는 방법(https://go.microsoft.com/fwlink/?linkid=122053&clcid=0x412)에서 사용 가능합니다.

서버에서 미러링 제거

서버에서 미러링을 제거하려면 방법: 데이터베이스 미러링 제거(Transact-SQL)(https://go.microsoft.com/fwlink/?linkid=185070&clcid=0x412)를 참조하십시오.