Microsoft Azure의 SQL Server 데이터 파일SQL Server Data Files in Microsoft Azure

Azure의 데이터 파일Data files on Azure

Microsoft Azure에서 SQL Server 데이터 파일을 통해 Microsoft Azure Blob으로 저장된 SQL Server 데이터베이스 파일이 기본적으로 지원됩니다.SQL Server Data Files in Microsoft Azure enables native support for SQL Server database files stored as Microsoft Azure Blobs. 이 기능을 사용하면 온-프레미스로 실행 중인 SQL Server에서 또는 Microsoft Azure BLOB 저장소에서 사용자의 데이터에 대한 전용 저장소 위치를 갖는 Microsoft Azure의 가상 컴퓨터에서 데이터베이스를 만들 수 있습니다.It allows you to create a database in SQL Server running in on-premises or in a virtual machine in Microsoft Azure with a dedicated storage location for your data in Microsoft Azure Blob Storage. 특히, 이 향상된 기능은 분리 및 연결 작업을 사용하여 컴퓨터 간의 데이터 이동을 간소화합니다.This enhancement especially simplifies to move databases between machines by using detach and attach operations. 또한 Microsoft Azure Storage를 원본 또는 대상으로 복원하도록 허용하여 데이터베이스 백업 파일에 대한 대체 저장소 위치를 제공합니다.In addition, it provides an alternative storage location for your database backup files by allowing you to restore from or to Microsoft Azure Storage. 따라서 데이터 가상화, 데이터 이동, 보안 및 가용성, 고가용성 및 탄력적인 크기 조정을 위한 쉽고 저렴한 비용 및 유지 관리 등 여러 가지 이점을 제공하여 다양한 하이브리드 솔루션을 사용할 수 있도록 지원합니다.Therefore, it enables several hybrid solutions by providing several benefits for data virtualization, data movement, security and availability, and any easy low costs and maintenance for high-availability and elastic scaling.

[AZURE.IMPORTANT]시스템 데이터베이스를 Azure Blob Storage에 저장하는 것은 좋지 않으며 지원되지 않습니다.Storing system databases in Azure blob storage is not recommended and is not supported.

이 항목에서는 SQL Server 데이터 파일을 Microsoft Azure Storage 서비스에 저장하는 데 중요한 개념 및 고려 사항에 대해 설명합니다.This topic introduces concepts and considerations that are central to storing SQL Server data files in Microsoft Azure Storage Service.

이 새 기능을 사용하는 방법을 실제로 실습하려면 자습서: SQL Server 2016 데이터베이스와 함께 Microsoft Azure Blob 저장소 서비스 사용 을 참조하세요.For a practical hands-on experience on how to use this new feature, see Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases .

Microsoft Azure의 SQL Server 데이터 파일을 사용하는 이유는 무엇인가요?Why use SQL Server Data Files in Microsoft Azure?

  • 쉽고 빠른 마이그레이션 이점: 이 기능은 응용 프로그램 변경 없이 온-프레미스 내 컴퓨터 간에 또는 온-프레미스와 클라우드 환경 간에 데이터베이스를 한 번에 하나씩 이동하여 마이그레이션 프로세스를 간소화합니다.Easy and fast migration benefits: This feature simplifies the migration process by moving one database at a time between machines in on-premises as well as between on-premises and cloud environments without any application changes. 따라서 기존 온-프레미스 인프라를 현재 위치에 유지하면서 증분 마이그레이션을 지원합니다.Therefore, it supports an incremental migration while maintaining your existing on-premises infrastructure in place. 또한 온-프레미스 환경의 여러 위치에서 응용 프로그램을 실행해야 할 경우 중앙 집중식 데이터 저장소에 액세스하여 응용 프로그램 논리를 간소화합니다.In addition, having access to a centralized data storage simplifies the application logic when an application needs to run in multiple locations in an on-premises environment. 경우에 따라 지리적으로 분산된 위치에 컴퓨터 센터를 신속하게 설치하여 여러 소스에서 데이터를 수집해야 할 수도 있습니다.In some cases, you may need to rapidly setup computer centers in geographically dispersed locations, which gather data from many different sources. 데이터를 다른 위치로 이동하는 대신 이 새로운 향상된 기능을 사용하여 많은 데이터베이스를 Microsoft Azure BLOB으로 저장한 다음 Transact-SQL 스크립트를 실행하여 로컬 컴퓨터 또는 가상 컴퓨터에 데이터베이스를 만들 수 있습니다.By using this new enhancement, instead of moving data from one location to another, you can store many databases as Microsoft Azure blobs, and then run Transact-SQL scripts to create databases on the local machines or virtual machines.

  • 비용 및 무제한 저장소 이점: 이 기능을 사용하면 온-프레미스 컴퓨터 리소스를 활용하면서 Microsoft Azure에서 무제한 오프사이트 저장소를 사용할 수 있습니다.Cost and limitless storage benefits: This feature enables you to have limitless off-site storage in Microsoft Azure while leveraging on-premises compute resources. Microsoft Azure를 저장소 위치로 사용하면 하드웨어 관리 오버헤드 없이 응용 프로그램 논리에만 쉽게 집중할 수 있습니다.When you use Microsoft Azure as a storage location, you can easily focus on the application logic without the overhead of hardware management. 온-프레미스에서 계산 노드가 손실되더라도 데이터를 이동하지 않고 새 계산 노드를 설정할 수 있습니다.If you lose a computation node on-premises, you can set up a new one without any data movement.

  • 고가용성 및 재해 복구 이점: Microsoft Azure의 SQL Server 데이터 파일 기능을 사용하면 고가용성 및 재해 복구 솔루션을 간소화할 수 있습니다.High availability and disaster recovery benefits: Using SQL Server Data Files in Microsoft Azure feature might simplify the high availability and disaster recovery solutions. 예를 들어 Microsoft Azure의 가상 컴퓨터 또는 SQL Server 인스턴스가 충돌할 경우 Microsoft Azure BLOB에 대한 링크를 다시 설정하여 새 SQL Server 인스턴스에 데이터베이스를 다시 만들 수 있습니다.For example, if a virtual machine in Microsoft Azure or an instance of SQL Server crashes, you can re-create your databases in a new SQL Server instance by just re-establishing links to Microsoft Azure Blobs.

  • 보안 이점: 이 새로운 향상된 기능을 사용하여 계산 인스턴스를 저장소 인스턴스와 구분할 수 있습니다.Security benefits: This new enhancement allows you to separate a compute instance from a storage instance. 저장소 인스턴스가 아닌 계산 인스턴스에서만 암호 해독이 포함된 완전히 암호화된 데이터베이스를 설정할 수 있습니다.You can have a fully encrypted database with decryption only occurring on compute instance but not in a storage instance. 즉, 이 새로운 향상된 기능을 사용하면 데이터와 물리적으로 구분되는 TDE(투명한 데이터 암호화) 인증서로 공용 클라우드의 모든 데이터를 암호화할 수 있습니다.In other words, using this new enhancement, you can encrypt all data in public cloud using Transparent Data Encryption (TDE) certificates, which are physically separated from the data. TDE 키를 master 데이터베이스에 저장한 다음 이 master 데이터베이스를 물리적으로 안전한 온-프레미스 컴퓨터에 로컬로 저장하고 로컬로 백업할 수 있습니다.The TDE keys can be stored in the master database, which is stored locally in your physically secure on-premises computer and backed up locally. 이러한 로컬 키를 사용하여 Microsoft Azure Storage에 있는 데이터를 암호화할 수 있습니다.You can use these local keys to encrypt the data, which resides in Microsoft Azure Storage. 클라우드 스토리지 계정 자격 증명을 도난 당한 경우에도 TDE 인증서가 항상 온-프레미스에 있으므로 데이터는 여전히 안전합니다.If your cloud storage account credentials are stolen, your data still stays secure as the TDE certificates always reside in on-premises.

  • 스냅숏 백업: 이 기능은 Azure 스냅숏을 사용하여 Azure Blob 저장소 서비스를 통해 저장된 데이터베이스 파일에 대한 거의 즉시 백업 및 보다 신속한 복원을 제공합니다.Snapshot backup: This feature enables you to use Azure snapshots to provide nearly instantaneous backups and quicker restores for database files stored using the Azure Blob storage service. 이 기능을 사용하면 백업 및 복원 정책을 간소화할 수 있습니다.This capability enables you to simplify your backup and restore policies. 자세한 내용은 Azure의 데이터베이스 파일에 대한 파일-스냅숏 백업을 참조하세요.For more information, see File-Snapshot Backups for Database Files in Azure.

개념 및 요구 사항Concepts and Requirements

Azure Storage 개념Azure Storage Concepts

Windows Azure의 SQL Server 데이터 파일 기능을 사용할 경우 Windows Azure에서 저장소 계정과 컨테이너를 만들어야 합니다.When using SQL Server Data Files in Windows Azure feature, you need to create a storage account and a container in Windows Azure. 그런 다음 컨테이너에 액세스하는 데 필요한 공유 액세스 서명과 컨테이너 정책에 대한 정보가 들어 있는 SQL Server 자격 증명을 만들어야 합니다.Then, you need to create a SQL Server credential, which includes information on the policy of the container as well as a shared access signature that is necessary to access the container.

