URL에 대한 SQL Server 백업SQL Server Backup to URL

이 항목은 다음에 적용됩니다. 예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

이 항목에서는 Microsoft Azure Blob 저장소 서비스를 백업 대상으로 사용하는 데 필요한 개념, 요구 사항 및 구성 요소를 소개합니다.This topic introduces the concepts, requirements and components necessary to use the Microsoft Azure Blob storage service as a backup destination. 백업 및 복원 기능은 디스크나 테이프를 사용하는 경우와 동일하거나 비슷하지만 몇 가지 차이점이 있습니다.The backup and restore functionality are same or similar to when using DISK or TAPE, with a few differences. 이러한 차이점과 몇 가지 코드 예제가 이 항목에서 소개됩니다.These differences and a few code examples are included in this topic.

요구 사항, 구성 요소 및 개념Requirements, Components, and Concepts

섹션 내용In this section:

보안 Security

다음은 Microsoft Azure Blob 저장소 서비스로 백업하거나 복원하는 경우 보안 고려 사항과 요구 사항입니다.The following are security considerations and requirements when backing up to or restoring from the Microsoft Azure Blob storage service.

  • Microsoft Azure BLOB 저장소 서비스의 컨테이너를 만들 때 액세스 권한을 개인으로 설정하는 것이 좋습니다.When creating a container for the Microsoft Azure Blob storage service, we recommend that you set the access to private. 액세스 권한을 개인으로 설정하면 사용자나 계정에 대한 액세스 시 필요한 정보를 제공해야 Windows Azure 계정 인증을 받을 수 있도록 제한됩니다.Setting the access to private restricts the access to users or accounts able to provide the necessary information to authenticate to the Windows Azure account.

    중요

    SQL ServerSQL Server 에서는 Microsoft Azure 계정 이름 및 액세스 키 인증 또는 공유 액세스 서명 및 액세스 토큰을 SQL ServerSQL Server 자격 증명에 저장해야 합니다. requires that either a Windows Azure account name and access key authentication or a Shared Access Signature and access token be stored in a SQL ServerSQL Server Credential. 이 정보는 백업 또는 복원 작업을 수행할 때 Microsoft Azure 계정 인증을 받는 데 사용됩니다.This information is used to authenticate to the Windows Azure account when performing backup or restore operations.

  • BACKUP 또는 RESTORE 명령을 실행하는 데 사용되는 사용자 계정은 모든 자격 증명 변경 권한이 있는 db_backup operator 데이터베이스 역할에 있어야 합니다.The user account that is used to issue BACKUP or RESTORE commands should be in the db_backup operator database role with Alter any credential permissions.

주요 구성 요소 및 개념 소개 Introduction to Key Components and Concepts

다음 두 섹션에서는 Microsoft Azure Blob 저장소 서비스와 Microsoft Azure Blob 저장소 서비스로 백업하거나 복원하는 데 사용되는 SQL ServerSQL Server 구성 요소를 소개합니다.The following two sections introduce the Microsoft Azure Blob storage service, and the SQL ServerSQL Server components used when backing up to or restoring from the Microsoft Azure Blob storage service. 구성 요소와 Microsoft Azure Blob 저장소 서비스로 백업하거나 복원할 때 구성 요소 간의 상호 작용을 이해하는 것이 중요합니다.It is important to understand the components and the interaction between them to do a backup to or restore from the Microsoft Azure Blob storage service.

이 프로세스의 첫 번째 단계에서는 Azure 구독 내에 Microsoft Azure Storage 계정을 만듭니다.Creating a Windows Azure Storage account within your Azure subscription is the first step in this process. 이 저장소 계정은 저장소 계정을 사용하여 만든 모든 컨테이너 및 개체에 대한 모든 관리 권한이 있는 관리자 계정입니다.This storage account is an administrative account that has full administrative permissions on all containers and objects created with the storage account. SQL ServerSQL Server 에서는 Microsoft Azure Storage 계정 이름 및 해당 액세스 키 값을 사용하여 Microsoft Azure Blob 저장소 서비스에 인증하고 blob을 읽고 쓰거나, 읽기 및 쓰기 권한을 부여하는 특정 컨테이너에서 생성된 공유 액세스 서명 토큰을 사용할 수 있습니다. can either use the Windows Azure storage account name and its access key value to authenticate and write and read blobs to the Microsoft Azure Blob storage service or use a Shared Access Signature token generated on specific containers granting it read and write rights. Azure Storage 계정에 대한 자세한 내용은 Azure Storage 계정 정보 를 참조하고, 공유 액세스 서명에 대한 자세한 내용은 공유 액세스 서명, 1부: SAS 모델 이해를 참조하세요.For more information on Azure Storage Accounts, see About Azure Storage Accounts and for more information about Shared Access Signatures, see Shared Access Signatures, Part 1: Understanding the SAS Model. SQL ServerSQL Server 자격 증명은 이 인증 정보를 저장하며 백업 또는 복원 작업 중에 사용됩니다.The SQL ServerSQL Server Credential stores this authentication information and is used during the backup or restore operations.

Microsoft Azure Blob 저장소 서비스 Microsoft Azure Blob storage service

저장소 계정: 저장소 계정은 모든 저장소 서비스의 시작 지점입니다.Storage Account: The storage account is the starting point for all storage services. Microsoft Azure Blob 저장소 서비스에 액세스하려면 먼저 Microsoft Azure Storage 계정을 만듭니다.To access the Microsoft Azure Blob storage service, first create a Windows Azure storage account. 자세한 내용은 저장소 계정 만들기를 참조하세요.For more information, see Create a Storage Account

