Azure VM の SQL Server への SQL Server データベースの移行Migrate a SQL Server database to SQL Server in an Azure VM

オンプレミスの SQL Server ユーザー データベースを Azure VM の SQL Server に移行する方法は多数あります。There are a number of methods to migrate an on-premises SQL Server user database to SQL Server in an Azure VM. この記事では、さまざまな方法について簡単に説明し、さまざまなシナリオに最適な方法を紹介します。This article will briefly discuss various methods and recommend the best method for various scenarios.

注意

Azure には、リソースの作成と操作に関して、2 種類のデプロイ モデルがあります。Resource Manager とクラシックです。Azure has two different deployment models for creating and working with resources: Resource Manager and classic. この記事では、両方のモデルについて取り上げていますが、最新のデプロイではリソース マネージャー モデルの使用をお勧めします。This article covers using both models, but Microsoft recommends that most new deployments use the Resource Manager model.

注意

SQL Server 2008 および SQL Server 2008 R2 のオンプレミス インスタンス向けサポート ライフ サイクルの終了が近づいています。SQL Server 2008 and SQL Server 2008 R2 are approaching the end of their support life cycle for on-premises instances. サポートを延長するには、SQL Server インスタンスを Azure VM に移行することも、セキュリティ更新プログラムの延長を購入してオンプレミスを維持することもできます。To extend support, you can either migrate your SQL Server instance to an Azure VM, or buy Extended Security Updates to keep it on-premises. 詳細については、「Extend support for SQL Server 2008 and 2008 R2 with Azure (Azure での SQL Server 2008 および 2008 R2 のサポート延長)」を参照してくださいFor more information, see Extend support for SQL Server 2008 and 2008 R2 with Azure

主な移行方法What are the primary migration methods?

主な移行方法は次のとおりです。The primary migration methods are:

  • 圧縮機能を使用してオンプレミスのバックアップの実行し、そのバックアップ ファイルを Azure 仮想マシンに手動でコピーするPerform on-premises backup using compression and manually copy the backup file into the Azure virtual machine
  • URL へのバックアップを実行し、その URL から Azure 仮想マシンに復元するPerform a backup to URL and restore into the Azure virtual machine from the URL
  • データとログ ファイルをデタッチしてから、Azure BLOB ストレージにコピーし、その後、URL から Azure VM の SQL Server にアタッチするDetach and then copy the data and log files to Azure blob storage and then attach to SQL Server in Azure VM from URL
  • オンプレミスの物理マシンを HYPER-V VHD に変換して Azure BLOB ストレージにアップロードし、アップロードしたその VHD を使用して、新しい VM としてデプロイするConvert on-premises physical machine to Hyper-V VHD, upload to Azure Blob storage, and then deploy as new VM using uploaded VHD
  • Windows の Import/Export サービスを使用して、ハード ドライブを発送するShip hard drive using Windows Import/Export Service
  • オンプレミスの AlwaysOn 可用性グループのデプロイがある場合は、 Azure のレプリカ追加ウィザード を使用して Azure でレプリカを作成した後、フェールオーバーして、ユーザーに Azure データベース インスタンスを参照させるIf you have an AlwaysOn Availability Group deployment on-premises, use the Add Azure Replica Wizard to create a replica in Azure and then failover, pointing users to the Azure database instance
  • SQL Server の トランザクション レプリケーション を使用して Azure SQL Server インスタンスをサブスクライバーとして構成した後、レプリケーションを無効にして、ユーザーに Azure データベース インスタンスを参照させるUse SQL Server transactional replication to configure the Azure SQL Server instance as a subscriber and then disable replication, pointing users to the Azure database instance

ヒント

これらの同じ手法を使用して、Azure の SQL Server VM 間でデータベースを移動することもできます。You can also use these same techniques to move databases between SQL Server VMs in Azure. たとえば、ギャラリー イメージの SQL Server VM を別のバージョン/エディションにアップグレードする方法はサポートされていません。For example, there is no supported way to upgrade a SQL Server gallery-image VM from one version/edition to another. この場合、新しいバージョン/エディションの新しい SQL Server VM を作成し、この記事で説明する移行手法のいずれかを使用してデータベースを移動する必要があります。In this case, you should create a new SQL Server VM with the new version/edition, and then use one of the migration techniques in this article to move your databases.

移行方法の選択Choosing your migration method

最適なデータ転送パフォーマンスを実現するには、圧縮されたバックアップ ファイルを使用して、データベース ファイルを Azure VM に移行します。For optimum data transfer performance, migrate the database files into the Azure VM using a compressed backup file.

データベース移行プロセス中のダウンタイムを最小限に抑えるには、AlwaysOn の方法またはトランザクション レプリケーションの方法を使います。To minimize downtime during the database migration process, use either the AlwaysOn option or the transactional replication option.

上記の方法を使用できない場合は、手動でデータベースを移行します。If it is not possible to use the above methods, manually migrate your database. この方法では、一般に、まずデータベースをバックアップし、データベースのバックアップを Azure にコピーした後に、データベースの復元を実行します。Using this method, you will generally start with a database backup followed by a copy of the database backup into Azure and then perform a database restore. データベース ファイル自体を Azure にコピーしてからアタッチしてもかまいません。You can also copy the database files themselves into Azure and then attach them. この手動による Azure VM へのデータベースの移行プロセスは、複数の方法で実行できます。There are several methods by which you can accomplish this manual process of migrating a database into an Azure VM.

注意

以前のバージョンの SQL Server から SQL Server 2014 または SQL Server 2016 にアップグレードする場合は、変更が必要かどうかを検討する必要があります。When you upgrade to SQL Server 2014 or SQL Server 2016 from older versions of SQL Server, you should consider whether changes are needed. 移行プロジェクトの一環として、新しいバージョンの SQL Server でサポートされない機能への依存関係すべてを解決することをお勧めします。We recommend that you address all dependencies on features not supported by the new version of SQL Server as part of your migration project. サポートされるエディションとシナリオの詳細については、 SQL Server へのアップグレードに関するページを参照してください。For more information on the supported editions and scenarios, see Upgrade to SQL Server.

次の表に、主な移行方法の一覧を示します。ここでは、それぞれの方法を使用するタイミングとして最適な状況についても説明します。The following table lists each of the primary migration methods and discusses when the use of each method is most appropriate.