Microsoft Azure에서 Azure Storage 계정은 BLOB에 액세스하는 데 필요한 가장 높은 수준의 네임스페이스를 나타냅니다.In Microsoft Azure, an Azure storage account represents the highest level of the namespace for accessing Blobs. 저장소 계정에 포함될 수 있는 컨테이너의 개수 제한은 없지만 총 크기가 500TB 미만이어야 합니다.A storage account can contain an unlimited number of containers, as long as their total size is under 500 TB. 저장소 제한에 대한 최신 정보는 Azure 구독 및 서비스 제한, 할당량 및 제약 조건(영문)을 참조하세요.For the latest information on storage limits, see Azure Subscription and Service Limits, Quotas, and Constraints. 컨테이너는 BLOB집합을 그룹화합니다.A container provides a grouping of a set of Blobs. 모든 BLOB은 컨테이너에 있어야 합니다.All Blobs must be in a container. 계정에 포함될 수 있는 컨테이너의 개수 제한은 없습니다.An account can contain an unlimited number of containers. 마찬가지로 컨테이너에 저장될 수 있는 BLOB의 개수도 제한되지 않습니다.Similarly, a container can store an unlimited number of Blobs as well. Azure Blob Storage 서비스에는 블록 Blob과 페이지 Blob이라는 두 가지 유형의 Blob을 저장할 수 있습니다.There are two types of blobs that can be stored in Azure Storage: block and page blobs. 이 새로운 기능은 최대 1TB 이하의 페이지 BLOB을 사용하며, 파일의 바이트 범위가 자주 수정될 때 더 효율적입니다.This new feature uses Page blobs, which can be up to 1TB in size, and are more efficient when ranges of bytes in a file are modified frequently. http://storageaccount.blob.core.windows.net/<container>/<blob>URL 형식을 사용하여 BLOB에 액세스할 수 있습니다.You can access Blobs using the following URL format: http://storageaccount.blob.core.windows.net/<container>/<blob>.

Azure 청구 고려 사항Azure Billing Considerations

의사 결정 및 계획 과정에서 Azure 서비스 사용 비용에 대한 예측은 중요한 사항입니다.Estimating the cost of using Azure Services is an important matter in the decision making and planning process. Azure Storage에 SQL Server 데이터 파일을 저장할 경우 저장소 및 트랜잭션과 관련된 비용을 지불해야 합니다.When storing SQL Server data files in Azure Storage, you need to pay costs associated with storage and transactions. 또한 Azure Storage의 SQL Server 데이터 파일 기능을 구현하려면 45-60초마다 BLOB 임대를 암시적으로 갱신해야 합니다.In addition, the implementation of SQL Server Data Files in Azure Storage feature requires a renewal of Blob lease every 45 to 60 seconds implicitly. 또한 데이터베이스 파일(예: .mdf 또는 .ldf)당 트랜잭션 비용이 발생합니다.This also results in transaction costs per database file, such as .mdf or .ldf. 현재 가격 모델에 따라 두 데이터베이스 파일(.mdf 및 .ldf)의 임대를 갱신하는 비용은 1개월에 약 2센트로 예상됩니다.Based on our estimations, the cost of renewing leases for two database files (.mdf and .ldf) would be about 2 cents per month according to the current pricing model. Azure Storage 및 Azure 가상 컴퓨터의 사용과 관련한 월별 비용을 예측하려면 Azure 가격 페이지의 정보를 참조하세요.We recommend that you use the information on the Azure Pricing page to help estimate the monthly costs associated with the use of Azure Storage and Azure Virtual Machines.

SQL 서버 개념SQL Server Concepts