컨테이너: 컨테이너에서는 그룹화된 blob 집합을 제공하며 blob을 무제한으로 저장할 수 있습니다.Container: A container provides a grouping of a set of blobs, and can store an unlimited number of blobs. Microsoft Azure Blob 저장소 서비스에 SQL ServerSQL Server 백업을 쓰려면 적어도 루트 컨테이너가 만들어져 있어야 합니다.To write a SQL ServerSQL Server backup to the Microsoft Azure Blob storage service, you must have at least the root container created. 컨테이너에서 공유 액세스 서명 토큰을 생성하고 특정 컨테이너의 개체에 대한 액세스 권한만 부여할 수 있습니다.You can generate a Shared Access Signature token on a container and grant access to objects on a specific container only.

Blob: 모든 형식과 크기의 파일입니다.Blob: A file of any type and size. Microsoft Azure Blob 저장소 서비스에는 블록 Blob과 페이지 Blob이라는 두 가지 유형의 Blob을 저장할 수 있습니다.There are two types of blobs that can be stored in the Microsoft Azure Blob storage service: block and page blobs. SQL ServerSQL Server 백업에서는 사용되는 TRANSACT-SQL 구문에 따라 Blob 유형 중 하나를 사용할 수 있습니다. backup can use either blob type depending upon the Transact-SQL syntax used. Blob에는 https://<storage account>.blob.core.windows.net/<container>/<blob> URL 형식을 사용하여 주소를 지정할 수 있습니다.Blobs are addressable using the following URL format: https://<storage account>.blob.core.windows.net/<container>/<blob>. Microsoft Azure Blob 저장소 서비스에 대한 자세한 내용은 .NET에서 Blob 저장소 서비스를 사용하는 방법을 참조하세요.For more information about the Microsoft Azure Blob storage service, see How to use the Blob Storage from .NET. 페이지 및 블록 Blob에 대한 자세한 내용은 블록 및 페이지 Blob 이해를 참조하세요.For more information about page and block blobs, see Understanding Block and Page Blobs.

Azure Blob StorageAzure Blob Storage

Azure 스냅숏: 지정 시간에 생성된 Azure blob의 스냅숏입니다.Azure Snapshot: A snapshot of an Azure blob taken at a point in time. 자세한 내용은 Blob의 스냅숏 만들기를 참조하세요.For more information, see Creating a Snapshot of a Blob. SQL ServerSQL Server 백업에서는 Microsoft Azure Blob 저장소 서비스에 저장된 데이터베이스 파일의 Azure 스냅샷 백업을 지원합니다. backup now supports Azure snapshot backups of database files stored in the Microsoft Azure Blob storage service. 자세한 내용은 Azure의 데이터베이스 파일에 대한 파일-스냅숏 백업을 참조하세요.For more information, see File-Snapshot Backups for Database Files in Azure.

SQL ServerSQL Server Components SQL ServerSQL Server Components

URL: URL은 고유한 백업 파일에 대한 URI(Uniform Resource Identifier)를 지정합니다.URL: A URL specifies a Uniform Resource Identifier (URI) to a unique backup file. URL은 SQL ServerSQL Server 백업 파일의 위치와 이름을 제공하는 데 사용됩니다.The URL is used to provide the location and name of the SQL ServerSQL Server backup file. URL은 컨테이너가 아닌 실제 Blob을 가리켜야 합니다.The URL must point to an actual blob, not just a container. Blob이 없으면 만들어집니다.If the blob does not exist, it is created. 기존 blob이 지정된 경우에는 “WITH FORMAT” 옵션을 지정하여 blob에서 기존 백업 파일을 덮어쓰지 않으면 BACKUP이 실패합니다.If an existing blob is specified, BACKUP fails, unless the “WITH FORMAT” option is specified to overwrite the existing backup file in the blob.

샘플 URL 값은 http[s]://ACCOUNTNAME.blob.core.windows.net/<CONTAINER>/<FILENAME.bak>입니다.Here is a sample URL value: http[s]://ACCOUNTNAME.blob.core.windows.net/<CONTAINER>/<FILENAME.bak>. HTTPS는 필수 사항은 아니지만 권장 사항입니다.HTTPS is not required, but is recommended.

자격 증명: SQL ServerSQL Server 자격 증명은 SQL Server 외부의 리소스에 연결하는 데 필요한 인증 정보를 저장하는 데 사용되는 개체입니다.Credential: A SQL ServerSQL Server credential is an object that is used to store authentication information required to connect to a resource outside of SQL Server. 여기에서 SQL ServerSQL Server 백업 및 복원 프로세스에서는 자격 증명을 사용하여 Microsoft Azure Blob 저장소 서비스와 해당 컨테이너 및 blob 개체의 인증을 받습니다.Here, SQL ServerSQL Server backup and restore processes use credential to authenticate to the Microsoft Azure Blob storage service and its container and blob objects. 자격 증명은 저장소 계정 및 저장소 계정 액세스 키 값 또는 컨테이너 URL 및 해당 공유 액세스 서명 토큰을 저장합니다.The Credential stores either the name of the storage account and the storage account access key values or container URL and its Shared Access Signature token. 자격 증명이 만들어지면 BACKUP/RESTORE 문의 구문에 따라 blob의 유형 및 필요한 자격 증명이 결정됩니다.Once the credential is created, the syntax of the BACKUP/RESTORE statements determines the type of blob and the credential required.

공유 액세스 서명을 만드는 방법에 대한 예제는 이 항목의 뒷부분에 나오는 공유 액세스 서명 만들기 예제를 참조하고, SQL ServerSQL Server 자격 증명을 만들려면 이 항목의 뒷부분에 나오는 자격 증명 만들기 예제를 참조하세요.For an example about how to create a Shared Access Signature, see Create a Shared Access Signature examples later in this topic and to create a SQL ServerSQL Server Credential, see Create a Credential examples later in this topic.