MethodMethod 移行元データベースのバージョンSource database version 移行先データベースのバージョンDestination database version 移行元データベースのバックアップ サイズ制限Source database backup size constraint メモNotes
圧縮機能を使用してオンプレミスのバックアップの実行し、そのバックアップ ファイルを Azure 仮想マシンに手動でコピーするPerform on-premises backup using compression and manually copy the backup file into the Azure virtual machine SQL Server 2005 以降SQL Server 2005 or greater SQL Server 2005 以降SQL Server 2005 or greater Azure VM ストレージの制限Azure VM storage limit これは、マシン間でデータベースを移動する際の、十分にテストされた非常にシンプルな手法です。This is a very simple and well-tested technique for moving databases across machines.
URL へのバックアップを実行し、その URL から Azure 仮想マシンに復元するPerform a backup to URL and restore into the Azure virtual machine from the URL SQL Server 2012 SP1 CU2 以上SQL Server 2012 SP1 CU2 or greater SQL Server 2012 SP1 CU2 以上SQL Server 2012 SP1 CU2 or greater SQL Server 2016 の場合は 12.8 TBまで、それ以外の場合は 1 TB まで< 12.8 TB for SQL Server 2016, otherwise < 1 TB これは、Azure Storage を使用してバックアップ ファイルを VM に移動するもう 1 つの方法です。This method is just another way to move the backup file to the VM using Azure storage.
データとログ ファイルをデタッチしてから、Azure BLOB ストレージにコピーし、その後、URL から Azure 仮想マシンの SQL Server にアタッチするDetach and then copy the data and log files to Azure blob storage and then attach to SQL Server in Azure virtual machine from URL SQL Server 2005 以降SQL Server 2005 or greater SQL Server 2014 以降SQL Server 2014 or greater Azure VM ストレージの制限Azure VM storage limit この方法は、特にデータベースのサイズが非常に大きい場合に、 Azure BLOB ストレージ サービスを使用してこれらのファイルを格納 し、Azure VM で実行されている SQL Server にファイルをアタッチするときに使用します。Use this method when you plan to store these files using the Azure Blob storage service and attach them to SQL Server running in an Azure VM, particularly with very large databases
オンプレミスのマシンを HYPER-V VHD に変換して Azure BLOB ストレージにアップロードし、アップロードしたその VHD を使用して、新しい仮想マシンをデプロイするConvert on-premises machine to Hyper-V VHDs, upload to Azure Blob storage, and then deploy a new virtual machine using uploaded VHD SQL Server 2005 以降SQL Server 2005 or greater SQL Server 2005 以降SQL Server 2005 or greater Azure VM ストレージの制限Azure VM storage limit ご自身の SQL Server ライセンスを使用する場合、古いバージョンの SQL Server で実行するデータベースを移行する場合、または他のユーザー データベースやシステム データベースに応じて、データベースの移行の一環として、データベース システムとユーザー データベースを一緒に移行する場合に使用します。Use when bringing your own SQL Server license, when migrating a database that you will run on an older version of SQL Server, or when migrating system and user databases together as part of the migration of database dependent on other user databases and/or system databases.
Windows の Import/Export サービスを使用して、ハード ドライブを発送するShip hard drive using Windows Import/Export Service SQL Server 2005 以降SQL Server 2005 or greater SQL Server 2005 以降SQL Server 2005 or greater Azure VM ストレージの制限Azure VM storage limit Windows の Import/Export サービス は、データベースのサイズが非常に大きい場合など、手動でのコピーが遅すぎるときに使用します。Use the Windows Import/Export Service when manual copy method is too slow, such as with very large databases
Azure レプリカの追加ウィザードを使用するUse the Add Azure Replica Wizard SQL Server 2012 以降SQL Server 2012 or greater SQL Server 2012 以降SQL Server 2012 or greater Azure VM ストレージの制限Azure VM storage limit ダウンタイムが最小限になります。AlwaysOn のオンプレミスのデプロイがあるときに使います。Minimizes downtime, use when you have an Always On on-premises deployment
SQL Server のトランザクション レプリケーションを使用するUse SQL Server transactional replication SQL Server 2005 以降SQL Server 2005 or greater SQL Server 2005 以降SQL Server 2005 or greater Azure VM ストレージの制限Azure VM storage limit ダウンタイムを最小限にする必要があり、AlwaysOn のオンプレミスのデプロイがないときに使います。Use when you need to minimize downtime and do not have an Always On on-premises deployment

バックアップと復元Backup and restore

圧縮機能を使用してデータベースをバックアップし、バックアップを VM にコピーした後、データベースを復元します。Back up your database with compression, copy the backup to the VM, and then restore the database. VM ディスクの最大サイズは 1 TB であるため、バックアップ ファイルが 1 TB を超える場合、そのファイルはストライプする必要があります。If your backup file is larger than 1 TB, you must stripe it because the maximum size of a VM disk is 1 TB. この手動による方法を使用してユーザー データベースを移行するには、次の一般的な手順を実行します。Use the following general steps to migrate a user database using this manual method:

  1. オンプレミスの場所へのデータベースの完全バックアップを実行します。Perform a full database backup to an on-premises location.
  2. 必要な SQL Server バージョンを使用して、仮想マシンを作成またはアップロードします。Create or upload a virtual machine with the version of SQL Server desired.
  3. 要件に基づいて接続をセットアップします。Setup connectivity based on your requirements. Connect to a SQL Server Virtual Machine on Azure (Resource Manager) (Azure での SQL Server 仮想マシンへの接続 (Resource Manager))」をご覧ください。See Connect to a SQL Server Virtual Machine on Azure (Resource Manager).
  4. リモート デスクトップ、Windows エクスプローラー、またはコマンド プロンプトのコピー コマンドを使用して、バックアップ ファイルを VM にコピーします。Copy your backup file(s) to your VM using remote desktop, Windows Explorer or the copy command from a command prompt.

URL へのバックアップと復元Backup to URL and restore

ローカル ファイルにバックアップするのではなく、Backup To URL を使用し、URL から VM に復元できます。Instead of backing up to a local file, you can use the backup to URL and then restore from URL to the VM. SQL Server 2016 では、ストライプ バックアップ セットがサポートされています。このバックアップ セットは、パフォーマンスを確保するために使用することが推奨されます。また、BLOB ごとのサイズ制限を超える場合は必須です。With SQL Server 2016, striped backup sets are supported, are recommended for performance, and required to exceed the size limits per blob. データベースのサイズが非常に大きい場合は、Windows の Import/Export サービスをお勧めします。For very large databases, the use of the Windows Import/Export Service is recommended.

