다음을 통해 공유


방법: 미러 데이터베이스의 미러링 준비(Transact-SQL)

데이터베이스 미러링 세션이 시작되기 전에 미러 데이터베이스가 있어야 합니다. 미러 데이터베이스의 이름은 주 데이터베이스의 이름과 같아야 합니다. 데이터베이스 소유자나 시스템 관리자는 주 데이터베이스의 최근 전체 백업과 하나 이상의 후속 로그 백업에서 미러 데이터베이스를 만들 수 있습니다. 미러링이 작동하려면 미러 데이터베이스가 RESTORING 상태여야 합니다. 따라서 백업을 미러 데이터베이스로 복원할 때는 모든 복원 작업에 대해 항상 WITH NORECOVERY를 사용해야 합니다.

미러링이 제거되었고 미러 데이터베이스가 아직 RECOVERING 상태인 경우 미러링을 다시 시작할 수 있습니다. 그러나 먼저 주 데이터베이스에서 하나 이상의 로그 백업을 수행해야 합니다. 그런 다음 미러링이 제거된 이후 주 데이터베이스에서 수행한 모든 로그 백업에 사용된 WITH NORECOVERY를 미러 데이터베이스에서 복원해야 합니다.

[!참고]

master, msdb, temp 또는 model 시스템 데이터베이스는 미러링할 수 없습니다.

절차

데이터베이스 미러링을 위해 데이터베이스를 만들려면

  1. 주 서버와 미러 서버 인스턴스에 모두 MicrosoftSQL Server 2008가 설치되어 있는지 확인합니다.

  2. 데이터베이스에서 전체 복구 모델을 사용하는지 확인합니다.

    자세한 내용은 방법: 데이터베이스의 복구 모델 보기 또는 변경(SQL Server Management Studio) 또는 sys.databases(Transact-SQL)ALTER DATABASE(Transact-SQL)를 참조하십시오.

  3. 전체 데이터베이스 백업으로 주 데이터베이스를 백업합니다.

    자세한 내용은 방법: 데이터베이스 백업(SQL Server Management Studio) 또는 방법: 전체 데이터베이스 백업 만들기(Transact-SQL)를 참조하십시오.

    [!참고]

    또는 기존 전체 데이터베이스 백업을 복원할 수 있으며 필요에 따라 모든 후속 로그 백업으로 이어지는 차등 데이터베이스 백업을 복원할 수 있습니다.

  4. 미러 데이터베이스를 만들려는 시스템에 데이터베이스를 저장할 공간이 충분한 디스크 드라이브가 있는지 확인합니다.

  5. 두 시스템에서 모두 액세스할 수 있는 네트워크 드라이브에 백업이 있지 않으면 데이터베이스 백업을 해당 시스템으로 복사합니다.

  6. 미러 데이터베이스를 만들려면 전체 데이터베이스 백업을 미러 서버 인스턴스로 복원합니다. RESTORE DATABASE database_name 문에서 WITH NORECOVERY를 지정해야 합니다. 여기서 database_name은 미러링할 데이터베이스의 이름입니다.

    [!참고]

    파일 그룹별로 데이터베이스 파일 그룹을 복원하는 경우에는 전체 데이터베이스를 복원해야 합니다.

    또한 가능한 경우 드라이브 문자를 포함한 미러 데이터베이스의 경로가 주 데이터베이스의 경로와 동일한 것이 좋습니다.

    파일 레이아웃이 다른 경우, 예를 들어 주 데이터베이스가 'F:' 드라이브에 있는데 미러 시스템에는 F: 드라이브가 없는 경우 RESTORE 문에 MOVE 옵션을 포함해야 합니다.

    중요 정보중요

    미러링 세션에 영향을 주지 않고 해당 세션 중 파일을 추가하려면 파일의 경로가 두 서버 모두에 있어야 합니다. 따라서 미러 데이터베이스를 만들 때 데이터베이스 파일을 이동하면 나중에 미러 데이터베이스에 파일을 추가할 수 없고 미러링이 일시 중지될 수 있습니다. 실패한 파일 생성 작업을 처리하는 방법은 데이터베이스 미러링 배포 문제 해결을 참조하십시오.

    자세한 내용은 RESTORE(Transact-SQL)RESTORE 인수(Transact-SQL)를 참조하십시오.

  7. 일반적으로 주 데이터베이스에서 로그 백업을 하나 이상 수행하여 미러 서버로 복사한 다음 미러 데이터베이스에 복원해야 합니다(WITH NORECOVERY 사용). 그러나 데이터베이스를 방금 만들었으며 아직 로그 백업이 수행되지 않은 경우 또는 복구 모델이 방금 SIMPLE에서 FULL로 변경된 경우에는 로그 백업이 필요하지 않을 수도 있습니다.

    미러 데이터베이스에 로그 백업을 적용하려면 미러 서버에서 SQL Server 또는 Transact-SQL을 사용합니다.

  8. 필수 로그 백업 이후 주 데이터베이스에서 추가 로그 백업이 수행된 경우 이러한 로그 백업도 미러 서버로 복사하여 가장 빠른 로그 백업부터 각각 미러 데이터베이스에 적용해야 합니다. 항상 WITH NORECOVERY를 사용하십시오.

보안 정보보안 정보

데이터베이스를 백업하면 TRUSTWORTHY가 OFF로 설정됩니다. 따라서 새 미러 데이터베이스의 TRUSTWORTHY는 항상 OFF입니다. 장애 조치(Failover) 후 데이터베이스를 신뢰할 수 있어야 하는 경우에는 추가 설정 단계가 필요합니다. 자세한 내용은 방법: Trustworthy 속성을 사용하도록 미러 데이터베이스 설정을 참조하십시오.

중요 정보중요

데이터베이스 미러링이 중지된 경우 주 데이터베이스에서 수행된 모든 후속 로그 백업을 미러 데이터베이스에 적용해야만 미러링을 다시 시작할 수 있습니다.

데이터베이스 미러링 세션이 시작되기 전에 미러 데이터베이스를 만들어야 합니다. 이 작업은 미러링 세션을 시작하기 직전에 수행해야 합니다.

이 예에서는 기본적으로 단순 복구 모델을 사용하는 AdventureWorks 예제 데이터베이스를 사용합니다.

  1. AdventureWorks 데이터베이스에서 데이터베이스 미러링을 사용하려면 전체 복구 모델을 사용하도록 수정합니다.

    USE master;
    GO
    ALTER DATABASE AdventureWorks 
    SET RECOVERY FULL;
    GO
    
  2. 데이터베이스 복구 모델을 SIMPLE에서 FULL로 변경한 후 미러 데이터베이스를 만드는 데 사용할 수 있는 전체 백업을 만듭니다. 복구 모델이 방금 변경되었으므로 WITH FORMAT 옵션을 지정하여 새 미디어 세트를 만듭니다. 이 옵션은 단순 복구 모델에서 만든 이전 백업과 전체 복구 모델에서 만든 백업을 구분하는 데 유용합니다. 이 예에서는 백업 파일(C:\AdventureWorks.bak)이 데이터베이스와 같은 드라이브에서 생성됩니다.

    [!참고]

    프로덕션 데이터베이스의 경우에는 항상 별도의 장치에 백업해야 합니다.

    PARTNERHOST1의 주 서버 인스턴스에서 주 데이터베이스의 전체 백업을 다음과 같이 만듭니다.

    BACKUP DATABASE AdventureWorks 
        TO DISK = 'C:\AdventureWorks.bak' 
        WITH FORMAT
    GO
    
  3. 전체 백업을 미러 서버에 복사합니다.

  4. WITH NORECOVERY를 사용하여 전체 백업을 미러 서버 인스턴스로 복원합니다. 복원 명령은 주 데이터베이스와 미러 데이터베이스의 경로가 동일한지 여부에 따라 달라집니다.

    • 경로가 동일한 경우

      PARTNERHOST5의 미러 서버 인스턴스에서 전체 백업을 다음과 같이 복원합니다.

      RESTORE DATABASE AdventureWorks 
          FROM DISK = 'C:\AdventureWorks.bak' 
          WITH NORECOVERY
      GO
      
    • 경로가 다른 경우

      미러 데이터베이스의 경로와 주 데이터베이스의 경로가 다른 경우(예: 드라이브 문자가 다른 경우) 미러 데이터베이스를 만들 때 복원 작업에 MOVE 절을 포함해야 합니다.

      중요 정보중요

      주 데이터베이스 및 미러 데이터베이스의 경로 이름이 다른 경우 파일을 추가할 수 없습니다. 이는 파일 추가 작업에 대한 로그를 받을 때 미러 서버 인스턴스가 주 데이터베이스에서 사용하는 위치에 새 파일을 배치하기 때문입니다.

      예를 들어 다음 명령은 C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\에 있는 주 데이터베이스의 백업을 미러 데이터베이스가 배치될 다른 위치인 D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\로 복원합니다.

      RESTORE DATABASE AdventureWorks
         FROM DISK='C:\AdventureWorks.bak'
         WITH NORECOVERY, 
            MOVE 'AdventureWorks_Data' TO 
               'D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\AdventureWorks_Data.mdf', 
            MOVE 'AdventureWorks_Log' TO
               'D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\AdventureWorks_Log.ldf';
      GO
      
  5. 전체 백업을 만든 후 주 데이터베이스에서 로그 백업을 만들어야 합니다. 예를 들어 다음 Transact-SQL 문은 앞의 전체 백업에 사용된 파일에 로그를 백업합니다.

    BACKUP LOG AdventureWorks 
        TO DISK = 'C:\AdventureWorks.bak' 
    GO
    
  6. 미러링을 시작하기 전에 필수 로그 백업 및 모든 후속 로그 백업을 적용해야 합니다.

    예를 들어 다음 Transact-SQL 문은 C:\AdventureWorks.bak에서 첫 번째 로그를 복원합니다.

    RESTORE LOG AdventureWorks 
        FROM DISK = 'C:\AdventureWorks.bak' 
        WITH FILE=1, NORECOVERY
    GO
    
  7. 미러링을 시작하기 전에 추가 로그 백업이 수행되면 이러한 로그 백업도 WITH NORECOVERY를 사용하여 순서대로 미러 서버로 복원해야 합니다.

    예를 들어 다음 Transact-SQL 문은 C:\AdventureWorks.bak에서 두 개의 로그를 추가로 복원합니다.

    RESTORE LOG AdventureWorks 
        FROM DISK = 'C:\AdventureWorks.bak' 
        WITH FILE=2, NORECOVERY
    GO
    RESTORE LOG AdventureWorks 
        FROM DISK = 'C:\AdventureWorks.bak' 
        WITH FILE=3, NORECOVERY
    GO
    

데이터베이스 미러링 설정, 보안 설정 표시, 미러 데이터베이스 준비, 파트너 설정 및 미러링 모니터 서버 추가 등의 작업을 수행하는 전체 예는 데이터베이스 미러링 설정을 참조하십시오.