자격 증명에 대한 자세한 내용은 자격 증명을 참조하세요.For general information about credentials, see Credentials

자격 증명이 사용되는 다른 예에 대한 정보는 SQL Server 에이전트 프록시 만들기를 참조하세요.For information on other examples where credentials are used, see Create a SQL Server Agent Proxy.

제한 사항 Limitations

  • 프리미엄 저장소로 백업은 지원 되지 않습니다.Backup to premium storage is not supported.

  • 페이지 blob을 통해 지원되는 최대 백업 크기는 단일 페이지 blob의 최대 크기인 1TB로 제한됩니다.The maximum backup size supported using a page blob is limited by the maximum size of a single page blob, which 1 TB. 블록 blob을 통해 지원되는 최대 백업 크기는 블록 blob의 최대 크기인 200GB로 제한되지 않습니다. 블록 blob 백업은 스트라이프를 지원하여 실질적으로 더 큰 크기를 지원하기 때문입니다.The maximum backup size supported using block blobs is not limited by the maximum size of a block blob, which is 200 GB, because backup to block blobs supports striping to support substantially larger backup sizes.

  • TSQL, SMO, PowerShell cmdlet, SQL Server Management Studio 백업 또는 복원 마법사를 사용하여 백업 또는 복원 문을 실행할 수 있습니다.You can issue backup or restore statements by using TSQL, SMO, PowerShell cmdlets, SQL Server Management Studio Backup or Restore wizard.

  • 논리적 장치 이름을 만들 수 없습니다.Creating a logical device name is not supported. 따라서 SQL Server Management Studio나 sp_dumpdevice를 사용하여 URL을 백업 장치로 추가할 수 없습니다.So adding URL as a backup device using sp_dumpdevice or through SQL Server Management Studio is not supported.

  • 기존 백업 Blob에 추가는 지원되지 않습니다.Appending to existing backup blobs is not supported. 기존 Blob으로 백업은 WITH FORMAT 옵션을 사용하여 덮어쓸 수만 있습니다.Backups to an existing blob can only be overwritten by using the WITH FORMAT option. 그러나 파일-스냅숏 백업을 사용( WITH FILE_SNAPSHOT 인수 사용)할 때는 원래 파일-스냅숏 백업을 사용하여 만든 분리된 파일-스냅숏이 남아 있는 것을 방지하기 위해 WITH FORMAT 인수는 허용되지 않습니다.However, when using file-snapshot backups (using the WITH FILE_SNAPSHOT argument), the WITH FORMAT argument is not permitted to avoid leaving orphaned file-snapshots that were created with the original file-snapshot backup.

  • 단일 백업 작업에서 여러 blob에 대한 백업은 블록 blob을 사용하고 SQL 자격 증명에 대한 저장소 계정 키 대신 SAS(공유 액세스 서명) 토큰을 사용하는 경우에만 지원됩니다.Backup to multiple blobs in a single backup operation is only supported using block blobs and using a Shared Access Signature (SAS) token rather than the storage account key for the SQL Credential.

  • BLOCKSIZE 지정은 페이지 Blob에 대해 지원되지 않습니다.Specifying BLOCKSIZE is not supported for page blobs.

  • MAXTRANSFERSIZE를 지정하면 페이지 Blob이 지원되지 않습니다.Specifying MAXTRANSFERSIZE is not supported page blobs.

  • backupset 옵션 RETAINDAYSEXPIREDATE 지정은 지원되지 않습니다.Specifying backupset options - RETAINDAYS and EXPIREDATE are not supported.

  • SQL ServerSQL Server 에서는 백업 장치 이름이 최대 259자로 제한됩니다. has a maximum limit of 259 characters for a backup device name. BACKUP TO URL에서 URL, ‘https://.blob.core.windows.net//.bak’를 지정하는 데 사용되는 필수 요소에 36자가 사용되여, 계정, 컨테이너 및 blob 이름에 사용할 수 있는 문자는 223자입니다.The BACKUP TO URL consumes 36 characters for the required elements used to specify the URL – ‘https://.blob.core.windows.net//.bak’, leaving 223 characters for account, container, and blob names put together.

Backup/Restore 문 지원 Support for Backup/Restore Statements

