URL에 대한 SQL Server 백업 - 최상의 방법 및 문제 해결SQL Server Backup to URL Best Practices and Troubleshooting

이 항목은 다음에 적용됩니다. 예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를 백업하고 Windows Azure Blob 서비스로 복원하는 최상의 방법 및 문제 해결 팁이 포함되어 있습니다.This topic includes best practices and troubleshooting tips for SQL Server backup and restores to the Windows Azure Blob service.

Windows Azure Blob 저장소 서비스를 사용하는 SQL Server 백업 및 복원 작업에 대한 자세한 내용은 다음을 참조하십시오.For more information about using Windows Azure Blob storage service for SQL Server backup or restore operations, see:

백업 관리Managing Backups

다음은 백업 관리 시 일반적으로 권장되는 사항입니다.The following list includes general recommendations to manage backups:

  • blob을 실수로 덮어쓰지 않도록 모든 백업에 고유한 파일 이름을 사용하는 것이 좋습니다.Unique file name for every backup is recommended to prevent accidentally overwriting the blobs.

  • 컨테이너를 만들 때 필요한 인증 정보를 제공할 수 있는 사용자 또는 계정만 컨테이너의 blob을 읽거나 쓸 수 있도록 액세스 수준을 개인으로 설정하는 것이 좋습니다.When creating a container, it is recommended that you set the access level to private, so only users or accounts that can provide the required authentication information can read or write the blobs in the container.

  • Windows Azure 가상 컴퓨터에서 실행 중인 SQL Server 인스턴스의 SQL Server 데이터베이스의 경우 가상 컴퓨터와 같은 지역의 저장소 계정을 사용하여 지역 간의 전송 비용을 방지하십시오.For SQL Server databases on an instance of SQL Server running in a Windows Azure Virtual Machine, use a storage account in the same region as the virtual machine to avoid data transfer costs between regions. 또한 동일한 지역을 사용하면 최적의 백업 및 복원 작업 성능이 보장됩니다.Using the same region also ensures optimal performance for backup and restore operations.

  • 실패한 백업 작업으로 인해 백업 파일이 잘못될 수 있습니다.Failed backup activity can result in an invalid backup file. 실패한 백업을 주기적으로 확인하고 blob 파일을 삭제하는 것이 좋습니다.We recommend periodic identification of failed backups and deleting the blob files. 자세한 내용은 Deleting Backup Blob Files with Active Leases를 참조하세요.For more information, see Deleting Backup Blob Files with Active Leases

  • 백업 중 WITH COMPRESSION 옵션을 사용하면 저장소 비용과 저장소 트랜잭션 비용이 최소화됩니다.Using the WITH COMPRESSION option during backup can minimize your storage costs and storage transaction costs. 백업 프로세스를 완료하는 데 걸리는 시간도 줄어듭니다.It can also decrease the time taken to complete the backup process.

큰 파일 처리Handling Large Files

  • SQL ServerSQL Server 백업 작업에서는 여러 스레드를 사용하여 Windows Azure Blob 저장소 서비스로 데이터 전송을 최적화합니다.The SQL ServerSQL Server backup operation uses multiple threads to optimize data transfer to Windows Azure Blob storage services. 그러나 성능은 ISV 대역폭과 데이터베이스 크기 등의 다양한 요소에 따라 달라집니다.However the performance depends on various factors, such as ISV bandwidth and size of the database. 온-프레미스 SQL Server 데이터베이스의 대형 데이터베이스나 파일 그룹을 백업하려는 경우 먼저 몇 가지 처리량 테스트를 수행하는 것이 좋습니다.If you plan to back up large databases or filegroups from an on-premise SQL Server database, it is recommended that you do some throughput testing first. Azure 저장소에 대한 SLA 에서는 Blob에 대해 고려 가능한 최대 처리 시간을 제공합니다.Azure SLA for Storage has maximum processing times for blobs that you can take into consideration.

  • 특히 큰 파일을 백업할 때 백업 관리 섹션에서 권장하는 대로 WITH COMPRESSION 옵션을 사용해야 합니다.Using the WITH COMPRESSION option as recommended in the Managing Backup section, it is very important when backing up large files.

URL 백업 또는 복원 문제 해결Troubleshooting Backup To or Restore from URL

다음은 Windows Azure Blob 스토리지 서비스로 백업하고 복원할 때 발생하는 문제를 해결하는 몇 가지 빠른 방법입니다.Following are some quick ways to troubleshoot errors when backing up to or restoring from the Windows Azure Blob storage service.

지원되지 않는 옵션이나 제한 사항으로 인한 오류 발생을 방지하려면 제한 사항 목록과 Microsoft Azure Blob 저장소 서비스로 SQL Server 백업 및 복원 문서의 BACKUP 및 RESTORE 명령 지원 정보를 검토하세요.To avoid errors due to unsupported options or limitations, review the list of limitations, and support for BACKUP and RESTORE commands information in the SQL Server Backup and Restore with Microsoft Azure Blob Storage Service article.

인증 오류:Authentication Errors:

  • WITH CREDENTIAL은 Windows Azure Blob 저장소 서비스로 백업하거나 복원하는 데 필요한 새로운 옵션입니다.WITH CREDENTIAL is a new option and required to back up to or restore from the Windows Azure Blob storage service. 자격 증명과 관련하여 다음과 같은 오류가 발생할 수 있습니다.Failures related to credential could be the following:

    BACKUP 또는 RESTORE 명령에 지정된 자격 증명이 없습니다.The credential specified in the BACKUP or RESTORE command does not exist. 이 문제를 방지하려면 백업 문에 자격 증명이 없는 경우 자격 증명을 만드는 T-SQL 문을 포함합니다.To avoid this issue, you can include T-SQL statements to create the credential if one does not exist in the backup statement. 다음은 사용 가능한 예입니다.The following is an example you can use:

    IF NOT EXISTS  
    (SELECT * FROM sys.credentials   
    WHERE credential_identity = 'mycredential')  
    CREATE CREDENTIAL <credential name> WITH IDENTITY = 'mystorageaccount'  
    ,SECRET = '<storage access key> ;  
    
  • 자격 증명이 있지만 백업 명령을 실행하는 데 사용되는 로그인 계정에 자격 증명 액세스 권한이 없습니다.The credential exists but the login account that is used to run the backup command does not have permissions to access the credentials. Alter any credential 권한이 있는 db_backupoperator 역할의 로그인 계정을 사용합니다.Use a login account in the db_backupoperator role with Alter any credential permissions.

  • 저장소 계정 이름과 키 값을 확인합니다.Verify the storage account name and key values. 자격 증명에 저장된 정보와 백업 및 복원 작업에 사용하는 Windows Azure 저장소 계정의 속성 값이 일치해야 합니다.The information stored in the credential must match the property values of the Windows Azure storage account you are using in the backup and restore operations.

    백업 오류:Backup Errors/Failures:

  • 동일한 blob으로 병렬 백업을 수행하면 초기화 실패 오류가 발생하여 백업 중 하나가 실패합니다.Parallel backups to the same blob cause one of the backups to fail with an Initialization failed error.

  • 다음은 백업 오류 문제 해결에 도움이 되는 오류 로그입니다.Use the following error logs to help with troubleshooting backup errors:

    • 다음 형식으로 추적 플래그 3051을 설정하여 특정 오류 로그 로깅을 활성화합니다.Set trace flag 3051 to turn on logging to a specific error log with the following format in:

      BackupToUrl-<instname>-<dbname>-action-<PID>.log(여기서 <action>은 다음 중 하나임)BackupToUrl-<instname>-<dbname>-action-<PID>.log Where <action> is one of:

      • DBDB

      • FILELISTONLYFILELISTONLY

      • LABELONLYLABELONLY

      • HEADERONLYHEADERONLY

      • VERIFYONLYVERIFYONLY

    • Windows 이벤트 로그의 응용 프로그램에서 이름이 ‘SQLBackupToUrl’인 로그를 검토하여 정보를 찾을 수도 있습니다.You can also find information by reviewing the Windows Event Log - Under Application logs with the name ‘SQLBackupToUrl’.

  • 압축된 백업에서 복원할 때 다음과 같은 오류가 표시될 수 있습니다.When restoring from a compressed backup, you might see the following error:

    • SqlException 3284 occurred. Severity: 16 State: 5
      장치 'https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_0.bak'의 메시지 파일 마크가 정렬되지 않았습니다. 백업 세트를 만들 때 사용한 크기와 동일한 블록 크기를 사용하여 Restore 문을 다시 실행하세요. '65536'이(가) 사용할 수 있는 값인 것 같습니다.Message Filemark on device 'https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_0.bak' is not aligned. Reissue the Restore statement with the same block size used to create the backupset: '65536' looks like a possible value.

      이 오류를 해결하려면 BLOCKSIZE = 65536 을 지정하여 BACKUP 문을 다시 실행하세요.To solve this error, reissue the BACKUP statement with BLOCKSIZE = 65536 specified.

  • Blob에 활성 임대가 있어 백업 중 오류가 발생합니다. 실패한 백업 작업으로 인해 Blob에 활성 임대가 있을 수 있습니다.Error during backup due to blobs that have active lease on them: Failed backup activity can result in blobs with active leases.

    백업 문을 다시 시도하는 경우 다음과 같은 오류가 발생하여 백업 작업이 실패할 수 있습니다.If a backup statement is reattempted, backup operation might fail with an error similar to the following:

    URL 백업 수행 시 원격 끝점에서 예외를 수신했습니다. 예외 메시지: 원격 서버에서 오류를 반환했습니다. (412) 현재 Blob에 임대가 있으며 요청에 임대 ID가 지정되지 않았습니다.Backup to URL received an exception from the remote endpoint. Exception Message: The remote server returned an error: (412) There is currently a lease on the blob and no lease ID was specified in the request.

    활성 임대가 있는 백업 blob 파일에 대해 복원 문을 시도할 경우 다음과 같은 오류가 발생하여 복원 작업이 실패합니다.If a restore statement is attempted on a backup blob file that has an active lease, the restore operation fails with an error similar to the following:

    예외 메시지: 원격 서버에서 오류를 반환했습니다. (409) 충돌Exception Message: The remote server returned an error: (409) Conflict..

    이러한 오류가 발생하면 blob 파일을 삭제해야 합니다.When such error occurs, the blob files need to be deleted. 이 시나리오와 이 문제 해결 방법에 대한 자세한 내용은 Deleting Backup Blob Files with Active Leases를 참조하십시오.For more information on this scenario and how to correct this problem, see Deleting Backup Blob Files with Active Leases

프록시 오류Proxy Errors

프록시 서버를 사용하여 인터넷에 액세스할 경우 다음과 같은 문제가 발생할 수 있습니다.If you are using Proxy Servers to access the internet, you may see the following issues:

프록시 서버에 의한 연결 제한:Connection throttling by Proxy Servers:

프록시 서버에는 분당 연결 수를 제한하는 설정이 있을 수 있습니다.Proxy Servers can have settings that limit the number of connections per minute. URL에 대한 백업 프로세스는 다중 스레드 프로세스이므로 이 제한을 초과할 수 있습니다.The Backup to URL process is a multi-threaded process and hence can go over this limit. 이러한 경우 프록시 서버는 연결을 해제합니다.If this happens, the proxy server kills the connection. 이 문제를 해결하려면 SQL Server에서 프록시를 사용하지 않도록 프록시 설정을 변경합니다.To resolve this issue, change the proxy settings so SQL Server is not using the proxy. 다음은 오류 로그에 표시될 수 있는 오류 메시지 유형의 몇 가지 예입니다.Following are some examples of the types or error messages you may see in the error log:

  • "http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak"에 쓰지 못했습니다. URL 백업 수행 시 원격 끝점에서 예외를 수신했습니다.Write on "http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak" failed: Backup to URL received an exception from the remote endpoint. 예외 메시지: 전송 연결에서 데이터를 읽을 수 없습니다: 연결이 끊어졌습니다.Exception Message: Unable to read data from the transport connection: The connection was closed.

  • 파일 “http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak:”에서 복구할 수 없는 오류가 발생했습니다. 원격 끝점에서 오류를 수집할 수 없습니다.A nonrecoverable I/O error occurred on file "http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak:" Error could not be gathered from Remote Endpoint.

    메시지 3013, 수준 16, 상태 1, 줄 2Msg 3013, Level 16, State 1, Line 2

    백업 데이터베이스가 비정상적으로 종료됩니다.BACKUP DATABASE is terminating abnormally.

  • BackupIoRequest::ReportIoError: 백업 장치 http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak'에 쓸 수 없습니다.BackupIoRequest::ReportIoError: write failure on backup device http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak'. 운영 체제 오류 URL 백업 수행 시 원격 끝점에서 예외를 수신했습니다.Operating system error Backup to URL received an exception from the remote endpoint. 예외 메시지: 전송 연결에서 데이터를 읽을 수 없습니다: 연결이 끊어졌습니다.Exception Message: Unable to read data from the transport connection: The connection was closed.

    추적 플래그 3051을 사용하여 자세한 로깅을 설정하는 경우 로그에 다음과 같은 메시지도 표시될 수 있습니다.If you turn on the verbose logging using the trace flag 3051 you may also see the following message in the logs:

    HTTP 상태 코드 502, HTTP 상태 메시지 프록시 오류(분당 HTTP 요청 수가 구성된 제한을 초과했습니다.HTTP status code 502, HTTP Status Message Proxy Error ( The number of HTTP requests per minute exceeded the configured limit. ISA Server 관리자에게 문의하십시오.Contact your ISA Server administrator. ).)

    기본 프록시 설정이 선택되지 않음:Default Proxy Settings not picked up:

    경우에 따라 기본 설정이 선택되지 않아서 다음과 같은 프록시 인증 오류가 발생합니다. 파일 “http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak:”에서 복구할 수 없는 I/O 오류가 발생했습니다. URL 백업 수행 시 원격 끝점에서 예외를 수신했습니다. 예외 메시지: 원격 서버에서 오류를 반환했습니다. (407) 프록시 인증 필요Sometimes the default settings are not picked up causing proxy authentication errors such as the one shown below:A nonrecoverable I/O error occurred on file "http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak:" Backup to URL received an exception from the remote endpoint. Exception Message: The remote server returned an error: (407) Proxy Authentication Required.

    이 문제를 해결하려면 다음 단계를 사용하여 URL에 대한 백업 프로세스에서 기본 프록시 설정을 사용하도록 허용하는 구성 파일을 만듭니다.To resolve this issue, create a configuration file that allows the Backup to URL process to use the default proxy settings using the following steps:

  1. 다음 xml을 사용하여 BackuptoURL.exe.config라는 구성 파일을 만듭니다.Create a configuration file named BackuptoURL.exe.config with the following xml:

    \<?xml version ="1.0"?>  
    <configuration>   
                    \<system.net>   
                                    <defaultProxy enabled="true" useDefaultCredentials="true">   
                                                    <proxy usesystemdefault="true" />   
                                    </defaultProxy>   
                    \</system.net>  
    </configuration>  
    
  2. SQL Server 인스턴스의 Binn 폴더에 구성 파일을 배치합니다.Place the configuration file in the Binn folder of the SQL Server Instance. 예를 들어 SQL Server가 컴퓨터의 C 드라이브에 설치된 경우 구성 파일을 C:\Program Files\Microsoft SQL Server\MSSQL13.<InstanceName>\MSSQL\Binn에 저장합니다.For example, if my SQL Server is installed on the C drive of the machine, place the configuration file here: C:\Program Files\Microsoft SQL Server\MSSQL13.<InstanceName>\MSSQL\Binn.

관련 항목:See Also

Microsoft Azure에 저장된 백업에서 복원Restoring From Backups Stored in Microsoft Azure
BACKUP(Transact-SQL)BACKUP (Transact-SQL)
RESTORE(Transact-SQL)RESTORE (Transact-SQL)