この記事は、Windows を実行している Microsoft Azure 仮想マシン (VM) に SQL Server インスタンスを手動でインストールしようとしたときに発生する問題を解決するのに役立ちます。
適用対象: SQL Server、Azure VM 上の SQL Server - Windows
現象
Windows を実行している Azure 仮想マシン (VM) に SQL Server インスタンスをインストールしようとすると、インストールが失敗し、インストール中にエンジンが起動しようとしたときに、SQL Server エラー ログに次のエラー メッセージが表示されます。
ファイル '...\master.mdf' は、もともとセクター サイズ 4096 でフォーマットされており、セクター サイズが 8192 のボリューム上にあるため、使用できません。 元のセクター サイズ以下のセクター サイズのボリュームにファイルを移動してください。
さらに、SQL Server セットアップ フォルダーの Summary.txt ログ ファイルには、次の情報が表示されます。
Detailed results:
Feature: Database Engine Services
Status: Failed
Reason for failure: An error occurred during the setup process of the feature.
Next Step: Use the following information to resolve the error, uninstall this feature, and then run the setup process again.
Component name: SQL Server Database Engine Services Instance Features
Component error code: 0x851A0019
Error description: Could not find the Database Engine startup handle.
この問題は、オンプレミスのインストールで発生する可能性がありますが、Microsoft Azure 仮想マシン (VM) に SQL Server をインストールするときに発生する可能性が高くなります。
原因
この問題は、特定の Azure 仮想マシン上のディスクのセクター サイズ構成が原因で発生します。 最新の Azure VM 世代 (Da、Ea、Fav6 など) の一部には、NVMe 専用ストレージ インターフェイスがあり、NVMe をサポートする OS イメージが必要です。 ただし、これらの最新の Azure VM 世代では、既定のセクター サイズが 8 KB でデプロイされます。これは現在、SQL Server ではサポートされていません。 現在、SQL Server では、標準のネイティブ sector サイズが 512 バイトおよび 4 KB のディスクがサポート。
注:
不揮発性メモリ Express (NVMe) は、不揮発性メモリ (NVM) を使用して、サーバーとストレージ システム間のデータ転送をより迅速かつ効率的に行う通信プロトコルです。 NVMe を使用すると、最高のスループットと最短の応答時間でデータを転送できます。
8 KB のセクター サイズを使用して Azure 仮想マシンをデプロイし、デプロイ後に SQL Server をインストールしようとすると、インストールが失敗する可能性があります。
注:
このシナリオは、Azure VM に SQL Server を手動でインストールする場合にのみ発生しますが、Azure Marketplace から SQL Server VM をデプロイする場合は発生しません。 Azure Marketplace イメージは、4 KB のセクター サイズを使用するように事前構成されています。
Resolution
この問題を解決するには、Azure VM で 4 KB のセクター サイズを使用するように強制した後、SQL Server を再インストールします。
Azure VM に SQL Server を正常にインストールするには、次の手順に従います。
SQL Server を既にインストールしている場合は、SQL Server をアンインストールします。 それ以外の場合、次のステップに進んでください。
ForcedPhysicalSectorSizeInBytes レジストリ キーを追加します。
管理者特権でのコマンド プロンプトで次のコマンドを実行して、セクター サイズが 4 KB であることを確認します。
fsutil fsinfo sectorinfo <volume pathname>
Azure VM を再起動します。
SQL Server を再インストールします。
次のスクリーンショットは、8 KB のセクター サイズを持つE:
ドライブのfsutil fsinfo sectorinfo
コマンドの出力を示しています。
次のスクリーンショットは、レジストリ キーを更新して 4 KB のセクター サイズを使用した後の、E:
ドライブの fsutil fsinfo sectorinfo
コマンドの出力を示しています。
ForcedPhysicalSectorSizeInBytes
レジストリ キーは OS レベルの設定です。つまり、現在接続されているすべてのドライブと今後アタッチされるドライブは、このレジストリ キーが削除されない限り、4 KB のセクター サイズを使用します。