Backup/Restore 문Backup/Restore Statement 지원됨Supported 예외Exceptions 설명Comments
BACKUPBACKUP BLOCKSIZE 및 MAXTRANSFERSIZE는 블록 Blob에 대해 지원됩니다.BLOCKSIZE and MAXTRANSFERSIZE are supported for block blobs. 페이지 Blob에 대해서는 지원되지 않습니다.They are not supported for page blobs. 블록 Blob에 대한 백업에는 SQL Server 자격 증명에 저장된 공유 액세스 서명이 필요합니다.BACKUP to a block blob requires a Shared Access Signature saved in a SQL Server credential. 페이지 Blob에 대한 백업은 SQL ServerSQL Server 자격 증명에 저장된 저장소 계정 키가 필요하며 WITH CREDENTIAL 인수가 지정되어야 합니다.BACKUP to page blob requires the storage account key saved in a SQL ServerSQL Server credential, and requires the WITH CREDENTIAL argument to be specified.
RESTORERESTORE SQL ServerSQL Server 자격 증명을 정의해야 하며, 저장소 계정 키를 암호로 사용하여 SQL ServerSQL Server 자격 증명을 정의한 경우 WITH CREDENTIAL 인수를 지정해야 합니다.Requires a SQL ServerSQL Server credential to be defined, and requires the WITH CREDENTIAL argument to be specified if the SQL ServerSQL Server credential is defined using the storage account key as the secret
RESTORE FILELISTONLYRESTORE FILELISTONLY SQL ServerSQL Server 자격 증명을 정의해야 하며, 저장소 계정 키를 암호로 사용하여 SQL ServerSQL Server 자격 증명을 정의한 경우 WITH CREDENTIAL 인수를 지정해야 합니다.Requires a SQL ServerSQL Server credential to be defined, and requires the WITH CREDENTIAL argument to be specified if the SQL ServerSQL Server credential is defined using the storage account key as the secret
RESTORE HEADERONLYRESTORE HEADERONLY SQL ServerSQL Server 자격 증명을 정의해야 하며, 저장소 계정 키를 암호로 사용하여 SQL ServerSQL Server 자격 증명을 정의한 경우 WITH CREDENTIAL 인수를 지정해야 합니다.Requires a SQL ServerSQL Server credential to be defined, and requires the WITH CREDENTIAL argument to be specified if the SQL ServerSQL Server credential is defined using the storage account key as the secret
RESTORE LABELONLYRESTORE LABELONLY SQL ServerSQL Server 자격 증명을 정의해야 하며, 저장소 계정 키를 암호로 사용하여 SQL ServerSQL Server 자격 증명을 정의한 경우 WITH CREDENTIAL 인수를 지정해야 합니다.Requires a SQL ServerSQL Server credential to be defined, and requires the WITH CREDENTIAL argument to be specified if the SQL ServerSQL Server credential is defined using the storage account key as the secret
RESTORE VERIFYONLYRESTORE VERIFYONLY SQL ServerSQL Server 자격 증명을 정의해야 하며, 저장소 계정 키를 암호로 사용하여 SQL ServerSQL Server 자격 증명을 정의한 경우 WITH CREDENTIAL 인수를 지정해야 합니다.Requires a SQL ServerSQL Server credential to be defined, and requires the WITH CREDENTIAL argument to be specified if the SQL ServerSQL Server credential is defined using the storage account key as the secret
RESTORE REWINDONLYRESTORE REWINDONLY

구문과 Backup 문에 대한 자세한 내용은 BACKUP(Transact-SQL)을 참조하세요.For syntax and general information about backup statements, see BACKUP (Transact-SQL).

구문과 Restore 문에 대한 자세한 내용은 RESTORE(Transact-SQL)을 참조하세요.For syntax and general information about restore statements, see RESTORE (Transact-SQL).

Backup 인수 지원Support for Backup Arguments

인수Argument 지원됨Supported 예외Exception 설명Comments
DATABASEDATABASE
LOGLOG
TO (URL)TO (URL) DISK 및 TAPE와 달리 URL은 논리적 이름 지정 및 작성을 지원하지 않습니다.Unlike DISK and TAPE, URL does not support specifying or creating a logical name. 이 인수는 백업 파일에 대한 URL 경로를 지정하는 데 사용됩니다.This argument is used to specify the URL path for the backup file.
MIRROR TOMIRROR TO
WITH 옵션:WITH OPTIONS:
CREDENTIALCREDENTIAL WITH CREDENTIAL은 저장소 계정 키를 암호로 사용하여 SQL ServerSQL Server 자격 증명을 정의한 경우 BACKUP TO URL 옵션을 사용하여 Microsoft Azure Blob 저장소 서비스에 백업할 때만 지원됩니다.WITH CREDENTIAL is only supported when using BACKUP TO URL option to back up to the Microsoft Azure Blob storage service and only if the SQL ServerSQL Server credential is defined using the storage account key as the secret
FILE_SNAPSHOTFILE_SNAPSHOT
ENCRYPTIONENCRYPTION WITH ENCRYPTION 인수를 지정한 경우 SQL ServerSQL Server 파일-스냅숏 백업은 백업을 가져오기 전에 먼저 전체 데이터베이스가 TDE 암호화되었는지 확인하며, 그런 경우 데이터베이스에서 TDE에 대해 지정된 알고리즘을 사용하여 파일-스냅숏 백업 파일 자체를 암호화합니다.When the WITH ENCRYPTION argument is specified, SQL ServerSQL Server File-Snapshot Backup ensures that the entire database was TDE-encrypted before taking the backup and, if so, encrypts the file-snapshot backup file itself using the algorithm specified for TDE on the database. 전체 데이터베이스의 일부 데이터가 암호화되지 않은 경우 백업이 실패합니다(예: 암호화 프로세스가 아직 완료되지 않은 경우).If all data in the database in the entire database is not encrypted, the backup will fail (e.g. the encryption process is not yet complete).
DIFFERENTIALDIFFERENTIAL
COPY_ONLYCOPY_ONLY
COMPRESSION|NO_COMPRESSIONCOMPRESSION|NO_COMPRESSION 파일-스냅숏 백업에 지원되지 않습니다.Not supported for file-snapshot backup
DESCRIPTIONDESCRIPTION
NAMENAME
EXPIREDATE | RETAINDAYSEXPIREDATE | RETAINDAYS
NOINIT | INITNOINIT | INIT Blob에 추가는 불가능합니다.Appending to blobs is not possible. 백업을 덮어쓰려면 WITH FORMAT 인수를 사용하세요.To overwrite a backup use the WITH FORMAT argument. 그러나 파일-스냅숏 백업을 사용( WITH FILE_SNAPSHOT 인수 사용)할 때는 원래 백업을 사용하여 만든 분리된 파일-스냅숏이 남아 있는 것을 방지하기 위해 WITH FORMAT 인수는 허용되지 않습니다.However, when using file-snapshot backups (using the WITH FILE_SNAPSHOT argument), the WITH FORMAT argument is not permitted to avoid leaving orphaned file-snapshots that were created with the original backup.
NOSKIP | SKIPNOSKIP | SKIP
NOFORMAT | FORMATNOFORMAT | FORMAT WITH FORMAT 을 지정하지 않으면 기존 blob으로 백업이 실패합니다.A backup taken to an existing blob fails unless WITH FORMAT is specified. WITH FORMAT 을 지정하면 기존 blob을 덮어씁니다.The existing blob is overwritten when WITH FORMAT is specified. 그러나 파일-스냅숏 백업을 사용( WITH FILE_SNAPSHOT 인수 사용)할 때는 원래 파일-스냅숏 백업을 사용하여 만든 분리된 파일-스냅숏이 남아 있는 것을 방지하기 위해 FORMAT 인수는 허용되지 않습니다.However, when using file-snapshot backups (using the WITH FILE_SNAPSHOT argument), the FORMAT argument is not permitted to avoid leaving orphaned file-snapshots that were created with the original file-snapshot backup. 그러나 파일-스냅숏 백업을 사용( WITH FILE_SNAPSHOT 인수 사용)할 때는 원래 백업을 사용하여 만든 분리된 파일-스냅숏이 남아 있는 것을 방지하기 위해 WITH FORMAT 인수는 허용되지 않습니다.However, when using file-snapshot backups (using the WITH FILE_SNAPSHOT argument), the WITH FORMAT argument is not permitted to avoid leaving orphaned file-snapshots that were created with the original backup.
MEDIADESCRIPTIONMEDIADESCRIPTION
MEDIANAMEMEDIANAME
BLOCKSIZEBLOCKSIZE 페이지 Blob에 대해서는 지원되지 않습니다.Not supported for page blob. 블록 Blob에 대해서는 지원됩니다.Supported for block blob. 블록 Blob에 허용된 50,000개의 블록 사용을 최적화하려면 BLOCKSIZE=65536을 사용하는 것이 좋습니다.Recommend BLOCKSIZE=65536 to optimize use of the 50,000 blocks allowed in a block blob.
BUFFERCOUNTBUFFERCOUNT
MAXTRANSFERSIZEMAXTRANSFERSIZE 페이지 Blob에 대해서는 지원되지 않습니다.Not supported for page blob. 블록 Blob에 대해서는 지원됩니다.Supported for block blob. 기본값은 1048576입니다.Default is 1048576. 값의 범위는 최대 4MB이며 65536바이트씩 증가합니다.The value can range up to 4 MB in increments of 65536 bytes.
블록 Blob에 허용된 50,000개의 블록 사용을 최적화하려면 MAXTRANSFERSIZE=4194304를 사용하는 것이 좋습니다.Recommend MAXTRANSFERSIZE=4194304 to optimize use of the 50,000 blocks allowed in a block blob.
NO_CHECKSUM | CHECKSUMNO_CHECKSUM | CHECKSUM
STOP_ON_ERROR | CONTINUE_AFTER_ERRORSTOP_ON_ERROR | CONTINUE_AFTER_ERROR
STATSSTATS
REWIND | NOREWINDREWIND | NOREWIND
UNLOAD | NOUNLOADUNLOAD | NOUNLOAD
NORECOVERY | STANDBYNORECOVERY | STANDBY
NO_TRUNCATENO_TRUNCATE

