Windows11にてSQLServerlocaldbインスタンス起動できない事象と解決法
Windows11 で SQL Server localdb のインスタンスが起動できないトラブルに遭遇し、解決策(暫定)が見つかりましたので、ここに記すのみ。
事象
Windows11 を一からクリーンインストールし、SQL Server localdb 2019 も導入し、いざ接続しようとしたら接続できなかった。コマンドで調べてみると、 localdb のインスタンスが起動してない。インスタンス起動のコマンドを発行してもエラーとなる。
SqllocalDB info
<# 結果
Name: MSSQLLocalDB
Version: 15.0.4153.1
Shared name:
Owner:
Auto-create: Yes
State: Stopped
#>
sqllocaldb start MSSQLLocalDB
<# 結果
Start of LocalDB instance "MSSQLLocalDB" failed because of the following error:
LocalDB インスタンスを開始する際にエラーが発生しました: SQL Server プロセスを開始できませんでした。
#>
SqllocalDB delete MSSQLLocalDB
<# 結果
LocalDB instance "MSSQLLocalDB" deleted.
#>
SqllocalDB create MSSQLLocalDB
<# 結果
Creation of LocalDB instance "MSSQLLocalDB" failed because of the following error:
LocalDB インスタンスを開始する際にエラーが発生しました: SQL Server プロセスを開始できませんでした。
#>
原因
ネットで調べてみると、どうやら SQL Server は現在 512 バイトと 4 KB のセクターをサポートしているが、 Windows11 で 一部新しいストレージ デバイスとデバイスドライバーが 4KB セクターサイズより大きいため、SQL Server を開始できないようです。
確かに私は最近ハードディスクを SATA SSD から M.2 SSD に交換しました。。。
こりゃ役満ですね (;´∀`)
fsutil fsinfo sectorinfo c:
<# 結果
LogicalBytesPerSector : 512
PhysicalBytesPerSectorForAtomicity : 32768
PhysicalBytesPerSectorForPerformance : 32768
FileSystemEffectivePhysicalBytesPerSectorForAtomicity : 4096
Device Alignment : Aligned (0x000)
Partition alignment on device : Aligned (0x000)
#>
解決策
Microsoft ではこの問題を解決するためにまだ調査中ですが、暫定の回避方法は以下4つあります。
- サポートされるドライブ(4KB以下)に SQL Server に移す
- 代わりに Windows10 をインストールする
- レジストリ キーを追加して Windows10 のようにセクターサイズを 4 KB に似せる
- トレース フラグ 1800 を追加して SQL Server セクターサイズを 4 KB に似せる
1 と 2 の解決方法は論外なので、一番簡単な 4 の方法にしました。
管理者権限で以下の Powershell コマンドを実行する
New-Item -Path 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15E.LOCALDB\MSSQLServer\Parameters' -Force
New-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15E.LOCALDB\MSSQLServer\Parameters' -Name 'SQLArg0' -Value "-T1800" -PropertyType String -Force
sqllocaldb stop MSSQLLocalDB
sqllocaldb start MSSQLLocalDB
<# 結果
LocalDB instance "MSSQLLocalDB" started.
#>
最後に
気分を一新のため、PC の OS を Windows10 から Windows11 にしました。こういう OS 更新は大抵トラブルが付き物なので、OS のアップグレードをせずにクリーンインストールの手法を取りました。これで万事解決かと思いきや、それでもトラブルに巻き込まれました。
参考
-
4 KB を超えるオペレーティング システム のディスク セクター サイズのトラブルシューティング - SQL Server
-
Error starting localDb on Windows 11
Discussion