미러 데이터베이스의 미러링 준비(SQL Server)

적용 대상:SQL Server

데이터베이스 미러링 세션을 시작하려면 먼저 데이터베이스 소유자 또는 시스템 관리자가 미러 데이터베이스를 만들고 미러링 준비가 되었는지 확인해야 합니다. 새 미러 데이터베이스를 최소한으로 만들려면 주 데이터베이스 및 후속 로그 백업의 전체 백업을 수행하고 모두 WITH NORECOVERY를 사용하여 미러 서버 인스턴스로 복원해야 합니다.

이 항목에서는 SQL Server 또는 SQL Server Management Studio를 사용하여 Transact-SQL에 미러 데이터베이스를 준비하는 방법을 설명합니다.

시작하기 전에

요구 사항

  • 보안 주체와 미러 서버 인스턴스는 동일한 SQL Server 버전에서 실행해야 합니다. 미러 서버에 상위 버전의 SQL Server가 있을 수 있지만 이 구성은 신중하게 계획된 업그레이드 프로세스 중에만 권장됩니다. 이러한 구성에서는 데이터가 하위 버전의 SQL Server로 이동할 수 없으므로 데이터 이동이 자동으로 일시 중단되는 자동 장애 조치(failover)의 위험을 실행합니다. 자세한 내용은 Upgrading Mirrored Instances을 참조하세요.

  • 보안 주체와 미러 서버 인스턴스는 동일한 SQL Server 버전에서 실행해야 합니다. SQL Server의 데이터베이스 미러링 지원에 대한 자세한 내용은 SQL Server 2022의 버전 및 지원하는 기능을 참조하세요.

  • 이 데이터베이스는 전체 복구 모델을 사용해야 합니다.

    자세한 내용은 데이터베이스 복구 모델 보기 또는 변경(SQL Server) 또는 sys.databases(Transact-SQL)ALTER DATABASE(Transact-SQL)를 참조하세요.

  • 미러 데이터베이스의 이름이 주 데이터베이스의 이름과 동일해야 합니다.

  • 미러링이 작동하려면 미러 데이터베이스가 RESTORING 상태여야 합니다. 미러 데이터베이스를 준비할 때는 모든 복원 작업에 RESTORE WITH NORECOVERY를 사용해야 합니다. 최소한 WITH NORECOVERY를 주 데이터베이스의 전체 백업으로 복원한 다음 모든 후속 로그 백업을 복원해야 합니다.

  • 미러 데이터베이스를 만들고자 하는 시스템에는 미러 데이터베이스를 저장할 충분한 공간이 있는 디스크 드라이브가 있어야 합니다.

제한 사항

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

  • AlwaysOn 가용성 그룹에 속한 데이터베이스는 미러링할 수 없습니다.

권장 사항

  • 주 데이터베이스의 가장 최근의 차등 데이터베이스 백업 또는 가장 최근의 전체 데이터베이스 백업을 사용합니다.

  • 주 데이터베이스에서 로그 백업 작업이 매우 자주 실행되도록 예약된 경우, 미러링이 시작될 때까지 백업 작업을 수행하지 않도록 설정해야 할 수 있습니다.

  • 가능한 경우 드라이브 문자를 포함한 미러 데이터베이스의 경로가 주 데이터베이스의 경로와 같아야 합니다.

    예를 들어 주 데이터베이스가 드라이브 'F:'에 있지만 미러 시스템에 F: 드라이브가 존재하지 않는 상황에 파일 경로가 달라야 하는 경우 RESTORE 문에 MOVE 옵션을 포함시켜야 합니다.

    중요

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

  • 주 데이터베이스에 전체 텍스트 카탈로그가 있는 경우 데이터베이스 미러링 및 전체 텍스트 카탈로그(SQL Server)를 참조하는 것이 좋습니다.

  • 프로덕션 데이터베이스의 경우에는 항상 별도의 디바이스에 백업합니다.

보안

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

미러 데이터베이스의 데이터베이스 마스터 키 자동 암호 해독을 사용하도록 설정하는 방법에 대한 자세한 내용은 암호화된 미러 데이터베이스 설정을 참조하세요.

사용 권한

데이터베이스 소유자 또는 시스템 관리자입니다.

미러링을 다시 시작하기 위해 기존 미러 데이터베이스를 준비하려면

미러링이 제거되었고 미러 데이터베이스가 아직 RECOVERING 상태인 경우 미러링을 다시 시작할 수 있습니다.

  1. 주 데이터베이스에서 하나 이상의 로그 백업을 수행합니다. 자세한 내용은 트랜잭션 로그 백업(SQL Server)을 참조하세요.

  2. 미러 데이터베이스에서 RESTORE WITH NORECOVERY를 사용하여 미러링이 제거된 후에 주 데이터베이스에서 수행된 모든 로그 백업을 복원합니다. 자세한 내용은 트랜잭션 로그 백업 복원(SQL Server)을 참조하세요.

새 미러 데이터베이스를 준비하려면

미러 데이터베이스를 준비하려면

참고

이 절차에 대한 Transact-SQL 예는 이 섹션의 뒷부분에 나오는 예(Transact-SQL)를 참조하세요.

  1. 주 서버 인스턴스에 연결합니다.

  2. 주 데이터베이스의 전체 데이터베이스 백업 또는 차등 데이터베이스 백업을 만듭니다.

  3. 일반적으로 주 데이터베이스에서 하나 이상의 로그 백업을 수행해야 합니다. 하지만 데이터베이스를 방금 만들었으며 아직 로그 백업이 불필요한 경우 또는 복구 모델이 방금 SIMPLE에서 FULL로 변경된 경우에는 로그 백업이 존재하지 않습니다.

  4. 두 시스템에서 액세스할 수 있는 네트워크 드라이브에 백업이 없는 한 데이터베이스 및 로그 백업을 미러 서버 인스턴스를 호스트할 시스템에 복사합니다.

  5. 미러 서버 인스턴스에 연결합니다.

  6. RESTORE WITH NORECOVERY를 사용하여 전체 데이터베이스 백업 및 필요한 경우 가장 최근의 차등 데이터베이스 백업을 미러 서버 인스턴스에 복원하여 미러 데이터베이스를 만듭니다.

    참고

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

  7. RESTORE WITH NORECOVERY를 사용하여 미해결 로그 백업 또는 백업을 미러 데이터베이스에 적용합니다.

예제(Transact-SQL)

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

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

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

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

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

후속 작업: 미러 데이터베이스를 준비한 후

  1. 대부분의 최근 RESTORE LOG 작업을 수행한 이후 추가 로그 백업이 수행된 경우 RESTORE WITH NORECOVERY를 사용하여 모든 추가 로그 백업을 수동으로 적용해야 합니다.

  2. 미러링 추적을 시작합니다. 자세한 내용은 Windows 인증을 사용하여 데이터베이스 미러링 세션 설정(SQL Server Management Studio) 또는 Windows 인증을 사용하여 데이터베이스 미러링 세션 설정(Transact-SQL)을 참조하세요.

  3. 주 데이터베이스에서 백업 작업을 사용하지 않도록 설정한 경우 작업을 다시 활성화합니다.

  4. 장애 조치(failover) 후 데이터베이스를 신뢰할 수 있어야 하는 경우 미러링 시작 후 추가 설정 단계가 필요합니다. 자세한 내용은 Trustworthy 속성을 사용하도록 미러 데이터베이스 설정(Transact-SQL)을 참조하세요.

관련 작업

참고 항목

데이터베이스 미러링(SQL Server)
데이터베이스 미러링 및 Always On 가용성 그룹에 대한 전송 보안(SQL Server)
데이터베이스 미러링 설정(SQL Server)
전체 텍스트 카탈로그와 인덱스 백업 및 복원
데이터베이스 미러링 및 전체 텍스트 카탈로그(SQL Server)
데이터베이스 미러링 및 복제(SQL Server)
BACKUP(Transact-SQL)
RESTORE(Transact-SQL)
RESTORE 인수(Transact-SQL)