SQL Server Backup to URLSQL Server Backup to URL

適用対象: yesSQL Server yesAzure SQL Database (Managed Instance のみ) noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure Synapse Analytics (SQL DW) 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 ストレージ サービスのコンテナーを作成するときは、アクセス権を privateに設定することをお勧めします。When creating a container for the Microsoft Azure Blob storage service, we recommend that you set the access to private. アクセス権を private に設定すると、Azure アカウントの認証に必要な情報を指定できるユーザーまたはアカウントだけがアクセスできるようになります。Setting the access to private restricts the access to users or accounts able to provide the necessary information to authenticate to the Azure account.

    重要

    SQL ServerSQL Server では、Azure のアカウント名とアクセス キーの認証または Shared Access Signature とアクセス トークンを SQL ServerSQL Server 資格情報に保存する必要があります。requires that either an Azure account name and access key authentication or a Shared Access Signature and access token be stored in a SQL ServerSQL Server Credential. この情報は、バックアップ操作または復元操作の実行時に、Azure アカウントに対する認証に使用されます。This information is used to authenticate to the 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

次の 2 つのセクションでは、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 サブスクリプション内に Azure ストレージ アカウントを作成します。Creating an 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 では、Azure ストレージ アカウントの名前とアクセス キー値を使用して認証し、Microsoft Azure Blob Storage サービスに対して BLOB の書き込みと読み取りを実行することも、特定のコンテナーで生成された Shared Access Signature トークンを使用して読み取り/書き込み権限を付与することもできます。can either use the 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 ストレージ アカウントについて」をご覧ください。Shared Access Signature の詳細については、「Shared Access Signature、第 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.

ブロック BLOB とページ BLOB へのバックアップBackup to block blob vs. page blob

Microsoft Azure BLOB ストレージ サービスに格納できる BLOB には、ブロック BLOB とページ BLOB の 2 種類があります。There are two types of blobs that can be stored in the Microsoft Azure Blob storage service: block and page blobs. SQL Server のバックアップでは、使用されている Transact-SQL 構文に応じていずれかの BLOB タイプを使用できます。資格情報内でストレージ キーが使用されている場合は、ページ BLOB が使用されます。Shared Access Signature が使用されている場合は、ブロック BLOB が使用されます。SQL Server backup can use either blob type depending upon the Transact-SQL syntax used: If the storage key is used in the credential, page blob will be used; if the Shared Access Signature is used, block blob will be used.

ブロック BLOB へのバックアップは、SQL Server 2016 またはそれ以降のバージョンでのみ使用できます。Backup to block blob is only available in SQL Server 2016 or later version. SQL Server 2016 またはそれ以降のバージョンを実行している場合は、ページ ブロックではなくブロック BLOB にバックアップすることをお勧めします。We recommend you to backup to block blob instead of page block if you are running SQL Server 2016 or later version. 主な理由は次のとおりです。The main reasons are:

  • BLOB アクセスを承認する方法としては、ストレージ キーよりも Shared Access Signature の方が安全です。Shared Access Signature is a safer way to authorize blob access compared to storage key.
  • 複数のブロック BLOB にバックアップしてバックアップと復元のパフォーマンスを向上させ、より大きなデータベースのバックアップをサポートすることができます。You can backup to multiple block blobs to get better backup and restore performance, and support larger database backup.
  • ブロック BLOBページ BLOB よりも安価です。Block blob is cheaper than page blob.

Blob Storage に大規模なデータベースをバックアップするとき、「マネージド インスタンスの T-SQL の相違点、制限、既知の問題」に記載されている制限事項が当てはまります。Backup of a large database to blob storage is subject to the limitations listed in Managed instance T-SQL differences, limitations, and known issues.

データベースが大きすぎる場合、次のいずれかの方法を実行します。If the database is too large, either:

  • バックアップの圧縮の使用またはUse backup compression or
  • 複数のブロック BLOB へのバックアップBackup to multiple block blobs

Microsoft Azure BLOB ストレージ サービスMicrosoft Azure Blob storage service

