タイトルの通りの現象に遭遇してしまいました。
Windows10には
ベータ:ワールドワイド言語サポートで Unicode UTF-8を使用
という設定項目があります。
これをオンにすると、SQL Server 2014 Expressがインストールできないという現象を確認しました。
これまでWindows(日本語ロケール)ではShift-JISを標準として使われていましたが、上記の設定をオンにするとUTF-8になるんですね。
まあ、いろいろと問題があったりなかったりしているようですが、SQL Serverのインストールに失敗するとは思いませんでした。
もっとも、SQL Server 2014という、Windows10より前にリリースされたものなので、仕方ないっちゃ仕方ないのかもしれませんけどね。
ちなみにこの「ベータ:ワールドワイド言語サポートで Unicode UTF-8を使用」設定は、以下の場所にあります。
コントロールパネル([Win]+[R]→「control」で開けます)
↓
地域
↓
[管理]タブ
↓
[システムロケールの変更]
設定を変更したら、再起動を求められます。
SQL Serverはインストールに失敗すると、以下の場所にログファイルが作られます。
\Microsoft SQL Server\120\Setup Bootstrap\Log\<日付 時刻>
この中に
Summary__<日付>_<時刻>.txt
というファイルがありますが、最後の方に以下のようなメッセージが出力されています。
Windows10には
ベータ:ワールドワイド言語サポートで Unicode UTF-8を使用
という設定項目があります。
これをオンにすると、SQL Server 2014 Expressがインストールできないという現象を確認しました。
これまでWindows(日本語ロケール)ではShift-JISを標準として使われていましたが、上記の設定をオンにするとUTF-8になるんですね。
まあ、いろいろと問題があったりなかったりしているようですが、SQL Serverのインストールに失敗するとは思いませんでした。
もっとも、SQL Server 2014という、Windows10より前にリリースされたものなので、仕方ないっちゃ仕方ないのかもしれませんけどね。
ちなみにこの「ベータ:ワールドワイド言語サポートで Unicode UTF-8を使用」設定は、以下の場所にあります。
コントロールパネル([Win]+[R]→「control」で開けます)
↓
地域
↓
[管理]タブ
↓
[システムロケールの変更]
この状態でSQL Server 2014 Expressをインストールしようとすると、コケました |
設定を変更したら、再起動を求められます。
SQL Serverはインストールに失敗すると、以下の場所にログファイルが作られます。
この中に
Summary_
というファイルがありますが、最後の方に以下のようなメッセージが出力されています。
Detailed results:
Feature: データベース エンジン サービス
Status: 失敗しました: 詳細についてはログを参照してください
Reason for failure: 機能のセットアップ処理中にエラーが発生しました。
Next Step: 以下の情報を使用してエラーを解決し、この機能をアンインストールしてから、セットアップ処理を再実行してください。
Component name: SQL Server データベース エンジン サービス インスタンス機能
Component error code: 0x851A001A
Error description: データベース エンジンの復旧ハンドルの待機に失敗しました。考えられる原因については、SQL Server エラー ログを参照してください。
Error help link: http://go.microsoft.com/fwlink?LinkId=20476&ProdName=Microsoft+SQL+Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=12.0.6024.0&EvtType=0xD15B4EB2%400x4BDAF9BA%401306%4026&EvtType=0xD15B4EB2%400x4BDAF9BA%401306%4026
Feature: SQL Server レプリケーション
Status: 失敗しました: 詳細についてはログを参照してください
Reason for failure: 機能の依存関係に関するエラーが発生し、機能のセットアップ処理が失敗しました。
Next Step: 以下の情報を使用してエラーを解決し、この機能をアンインストールしてから、セットアップ処理を再実行してください。
Component name: SQL Server データベース エンジン サービス インスタンス機能
Component error code: 0x851A001A
Error description: データベース エンジンの復旧ハンドルの待機に失敗しました。考えられる原因については、SQL Server エラー ログを参照してください。
Error help link: http://go.microsoft.com/fwlink?LinkId=20476&ProdName=Microsoft+SQL+Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=12.0.6024.0&EvtType=0xD15B4EB2%400x4BDAF9BA%401306%4026&EvtType=0xD15B4EB2%400x4BDAF9BA%401306%4026
太字にある通り、エラーログを見ろ、と書いてあります。
同じフォルダに
SQLServer_ERRORLOG_<日付>T<時刻>.txt
なるものが複数出力されていたので、片っ端から見てみました。
その結果、いくつかのtxtファイルの最後の方に、以下のようなメッセージが出力されていました。
Error: 912, Severity: 21, State: 2.
Script level upgrade for database 'master' failed because upgrade step 'msdb110_upgrade.sql' encountered error 200, state 7, severity 25. This is a serious error condition which might interfere with regular operation and the database will be taken offline. If the error happened during upgrade of the 'master' database, it will prevent the entire SQL Server instance from starting. Examine the previous errorlog entries for errors, take the appropriate corrective actions and re-start the database so that the script upgrade steps run to completion.
Error: 3417, Severity: 21, State: 3.
Cannot recover the master database. SQL Server is unable to run. Restore master from a full backup, repair it, or rebuild it. For more information about how to rebuild the master database, see SQL Server Books Online.
ずいぶん長いメッセージですが、どうもmsdb110_upgrade.sqlを実行中にエラー番号200、状態7、重大度(?)25という障害が発生しているようです。
とりあえず、このメッセージから使えそうなキーワードを使って検索してみたら、上記太字にある
'msdb110_upgrade.sql' encountered error 200, state 7, severity 25
でヒット。
このページに辿り着きました。
英語で書かれていますが、そのまんまGoogle翻訳にかけると
私のマシンでオプション「ベータ:世界各国の言語サポートにUnicode UTF-8を使用する」をクリアして再起動すると、データベースエンジンは正常に更新されました。
こんな文章が出てきます。
タイトルにある通り、「ワールドワイド言語サポートでUnicode UTF-8を使用」の設定に辿り着きました。
対象のPCではそもそもこの設定をオンにした覚えはなかったのですが、もともとUS版としてインストールされており、システムロケールが日本語に設定されていました。
何処かでその設定がオンになっていたのかもしれません。
ちなみにSQL Server 2014 ExpressのSP1とSP3の両方で発生しました。
またSQL Server 2017 Expressでは問題なくインストールできました。2016は未確認です。
もしこのようなエラーに遭遇した場合、参考にしてみてください。
もしこのようなエラーに遭遇した場合、参考にしてみてください。
コメント