이 새로운 향상된 기능을 사용할 경우 다음을 수행해야 합니다.When using this new enhancement, you are required to do the followings:

  • 컨테이너에 대한 정책을 만들고 SAS(공유 액세스 서명) 키를 생성해야 합니다.You must create a policy on a container and also generate a shared access signature (SAS) key.

  • 데이터 또는 로그 파일에서 사용하는 각 컨테이너에 대해 컨테이너 경로와 일치하는 이름의 SQL Server 자격 증명을 만들어야 합니다.For each container used by a data or a log file, you must create a SQL Server Credential whose name matches the container path.

  • Azure Storage 컨테이너, 연결된 정책 이름 및 SAS 키를 SQL Server 자격 증명 저장소에 저장해야 합니다.You must store the information regarding Azure Storage container, its associated policy name, and SAS key in the SQL Server credential store.

    다음 예에서는 Azure Storage 컨테이너를 만들고 읽기, 쓰기 및 나열 권한이 있는 정책을 만들었다고 가정합니다.The following example assumes that an Azure storage container has been created, and a policy has been created with read, write, list, rights. 컨테이너에 대한 정책을 만들면 메모리에 암호화되지 않은 상태로 유지해도 안전하고 SQL Server에서 컨테이너의 BLOB 파일에 액세스하는 데 필요한 SAS 키가 생성됩니다.Creating a policy on a container generates a SAS key which is safe to keep unencrypted in memory and needed by SQL Server to access the blob files in the container. 다음 코드 조각에서 'your SAS key''sr=c&si=<MYPOLICYNAME>&sig=<THESHAREDACCESSSIGNATURE>'와 유사한 항목으로 바꾸십시오.In the following code snippet, replace 'your SAS key' with an entry similar to the following: 'sr=c&si=<MYPOLICYNAME>&sig=<THESHAREDACCESSSIGNATURE>'. 자세한 내용은 Azure Storage 리소스에 대한 액세스 관리를 참조하십시오.For more information, see Manage Access to Azure Storage Resources


-- Create a credential  
CREATE CREDENTIAL [https://testdb.blob.core.windows.net/data]  
WITH IDENTITY='SHARED ACCESS SIGNATURE',  
SECRET = 'your SAS key'  

-- Create database with data and log files in Windows Azure container.  
CREATE DATABASE testdb   
ON  
( NAME = testdb_dat,  
    FILENAME = 'https://testdb.blob.core.windows.net/data/TestData.mdf' )  
 LOG ON  
( NAME = testdb_log,  
    FILENAME =  'https://testdb.blob.core.windows.net/data/TestLog.ldf')  

중요 정보: 컨테이너의 데이터 파일에 대한 활성 참조가 있는 경우 해당 SQL Server 자격 증명을 삭제하려고 하면 실패합니다.Important note: If there are any active references to data files in a container, attempts to delete the corresponding SQL Server credential fails.

보안Security

Azure Storage에 SQL Server 데이터 파일을 저장할 경우의 보안 고려 사항 및 요구 사항은 다음과 같습니다.The following are security considerations and requirements when storing SQL Server Data Files in Azure Storage.

  • Azure Blob Storage 서비스의 컨테이너를 만들 때 액세스 권한을 개인으로 설정하는 것이 좋습니다.When creating a container for the Azure Blob storage service, we recommend that you set the access to private. 액세스 형식을 개인으로 설정하면 Azure 계정 소유자만 컨테이너 및 BLOB 데이터를 읽을 수 있습니다.When you set the access to private, container and blob data can be read by the Azure account owner only.

  • Azure Storage에 SQL Server 데이터베이스 파일을 저장할 경우 컨테이너, BLOB, 큐 및 테이블에 대한 제한된 액세스 권한을 부여하는 URI인 공유 액세스 서명을 사용해야 합니다.When storing SQL Server database files in Azure Storage, you need to use a shared access signature, a URI that grants restricted access rights to containers, blobs, queues, and tables. 공유 액세스 서명을 사용하면 Azure Storage 계정 키를 공유하지 않고 SQL Server에서 저장소 계정의 리소스에 액세스할 수 있습니다.By using a shared access signature, you can enable SQL Server to access resources in your storage account without sharing your Azure storage account key.

  • 또한 데이터베이스에 대한 기존 온-프레미스 보안 방법을 계속 구현하는 것이 좋습니다.In addition, we recommend that you continue implementing the traditional on-premises security practices for your databases.

필수 구성 요소 설치Installation Prerequisites

Azure에 SQL Server 데이터 파일을 저장할 경우 설치를 위한 필수 조건은 다음과 같습니다.The followings are installation prerequisites when storing SQL Server Data Files in Azure.

  • SQL Server 온-프레미스: SQL Server 2016 버전에 이 기능이 포함됩니다.SQL Server on-premises: SQL Server 2016 version includes this feature. SQL Server 2016을 다운로드하는 방법을 알아보려면 SQL Server 2016을 참조하세요.To learn how to download SQL Server 2016, see SQL Server 2016.

  • Azure 가상 컴퓨터에서 실행 중인 SQL Server: Azure 가상 컴퓨터에 SQL Server를 설치하는 경우 SQL Server 2016을 설치하거나 기존 인스턴스를 업데이트하세요.SQL Server running in an Azure virtual machine: If you are installing SQL Server on an Azure Virtual Machine, install SQL Server 2016, or update your existing instance. 이와 마찬가지로 SQL Server 2016 플랫폼 이미지를 사용하여 Azure에서 새 가상 컴퓨터를 만들 수도 있습니다.Similarly, you can also create a new virtual machine in Azure using SQL Server 2016 platform image.

제한 사항 Limitations

  • 이 기능의 현재 릴리스에서는 Azure Storage에 FileStream 데이터를 저장할 수 없습니다.In the current release of this feature, storing FileStream data in Azure Storage is not supported. Azure Storage 통합 로컬 데이터베이스에 Filestream 데이터를 저장할 수 있지만 Azure Storage를 사용하여 컴퓨터 간에 Filestream 데이터를 이동할 수는 없습니다.You can store Filestream data in an Azure storage integrated local database but you cannot move Filestream data between machines using Azure Storage. FileStream 데이터의 경우 컴퓨터 간에 Filestream과 연관된 파일(.mdf, .ldf)을 이동하는 데 기존 기술을 계속 사용하는 것이 좋습니다.For FileStream data, we recommend that you continue using the traditional techniques to move the files (.mdf, .ldf) associated with Filestream between different machines.

  • 현재 이 새로운 향상된 기능을 사용하여 여러 SQL Server 인스턴스에서 Azure Storage의 동일한 데이터베이스 파일에 동시에 액세스할 수 없습니다.Currently, this new enhancement does not support more than one SQL Server instance accessing the same database files in Azure Storage at the same time. 활성 데이터베이스 파일이 있는 서버 A가 온라인 상태인 동안 동일한 데이터 파일을 가리키는 데이터베이스를 포함하는 서버 B를 실수로 시작한 경우, 두 번째 서버에서는 데이터베이스가 시작되지 않고 오류 코드 5120 물리적 파일 "%.*ls"를 열 수 없습니다. 운영 체제 오류 %d: "%ls".If ServerA is online with an active database file and if ServerB is accidently started, and it also has a database which points to the same data file, the second server will fail to start the database with an error code 5120 Unable to open the physical file "%.*ls". Operating system error %d: "%ls".

  • .mdf, .ldf 및 .ndf 파일만 Azure의 SQL Server 데이터 파일 기능을 사용하여 Azure Storage에 저장할 수 있습니다.Only .mdf, .ldf, and .ndf files can be stored in Azure Storage by using the SQL Server Data Files in Azure feature.

  • Azure의 SQL Server 데이터 파일 기능을 사용할 경우 저장소 계정에 대한 지리적 복제는 지원되지 않습니다.When using the SQL Server Data Files in Azure feature, geo-replication for your storage account is not supported. 저장소 계정이 지리적으로 복제되는 동안 지리적 장애 조치(failover)가 발생할 경우 데이터베이스가 손상될 수 있습니다.If a storage account is geo-replicated and a geo-failover happened, database corruption could occur.

  • 각 BLOB의 최대 크기는 1TB입니다.Each Blob can be up to maximum 1 TB in size. 이로 인해 Azure Storage에 저장할 수 있는 개별 데이터베이스 데이터 및 로그 파일의 상한이 설정됩니다.This creates an upper limit on individual database data and log files that can be stored in Azure Storage.

  • Azure Storage의 SQL Server 데이터 파일 기능을 사용하여 Azure BLOB에 메모리 내 OLTP 데이터를 저장할 수 없습니다.It is not possible to store In-Memory OLTP data in Azure Blob using the SQL Server Data Files in Azure Storage feature. 메모리 내 OLTP는 FileStream 에 종속되지만 이 기능의 현재 릴리스에서는 Azure Storage에 FileStream 데이터를 저장할 수 없기 때문입니다.This is because In-Memory OLTP has a dependency on FileStream and, in the current release of this feature, storing FileStream data in Azure Storage is not supported.

  • Azure의 SQL Server 데이터 파일 기능을 사용할 경우 SQL Server에서는 master 데이터베이스에 설정된 데이터 정렬을 사용하여 모든 URL 또는 파일 경로를 비교합니다.When using SQL Server Data Files in Azure feature, SQL Server performs all URL or file path comparisons using the Collation set in the master database.

  • Always On 가용성 그룹 은 주 데이터베이스에 새 데이터베이스 파일을 추가하지 않는 한 지원됩니다.Always On Availability Groups are supported as long as you do not add new database files to the primary database. 데이터베이스 작업 중에 주 데이터베이스에서 새 파일을 만들어야 하는 경우 먼저 보조 노드에서 Always On 가용성 그룹을 사용하지 않도록 설정합니다.If a database operation requires a new file to be created in the primary database, first disable Always On Availability Groups in the secondary node. 그런 다음 기본 데이터베이스에서 데이터베이스 작업을 수행하고 기본 노드에 데이터베이스를 백업합니다.Then, perform the database operation on the primary database and backup the database in the primary node. 그런 다음 데이터베이스를 보조 노드에 복원하고 보조 노드에서 Always On 가용성 그룹을 사용하도록 설정합니다.Next, restore the database to the secondary node, and enable Always On Availability Groups in the secondary node. Azure의 SQL Server 데이터 파일 기능을 사용할 경우 Always On 장애 조치(failover) 클러스터 인스턴스는 지원되지 않습니다.Note that Always On Failover Cluster Instances is not supported when using the SQL Server Data Files in Azure feature.

  • 정상적인 작업 중에 SQL Server는 임시 임대를 사용하여 저장소에 대한 BLOB을 예약하고 45-60초마다 각 BLOB 임대를 갱신합니다.During normal operation, SQL Server uses temporary leases to reserve Blobs for storage with a renewal of each Blob lease every 45 to 60 seconds. 서버가 충돌하는 상태에서 동일한 BLOB을 사용하도록 구성된 SQL Server의 다른 인스턴스가 시작될 경우 새 인스턴스는 BLOB의 기존 임대가 만료될 때까지 최대 60초 동안 기다립니다.If a server crashes and another instance of SQL Server configured to use the same blobs is started, the new instance will wait up to 60 seconds for the existing lease on the Blob to expire. 데이터베이스를 다른 인스턴스에 첨부하고 60초 내에 임대가 만료되도록 기다릴 수 없는 경우 BLOB에서 임대를 명시적으로 해제하여 첨부 작업의 오류를 방지할 수 있습니다.If you want to attach the database to another instance and you cannot wait for the lease to expire within 60 seconds, you can explicitly break the lease on the Blob to avoid any failures in attach operations.

도구 및 프로그래밍 참조 지원Tools and programming reference support

이 섹션에서는 Azure Storage에 SQL Server 데이터 파일을 저장할 때 사용할 수 있는 도구 및 프로그래밍 참조 라이브러리에 대해 설명합니다.This section describes which tools and programming reference libraries can be used when storing SQL Server data files in Azure Storage.

PowerShell 지원PowerShell support

PowerShell cmdlet을 통해 파일 경로 대신 Blob Storage URL을 참조하여 Azure Blob Storage 서비스에 SQL Server 데이터 파일을 저장합니다.Use PowerShell cmdlets to store SQL Server data files in Azure Blob Storage service by referencing a Blob Storage URL path instead of a file path. 다음 URL 형식을 사용하여 BLOB에 액세스합니다. http://storageaccount.blob.core.windows.net/<container>/<blob>Access Blobs using the following URL format: http://storageaccount.blob.core.windows.net/<container>/<blob> .

SQL Server 개체 및 성능 카운터 지원SQL Server Object and performance counters support

SQL Server 2014 이상에서는 Azure Storage의 SQL Server 데이터 파일 기능에 사용할 새로운 SQL Server 개체를 추가했습니다.Starting with SQL Server 2014, a new SQL Server object has been added to be used with SQL Server Data Files in Azure Storage feature. 이 새 SQL Server 개체를 SQL Server, HTTP_STORAGE_OBJECT 라고 하며, SQL Server를 Microsoft Azure Storage와 함께 실행할 때 시스템 모니터에서 활동을 모니터링하는 데 사용할 수 있습니다.The new SQL Server object is called as SQL Server, HTTP_STORAGE_OBJECT and it can be used by System Monitor to monitor activity when running SQL Server with Windows Azure Storage.

SQL Server Management Studio 지원SQL Server Management Studio support

SQL Server Management Studio에서 다양한 대화 상자 창을 통해 이 기능을 사용할 수 있습니다.SQL Server Management Studio allows you to use this feature via several dialog windows. 예를 들어 https://teststorageaccnt.blob.core.windows.net/testcontainer/와 같이 저장소 컨테이너의 URL 경로를 입력할 수 있습니다.For example, you can type the URL path of the storage container, such as > https://teststorageaccnt.blob.core.windows.net/testcontainer/ :

여러 대화 상자 창(예: 새 데이터베이스 , 데이터베이스 연결데이터베이스 복원)에 경로로 입력할 수 있습니다.as a Path in several dialog windows, such as New Database, Attach Database, and Restore Database. 자세한 내용은 자습서: SQL Server 2016 데이터베이스와 함께 Microsoft Azure Blob Storage 서비스 사용을 참조하세요.For more information, see Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases.

SQL Server 관리 개체 지원SQL Server Management Objects support

Azure의 SQL Server 데이터 파일 기능을 사용할 경우 모든 SMO(SQL Server 관리 개체)가 지원됩니다.When using the SQL Server Data Files in Azure feature, all SQL Server Management Objects (SMO) are supported. SMO 개체에 파일 경로가 필요한 경우 로컬 파일 경로 대신 BLOB URL 형식을 사용합니다(예: https://teststorageaccnt.blob.core.windows.net/testcontainer/).If an SMO object requires a file path, use the BLOB URL format instead of a local file path, such as https://teststorageaccnt.blob.core.windows.net/testcontainer/. SMO(SQL Server 관리 개체)에 대한 자세한 내용은 SQL Server 온라인 설명서의 SMO(SQL Server 관리 개체) 프로그래밍 가이드를 참조하세요.For more information about SQL Server Management Objects (SMO), see SQL Server Management Objects (SMO) Programming Guide in SQL Server Books Online.

Transact-SQL 지원Transact-SQL support

이 새로운 기능에서는 Transact-SQL 노출 영역을 다음과 같이 변경했습니다.This new feature has introduced the following change in the Transact-SQL surface area:

  • sys.master_files 시스템 뷰의 새로운 intcredential_id .A new int column, credential_id, in the sys.master_files system view. credential_id 열은 Azure Storage 사용 데이터 파일이 생성된 자격 증명에 대한 sys.credentials를 다시 상호 참조하도록 설정하는 데 사용됩니다.The credential_id column is used to enable Azure Storage enabled data files to be cross-referenced back to sys.credentials for the credentials created for them. 이 열을 문제 해결에 사용할 수 있습니다. 예를 들어 이 열을 사용하는 데이터베이스 파일이 있는 경우 자격 증명을 삭제할 수 없습니다.You can use it for troubleshooting, such as a credential cannot be deleted when there is a database file which uses it.

Microsoft Azure의 SQL Server 데이터 파일 문제 해결 Troubleshooting for SQL Server Data Files in Microsoft Azure

지원되지 않는 기능 또는 제한 때문에 발생하는 오류를 방지하려면 먼저 Limitations을 검토하세요.To avoid errors due to unsupported features or limitations, first review Limitations.

Azure Storage의 SQL Server 데이터 파일 기능을 사용할 때 발생할 수 있는 오류 목록은 다음과 같습니다.The list of errors that you might get when using the SQL Server Data Files in Azure Storage feature are as follows.

인증 오류Authentication errors

  • 활성 데이터베이스 파일이 사용하고 있으므로 자격 증명 '%.\ls'을(를) 삭제할 수 없습니다.* Cannot drop the credential '%.\ls' because it is used by an active database file.*
    해결 방법: Azure Storage에서 활성 데이터베이스 파일이 사용 중인 자격 증명을 삭제하려고 하면 이 오류가 나타날 수 있습니다.Resolution: You may see this error when you try to drop a credential that is still being used by an active database file in Azure Storage. 자격 증명을 삭제하려면 이 데이터베이스 파일을 포함하는 연결된 BLOB을 먼저 삭제해야 합니다.To drop the credential, first you must delete the associated blob that has this database file. 활성 임대가 있는 BLOB을 삭제하려면 먼저 임대를 해제해야 합니다.To delete a blob that has an active lease, you must first break the lease.

  • 공유 액세스 서명이 컨테이너에서 올바르게 만들어지지 않습니다. Shared Access Signature has not been created on the container correctly.
    해결 방법: 컨테이너에서 공유 액세스 서명을 올바르게 만들었는지 확인하세요.Resolution: Make sure that you have created a Shared Access Signature on the container correctly. 자습서: SQL Server 2016 데이터베이스와 함께 Microsoft Azure Blob 저장소 서비스 사용 에서 2단원에 제공된 지침을 검토하세요.Review the instructions given in Lesson 2 in Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases .

  • SQL Server 자격 증명이 올바르게 만들어지지 않았습니다. SQL Server credential has not been not created correctly.
    해결 방법: Identity 필드에서 '공유 액세스 서명'을 사용하고 암호를 올바르게 만들었는지 확인합니다.Resolution: Make sure that you have used 'Shared Access Signature' for the Identity field and created a secret correctly. 자습서: SQL Server 2016 데이터베이스와 함께 Microsoft Azure Blob Storage 서비스 사용에서 3단원에 제공된 지침을 검토하세요.Review the instructions given in Lesson 3 in Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases.

    임대 BLOB 오류:Lease blob errors:

  • 동일한 BLOB 파일을 사용하는 다른 인스턴스가 충돌한 후 SQL Server를 시작하려고 하면 오류가 발생합니다.Error when trying to start SQL Server after another instance using the same blob files has crashed. 해결 방법: 정상적인 작업 중에 SQL Server는 임시 임대를 사용하여 저장소에 대한 BLOB을 예약하고 45-60초마다 각 BLOB 임대를 갱신합니다.Resolution: During normal operation, SQL Server uses temporary leases to reserve Blobs for storage with a renewal of each Blob lease every 45 to 60 seconds. 서버가 충돌하는 상태에서 동일한 BLOB을 사용하도록 구성된 SQL Server의 다른 인스턴스가 시작될 경우 새 인스턴스는 BLOB의 기존 임대가 만료될 때까지 최대 60초 동안 기다립니다.If a server crashes and another instance of SQL Server configured to use the same blobs is started, the new instance will wait up to 60 seconds for the existing lease on the Blob to expire. 데이터베이스를 다른 인스턴스에 첨부하고 60초 내에 임대가 만료되도록 기다릴 수 없는 경우 BLOB에서 임대를 명시적으로 해제하여 첨부 작업의 오류를 방지할 수 있습니다.If you want to attach the database to another instance and you cannot wait for the lease to expire within 60 seconds, you can explicitly break the lease on the Blob to avoid any failures in attach operations.

    데이터베이스 오류Database errors

  1. 데이터베이스를 만들 때 발생하는 오류 Errors when creating a database
    해결 방법: 자습서: SQL Server 2016 데이터베이스와 함께 Microsoft Azure Blob Storage 서비스 사용에서 4단원에 제공된 지침을 검토하세요.Resolution: Review the instructions given in Lesson 4 in Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases.

  2. Alter 문을 실행할 때 발생하는 오류 Errors when running the Alter statement
    해결 방법: 데이터베이스가 온라인 상태일 때 Alter Database 문을 실행해야 합니다.Resolution: Make sure to execute the Alter Database statement when the database is online. 데이터 파일을 Azure Storage에 복사할 경우 항상 블록 BLOB이 아닌 페이지 BLOB을 만듭니다.When copying the data files to Azure Storage, always create a page blob not a block blob. 그렇지 않으면 ALTER Database 문이 실패합니다.Otherwise, ALTER Database will fail. 자습서: SQL Server 2016 데이터베이스와 함께 Microsoft Azure Blob Storage 서비스 사용에서 7단원에 제공된 지침을 검토하세요.Review the instructions given in Lesson 7 in Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases.

  3. 오류 코드 5120 물리적 파일 "%.\ls"을(를) 열 수 없습니다. 운영 체제 오류 %d: "%ls"* Error code 5120 Unable to open the physical file "%.\ls". Operating system error %d: "%ls"*
    해결 방법: 현재 이 새로운 향상된 기능을 사용하여 여러 SQL Server 인스턴스에서 Azure Storage의 동일한 데이터베이스 파일에 동시에 액세스할 수 없습니다.Resolution: Currently, this new enhancement does not support more than one SQL Server instance accessing the same database files in Azure Storage at the same time. 활성 데이터베이스 파일이 있는 서버 A가 온라인 상태인 동안 동일한 데이터 파일을 가리키는 데이터베이스를 포함하는 서버 B를 실수로 시작한 경우, 두 번째 서버에서는 데이터베이스가 시작되지 않고 오류 코드 5120 물리적 파일 "%.\ls"를 열 수 없습니다. 운영 체제 오류 %d: "%ls".If ServerA is online with an active database file and if ServerB is accidently started, and it also has a database which points to the same data file, the second server will fail to start the database with an error *code 5120 Unable to open the physical file "%.\ls". Operating system error %d: "%ls"*.

    이 문제를 해결하려면 먼저 Azure Storage의 데이터베이스 파일에 액세스하려면 서버 A가 필요한지 여부를 확인해야 합니다.To resolve this issue, first determine if you need ServerA to access the database file in Azure Storage or not. 서버 A가 필요하지 않은 경우 서버 A와 Azure Storage에 있는 데이터베이스 파일 사이의 연결을 제거하면 됩니다.If not, simply remove any connection between ServerA and the database files in Azure Storage. 이렇게 하려면 다음 단계를 수행합니다.To do this, follow these steps:

    1. ALTER Database 문을 사용하여 서버 A의 파일 경로를 로컬 폴더로 설정합니다.Set the file path of Server A to a local folder by using the ALTER Database statement.

    2. 서버 A에서 데이터베이스를 오프라인으로 설정합니다.Set the database offline in Server A.

    3. 그런 다음 데이터베이스 파일을 Azure Storage에서 서버 A의 로컬 폴더로 복사합니다. 그러면 서버 A에 데이터베이스의 로컬 복사본이 여전히 있습니다.Then, copy database files from Azure Storage to the local folder in Server A. This ensures that ServerA still has a copy of the database locally.

    4. 데이터베이스를 온라인으로 설정합니다.Set the database online.