데이터베이스 미러링 및 로그 전달(SQL Server)Database Mirroring and Log Shipping (SQL Server)

지정된 데이터베이스를 미러링하거나 로그를 전달할 수 있으며 동시에 미러링하고 로그를 전달할 수도 있습니다.A given database can be mirrored or log shipped; it can also be simultaneously mirrored and log shipped. 사용할 방법을 선택하려면 다음을 고려합니다.To choose what approach to use, consider the following:

  • 얼마나 많은 대상 서버가 필요하십니까?How many destination servers do you require?

    하나의 대상 데이터베이스만 필요한 경우 권장되는 솔루션은 데이터베이스 미러링입니다.If you require only a single destination database, database mirroring is the recommended solution.

    둘 이상의 대상 데이터베이스가 필요한 경우 로그 전달을 단독으로 또는 데이터베이스 미러링과 함께 사용해야 합니다.If you require more than one destination database, you need to use log shipping, either alone or with database mirroring. 이러한 방법을 조합하여 사용하면 로그 전달을 통해 제공되는 여러 대상에 대한 지원과 더불어 데이터베이스 미러링의 이점을 얻을 수 있습니다.Combining these approaches gives you the benefits of database mirroring along with the support for multiple destinations provided by log shipping.

  • 대상 데이터베이스에 대한 로그 복원을 지연해야 하는 경우 일반적으로 논리적 오류를 방지하기 위해 로그 전달을 단독으로 또는 데이터베이스 미러링과 함께 사용합니다.If you need to delay restoring log on the destination database (typically, to protect against logical errors), use log shipping, alone or with database mirroring.

    이 항목에서는 로그 전달과 데이터베이스 미러링을 조합할 때 고려할 사항에 대해 설명합니다.This topic discusses considerations for combining log shipping and database mirroring.

참고

이러한 기술에 대한 소개는 데이터베이스 미러링(SQL Server)로그 전달 정보(SQL Server)를 참조하세요.For introductions to these technologies, see Database Mirroring (SQL Server) and About Log Shipping (SQL Server).

로그 전달 및 데이터베이스 미러링 조합Combining Log Shipping and Database Mirroring

또한 미러링 세션의 주 데이터베이스가 로그 전달 구성에서 기본 데이터베이스로 작동하거나 또는 로그 전달 백업 공유가 그대로 유지될 때 그 반대로 작동합니다.The principal database in a mirroring session can also act as the primary database in a log shipping configuration, or vice versa, as the log shipping backup share is intact. 데이터베이스 미러링 세션은 트랜잭션 보안이 FULL로 설정된 동기식 운영 모드나 OFF로 설정된 비동기식 운영 모드로 실행됩니다.The database mirroring session run in any operating mode, whether synchronous (with transaction safety set to FULL) or asynchronous (with transaction safety set to OFF).

참고

데이터베이스에서 데이터베이스 미러링을 사용하려면 항상 전체 복구 모델이 필요합니다.To use database mirroring on a database, the full recovery model is always required.

일반적으로 로그 전달과 데이터베이스 미러링을 조합할 때 미러링 세션은 필요하지 않더라도 로그 전달 전에 설정됩니다.Typically, when combining log shipping and database mirroring, the mirroring session is established before log shipping, although this is not required. 현재 주 데이터베이스는 하나 이상의 원격 보조 데이터베이스와 로그 전달 기본( 주/기본 데이터베이스)으로 구성되어 있습니다.Then the current principal database is configured as the log shipping primary (the principal/primary database), along with one or more remote secondary databases. 또한 미러 데이터베이스는 로그 전달 기본( 미러/주 데이터베이스)으로 구성되어 있어야 합니다.Also, the mirror database must be configured as a log shipping primary (the mirror/primary database). 로그 전달 보조 데이터베이스는 주/기본 서버나 미러/기본 서버와 다른 서버 인스턴스에 있어야 합니다.The log shipping secondary databases should be on different server instances than either the principal/primary server or mirror/primary server.

참고

로그 전달과 관련된 서버에 대한 대/소문자 구분 설정이 일치해야 합니다.The case sensitivity settings of the servers involved in log shipping should match.

