Windows Azure 内の SQL Server データ ファイルSQL Server Data Files in Windows Azure

Windows Azure 内の SQL Server データ ファイルにより、Windows Azure BLOB として格納された SQL Server データベース ファイルに対するネイティブ サポートが有効になります。SQL Server Data Files in Windows Azure enables native support for SQL Server database files stored as Windows Azure Blobs. この機能を使用すると、内部設置型の環境または Windows Azure 仮想マシンで実行されている SQL Server でデータベースを作成し、Windows Azure BLOB ストレージに専用のデータ保存場所を用意できます。It allows you to create a database in SQL Server running in on-premises or in a virtual machine in Windows Azure with a dedicated storage location for your data in Windows Azure Blob Storage. この機能強化では特に、デタッチとアタッチの操作を使用することにより、コンピューター間でのデータベース移動が容易になります。This enhancement especially simplifies to move databases between machines by using detach and attach operations. また、Windows Azure ストレージを復元元または復元先として使用することで、データベースのバックアップ ファイルに代替の格納場所が提供されます。In addition, it provides an alternative storage location for your database backup files by allowing you to restore from or to Windows 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.

このトピックでは、概念と Windows Azure ストレージ サービスに SQL Server データ ファイルを格納する重要な考慮事項について説明します。This topic introduces concepts and considerations that are central to storing SQL Server data files in Windows Azure Storage Service.

この新しい機能を使用する方法の実際の実地体験を参照してください。チュートリアル。Windows Azure ストレージ サービスでは、SQL Server データ ファイルします。For a practical hands-on experience on how to use this new feature, see Tutorial: SQL Server Data Files in Windows Azure Storage service.

次の図は、この機能強化によって、サーバーの場所に関係なく、SQL Server データベース ファイルを Windows Azure BLOB として Windows Azure ストレージに格納できることを示しています。The following diagram demonstrates that this enhancement enables you to store SQL Server database files as Windows Azure blobs in Windows Azure Storage regardless of where your server resides.

SQL Server の統合が Windows Azure StorageSQL Server Integration with Windows Azure Storage

Windows Azure で SQL Server データ ファイルを使用する利点Benefits of using SQL Server Data Files in Windows Azure

  • 簡単で迅速な移行の利点: この機能を用いると、オンプレミスのコンピューターの間でも、またオンプレミス環境とクラウド環境の間でも、アプリケーションを変更することなくデータベースを 1 つずつ移動するため、移行プロセスが容易になります。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. この新しい機能強化を使用することにより、データをある場所から別の場所に移動する代わりに、多数のデータベースを Windows Azure BLOB として格納しておき、Transact-SQL スクリプトを実行して、ローカル コンピューターまたは仮想マシンにデータベースを作成することができます。By using this new enhancement, instead of moving data from one location to another, you can store many databases as Windows Azure blobs, and then run Transact-SQL scripts to create databases on the local machines or virtual machines.

  • コストと無制限のストレージの利点: この機能を使用すると、内部設置型のコンピューティング リソースを活用しつつ、Windows Azure 内に無制限のオフサイト ストレージを確保できます。Cost and limitless storage benefits: This feature enables you to have limitless off-site storage in Windows Azure while leveraging on-premises compute resources. 格納場所として Windows Azure を使用すると、ハードウェア管理のオーバーヘッドがなく、アプリケーション ロジックに専念することが容易になります。When you use Windows 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.

  • 高可用性とディザスター リカバリーの利点: Windows Azure 機能で SQL Server データ ファイルを使用すると、高可用性とディザスター リカバリーのソリューションを容易に提供できます。High availability and disaster recovery benefits: Using SQL Server Data Files in Windows Azure feature might simplify the high availability and disaster recovery solutions. たとえば、Windows Azure の仮想マシンまたは SQL Server のインスタンスがクラッシュした場合、Windows Azure BLOB へのリンクを再設定するだけで、新しいマシンにデータベースを再作成できます。For example, if a virtual machine in Windows Azure or an instance of SQL Server crashes, you can re-create your databases in a new machine by just re-establishing links to Windows 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 (Transparent Data Encryption: 透過的なデータ暗号化) 証明書を使用して、パブリック クラウドに置くすべてのデータを暗号化できます。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 データベースに保存できます。The TDE keys can be stored in the master database, which is stored locally in your physically secure on-premises machine and backed up locally. これらのローカル キーを使用して、Windows Azure ストレージ上に存在するデータを暗号化することができます。You can use these local keys to encrypt the data, which resides in Windows 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.

概念と要件Concepts and Requirements

Microsoft Azure ストレージの概念Windows Azure Storage Concepts

Microsoft Azure 機能で SQL Server データ ファイルを使用する場合は、Microsoft 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 資格情報を作成する必要があります。これには、コンテナーのポリシーに関する情報と、コンテナーにアクセスするために必要な Shared Access Signature が含まれます。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 のストレージ アカウントは、BLOB にアクセスするための名前空間の最高レベルを表します。In Windows Azure, a storage account represents the highest level of the namespace for accessing Blobs. ストレージ アカウントには、合計サイズが 500 TB までであれば、無制限の数のコンテナーを含めることができます。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. Microsoft Azure ストレージに格納できる BLOB には、ブロック BLOB とページ BLOB の 2 種類があります。There are two types of blobs that can be stored in Windows Azure Storage: block and page blobs. この新しい機能ではページ BLOB が使用されます。ページ BLOB では 1 TB までのサイズがサポートされ、ファイル内のバイト範囲が頻繁に変更される場合はこちらの方が効率的です。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. BLOB には、 http://storageaccount.blob.core.windows.net/<container>/<blob>という URL 形式を使用してアクセスできます。You can access Blobs using the following URL format: http://storageaccount.blob.core.windows.net/<container>/<blob>.

Microsoft Azure の課金に関する注意点Windows Azure Billing Considerations

Microsoft Azure サービスの使用コストを見積もることは、意思決定および計画のプロセスにおいて重要です。Estimating the cost of using Windows Azure Services is an important matter in the decision making and planning process. Microsoft Azure ストレージに SQL Server データ ファイルを格納する場合は、ストレージとトランザクションに関連するコストを支払う必要があります。When storing SQL Server data files in Windows Azure Storage, you need to pay costs associated with storage and transactions. さらに、Microsoft Azure のストレージ機能への SQL Server データ ファイルの格納を実装する場合は、45 ~ 60 秒ごとに BLOB のリースの暗黙的な更新が必要になります。In addition, the implementation of SQL Server Data Files in Windows 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. 予測では、2 個のデータベース ファイル (.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. Microsoft Azure ストレージと Microsoft 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 Windows Azure Storage and Windows Azure Virtual Machines.

SQL サーバーの概念SQL Server Concepts

この新しい機能強化を使用する場合は、次のことを行う必要があります。When using this new enhancement, you are required to do the followings:

  • コンテナーのポリシーを作成し、Shared Access Signature (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.

  • Microsoft Azure ストレージ コンテナー、関連するポリシー名、および SAS キーに関する情報を SQL Server 資格情報ストアに格納する必要があります。You must store the information regarding Windows Azure Storage container, its associated policy name, and SAS key in the SQL Server credential store.

次の例では、Windows Azure ストレージ コンテナーが作成され、読み取り、書き込み、および一覧表示の権限でポリシーが作成されていることを前提としています。The following example assumes that a Windows Azure Storage container has been created, and a policy has been created with read, write, list, rights. コンテナーのポリシーを作成すると、SAS キーが生成されます。SAS キーは暗号化せずに安全にメモリ内に保持でき、SQL Server がコンテナー内の BLOB ファイルにアクセスする際に必要になります。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>'. 詳細については、次を参照してくださいを作成し、Shared Access Signature の使用。For more information, see Create and Use a Shared Access Signature

  
-- 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

Microsoft Azure ストレージに SQL Server データ ファイルを格納する場合のセキュリティに関する考慮事項と要件は次のとおりです。The following are security considerations and requirements when storing SQL Server Data Files in Windows Azure Storage.

  • Microsoft Azure BLOB ストレージ サービスのコンテナーを作成する際は、アクセス権を private に設定することをお勧めします。When creating a container for the Windows Azure Blob storage service, we recommend that you set the access to private. アクセス権を private に設定すると、コンテナーと BLOB データを読み取ることができるのは Microsoft Azure アカウントの所有者だけになります。When you set the access to private, container and blob data can be read by the Windows Azure account owner only.

  • SQL Server データベース ファイルを Microsoft Azure ストレージに格納する際には、Shared Access Signature (コンテナー、BLOB、キュー、およびテーブルへの制限付きアクセス権を付与する URI) を使用する必要があります。When storing SQL Server database files in Windows Azure Storage, you need to use a shared access signature, a URI that grants restricted access rights to containers, blobs, queues, and tables. Shared Access Signature を使用することで、Microsoft Azure ストレージ アカウント キーを共有せずに、SQL Server からストレージ アカウント内のリソースへのアクセスを可能にすることができます。By using a shared access signature, you can enable SQL Server to access resources in your storage account without sharing your Windows Azure storage account key.

  • これに加えて、従来型の内部設置環境でのセキュリティ対策もデータベースに適用することをお勧めします。In addition, we recommend that you continue implementing the traditional on-premises security practices for your databases.

インストールの前提条件Installation Prerequisites

Windows Azuree に SQL Server データ ファイルを格納する場合、次のとおり、インストールの前提条件です。The followings are installation prerequisites when storing SQL Server Data Files in Windows Azuree.

  • SQL Server、オンプレミス。 この機能は、SQL Server 2014 バージョンに含まれています。SQL Server on-premises: SQL Server 2014 version includes this feature. SQL Server 2014 のダウンロード方法については、「 SQL Server 2014」をご覧ください。To learn how to download SQL Server 2014, see SQL Server 2014.

  • Windows Azure 仮想マシンで実行されている SQL Server:Windows Azure 仮想マシンに SQL Server をインストールする場合は、SQL Server 2014 をインストールするか、既存のインスタンスを更新します。SQL Server running in a Windows Azure virtual machine: If you are installing SQL Server on a Windows Azure Virtual Machine, install SQL Server 2014, or update your existing instance. 同様に、SQL Server 2014 CTP2 のプラットフォーム イメージを使用して Microsoft Azure に新しい仮想マシンを作成することもできます。Similarly, you can also create a new virtual machine in Windows Azure using SQL Server 2014 platform image. SQL Server 2014 のダウンロード方法については、「 SQL Server 2014」をご覧ください。To learn how to download SQL Server 2014, see SQL Server 2014.

制限事項Limitations

  • この機能の現在のリリースでは、Windows Azure ストレージに FileStream データを格納することはできません。In the current release of this feature, storing FileStream data in Windows Azure Storage is not supported. Windows Azure ストレージに統合されたローカル データベースに Filestream データを格納することはできますが、Windows Azure ストレージを使用してコンピューター間で Filestream データを移動することはできません。You can store Filestream data in a Windows Azure Storage integrated local database but you cannot move Filestream data between machines using Windows 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.

  • 現在、この新しい機能強化では、Microsoft Azure ストレージ内の同じデータベース ファイルに複数の SQL Server インスタンスで同時にアクセスすることはできません。Currently, this new enhancement does not support more than one SQL Server instance accessing the same database files in Windows Azure Storage at the same time. ServerA がアクティブなデータベース ファイルとオンライン接続されているときに、誤って起動された ServerB に同じデータ ファイルを指すデータベースがある場合、2 番目のサーバーでは、次のエラーでデータベースの起動に失敗します。エラー コード 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".

  • Microsoft Azure 機能で SQL Server データ ファイルを使用して Microsoft Azure ストレージ内に格納できるのは、.mdf、.ldf、.ndf ファイルのみです。Only .mdf, .ldf, and .ndf files can be stored in Windows Azure Storage by using the SQL Server Data Files in Windows Azure feature.

  • Microsoft Azure 機能で SQL Server データ ファイルを使用する場合は、ストレージ アカウントに対する地理的レプリケーションはサポートされません。When using the SQL Server Data Files in Windows Azure feature, geo-replication for your storage account is not supported. ストレージ アカウントで地理的レプリケーションが実行されている場合に、地理的フェールオーバーが発生すると、データの破損が発生する可能性があります。If a storage account is geo-replicated and a geo-failover happened, database corruption could occur.

  • 各 BLOB のサイズは、最大 1 TB にすることができます。Each Blob can be up to maximum 1 TB in size. この値により、Microsoft Azure ストレージに格納できる個々のデータベース データとログ ファイルの上限が決定されます。This creates an upper limit on individual database data and log files that can be stored in Windows Azure Storage.

  • Microsoft Azure ストレージ機能で SQL Server データ ファイルを使用する場合は、インメモリ OLTP データを Microsoft Azure BLOB ストレージ内に格納することはできません。It is not possible to store In-Memory OLTP data in Windows Azure Blob using the SQL Server Data Files in Windows Azure Storage feature. これは、インメモリ OLTP に FileStream に対する依存関係があり、この機能の現在のリリースでは、Windows Azure ストレージに FileStream データを格納することがサポートされていないためです。This is because In-Memory OLTP has a dependency on FileStream and, in the current release of this feature, storing FileStream data in Windows Azure Storage is not supported.

  • Windows Azure 機能で SQL Server データ ファイルを使用する場合は、SQL Server は master データベース内で設定された照合順序を使用して、すべての URL 比較やパス比較を実行します。When using SQL Server Data Files in Windows Azure feature, SQL Server performs all URL or file path comparisons using the Collation set in the master database.

  • AlwaysOn Availability Groupsは、プライマリ データベースに新しいデータベース ファイルを追加しない限りサポートされます。AlwaysOn Availability Groups are supported as long as you do not add new database files to the primary database. データベース操作により、プライマリ データベースに新しいファイルを作成する必要がある場合は、まずセカンダリ ノードで AlwaysOn 可用性グループを無効にします。If a database operation requires a new file to be created in the primary database, first disable AlwaysOn Availability Groups in the secondary node. 次に、プライマリ データベースに対してデータベース操作を実行し、プライマリ ノードでデータベースをバックアップします。Then, perform the database operation on the primary database and backup the database in the primary node. さらに、データベースをセカンダリ ノードに復元し、セカンダリ ノードで AlwaysOn 可用性グループを有効にします。Next, restore the database to the secondary node, and enable AlwaysOn Availability Groups in the secondary node. Windows Azure 機能で SQL Server データ ファイルを使用する場合は、AlwaysOn フェールオーバー クラスター インスタンスはサポートされません。Note that AlwaysOn Failover Cluster Instances is not supported when using the SQL Server Data Files in Windows Azure feature.

  • 通常の運用中、SQL Server では一時リースを使用して BLOB をストレージ用に予約し、各 BLOB リースを 45 ~ 60 秒ごとに更新します。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

ここでは、Microsoft Azure 機能で SQL Server データ ファイルを使用する場合に使用可能なツールとプログラミング リファレンス ライブラリについて説明します。This section describes which tools and programming reference libraries can be used when storing SQL Server data files in Windows Azure Storage.

PowerShell のサポートPowerShell support

SQL Server 2014 では、ファイル パスの代わりに BLOB ストレージの URL パスを参照することにより、PowerShell コマンドレットを使用して、SQL Server データ ファイルを Microsoft Azure BLOB ストレージ サービスに格納できます。In SQL Server 2014, you can use PowerShell cmdlets to store SQL Server data files in Windows Azure Blob Storage service by referencing a Blob Storage URL path instead of a file path. BLOB には、: http://storageaccount.blob.core.windows.net/<container>/<blob> という URL 形式を使用してアクセスできます。You can 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 以降では、Microsoft Azure ストレージ機能内の SQL Server データ ファイルと組み合わせて使用する目的で、1 つの新しい SQL Server オブジェクトが追加されました。Starting with SQL Server 2014, a new SQL Server object has been added to be used with SQL Server Data Files in Windows 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. 詳細については、次を参照してください。チュートリアル。Windows Azure ストレージ サービスでは、SQL Server データ ファイルします。For more information, see Tutorial: SQL Server Data Files in Windows Azure Storage service.

SQL Server 管理オブジェクトのサポートSQL Server Management Objects support

Microsoft Azure 機能で SQL Server データ ファイルを使用する場合は、すべての SQL Server 管理オブジェクト (SMO) がサポートされます。When using the SQL Server Data Files in Windows 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/. SQL Server 管理オブジェクト (SMO) の詳細については、SQL Server オンライン ブックの「SQL Server 管理オブジェクト (SMO) プログラミング ガイド 」をご覧ください。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.

Windows Azure での SQL Server データ ファイルのトラブルシューティングTroubleshooting for SQL Server Data Files in Windows Azure

サポートされていない機能または制限事項によるエラーを回避するために、まず「 Limitations」をご確認ください。To avoid errors due to unsupported features or limitations, first review Limitations.

Microsoft Azure ストレージ機能で SQL Server データ ファイルを使用する場合に発生する可能性のあるエラーの一覧は、次のとおりです。The list of errors that you might get when using the SQL Server Data Files in Windows Azure Storage feature are as follows.

認証エラーAuthentication errors

  • 資格情報 '%.*ls' を削除できません。この資格情報は、アクティブなデータベース ファイルで使用されています。 Cannot drop the credential '%.*ls' because it is used by an active database file.
    解決方法:Windows Azure ストレージにあるアクティブなデータベース ファイルで使用中の資格情報を削除しようとすると、このエラーが発生することがあります。Resolution: You may see this error when you try to drop a credential that is still being used by an active database file in Windows 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 が正しく作成されていません。 Shared Access Signature has not been created on the container correctly.
    解決方法:コンテナーに対して Shared Access Signature が正しく作成されていることを確認します。Resolution: Make sure that you have created a Shared Access Signature on the container correctly. レッスン 2 に記載されている手順を確認してチュートリアル。Windows Azure ストレージ サービスでは、SQL Server データ ファイルします。Review the instructions given in Lesson 2 in Tutorial: SQL Server Data Files in Windows Azure Storage service.

  • SQL Server 資格情報が正しく作成されていません。 SQL Server credential has not been not created correctly.
    解決方法:' Shared Access Signature' を使用しているかどうかを確認、 Identityフィールドし、シークレットを正しく作成します。Resolution: Make sure that you have used 'Shared Access Signature' for the Identity field and created a secret correctly. レッスン 3 で説明されている手順を確認してチュートリアル。Windows Azure ストレージ サービスでは、SQL Server データ ファイルします。Review the instructions given in Lesson 3 in Tutorial: SQL Server Data Files in Windows Azure Storage service.

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 をストレージ用に予約し、各 BLOB リースを 45 ~ 60 秒ごとに更新します。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
    解決方法:レッスン 4 に記載されている手順を確認してチュートリアル。Windows Azure ストレージ サービスでは、SQL Server データ ファイルします。Resolution: Review the instructions given in Lesson 4 in Tutorial: SQL Server Data Files in Windows Azure Storage service.

  2. ALTER ステートメントの実行中にエラーが発生しました Errors when running the Alter statement
    解決方法:ALTER DATABASE ステートメントは、必ずデータベースがオンライン状態のときに実行してください。Resolution: Make sure to execute the Alter Database statement when the database is online. データ ファイルを Microsoft Azure ストレージにコピーするときは常に、ブロック BLOB ではなくページ BLOB を作成します。When copying the data files to Windows Azure Storage, always create a page blob not a block blob. そうしないと、ALTER DATABASE は失敗します。Otherwise, ALTER Database will fail. レッスン 7 で記載されている手順を確認してチュートリアル。Windows Azure ストレージ サービスでは、SQL Server データ ファイルします。Review the instructions given in Lesson 7 in Tutorial: SQL Server Data Files in Windows Azure Storage service.

  3. エラー コード 5120 物理ファイル "%.*ls" を開けません。オペレーティング システム エラー %d: "%ls" Error code 5120 Unable to open the physical file "%.*ls". Operating system error %d: "%ls"
    解決方法:現在、この新しい機能強化では、Microsoft Azure ストレージ内の同じデータベース ファイルに複数の SQL Server インスタンスで同時にアクセスすることはできません。Resolution: Currently, this new enhancement does not support more than one SQL Server instance accessing the same database files in Windows Azure Storage at the same time. ServerA がアクティブなデータベース ファイルとオンライン接続されているときに、誤って起動された ServerB に同じデータ ファイルを指すデータベースがある場合、2 番目のサーバーでは、次のエラーでデータベースの起動に失敗します。エラー コード 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".

    この問題を解決するには、まず、Microsoft Azure ストレージ内のデータベース ファイルに ServerA からアクセスする必要があるかどうかを決定します。To resolve this issue, first determine if you need ServerA to access the database file in Windows Azure Storage or not. 必要ない場合は、Microsoft Azure ストレージ内のデータベース ファイルと ServerA との間の接続を削除します。If not, simply remove any connection between ServerA and the database files in Windows Azure Storage. これを行うには、次の手順を実行します。To do this, follow these steps:

    1. ALTER DATABASE ステートメントを使用して、ServerA のファイル パスをローカル フォルダーに設定します。Set the file path of Server A to a local folder by using the ALTER Database statement.

    2. ServerA でデータベースをオフラインに設定します。Set the database offline in Server A.

    3. 次に、Microsoft Azure ストレージから ServerA のローカル フォルダーにデータベース ファイルをコピーします。これにより、ServerA でデータベースのローカル コピーを確保できます。Then, copy database files from Windows 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.

参照See Also

チュートリアル:Windows Azure ストレージ サービスでは、SQL Server データ ファイルTutorial: SQL Server Data Files in Windows Azure Storage service