ストレージ アカウント: ストレージ アカウントは、すべてのストレージ サービスの開始点となります。Storage Account: The storage account is the starting point for all storage services. Microsoft Azure Blob Storage サービスにアクセスするには、まず Azure ストレージ アカウントを作成します。To access the Microsoft Azure Blob storage service, first create an 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. コンテナーで Shared Access Signature トークンを生成し、特定のコンテナーでのみオブジェクトへのアクセス権を付与できます。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 の 2 種類があります。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://<ストレージ アカウント>.blob.core.windows.net/<コンテナー>/<BLOB> という URL 形式を使用してアドレス指定できます。Blobs are addressable using the following URL format: https://<storage account>.blob.core.windows.net/<container>/<blob>. Microsoft Azure BLOB ストレージ サービスの詳細については、「 .NET を使用して Azure Blob Storage を使用する」をご覧ください。For more information about the Microsoft Azure Blob storage service, see How to use the Blob Storage from .NET. ページ BLOB とブロック BLOB の詳細については、「 Understanding Block and Page Blobs」 (ブロック 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. 詳細については、「 Creating a Snapshot of a Blob」 (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 コンポーネントSQL ServerSQL Server Components

URL: 一意なバックアップ ファイルの Uniform Resource Identifier (URI) を示します。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 を指定した場合、BLOB 内の既存のバックアップ ファイルを上書きする "WITH FORMAT" オプションを指定しない限り、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/<コンテナー>/<ファイル名.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 と Shared Access Signature トークンが保存されます。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.