Backup 인수에 대한 자세한 내용은 BACKUP(Transact-SQL)을 참조하세요.For more information about backup arguments, see BACKUP (Transact-SQL).

Restore 인수 지원Support for Restore Arguments

인수Argument 지원됨Supported 예외Exceptions 설명Comments
DATABASEDATABASE
LOGLOG
FROM (URL)FROM (URL) FROM URL 인수는 백업 파일에 대한 URL 경로를 지정하는 데 사용됩니다.The FROM URL argument is used to specify the URL path for the backup file.
WITH Options:WITH Options:
CREDENTIALCREDENTIAL WITH CREDENTIAL은 RESTORE FROM URL 옵션을 사용하여 Microsoft Azure Blob 저장소 서비스에서 복원할 때만 지원됩니다.WITH CREDENTIAL is only supported when using RESTORE FROM URL option to restore from Microsoft Azure Blob storage service.
PARTIALPARTIAL
RECOVERY | NORECOVERY | STANDBYRECOVERY | NORECOVERY | STANDBY
LOADHISTORYLOADHISTORY
MOVEMOVE
REPLACEREPLACE
RESTARTRESTART
RESTRICTED_USERRESTRICTED_USER
FILEFILE
PASSWORDPASSWORD
MEDIANAMEMEDIANAME
MEDIAPASSWORDMEDIAPASSWORD
BLOCKSIZEBLOCKSIZE
BUFFERCOUNTBUFFERCOUNT
MAXTRANSFERSIZEMAXTRANSFERSIZE
CHECKSUM | NO_CHECKSUMCHECKSUM | NO_CHECKSUM
STOP_ON_ERROR | CONTINUE_AFTER_ERRORSTOP_ON_ERROR | CONTINUE_AFTER_ERROR
FILESTREAMFILESTREAM 스냅숏 백업에 지원되지 않습니다.Not supported for snapshot backup
STATSSTATS
REWIND | NOREWINDREWIND | NOREWIND
UNLOAD | NOUNLOADUNLOAD | NOUNLOAD
KEEP_REPLICATIONKEEP_REPLICATION
KEEP_CDCKEEP_CDC
ENABLE_BROKER | ERROR_BROKER_CONVERSATIONS | NEW_BROKERENABLE_BROKER | ERROR_BROKER_CONVERSATIONS | NEW_BROKER
STOPAT | STOPATMARK | STOPBEFOREMARKSTOPAT | STOPATMARK | STOPBEFOREMARK

Restore 인수에 대한 자세한 내용은 RESTORE 인수(Transact-SQL)를 참조하세요.For more information about Restore arguments, see RESTORE Arguments (Transact-SQL).

SQL Server Management Studio에서 백업 태스크 사용 Using Back Up Task in SQL Server Management Studio

SQL Server 자격 증명을 사용하여 SQL Server Management Studio의 백업 태스크를 통해 데이터베이스를 URL에 백업할 수 있습니다.You can back up a database to URL through the Back Up task in SQL Server Management Studio using a SQL Server Credential.

참고

SQL ServerSQL Server 파일-스냅숏 백업을 만들거나 기존 미디어 세트를 덮어쓰려면 SQL Server Management Studio의 백업 태스크 대신 TRANSACT-SQL, Powershell 또는 C#을 사용해야 합니다.To create a SQL ServerSQL Server file-snapshot backup, or overwrite an existing media set, you must use Transact-SQL, Powershell or C# rather than the Back Up task in SQL Server Management Studio.

다음 단계에서는 Microsoft Azure Storage로 백업할 수 있도록 SQL Server Management Studio에서 변경된 데이터베이스 백업 태스크에 대해 설명합니다.The following steps describe the changes made to the Back Up Database task in SQL Server Management Studio to allow for backing up to Windows Azure storage:

  1. 개체 탐색기에서 SQL Server 데이터베이스 엔진의 인스턴스에 연결한 다음 해당 인스턴스를 확장합니다.In Object Explorer, connect to an instance of the SQL Server Database Engine and then expand that instance.

  2. 데이터베이스를 확장하고 원하는 데이터베이스를 마우스 오른쪽 단추로 클릭한 다음 태스크를 가리키고 백업...을 클릭합니다.Expand Databases, right-click the desired database, point to Tasks, and then click Back Up....

  3. 대상 섹션의 일반 페이지에 있는 백업할 위치: 드롭다운 목록에서 URL 옵션을 사용할 수 있습니다.On the General page in the Destination section the URL option is available in the Back up to: drop-down list. URL 옵션은 Microsoft Azure Storage에 백업을 만드는 데 사용됩니다.The URL option is used to create a backup to Microsoft Azure storage. 추가 를 클릭하면 백업 대상 선택 대화 상자가 열립니다.Click Add and the Select Backup Destination dialog box will open:

    1. Azure Storage 컨테이너: 백업 파일을 저장할 Microsoft Azure Storage 컨테이너의 이름입니다.Azure storage container: The name of the Microsoft Azure storage container to store the backup files. 드롭다운 목록에서 기존 컨테이너를 선택하거나 수동으로 컨테이너를 입력합니다.Select an existing container from the drop-down list or manually enter the container.

    2. 공유 액세스 정책: 수동으로 입력한 컨테이너에 대한 공유 액세스 서명을 입력합니다.Shared Access Policy: Enter the shared access signature for a manually entered container. 기존 컨테이너를 선택한 경우에는 이 필드를 사용할 수 없습니다.This field is not available if an existing container was chosen.

    3. 백업 파일: 백업 파일의 이름입니다.Backup File: Name of the backup file.

    4. 새 컨테이너: 공유 액세스 서명이 없는 기존 컨테이너를 등록하는 데 사용됩니다.New Container: Used to register an existing container that you do not have a shared access signature for. Microsoft Azure 구독에 연결을 참조하세요.See Connect to a Microsoft Azure Subscription.

참고

추가 는 단일 미디어 세트에 대해 여러 백업 파일 및 저장소 컨테이너를 지원합니다.Add supports multiple backup files and storage containers for a single media set.

URL 을 대상으로 선택하는 경우 미디어 옵션 페이지의 특정 옵션을 사용할 수 없습니다.When you select URL as the destination, certain options in the Media Options page are disabled. 다음 항목에서는 데이터베이스 백업 대화 상자에 대한 자세한 정보를 제공합니다.The following topics have more information on the Back Up Database dialog:

데이터베이스 백업(일반 페이지)Back Up Database (General Page)

데이터베이스 백업(미디어 옵션 페이지)Back Up Database (Media Options Page)

데이터베이스 백업(백업 옵션 페이지)Back Up Database (Backup Options Page)

자격 증명 만들기 - Azure Storage 인증Create Credential - Authenticate to Azure Storage

유지 관리 계획 마법사를 사용하여 URL로 SQL Server 백업 SQL Server Backup to URL Using Maintenance Plan Wizard

이전에 설명한 백업 작업과 마찬가지로, SQL Server Management Studio의 유지 관리 계획 마법사는 대상 옵션 중 하나로 URL 을 포함하고 Microsoft Azure Storage로 백업하는 데 필요한 다른 지원 개체(예: SQL 자격 증명)를 포함합니다.Similar to the backup task described previously, the Maintenance Plan Wizard in SQL Server Management Studio includes URL as one of the destination options, and other supporting objects required to backup to Windows Azure storage like the SQL Credential. 자세한 내용은 Using Maintenance Plan Wizard백업 작업 정의섹션을 참조하세요.It has the same For more information, see the Define Backup Tasks section in Using Maintenance Plan Wizard.

참고

공유 액세스 토큰을 사용하여 스트라이프 백업 집합, SQL ServerSQL Server 파일-스냅숏 백업 또는 SQL 자격 증명을 만들려면 유지 관리 계획 마법사의 백업 태스크 대신 TRANSACT-SQL, Powershell 또는 C#을 사용해야 합니다.To create a striped backup set, a SQL ServerSQL Server file-snapshot backup, or a SQL credential using Shared Access token, you must use Transact-SQL, Powershell or C# rather than the Backup task in Maintenance Plan Wizard.

SQL Server Management Studio를 사용하여 Microsoft Azure Storage에서 복원 Restoring from Microsoft Azure storage Using SQL Server Management Studio

데이터베이스 복원 태스크에는 URL 이 복원할 원본 장치로 포함됩니다.The Restore Database task includes URL as a device to restore from. 다음 단계에서는 복원 작업을 사용하여 Microsoft Azure Blob 저장소 서비스에서 복원하는 방법을 설명합니다.The following steps describe using the Restore task to restore from the Microsoft Azure Blob storage service:

  1. 데이터베이스 를 마우스 오른쪽 단추로 클릭하고 데이터베이스 복원...을 선택합니다.Right-click Databases and select Restore Database....

  2. 일반 페이지의 원본 섹션에서 장치 를 선택합니다.On the General page, select Device under the Source section.

  3. 찾아보기(...) 단추를 클릭하여 백업 장치 선택 대화 상자를 엽니다.Click the browse (...) button to open the Select backup devices dialog box.

  4. 백업 미디어 유형: 드롭다운 목록에서 URL 을 선택합니다.Select URL from the Backup media type: drop-down list. 추가 를 클릭하여 백업 파일 위치 선택 대화 상자를 엽니다.Click Add to open the Select a Backup File Location dialog box.

    1. Azure Storage 컨테이너: 백업 파일을 포함하는 Microsoft Azure Storage 컨테이너의 정규화된 이름입니다.Azure storage container: The fully qualified name of the Microsoft Azure storage container which contains the backup files. 드롭다운 목록에서 기존 컨테이너를 선택하거나 정규화된 컨테이너 이름을 수동으로 입력합니다.Select an existing container from the drop-down list or manually enter the fully qualified container name.

    2. 공유 액세스 서명: 지정된 컨테이너에 대한 공유 액세스 서명을 입력하는 데 사용됩니다.Shared Access Signature: Used to enter the shared access signature for the designated container.

    3. 추가: 공유 액세스 서명이 없는 기존 컨테이너를 등록하는 데 사용됩니다.Add: Used to register an existing container that you do not have a shared access signature for. Microsoft Azure 구독에 연결을 참조하세요.See Connect to a Microsoft Azure Subscription.

    4. 확인: SQL Server가 제공된 SQL 자격 증명 정보를 사용하여 Microsoft Azure Storage에 연결하고 Microsoft Azure에서 백업 파일 찾기 대화 상자를 엽니다.OK: SQL Server connects to Microsoft Azure storage using the SQL Credential information you provided and opens the Locate Backup File in Microsoft Azure dialog. 저장소 컨테이너에 있는 백업 파일이 이 페이지에 표시됩니다.The backup files residing in the storage container are displayed on this page. 복원하는 데 사용할 파일을 선택하고 확인을 클릭합니다.Select the file you want to use to restore and click OK. 백업 장치 선택 대화 상자가 표시됩니다. 이 대화 상자에서 확인 을 클릭하면 복원을 완료할 수 있는 기본 복원 대화 상자가 표시됩니다.This takes you back to the Select Backup Devices dialog, and clicking OK on this dialog takes you back to the main Restore dialog where you will be able complete the restore.

      데이터베이스 복원(일반 페이지)Restore Database (General Page)

      데이터베이스 복원(파일 페이지)Restore Database (Files Page)

      데이터베이스 복원(옵션 페이지)Restore Database (Options Page)

코드 예제 Code Examples

이 섹션에서는 다음과 같은 예를 보여 줍니다.This section contains the following examples.

참고

Microsoft Azure Blob 저장소 서비스에서 SQL Server 2016을 사용하는 방법에 대한 자습서는 자습서: SQL Server 2016 데이터베이스와 함께 Microsoft Azure Blob 저장소 서비스 사용을 참조하세요.For a tutorial on using SQL Server 2016 with the Microsoft Azure Blob storage service, see Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases

공유 액세스 서명 만들기 Create a Shared Access Signature

다음 예제에서는 새로 만든 컨테이너에서 SQL ServerSQL Server 자격 증명을 만드는 데 사용할 수 있는 공유 액세스 서명을 만듭니다.The following example creates Shared Access Signatures that can be used to create a SQL ServerSQL Server Credential on a newly created container. 이 스크립트는 저장된 액세스 정책에 연결된 공유 액세스 서명을 만듭니다.The script creates a Shared Access Signature that is associated with a Stored Access Policy. 자세한 내용은 공유 액세스 서명, 1부: SAS 모델 이해를 참조하세요.For more information, see Shared Access Signatures, Part 1: Understanding the SAS Model. 이 예제에는 Microsoft Azure Powershell이 필요합니다.The example requires Microsoft Azure Powershell. Azure PowerShell 설치 및 사용에 대한 자세한 내용은 Azure PowerShell을 설치 및 구성하는 방법을 참조하세요.For information about installing and using Azure Powershell, see How to install and configure Azure PowerShell.

참고

이러한 스크립트는 Azure PowerShell 5.0.10586을 사용하여 작성되었습니다.These scripts were written using Azure PowerShell 5.0.10586.

저장된 액세스 정책에 연결된 공유 액세스 서명Shared Access Signature that is associated with a Stored Access Policy

# Define global variables for the script  
$prefixName = '<a prefix name>'  # used as the prefix for the name for various objects  
$subscriptionName='<your subscription name>'   # the name of subscription name you will use  
$locationName = '<a data center location>'  # the data center region you will use  
$storageAccountName= $prefixName + 'storage' # the storage account name you will create or use  
$containerName= $prefixName + 'container'  # the storage container name to which you will attach the SAS policy with its SAS token  
$policyName = $prefixName + 'policy' # the name of the SAS policy  


# Set a variable for the name of the resource group you will create or use  
$resourceGroupName=$prefixName + 'rg'   

# adds an authenticated Azure account for use in the session   
Login-AzureRmAccount

# set the tenant, subscription and environment for use in the rest of   
Set-AzureRmContext -SubscriptionName $subscriptionName   

