Microsoft SQL Server

SQL Server セクタ問題

概要

SQL Server は、Windows のセクタサイズによっては動作しない問題があります。
SQL Server でハード ディスク ドライブのセクター サイズのサポート範囲 (microsoft.com)

気付いた経緯

SQL Server 2019 をいつも通りサイレントインストールして、接続しようとしたところ、接続できなかったため、サービスを確認すると、停止していました。開始しようとすると、以下のエラーメッセージが表示されました。

---------------------------
ローカル コンピューター の SQL Server (MSSQLSERVER) サービスを開始できません。
エラー 1067: プロセスを途中で強制終了しました。
---------------------------

サイレントインストールしたため、インストールに失敗したのかもしれないと考え、一度アンインストールして、再インストールしました。ところが、以下のエラーメッセージが表示されました。

------------------------------
次のエラーが発生しました:
データベース エンジンの復旧ハンドルの待機に失敗しました。考えられる原因については、SQL Server エラー ログを参照してください。
------------------------------

ここで、セクタ問題があることに気付いたため、再度アンインストールして、別ドライブにインストールしたところ、無事サービスの起動ができました。

そして、データベースを復元しようとしたところ、以下のエラーメッセージが表示されました。

------------------------------
データベース 'TestDB' の復元に失敗しました。 (Microsoft.SqlServer.Management.RelationalEngineTasks)
System.Data.SqlClient.SqlError: ファイル 'TestDB' を復元できません。このファイルは、最初にセクター サイズ 4096 で書き込まれましたが、'C:\SQLDB\TESTDB.mdf' は現在はセクター サイズ 32768 のデバイスに存在します。 (Microsoft.SqlServer.SmoExtended)
------------------------------

データベースもセクタが関係しているようです。こちらも別ドライブに復元したところ、正常に完了しました。

調査

インストールしようとしたドライブは C ドライでした。このドライブの情報を次のコマンドで確認したところ、セクタサイズは 32768 でした。
fsutil fsinfo ntfsinfo C:

PC は富士通のノートですが、C ドライブの SSD は SAMSUNG MZVLQ256HBJD-00B00 です。

購入した PC のセクタ数は買ってみないと分かりません。非常に厄介な問題です。SQL Server のサポートが 4096 であれば、再フォーマットして、Windows を再インストールするしかないですね。

-Microsoft SQL Server