Shared Access Signature の作成方法の例については、このトピックで後述する「 Shared Access Signature の作成 」の例をご覧ください。 SQL ServerSQL Server 資格情報の作成方法については、このトピックで後述する「 Shared Access Signature の作成 」の例をご覧ください。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

  • Premium Storage へのバックアップはサポートされていません。Backup to premium storage is not supported.

  • SQL Server では、ページ BLOB でサポートされる最大バックアップ サイズが 1 TB に制限されます。SQL Server limits the maximum backup size supported using a page blob to 1 TB. ブロック BLOB を使ってサポートされる最大バックアップ サイズは、約 200 GB (50,000 ブロック * 4MB MAXTRANSFERSIZE) に制限されます。The maximum backup size supported using block blobs is limited to approximately 200 GB (50,000 blocks * 4MB MAXTRANSFERSIZE). ブロック BLOB はストライピングが可能であり、相当大きなバックアップ サイズがサポートされます。Block blobs support striping to support substantially larger backup sizes.

  • TSQL、SMO、PowerShell コマンドレット、SQL Server Management Studio のバックアップと復元ウィザードを使用して、BACKUP ステートメントや RESTORE ステートメントを実行できます。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. そのため、sp_dumpdevice または SQL Server Management Studio を使用してバックアップ デバイスとして 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.

  • 1 回のバックアップ操作での複数の BLOB へのバックアップは、ブロック BLOB を使用し、SQL 資格情報のストレージ アカウント キーではなく、Shared Access Signature (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 YY BLOCKSIZE および MAXTRANSFERSIZE は、ブロック BLOB ではサポートされています。BLOCKSIZE and MAXTRANSFERSIZE are supported for block blobs. ページ BLOB ではサポートされていません。They are not supported for page blobs. ブロック BLOB への BACKUP には、SQL Server 資格情報に保存された Shared Access Signature が必要です。BACKUP to a block blob requires a Shared Access Signature saved in a SQL Server credential. ページ BLOB への BACKUP には、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 YY 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 YY 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 YY 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 YY 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 YY 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 YY
LOGLOG YY
TO (URL)TO (URL) YY ディスクまたはテープの場合とは異なり、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 YY
WITH オプション:WITH OPTIONS:
CREDENTIALCREDENTIAL YY WITH CREDENTIAL は、BACKUP TO URL オプションを使用して Microsoft Azure BLOB ストレージ サービスにバックアップするときに、シークレットとしてストレージ アカウント キーを使用して SQL ServerSQL Server 資格情報を定義する場合にのみサポートされます。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 YY
ENCRYPTIONENCRYPTION YY 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 YY
COPY_ONLYCOPY_ONLY YY
COMPRESSION|NO_COMPRESSIONCOMPRESSION|NO_COMPRESSION YY ファイル スナップショット バックアップではサポートされていません。Not supported for file-snapshot backup
DescriptionDESCRIPTION YY
NAMENAME YY
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 YY 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 YY
MEDIANAMEMEDIANAME YY
BLOCKSIZEBLOCKSIZE YY ページ 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 YY
MAXTRANSFERSIZEMAXTRANSFERSIZE YY ページ BLOB ではサポートされていません。Not supported for page blob. ブロック BLOB ではサポートされています。Supported for block blob. 既定値は 1048576 です。Default is 1048576. 指定できる値は、65536 バイト刻みで最大 4 MB までです。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 YY
STOP_ON_ERROR | CONTINUE_AFTER_ERRORSTOP_ON_ERROR | CONTINUE_AFTER_ERROR YY
[統計]STATS YY
REWIND | NOREWINDREWIND | NOREWIND -
UNLOAD | NOUNLOADUNLOAD | NOUNLOAD -
NORECOVERY | STANDBYNORECOVERY | STANDBY YY
NO_TRUNCATENO_TRUNCATE YY

BACKUP の引数の詳細については、「BACKUP (Transact-SQL)」をご覧ください。For more information about backup arguments, see BACKUP (Transact-SQL).

RESTORE の引数のサポートSupport for Restore Arguments

引数Argument サポートされていますSupported 例外Exceptions 説明Comments
DATABASEDATABASE YY
LOGLOG YY
FROM (URL)FROM (URL) YY FROM URL 引数は、バックアップ ファイルの URL パスの指定に使用されます。The FROM URL argument is used to specify the URL path for the backup file.
WITH Options:WITH Options:
CREDENTIALCREDENTIAL YY 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 YY
RECOVERY | NORECOVERY | STANDBYRECOVERY | NORECOVERY | STANDBY YY
LOADHISTORYLOADHISTORY YY
MOVEMOVE YY
[REPLACE]REPLACE YY
RESTARTRESTART YY
RESTRICTED_USERRESTRICTED_USER YY
FILEFILE -
PASSWORDPASSWORD YY
MEDIANAMEMEDIANAME YY
MEDIAPASSWORDMEDIAPASSWORD YY
BLOCKSIZEBLOCKSIZE YY
BUFFERCOUNTBUFFERCOUNT -
MAXTRANSFERSIZEMAXTRANSFERSIZE -
CHECKSUM | NO_CHECKSUMCHECKSUM | NO_CHECKSUM YY
STOP_ON_ERROR | CONTINUE_AFTER_ERRORSTOP_ON_ERROR | CONTINUE_AFTER_ERROR YY
FILESTREAMFILESTREAM YY スナップショット バックアップではサポートされていません。Not supported for snapshot backup
[統計]STATS YY
REWIND | NOREWINDREWIND | NOREWIND -
UNLOAD | NOUNLOADUNLOAD | NOUNLOAD -
KEEP_REPLICATIONKEEP_REPLICATION YY
KEEP_CDCKEEP_CDC YY
ENABLE_BROKER | ERROR_BROKER_CONVERSATIONS | NEW_BROKERENABLE_BROKER | ERROR_BROKER_CONVERSATIONS | NEW_BROKER YY
STOPAT | STOPATMARK | STOPBEFOREMARKSTOPAT | STOPATMARK | STOPBEFOREMARK YY

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.

次の手順では、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 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] オプションを使用して、Windows 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 コンテナー]: バックアップ ファイルを格納する Windows 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 Signature を入力します。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. 新しいコンテナー: Shared Access Signature がない既存のコンテナーを登録するために使用します。New Container: Used to register an existing container that you do not have a shared access signature for. Connect to a Microsoft Azure Subscription」(Microsoft Azure Subscription への接続) を参照してください。See Connect to a Microsoft Azure Subscription.

注意

[追加] は、1 つのメディア セットに対して複数のバックアップ ファイルとストレージ コンテナーをサポートします。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 ストレージに対する認証Create Credential - Authenticate to Azure Storage

メンテナンス プラン ウィザードを使用した SQL Server Backup to URLSQL Server Backup to URL Using Maintenance Plan Wizard

前述のバックアップ タスクと同様に、SQL Server Management Studio のメンテナンス プラン ウィザードでも、バックアップ先として URL も選択できるようになりました。また、SQL 資格情報など、Azure Storage へのバックアップに必要な他のサポート オブジェクトも追加されました。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 Azure storage like the SQL Credential. 詳細については、「 メンテナンス プラン ウィザードの使用 」の「 バックアップ タスクを定義する」を参照してください。It has the same For more information, see the Define Backup Tasks section in Using Maintenance Plan Wizard.

注意

