web-dev-qa-db-ja.com

SQL Server 2012 Expressの修復/削除/インストールプロセスが停止またはハングする

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で問題が解決されたようです。

9
jk7

ここに私のために働いたものがあります。

ソリューション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でスタックしました。

8
jk7

私の場合、アンインストーラーが_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)アンインストールを再試行します。

上記のリンクが利用できなくなった場合の簡単な要約を以下に示します。

  • SQLサーバーサービスをリカバリモードで開始します:_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)。
  • SQLサーバーの終了(終了)
  • サービスをシャットダウン_NET STOP MSSQL$SQLEXPRESS_
1
Efrain

SQL Serverの2つのバージョンをインストールしました。アンインストールした後、SqlEngineConfigAction_remove_validation_Cpu64でフリーズしました。私にとってうまくいった解決策は、メディアからアンインストールを実行することでした。 1つのバージョンをアンインストールした後、アンインストールファイルがめちゃくちゃになったと思います。したがって、コントロールパネルからのその他のアンインストールでは、frozeを削除して追加します。そうSQLServer isoをマウントし、そこから実行します

setup.exe /Action=Uninstall

追加/削除プログラムからSQL Serverの他のすべてのエントリをアンインストールすることを忘れないでください(もちろん、問題を引き起こしているエントリ、つまりMicrosoft SQL Server 2008 R2(64ビット)を除きます)。

ご参考までに:

  1. マウントされたisoフォルダーで、cmd(管理者として実行)からsetup.exe/Action = Uninstallを実行しました。
  2. また、他のエントリのアンインストール後に再起動してください。すべてのSQLサービスが停止するようにします。
  3. 再起動する前に、すべてのSQLサーバーサービスが停止または無効になっていることを確認してください。

0

カスタムインストールで、SQL Serverデータベースエンジンのアカウント名を「NT AUTHORITY\SYSTEM」に変更すると、SQL Server Express 2017のこのインストールの問題が修正されました。

詳細: http://woshub.com/sql-server-database-engine-startup-handle/

0
Özgür

SbEnable = 1を試してください

これ TechNetからのアドバイス は私のために働きました:

次のレジストリキーを1 [...]に設定する必要があります:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\AppCompat\sbEnable = 1

私の場合、そのレジストリディレクトリはまったく存在しませんでした。そして、アンインストールはその場所で数分(10分未満)止まりました。しかし、最終的には継続して終了しました。

0
StackzOfZtuff