로그 전달 세션 동안 기본 데이터베이스에 대한 백업 작업으로 백업 폴더에 로그 백업이 생성됩니다.During a log shipping session, backup jobs on the primary database create log backups in a backup folder. 이 위치에서 백업은 보조 서버의 복사 작업에 따라 복사됩니다.From there, the backups are copied by the copy jobs of the secondary servers. 백업 작업과 복사 작업을 완료하려면 로그 전달 백업 폴더에 대한 액세스 권한이 있어야 합니다.For the backup jobs and copy jobs to succeed, they must have access to the log shipping backup folder. 기본 서버의 가용성을 극대화하려면 별도의 호스트 컴퓨터에 있는 공유 백업 위치에 백업 폴더를 설정하는 것이 좋습니다.To maximize availability of the primary server, we recommend that you establish the backup folder in a shared backup location on a separate host computer. 미러/기본 서버를 비롯하여 모든 로그 전달 서버에서 공유 백업 위치( 백업 공유)에 액세스할 수 있도록 합니다.Ensure that all the log shipping servers, including the mirror/primary server, can access the shared backup location (known as a backup share).

데이터베이스 미러링을 장애 조치(Failover)한 후에 로그 전달을 계속하려면 주 데이터베이스에서 기본 데이터베이스에 사용하는 구성과 동일한 구성을 사용하여 미러 서버를 주 서버로 구성해야 합니다.To allow log shipping to continue after database mirroring fails over, you must also configure the mirror server as a primary server, using the same configuration you use for the primary on the principal database. 미러 데이터베이스는 복원 중이므로 백업 작업으로 미러 데이터베이스의 로그를 백업할 수 없습니다.The mirror database is in the restoring state, which prevents the backup jobs from backing up the log on the mirror database. 이렇게 하여 미러/기본 데이터베이스가 현재 보조 서버에서 로그 백업을 복사하고 있는 주/기본 데이터베이스를 방해하지 않습니다.This ensures that the mirror/primary database does not interfere with the principal/primary database whose log backups are currently being copied by secondary servers. 의사 경고를 방지할 수 있도록 미러/주 데이터베이스에서 백업 작업이 수행된 후에 백업 작업이 메시지를log_shipping_monitor_history_detail 테이블에 기록하고 에이전트 작업이 성공 상태를 반환합니다.To prevent spurious alerts, after the backup job executes on the mirror/primary database, the backup job logs a message to the log_shipping_monitor_history_detail table, and the agent job returns a status of success.

미러/기본 데이터베이스는 로그 전달 세션에서 비활성화되어 있습니다.The mirror/primary database is inactive in the log shipping session. 그러나 미러링이 장애 조치되면 이전 미러 데이터베이스는 주 데이터베이스로 온라인 상태가 됩니다.However, if mirroring fails over, the former mirror database comes online as the principal database. 이때 해당 데이터베이스도 로그 전달 기본 데이터베이스로 활성화됩니다.At that point, that database also becomes active as the log shipping primary database. 이전에 해당 데이터베이스에 대한 로그를 전달할 수 없었던 로그 전달 백업 작업이 로그를 전달하기 시작합니다.The log shipping backup jobs that were previously unable to ship log on that database, begin shipping log. 반대로 장애 조치로 인해 이전 주/기본 데이터베이스가 새로운 미러/기본 데이터베이스가 되고 복원 상태로 되며 해당 데이터베이스에 대한 백업 작업이 로그 백업을 중단합니다.Conversely, a failover causes the former principal/primary database to become the new mirror/primary database and enter the restoring state, and backup jobs on that database cease to backup log.

참고

자동 장애 조치의 경우 이전 주/기본 데이터베이스가 미러링 세션에 다시 참여할 때 미러 역할로 전환됩니다.In the event of an automatic failover, the switch to the mirror role occurs when the former principal/primary database rejoins the mirroring session.