Shared Access トークンを使用して、ストライプ バックアップ セット、 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 ストレージ コンテナーの完全修飾名。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]: 指定したコンテナーの Shared Access Signature を入力します。Shared Access Signature: Used to enter the shared access signature for the designated container.

    3. [追加]: Shared Access Signature がない既存のコンテナーを登録するために使用します。Add: Used to register an existing container that you do not have a shared access signature for. Connect to a Microsoft Azure Subscription」(Microsoft Azure Subscription への接続) を参照してください。See Connect to a Microsoft Azure Subscription.

    4. [OK]: 指定した SQL 資格情報を使用して SQL Server が 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. 復元に使用するファイルを選択して [OK] をクリックします。Select the file you want to use to restore and click OK. これにより、 [バックアップ デバイスの選択] ダイアログ ボックスが再度表示されます。このダイアログ ボックスで [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 の使用方法に関するチュートリアルについては、「チュートリアル:Azure Blob Storage サービスと SQL Server 2016 データベースの使用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

Shared Access Signature の作成Create a Shared Access Signature

次の例では、新しく作成されたコンテナーで SQL ServerSQL Server 資格情報の作成に使用できる Shared Access Signature を作成します。The following example creates Shared Access Signatures that can be used to create a SQL ServerSQL Server Credential on a newly created container. 次のスクリプトは、保存されたアクセス ポリシーに関連付けられた Shared Access Signature を作成します。The script creates a Shared Access Signature that is associated with a Stored Access Policy. 詳細については、「Shared Access Signature、第 1 部:SAS モデルに関するページを参照してください。For more information, see Shared Access Signatures, Part 1: Understanding the SAS Model. スクリプトはまた、SQL Server に対する資格情報を作成するのに必要な T-SQL コマンドも書き込みます。The script also writes the T-SQL command required to create the credential on SQL Server.

注意

この例では、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.1.15063 を使用して検証されます。These scripts were verified using Azure PowerShell 5.1.15063.

保存されたアクセス ポリシーに関連付けられた Shared Access SignatureShared 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   
Connect-AzAccount

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

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

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

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

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

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

# Sets up a Stored Access Policy and a Shared Access Signature for the new container  
$policy = New-AzStorageContainerStoredAccessPolicy -Container $containerName -Policy $policyName -Context $storageContext -ExpiryTime $(Get-Date).ToUniversalTime().AddYears(10) -Permission "rwld"
$sas = New-AzStorageContainerSASToken -Policy $policyName -Context $storageContext -Container $containerName
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 CREDENTIAL コマンドをクエリ ツールにコピーし、SQL Server のインスタンスに接続し、コマンドを実行して Shared Access Signature を持つ資格情報を作成します。After successfully running the script, copy the CREATE CREDENTIAL command to a query tool, connect to an instancance of SQL Server and run the command to create the credential with the Shared Access Signature.

Shared Access Signature の作成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. 次のいずれかの操作を行います。Do one of the following.

  1. Shared Access Signature を使用Using Shared Access Signature

スクリプトを実行して上記の Shared Access Signature を作成した場合は、SQL Server のインスタンスに接続されているクエリ エディターに CREATE CREDENTIAL をコピーして、このコマンドを実行します。If you ran the script to create the Shared Access Signature above, copy the CREATE CREDENTIAL to a query editor connected to your instance of SQL Server and run the command.

次の T-SQL の例では、Shared Access Signature を使用した資格情報を作成します。The following T-SQL is an example that creates the credential to use a 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>';  
  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>';  

データベースの完全バックアップの実行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. 次のいずれかの操作を行います。Do one of the following:

  1. Shared Access Signature を使用した TO URLTo URL using Shared Access Signature
BACKUP DATABASE AdventureWorks2016   
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2016.bak';  
GO   
  1. ストレージ アカウント ID とアクセス キーを使用した TO 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   

STOPAT を使って特定の時点の状態に復元するRestoring to a point-in-time using STOPAT

次の例では、AdventureWorks2016 サンプル データベースを特定の時点の状態に復元し、復元操作を示します。The following example restores the AdventureWorks2016 sample database to its state at a point in time, and shows a restore operation.

  1. Shared Access Signature を使用した FROM 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

SQL Server Backup to URL に関するベスト プラクティスとトラブルシューティング SQL Server Backup to URL Best Practices and Troubleshooting
システム データベースのバックアップと復元 (SQL Server) Back Up and Restore of System Databases (SQL Server)
チュートリアル:Azure Blob Storage サービスと SQL Server 2016 データベースの使用Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases