차등 데이터베이스 백업 복원(SQL Server)Restore a Differential Database Backup (SQL Server)

이 항목은 다음에 적용됩니다. 예SQL Server(2016부터 시작)아니요Azure SQL 데이터베이스아니요Azure SQL 데이터 웨어하우스아니요병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

이 항목에서는 SQL Server 2017SQL Server 2017 에서 SQL Server Management StudioSQL Server Management Studio 또는 Transact-SQLTransact-SQL을 사용하여 차등 데이터베이스 백업을 복원하는 방법에 대해 설명합니다.This topic describes how to restore a differential database backup in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

항목 내용In This Topic

시작하기 전 주의 사항 Before You Begin

제한 사항 Limitations and Restrictions

  • RESTORE는 명시적 또는 암시적 트랜잭션에서 사용할 수 없습니다.RESTORE is not allowed in an explicit or implicit transaction.

  • 최신 버전의 SQL ServerSQL Server 로 만든 백업은 이전 버전의 SQL ServerSQL Server에서 복원할 수 없습니다.Backups that are created by more recent version of SQL ServerSQL Server cannot be restored in earlier versions of SQL ServerSQL Server.

  • SQL Server 2017SQL Server 2017에서는 SQL Server 2005SQL Server 2005 이상 버전을 사용하여 만든 데이터베이스 백업에서 사용자 데이터베이스를 복원할 수 있습니다.In SQL Server 2017SQL Server 2017, you can restore a user database from a database backup that was created by using SQL Server 2005SQL Server 2005 or a later version.

필수 구성 요소 Prerequisites

  • 전체 복구 모델 또는 대량 로그 복구 모델의 경우 데이터베이스를 복원하려면 먼저 활성 트랜잭션 로그(비상 로그라고도 함)를 백업해야 합니다.Under the full or bulk-logged recovery model, before you can restore a database, you must back up the active transaction log (known as the tail of the log). 자세한 내용은 트랜잭션 로그 백업(SQL Server)에 미러 데이터베이스를 준비하는 방법에 대해 설명합니다.For more information, see Back Up a Transaction Log (SQL Server).

보안 Security

사용 권한 Permissions

복원할 데이터베이스가 없으면 CREATE DATABASE 권한이 있어야 RESTORE를 실행할 수 있습니다.If the database being restored does not exist, the user must have CREATE DATABASE permissions to be able to execute RESTORE. 데이터베이스가 있으면 RESTORE 권한은 기본적으로 sysadmindbcreator 고정 서버 역할의 멤버와 데이터베이스의 소유자(dbo)에 설정됩니다. FROM DATABASE_SNAPSHOT 옵션의 경우 데이터베이스가 항상 있습니다.If the database exists, RESTORE permissions default to members of the sysadmin and dbcreator fixed server roles and the owner (dbo) of the database (for the FROM DATABASE_SNAPSHOT option, the database always exists).

멤버 자격 정보를 서버에서 항상 사용할 수 있는 역할에 RESTORE 권한이 제공됩니다.RESTORE permissions are given to roles in which membership information is always readily available to the server. 고정 데이터베이스 역할의 멤버 자격은 데이터베이스가 액세스 가능한 상태이며 손상되지 않은 경우에만 확인할 수 있는데, RESTORE 실행 시 데이터베이스가 항상 이러한 상태인 것은 아니므로 db_owner 고정 데이터베이스 역할의 멤버에게는 RESTORE 권한이 없습니다.Because fixed database role membership can be checked only when the database is accessible and undamaged, which is not always the case when RESTORE is executed, members of the db_owner fixed database role do not have RESTORE permissions.

SQL Server Management Studio 사용 Using SQL Server Management Studio

차등 데이터베이스 백업을 복원하려면To restore a differential database backup

  1. MicrosoftMicrosoft SQL Server 데이터베이스 엔진SQL Server Database Engine의 해당 인스턴스에 연결한 다음 개체 탐색기에서 서버 이름을 클릭하여 서버 트리를 확장합니다.After you connect to the appropriate instance of the MicrosoftMicrosoft SQL Server 데이터베이스 엔진SQL Server Database Engine, in Object Explorer, click the server name to expand the server tree.

  2. 데이터베이스를 확장합니다.Expand Databases. 데이터베이스에 따라 사용자 데이터베이스를 선택하거나 시스템 데이터베이스를 확장한 다음 시스템 데이터베이스를 선택합니다.Depending on the database, either select a user database or expand System Databases, and then select a system database.

  3. 데이터베이스를 마우스 오른쪽 단추로 클릭하고 태스크를 가리킨 다음 복원을 가리키고 데이터베이스를 클릭합니다.Right-click the database, point to Tasks, point to Restore, and then click Database.

  4. 일반 페이지에서 원본 섹션을 사용하여 복원할 백업 집합의 원본과 위치를 지정합니다.On the General page, use the Source section to specify the source and location of the backup sets to restore. 다음 옵션 중 하나를 선택합니다.Select one of the following options:

    • 데이터베이스Database

      복원할 데이터베이스를 드롭다운 목록에서 선택합니다.Select the database to restore from the drop-down list. 목록에는 msdb 백업 기록에 따라 백업된 데이터베이스만 포함되어 있습니다.The list contains only databases that have been backed up according to the msdb backup history.

    참고

    백업을 다른 서버에서 가져온 경우 대상 서버에 지정한 데이터베이스에 대한 백업 기록 정보가 없습니다.If the backup is taken from a different server, the destination server will not have the backup history information for the specified database. 이 경우 장치 를 선택하여 복원할 파일이나 장치를 수동으로 지정합니다.In this case, select Device to manually specify the file or device to restore.

    • 장치Device

      찾아보기(...) 단추를 클릭하여 백업 장치 선택 대화 상자를 엽니다.Click the browse (...) button to open the Select backup devices dialog box. 백업 미디어 유형 상자에서 나열된 장치 유형 중 하나를 선택합니다.In the Backup media type box, select one of the listed device types. 백업 미디어 상자에 대해 하나 이상의 장치를 선택하려면 추가를 클릭합니다.To select one or more devices for the Backup media box, click Add.

      원하는 장치를 백업 미디어 목록 상자에 추가한 후 확인 을 클릭하여 일반 페이지로 돌아갑니다.After you add the devices you want to the Backup media list box, click OK to return to the General page.

      원본: 장치: 데이터베이스 목록 상자에서 복원할 데이터베이스의 이름을 선택합니다.In the Source: Device: Database list box, select the name of the database which should be restored.

      참고 이 목록은 장치 를 선택한 경우에만 사용할 수 있습니다.Note This list is only available when Device is selected. 선택한 장치에 백업이 있는 데이터베이스만 사용할 수 있습니다.Only databases that have backups on the selected device will be available.

  5. 대상 섹션의 데이터베이스 상자에는 복원할 데이터베이스의 이름이 자동으로 채워집니다.In the Destination section, the Database box is automatically populated with the name of the database to be restored. 데이터베이스의 이름을 변경하려면 데이터베이스 상자에 새 이름을 입력합니다.To change the name of the database, enter the new name in the Database box.

    참고

    특정 시점에 복원을 중지하려면 시간대 를 클릭하여 백업 시간대 대화 상자에 액세스합니다.To stop the restore at a specific point in time, click Timeline to access the Backup Timeline dialog box. 특정 시점의 데이터베이스 복원 중지에 대한 도움말은 SQL Server 데이터베이스를 지정 시간으로 복원(전체 복구 모델)을 참조하세요.For help with stopping a database restore at a specific point in time, see Restore a SQL Server Database to a Point in Time (Full Recovery Model).

  6. 복원에 사용할 백업 세트 표에서 차등 백업을 통해 복원할 백업을 선택합니다.In the Backup sets to restore grid, select the backups through the differential backup that you wish to restore.

    복원에 사용할 백업 세트 표의 열에 대한 자세한 내용은 데이터베이스 복원(일반 페이지)을 참조하세요.For information about the columns in the Backup sets to restore grid, see Restore Database (General Page).

  7. 상황에 따라 옵션 페이지의 복원 옵션 패널에서 다음 옵션 중 하나를 선택할 수 있습니다.On the Options page, in the Restore options panel, you can select any of the following options, if appropriate for your situation:

    • 기존 데이터베이스 덮어쓰기(WITH REPLACE)Overwrite the existing database (WITH REPLACE)

    • 복제 설정 유지(WITH KEEP_REPLICATION)Preserve the replication settings (WITH KEEP_REPLICATION)

    • 각 백업 복원 전에 확인Prompt before restoring each backup

    • 복원된 데이터베이스에 대한 액세스 제한(WITH RESTRICTED_USER)Restrict access to the restored database (WITH RESTRICTED_USER)

      이러한 옵션에 대한 자세한 내용은 데이터베이스 복원(옵션 페이지)을 참조하세요.For more information about these options, see Restore Database (Options Page).

  8. 복구 상태 상자에 대한 옵션을 선택합니다.Select an option for the Recovery state box. 이 상자에서 복원 작업 후 데이터베이스의 상태를 확인합니다.This box determines the state of the database after the restore operation.

    • RESTORE WITH RECOVERY 는 커밋되지 않은 트랜잭션을 롤백하여 데이터베이스를 사용 준비가 된 상태로 유지하는 기본 동작입니다.RESTORE WITH RECOVERY is the default behavior which leaves the database ready for use by rolling back the uncommitted transactions. 추가 트랜잭션 로그를 복원할 수 없습니다.Additional transaction logs cannot be restored. 필요한 모든 백업을 지금 복원하는 경우 이 옵션을 선택합니다.Select this option if you are restoring all of the necessary backups now.

    • RESTORE WITH NORECOVERY 는 데이터베이스를 비작동 상태로 유지하고 커밋되지 않은 트랜잭션을 롤백하지 않습니다.RESTORE WITH NORECOVERY which leaves the database non-operational, and does not roll back the uncommitted transactions. 추가 트랜잭션 로그를 복원할 수Additional transaction logs can be restored. 데이터베이스는 복구할 때까지 사용할 수 없습니다.The database cannot be used until it is recovered.

    • RESTORE WITH STANDBY 는 읽기 전용 모드로 데이터베이스를 유지합니다.RESTORE WITH STANDBY which leaves the database in read-only mode. 이 옵션은 커밋되지 않은 트랜잭션의 실행을 취소하지만, 복구 결과를 되돌릴 수 있도록 실행 취소 동작을 대기 파일에 저장합니다.It undoes uncommitted transactions, but saves the undo actions in a standby file so that recovery effects can be reverted.

      옵션에 대한 설명은 데이터베이스 복원(옵션 페이지)을 참조하세요.For descriptions of the options, see Restore Database (Options Page).

  9. 데이터베이스에 대한 활성 연결이 있으면 복원 작업이 실패합니다.Restore operations will fail if there are active connections to the database. 기존 연결 닫기 옵션을 선택하여 Management StudioManagement Studio 와 데이터베이스 간의 모든 활성 연결을 닫습니다.Check the Close existing connections option to ensure that all active connections between Management StudioManagement Studio and the database are closed.

  10. 각 복원 작업 사이에 확인 메시지를 표시하려면 각 백업 복원 전에 확인 을 선택합니다.Select Prompt before restoring each backup if you wish to be prompted between each restore operation. 데이터베이스가 크고 복원 작업의 상태를 모니터링하려는 경우가 아니면 이 옵션은 일반적으로 필요하지 않습니다.This is not usually necessary unless the database is large and you wish to monitor the status of the restore operation.

  11. 필요에 따라 파일 페이지를 사용하여 데이터베이스를 새 위치로 복원합니다.Optionally, use the Files page to restore the database to a new location. 데이터베이스 이동과 관련된 도움말을 보려면 데이터베이스를 새 위치로 복원(SQL Server)을 참조하세요.For help with moving a database, see Restore a Database to a New Location (SQL Server).

  12. 확인을 클릭합니다.Click OK.

Transact-SQL 사용 Using Transact-SQL

차등 데이터베이스 백업을 복원하려면To restore a differential database backup

  1. NORECOVERY 절을 지정하고 RESTORE DATABASE 문을 실행하여 차등 데이터베이스 백업에 앞서 전체 데이터베이스 백업을 복원합니다.Execute the RESTORE DATABASE statement, specifying the NORECOVERY clause, to restore the full database backup that comes before the differential database backup. 자세한 내용은 방법: 전체 백업 복원을 참조하세요.For more information, see How to: Restore a Full Backup.

  2. RESTORE DATABASE 문을 실행하여 차등 데이터베이스 백업을 복원합니다. 이때 다음을 지정합니다.Execute the RESTORE DATABASE statement to restore the differential database backup, specifying:

    • 차등 데이터베이스 백업이 적용될 데이터베이스의 이름The name of the database to which the differential database backup is applied.

    • 차등 데이터베이스 백업을 복원하는 백업 장치The backup device where the differential database backup is restored from.

    • 차등 데이터베이스 백업이 복원된 후 적용할 트랜잭션 로그 백업이 있을 경우 NORECOVERY 절,The NORECOVERY clause if you have transaction log backups to apply after the differential database backup is restored. 그렇지 않으면 RECOVERY 절Otherwise, specify the RECOVERY clause.

  3. 전체 복구 모델이나 대량 로그 복구 모델을 사용할 경우 차등 데이터베이스 백업을 복원하면 차등 데이터베이스 백업이 완료된 시점까지 데이터베이스가 복원됩니다.With the full or bulk-logged recovery model, restoring a differential database backup restores the database to the point at which the differential database backup was completed. 오류 지점까지 복구하려면 마지막 차등 데이터베이스 백업이 생성된 후에 만든 트랜잭션 로그 백업을 모두 적용해야 합니다.To recover to the point of failure, you must apply all transaction log backups created after the last differential database backup was created. 자세한 내용은 트랜잭션 로그 백업 적용(SQL Server)을 참조하세요.For more information, see Apply Transaction Log Backups (SQL Server).

예(Transact-SQL) Examples (Transact-SQL)

1.A. 차등 데이터베이스 백업 복원Restoring a differential database backup

다음은 MyAdvWorks 데이터베이스의 데이터베이스 및 차등 데이터베이스 백업을 복원하는 예입니다.This example restores a database and differential database backup of the MyAdvWorks database.

-- Assume the database is lost, and restore full database,   
-- specifying the original full database backup and NORECOVERY,   
-- which allows subsequent restore operations to proceed.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH NORECOVERY;  
GO  
-- Now restore the differential database backup, the second backup on   
-- the MyAdvWorks_1 backup device.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH FILE = 2,  
   RECOVERY;  
GO  

2.B. 데이터베이스, 차등 데이터베이스, 트랜잭션 로그 백업 복원Restoring a database, differential database, and transaction log backup

다음은 MyAdvWorks 데이터베이스의 데이터베이스, 차등 데이터베이스 및 트랜잭션 로그 백업을 복원하는 예입니다.This example restores a database, differential database, and transaction log backup of the MyAdvWorks database.

-- Assume the database is lost at this point. Now restore the full   
-- database. Specify the original full database backup and NORECOVERY.  
-- NORECOVERY allows subsequent restore operations to proceed.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH NORECOVERY;  
GO  
-- Now restore the differential database backup, the second backup on   
-- the MyAdvWorks_1 backup device.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH FILE = 2,  
   NORECOVERY;  
GO  
-- Now restore each transaction log backup created after  
-- the differential database backup.  
RESTORE LOG MyAdvWorks  
   FROM MyAdvWorks_log1  
   WITH NORECOVERY;  
GO  
RESTORE LOG MyAdvWorks  
   FROM MyAdvWorks_log2  
   WITH RECOVERY;  
GO  

참고 항목See Also

차등 백업(SQL Server) Differential Backups (SQL Server)
RESTORE(Transact-SQL) RESTORE (Transact-SQL)