デタッチして URL からアタッチDetach and attach from URL

データベースとログ ファイルをデタッチし、Azure Blob Storage に転送します。Detach your database and log files and transfer them to Azure Blob storage. その後、Azure VM で URL からデータベースをアタッチします。Then attach the database from the URL on your Azure VM. この方法は、物理データベース ファイルを Blob Storage に格納する場合に使用します。Use this if you want the physical database files to reside in Blob storage. これは、非常に大規模なデータベースで役立ちます。This might be useful for very large databases. この手動による方法を使用してユーザー データベースを移行するには、次の一般的な手順を実行します。Use the following general steps to migrate a user database using this manual method:

  1. オンプレミスのデータベース インスタンスからデータベース ファイルをデタッチします。Detach the database files from the on-premises database instance.
  2. デタッチされたデータベース ファイルを、 AZCopy コマンド ライン ユーティリティを使用して Azure BLOB ストレージにコピーします。Copy the detached database files into Azure blob storage using the AZCopy command-line utility.
  3. データベース ファイルを、Azure URL から Azure VM の SQL Server のインスタンスにアタッチします。Attach the database files from the Azure URL to the SQL Server instance in the Azure VM.

VM に変換して URL にアップロードし、新しい VM としてデプロイConvert to VM and upload to URL and deploy as new VM

この方法は、オンプレミスの SQL Server インスタンスのすべてのシステムとユーザー データベースを、Azure 仮想マシンに移行するときに使用します。Use this method to migrate all system and user databases in an on-premises SQL Server instance to Azure virtual machine. この手動による方法を使用して SQL Server インスタンス全体を移行するには、次の一般的な手順を実行します。Use the following general steps to migrate an entire SQL Server instance using this manual method:

  1. 物理マシンまたは仮想マシンを Hyper-V VHD に変換します。Convert physical or virtual machines to Hyper-V VHDs.
  2. Add-AzureVHD コマンドレットを使用して、VHD ファイルを Azure Storage にアップロードします。Upload VHD files to Azure Storage by using the Add-AzureVHD cmdlet.
  3. アップロードした VHD を使用して、新しい仮想マシンをデプロイします。Deploy a new virtual machine by using the uploaded VHD.

注意

アプリケーション全体を移行するには、 Azure Site Recoveryを使用することを検討します。To migrate an entire application, consider using Azure Site Recovery].

ハード ドライブの発送Ship hard drive

ネットワーク経由のアップロードが実現不可能であるか、非常にコストがかかる場合には、Windows の Import/Export サービス方法を使用して、ファイルの大量のデータを Azure BLOB ストレージに転送します。Use the Windows Import/Export Service method to transfer large amounts of file data to Azure Blob storage in situations where uploading over the network is prohibitively expensive or not feasible. このサービスでは、そのデータを含む 1 台以上のハード ドライブを Azure データ センターに発送します。このデータ センターでデータがストレージ アカウントにアップロードされます。With this service, you send one or more hard drives containing that data to an Azure data center, where your data will be uploaded to your storage account.

次の手順Next steps

Azure Virtual Machines で SQL Server を実行する方法の詳細については、「 Azure Virtual Machines における SQL Server の概要」を参照してください。For more information about running SQL Server on Azure Virtual Machines, see SQL Server on Azure Virtual Machines overview.

ヒント

SQL Server の仮想マシンに関するご質問については、よくあるご質問に関するページをご覧ください。If you have questions about SQL Server virtual machines, see the Frequently Asked Questions.

Azure SQL Server 仮想マシンをキャプチャ イメージから作成する手順については、CSS SQL Server Engineers のブログ「Tips & Tricks on ‘cloning’ Azure SQL virtual machines from captured images」 (Azure SQL 仮想マシンをキャプチャ イメージから複製するためのヒント) を参照してください。For instructions on creating an Azure SQL Server Virtual Machine from a captured image, see Tips & Tricks on ‘cloning’ Azure SQL virtual machines from captured images on the CSS SQL Server Engineers blog.