자동 장애 조치(Failover)가 있는 보호 우선 모드로 실행하려면 미러링 세션이 미러링 모니터 서버라는 추가 서버 인스턴스로 구성되어야 합니다.To run in high-safety mode with automatic failover the mirroring session is configured with an additional server instance known as the witness. 주 데이터베이스가 동기화된 후 어떤 이유로 이 데이터베이스가 손실되는 경우와 미러 서버와 미러링 모니터 서버가 서로 계속해서 통신할 수 있는 경우 자동 장애 조치가 수행됩니다.If the principal database is lost for any reason after the database is synchronized and if the mirror server and witness can still communicate with each other, automatic failover occurs. 자동 장애 조치로 인해 미러 서버는 주 역할을 맡고 해당 데이터베이스는 온라인 상태가 되어 주 데이터베이스 역할을 하게 됩니다.An automatic failover causes mirror server to assume the principal role and bring its database online as the principal database. 로그 전달 백업 위치에서 새로운 주/기본 서버에 액세스할 수 있는 경우 해당 백업 작업으로 인해 로그 백업이 해당 위치로 전달되기 시작합니다.If the log shipping backup location is accessible to the new principal/primary server, its backup jobs begin to ship log backups to that location. 데이터베이스 미러링 동기화 모드는 로그 체인이 미러링 장애 조치의 영향을 받지 않고 유효한 로그만 복원되도록 합니다.The database mirroring synchronous mode guarantees that the log chain is unaffected by a mirroring failover and that only valid log is restored. 보조 서버는 다른 서버 인스턴스가 기본 서버가 되었는지 인식하지 못한 상태에서 로그 백업을 계속 복사합니다.The secondary servers continue to copy log backups without knowing that a different server instance has become the primary server.

로컬 로그 전달 모니터를 사용할 때 이 시나리오에 따르기 위해 특별히 고려해야 할 사항은 없습니다.When using a local log shipping monitor, no special considerations are necessary to accommodate this scenario. 이 시나리오에서 원격 모니터링 인스턴스를 사용하는 방법은 이 항목의 뒷부분에 나오는 "원격 모니터링 인스턴스에서 데이터베이스 미러링의 영향"을 참조하십시오.For information about using a remote monitoring instance with this scenario, see, "The Impact of Database Mirroring on a Remote Monitoring Instance," later in this topic.

주 데이터베이스에서 미러 데이터베이스로 장애 조치Failing over from the Principal to the Mirror database

다음 그림은 미러링이 자동 장애 조치(Failover)가 있는 보호 우선 모드로 실행 중일 때 로그 전달 및 데이터베이스 미러링이 함께 작동하는 방법을 보여 줍니다.The following figure shows how log shipping and database mirroring work together when mirroring is running in high-safety mode with automatic failover. 처음에 Server_A 는 미러링용 주 서버이자 로그 전달용 기본 서버입니다.Initially, Server_A is both the principal server for mirroring and the primary server for log shipping. Server_B 는 미러 서버이며 현재 비활성화되어 있는 기본 서버로 구성되어 있습니다.Server_B is the mirror server and is also configured as a primary server, which is currently inactive. Server_CServer_D 는 로그 전달 보조 서버입니다.Server_C and Server_D are log shipping secondary servers. 로그 전달 세션의 가용성을 극대화하려면 백업 위치가 별도의 호스트 컴퓨터에 있는 공유 디렉터리여야 합니다.To maximize availability of the log shipping session, the backup location is on a share directory on a separate host computer.

로그 전달 및 데이터베이스 미러링Log shipping and database mirroring

미러링 장애 조치 후에 보조 서버에서 정의된 기본 서버 이름은 변경되지 않습니다.After a mirroring failover, the primary server name defined on the secondary server is unchanged. 를 참조하세요..

원격 모니터링 인스턴스에서 데이터베이스 미러링의 영향The Impact of Database Mirroring on a Remote Monitoring Instance

원격 모니터링 인스턴스에 로그 전달이 사용될 때 로그 전달 세션과 데이터베이스 미러링을 함께 사용하면 모니터 테이블의 정보에 영향을 줍니다.When log shipping uses with a remote monitoring instance, combining the log shipping session and database mirroring affects the information in the monitor tables. 기본 서버에 대한 정보는 주/기본 서버에서 구성된 정보와 각 보조 서버에서 구성된 모니터 정보가 결합된 것입니다.The information about the primary is a combination of the one configured at the principal/primary and the monitor configured on each secondary.

가능한 한 안전하게 모니터링하려면 원격 모니터를 사용하는 경우 보조 서버에서 기본 서버를 구성할 때 원래 기본 이름을 지정하는 것이 좋습니다.To keep monitoring as seamless as possible, when you use a remote monitor, we recommend that you specify the original primary name when configuring the primary at the secondary. 이 방법을 사용하면 Microsoft SQL ServerSQL Server 에이전트의 로그 전달 구성을 쉽게 변경할 수 있습니다.This approach also facilitates changing the log shipping configuration from Microsoft SQL ServerSQL Server Agent. 모니터링에 대한 자세한 내용은 로그 전달 모니터링(Transact-SQL)을 참조하세요.For more information about monitoring, see Monitor Log Shipping (Transact-SQL).

미러링과 로그 전달을 함께 설정Setting Up Mirroring and Log Shipping Together

데이터베이스 미러링과 로그 전달을 함께 설정하려면 다음 단계를 수행해야 합니다.To set up database mirroring and log shipping together, the following steps are required:

  1. 나중에 주/기본 데이터베이스에 대해 미러 데이터베이스를 미러링하는 데이터베이스로 사용되도록 다른 서버 인스턴스에서 NORECOVERY를 사용하여 주/기본 데이터베이스의 백업을 복원합니다.Restore backups of the principal/primary database with NORECOVERY onto another server instance to be later used as database mirroring mirror database for the principal/primary database. 자세한 내용은 미러 데이터베이스의 미러링 준비(SQL Server)를 참조하세요.For more information, see Prepare a Mirror Database for Mirroring (SQL Server).

  2. 데이터베이스 미러링을 설정합니다.Set up database mirroring. 자세한 내용은 Windows 인증을 사용하여 데이터베이스 미러링 세션 구성(SQL Server Management Studio) 또는 데이터베이스 미러링 설정(SQL Server)을 참조하세요.For more information, see Establish a Database Mirroring Session Using Windows Authentication (SQL Server Management Studio) or Setting Up Database Mirroring (SQL Server).

  3. 기본 데이터베이스에 대한 로그 전달 보조 데이터베이스로 나중에 사용하도록 다른 서버 인스턴스로 주/기본 데이터베이스의 백업을 복원합니다.Restore backups of the principal/primary database to other server instances to be later used as log shipping secondary databases for the primary database.

  4. 하나 이상의 보조 데이터베이스에 대한 기본 데이터베이스로 주 데이터베이스에 로그 전달을 설정합니다.Set up log shipping on the principal database as the primary database for one or more secondary databases.

    단일 공유를 백업 디렉터리(백업 공유)로 설정해야 합니다.You should set up a single share as the backup directory (a backup share). 이렇게 하면 주 서버와 미러 서버 간에 역할이 전환된 후에도 백업 작업은 이전과 동일한 디렉터리에 계속 기록됩니다.This ensures that after role switching between the principal and mirror servers, backup jobs continue to write to the same directory as before. 가장 좋은 방법은 미러링 및 로그 전달과 관련된 데이터베이스를 호스팅하는 서버가 아닌 다른 서버에 이 공유를 배치하는 것입니다.A best practice is to ensure that this share is located on a different physical server from the servers hosting the databases involved in mirroring and log shipping.

    자세한 내용은 로그 전달 구성(SQL Server)을 참조하세요.For more information, see Configure Log Shipping (SQL Server).

  5. 주 서버에서 미러 서버로 수동 장애 조치Manually failover from the principal to the mirror.

    수동 장애 조치(failover)를 수행하려면To perform a manual failover:

  6. 새로운 주 서버(이전의 미러 서버)의 로그 전달을 기본 데이터베이스로 설정합니다.Set up log shipping on the new principal (previously mirror) as the primary database.

    중요

    설정을 보조 서버에서 수행하지 마십시오.Do not perform any setup from a secondary.

    4단계에서 사용한 것과 동일한 백업 공유를 사용해야 합니다.You must use the same backup share that you used in step 4.

    트랜잭션 로그 전달 SQL Server Management StudioSQL Server Management Studio 인터페이스는 로그 전달 구성별로 하나의 기본 데이터베이스만 지원합니다.The Transaction Log Shipping interface in SQL Server Management StudioSQL Server Management Studio supports only one primary database per log shipping configuration. 따라서 새로운 주 서버를 기본 데이터베이스로 설정하려면 저장 프로시저를 사용해야 합니다.Therefore, you must use stored procedures to set up the new principal as primary.

  7. 원래의 주 서버로 되돌리면 수동 장애 조치를 추가로 수행합니다.Perform another manual failover to fail back to the original principal.