SQL Server 2012 Expressのインスタンスが何らかの理由で破損しました。
私はそれが何らかの形でEntity Frameworkの使用に関連していたと思いますが、まだ証拠はありません。
repairインスタンスを作成しようとすると、修復プロセスがSqlEngineConfigAction_repair_validation_Cpu64ステップでスタックしたように見えました。
CPUの使用率が目立たず、長い間そのステップにあったため、最終的に修復プロセスをキャンセルしました。
removeインスタンスを試行すると、SqlEngineConfigAction_remove_validation_Cpu64ステップでアンインストールプロセスがハングしたように見えました。
install 2番目のインスタンスを試行すると、インストールプロセスがSqlEngineDBStartConfigAction_install_configrc_Cpu64ステップでハングしたように見えました。
一部の試行では、SQL Serverサービスは事前に手動で停止されていません。その他の試みでは、サービスは手動で停止され、「自動」から「手動」に変更されました。
これが役立つ場合のデータベース破損の症状:
「SQL Server(SQLEXPRESS)」サービスのステータスはシステムの再起動時に「開始済み」ですが、再起動オプションを使用してサービスを手動で再起動すると、「開始中」の状態のままになります。
サービスを手動で停止してから開始すると、次のエラーが表示されます。
Windowsは、ローカルコンピューターでSQL Server(SQLEXPRESS)サービスを開始できませんでした。エラー1053:サービスは開始または制御要求にタイムリーに応答しませんでした。
SSMS(SQL Server Management Studio)がインスタンスへの接続に失敗します。タイムアウトやエラーを表示せずに永久に試行するか、次のエラーを表示します。
サーバーとの接続は正常に確立されましたが、ログイン前のハンドシェイク中にエラーが発生しました。 (プロバイダー:SSLプロバイダー、エラー:0-待機操作がタイムアウトしました。)(Microsoft SQL Server、エラー:258)
編集:私は、これが質問の形で述べられなかったので、反対投票があったと思います。明確にするために、問題は修復、削除、またはインストールプロセスがハングする問題を解決する方法ですか?
EDIT2:フォローアップとして、SQL Server Expressがその時点でアクティブに使用されていなくても、最初にSQL Serverサービスを明示的に停止せずにWindows 7 PCをシャットダウンしたことが破損の根本原因であることがわかりました。
EDIT3:SQL Server 2014 Expressで問題が解決されたようです。
ここに私のために働いたものがあります。
ソリューション1:
-「SQL Server(SQLEXPRESS)」および「SQL Server VSS Writer」サービスを停止し、スタートアップの種類を「手動」に設定します。
-PCを再起動します。
-修復プロセスを実行します。
-スタートアップの種類を「自動」に戻し、サービスを再起動します。
ソリューション2:
-"SQL Server(SQLEXPRESS)"および "SQL Server VSS Writer"サービスを停止し、それらのスタートアップの種類を "Disabled"に設定します。
-PCを再起動します。
-削除プロセスを実行して、SQL Server Expressを完全にアンインストールします(インスタンス+共有コンポーネント)。
-PCを再起動します。
-[オプション] CCleanerなどのお気に入りのレジストリクリーナーを実行します。
-SQL Server Expressをインストールします(目的がアンインストールである場合を除きます)。
注:ソリューション2のシナリオでは、最初のPCの再起動後に修復プロセスを試しましたが、ステップSqlEngineConfigAction_repair_validation_Cpu64でスタックしました。
私の場合、アンインストーラーが_SqlEngineConfigAction_repair_validation_Cpu64
_でスタックする理由は、SQLサーバーのシステムテーブル内の無効なファイルパスでした。
これを修正し、アンインストールを許可すると、これは私にとってはうまくいきました:
1)ローカルアカウントを使用するようにサービスを設定します([スタート]-> [ローカルサービス]-> [SQL-Server]-> [プロパティ]-> [ログオン]-> [ローカルシステムアカウント])
2)ここの手順に従います: https://social.technet.Microsoft.com/wiki/contents/articles/31786.sql-server-not-starting-after-fresh-installation.aspx
3)アンインストールを再試行します。
上記のリンクが利用できなくなった場合の簡単な要約を以下に示します。
NET START MSSQL$SQLEXPRESS /f /T3608
_SQLCMD -S .\SQLEXPRESS
_SELECT name, physical_name, state_desc FROM sys.master_files ORDER BY database_id;
_(go)ALTER DATABASE model MODIFY FILE ( NAME = modeldev, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.SQLEXPRESS01\MSSQL\DATA\model.mdf');
(go)ファイルの名前と拡張子は異なります(.mdf、.ldf)。NET STOP MSSQL$SQLEXPRESS
_SQL Serverの2つのバージョンをインストールしました。アンインストールした後、SqlEngineConfigAction_remove_validation_Cpu64でフリーズしました。私にとってうまくいった解決策は、メディアからアンインストールを実行することでした。 1つのバージョンをアンインストールした後、アンインストールファイルがめちゃくちゃになったと思います。したがって、コントロールパネルからのその他のアンインストールでは、frozeを削除して追加します。そうSQLServer isoをマウントし、そこから実行します
setup.exe /Action=Uninstall
追加/削除プログラムからSQL Serverの他のすべてのエントリをアンインストールすることを忘れないでください(もちろん、問題を引き起こしているエントリ、つまりMicrosoft SQL Server 2008 R2(64ビット)を除きます)。
ご参考までに:
カスタムインストールで、SQL Serverデータベースエンジンのアカウント名を「NT AUTHORITY\SYSTEM」に変更すると、SQL Server Express 2017のこのインストールの問題が修正されました。
詳細: http://woshub.com/sql-server-database-engine-startup-handle/
これ TechNetからのアドバイス は私のために働きました:
次のレジストリキーを1 [...]に設定する必要があります:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\AppCompat\sbEnable = 1
私の場合、そのレジストリディレクトリはまったく存在しませんでした。そして、アンインストールはその場所で数分(10分未満)止まりました。しかし、最終的には継続して終了しました。