# create a new resource group - comment out this line to use an existing resource group  
New-AzureRmResourceGroup -Name $resourceGroupName -Location $locationName   

# Create a new ARM storage account - comment out this line to use an existing ARM storage account  
New-AzureRmStorageAccount -Name $storageAccountName -ResourceGroupName $resourceGroupName -Type Standard_RAGRS -Location $locationName   

# Get the access keys for the ARM storage account  
$accountKeys = Get-AzureRmStorageAccountKey -ResourceGroupName $resourceGroupName -Name $storageAccountName  

# Create a new storage account context using an ARM storage account  
$storageContext = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $accountKeys[0].Key1 

# Creates a new container in blob storage  
$container = New-AzureStorageContainer -Context $storageContext -Name $containerName  
$cbc = $container.CloudBlobContainer  

# Sets up a Stored Access Policy and a Shared Access Signature for the new container  
$permissions = $cbc.GetPermissions();  
$policyName = $policyName  
$policy = new-object 'Microsoft.WindowsAzure.Storage.Blob.SharedAccessBlobPolicy'  
$policy.SharedAccessStartTime = $(Get-Date).ToUniversalTime().AddMinutes(-5)  
$policy.SharedAccessExpiryTime = $(Get-Date).ToUniversalTime().AddYears(10)  
$policy.Permissions = "Read,Write,List,Delete"  
$permissions.SharedAccessPolicies.Add($policyName, $policy)  
$cbc.SetPermissions($permissions);  

# Gets the Shared Access Signature for the policy  
$policy = new-object 'Microsoft.WindowsAzure.Storage.Blob.SharedAccessBlobPolicy'  
$sas = $cbc.GetSharedAccessSignature($policy, $policyName)  
Write-Host 'Shared Access Signature= '$($sas.Substring(1))''  

# Outputs the Transact SQL to the clipboard and to the screen to create the credential using the Shared Access Signature  
Write-Host 'Credential T-SQL'  
$tSql = "CREATE CREDENTIAL [{0}] WITH IDENTITY='Shared Access Signature', SECRET='{1}'" -f $cbc.Uri,$sas.Substring(1)   
$tSql | clip  
Write-Host $tSql  

자격 증명 만들기 Create a Credential

다음 예제에서는 Microsoft Azure Blob 저장소 서비스 인증용 SQL ServerSQL Server 자격 증명을 만듭니다.The following examples create SQL ServerSQL Server credentials for authentication to the Microsoft Azure Blob storage service.

  1. 저장소 계정 ID 및 액세스 키 사용Using storage account identity and access key

    IF NOT EXISTS  
    (SELECT * FROM sys.credentials   
    WHERE name = '<mycredentialname>')  
    CREATE CREDENTIAL [<mycredentialname>] WITH IDENTITY = '<mystorageaccountname>'  
    ,SECRET = '<mystorageaccountaccesskey>';  
    
  2. 공유 액세스 서명 사용Using Shared Access Signature

    IF NOT EXISTS  
    (SELECT * FROM sys.credentials   
    WHERE name = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>')  
    CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>] WITH IDENTITY = 'SHARED ACCESS SIGNATURE'  
    ,SECRET = '<SAS_TOKEN>';  
    

전체 데이터베이스 백업 수행 Perform a full database backup

다음 예제에서는 Microsoft Azure Blob 저장소 서비스로 AdventureWorks2016 데이터베이스의 전체 데이터베이스 백업을 수행합니다.The following examples perform a full database backup of the AdventureWorks2016 database to the Microsoft Azure Blob storage service.

  1. 저장소 계정 ID 및 액세스 키를 사용하는 끝 URLTo URL using storage account identity and access key

    BACKUP DATABASE AdventureWorks2016  
    TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2016.bak'   
          WITH CREDENTIAL = '<mycredentialname>'   
         ,COMPRESSION  
         ,STATS = 5;  
    GO   
    
  2. 공유 액세스 서명을 사용하는 끝 URLTo URL using Shared Access Signature

    BACKUP DATABASE AdventureWorks2016   
    TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2016.bak';  
    GO   
    

STOPAT를 사용하여 지정 시간으로 복원 Restoring to a point-in-time using STOPAT

다음 예제에서는 지정 시간의 상태로 AdventureWorks2016 샘플 데이터베이스를 복원하고 복원 작업을 보여 줍니다.The following example restores the AdventureWorks2016 sample database database to its state at a point in time, and shows a restore operation.

  1. 공유 액세스 서명을 사용하는 시작 URLFrom URL using Shared Access Signature

    RESTORE DATABASE AdventureWorks2016 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2016_2015_05_18_16_00_00.bak'   
    WITH MOVE 'AdventureWorks2016_data' to 'C:\Program Files\Microsoft SQL Server\<myinstancename>\MSSQL\DATA\AdventureWorks2016.mdf'  
    ,MOVE 'AdventureWorks2016_log' to 'C:\Program Files\Microsoft SQL Server\<myinstancename>\MSSQL\DATA\AdventureWorks2016.ldf'  
    ,NORECOVERY  
    ,REPLACE  
    ,STATS = 5;  
    GO   
    
    RESTORE LOG AdventureWorks2016 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2016_2015_05_18_18_00_00.trn'   
    WITH   
    RECOVERY   
    ,STOPAT = 'May 18, 2015 5:35 PM'   
    GO  
    

참고 항목See Also

URL에 대한 SQL Server 백업 - 최상의 방법 및 문제 해결 SQL Server Backup to URL Best Practices and Troubleshooting
시스템 데이터베이스 백업 및 복원(SQL Server) Back Up and Restore of System Databases (SQL Server)
자습서: SQL Server 2016 데이터베이스와 함께 Microsoft Azure Blob 저장소 서비스 사용Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases