web-dev-qa-db-ja.com

SQL Server 2014 Expressのインストールは、「データベースエンジンの起動ハンドルが見つかりませんでした」というエラーで失敗します。

私はDBAではありませんが、実際にはデータベース管理の経験はあまりありません。私は、自分のローカルマシンでSQL Serverを実行して、学習と練習のためのいくつかの単純な.NETアプリケーションを構築しようとしているだけの男です。この投稿で参照されているのと同じ問題が発生しています( SQL Server 2012 Expressのインストールがエラー「データベースエンジンの起動ハンドルが見つかりませんでした。」==で失敗します )が、SQL Server Express 2014で発生しています。問題を解決しない次のことを試みました:

  • 検証済みのSSLがオフになっている
  • ユーザーフォルダの下のMSSQL $ SQLEXPRESSフォルダを削除しました
  • sQL構成マネージャーで組み込みアカウントに変更されました
  • 管理者としてインストールファイルを実行した
  • インストール時にデフォルトのNT Service\MSSQL $ SQLEXPRESSアカウントを選択しました(他のアカウントは選択できませんでした)
  • 選択した回答(Fredericから)の下のコメントに従って、私はこのパス(コンピューターのプロパティ、詳細パラメーター、ユーザープロファイルパラメーター、ネットサービス\ mssqlプロファイルの抑制)をたどろうとしましたが、リストにあるように存在しませんでした。私が見つけた最も近いものは、ユーザーアカウントのみでした(仮想アカウントではありません)。
  • セットアップ中に混合認証を使用してみました

回答のMSDNへのリンクは、いくつかの構成データをリストするリソースを指していますが、サービスアカウントのアクセス許可を変更する場所を教えてくれません。これは私がこれまで読んだことを基にして私がする必要があることだと思います。 SQL構成管理ツールを調べましたが、(私が見たように)アクセス許可を変更することはできません。ソリューションの断片が表示されますが、「このツールを使用してサービスアカウントの権限を変更する」と書かれたものはどこにもありません。ここにエラーログがあります:

2015-02-08 19:55:05.51 Server      Microsoft SQL Server 2014 - 12.0.2000.8 (Intel X86) 
Feb 20 2014 19:20:46 
Copyright (c) Microsoft Corporation
Express Edition on Windows NT 6.1 <X64> (Build 7601: ) (WOW64)

2015-02-08 19:55:05.51 Server      UTC adjustment: -5:00
2015-02-08 19:55:05.51 Server      (c) Microsoft Corporation.
2015-02-08 19:55:05.51 Server      All rights reserved.
2015-02-08 19:55:05.51 Server      Server process ID is 2944.
2015-02-08 19:55:05.51 Server      System Manufacturer: 'System manufacturer', System     Model: 'System Product Name'.
2015-02-08 19:55:05.51 Server      Authentication mode is MIXED.
2015-02-08 19:55:05.51 Server      Logging SQL Server messages in file 'C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Log\ERRORLOG'.
2015-02-08 19:55:05.51 Server      The service account is 'NT Service\MSSQL$SQLEXPRESS'. This is an informational message; no user action is required.
2015-02-08 19:55:05.51 Server      Registry startup parameters: 
 -d C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\master.mdf
 -e C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Log\ERRORLOG
 -l C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\mastlog.ldf
2015-02-08 19:55:05.51 Server      Command Line Startup Parameters:
 -s "SQLEXPRESS"
 -m "SqlSetup"
 -Q
 -q "SQL_Latin1_General_CP1_CI_AS"
 -T 4022
 -T 4010
 -T 3659
 -T 3610
 -T 8015
 -d "C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Template Data\master.mdf"
 -l "C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Template Data\mastlog.ldf"
2015-02-08 19:55:05.84 Server      SQL Server detected 1 sockets with 4 cores per socket and 4 logical processors per socket, 4 total logical processors; using 4 logical processors based on SQL Server licensing. This is an informational message; no user action is required.
2015-02-08 19:55:05.84 Server      SQL Server is starting at normal priority base (=7). This is an informational message only. No user action is required.
2015-02-08 19:55:05.84 Server      Detected 8191 MB of RAM. This is an informational message; no user action is required.
2015-02-08 19:55:05.84 Server      Using conventional memory in the memory manager.
2015-02-08 19:55:05.89 Server      Default collation: SQL_Latin1_General_CP1_CI_AS (us_english 1033)
2015-02-08 19:55:05.90 Server      Perfmon counters for resource governor pools and groups failed to initialize and are disabled.
2015-02-08 19:55:05.91 Server      Query Store settings initialized with enabled = 1, 
2015-02-08 19:55:05.91 Server      The maximum number of dedicated administrator connections for this instance is '1'
2015-02-08 19:55:05.91 Server      This instance of SQL Server last reported using a process ID of 5432 at 2/8/2015 7:55:02 PM (local) 2/9/2015 12:55:02 AM (UTC). This is an informational message only; no user action is required.
2015-02-08 19:55:05.91 Server      Node configuration: node 0: CPU mask: 0x0000000f:0 Active CPU mask: 0x0000000f:0. This message provides a description of the NUMA configuration for this computer. This is an informational message only. No user action is required.
2015-02-08 19:55:05.92 Server      Using dynamic lock allocation.  Initial allocation of 2500 Lock blocks and 5000 Lock Owner blocks per node.  This is an informational message only.  No user action is required.
2015-02-08 19:55:05.94 Server      Database Mirroring Transport is disabled in the endpoint configuration.
2015-02-08 19:55:05.94 Server      Software Usage Metrics is disabled.
2015-02-08 19:55:05.94 spid7s      Warning ******************
2015-02-08 19:55:05.94 spid7s      SQL Server started in single-user mode. This an informational message only. No user action is required.
2015-02-08 19:55:05.94 spid7s      Starting up database 'master'.
2015-02-08 19:55:05.98 spid7s      1 transactions rolled forward in database 'master' (1:0). This is an informational message only. No user action is required.
2015-02-08 19:55:05.98 spid7s      0 transactions rolled back in database 'master' (1:0). This is an informational message only. No user action is required.
2015-02-08 19:55:06.01 Server      CLR version v4.0.30319 loaded.
2015-02-08 19:55:06.09 Server      Common language runtime (CLR) functionality initialized using CLR version v4.0.30319 from C:\Windows\Microsoft.NET\Framework\v4.0.30319\.
2015-02-08 19:55:06.09 spid7s      Service Master Key could not be decrypted using one of its encryptions. See sys.key_encryptions for details.
2015-02-08 19:55:06.12 spid7s      SQL Server Audit is starting the audits. This is an informational message. No user action is required.
2015-02-08 19:55:06.12 spid7s      SQL Server Audit has started the audits. This is an informational message. No user action is required.
2015-02-08 19:55:06.15 spid7s      SQL Trace ID 1 was started by login "sa".
2015-02-08 19:55:06.15 spid7s      Server name is 'MIKE-PC\SQLEXPRESS'. This is an informational message only. No user action is required.
2015-02-08 19:55:06.15 spid7s      Starting up database 'msdb'.
2015-02-08 19:55:06.16 spid11s     Starting up database 'mssqlsystemresource'.
2015-02-08 19:55:06.16 spid14s     Error: 17190, Severity: 16, State: 1.
2015-02-08 19:55:06.16 spid14s     Initializing the FallBack certificate failed with error code: 1, state: 20, error number: 0.
2015-02-08 19:55:06.16 spid14s     Unable to initialize SSL encryption because a valid certificate could not be found, and it is not possible to create a self-signed certificate.
2015-02-08 19:55:06.16 spid14s     Error: 17182, Severity: 16, State: 1.
2015-02-08 19:55:06.16 spid14s     TDSSNIClient initialization failed with error 0x80092004, status code 0x80. Reason: Unable to initialize SSL support. Cannot find object or property. 
2015-02-08 19:55:06.16 spid14s     Error: 17182, Severity: 16, State: 1.
2015-02-08 19:55:06.16 spid14s     TDSSNIClient initialization failed with error 0x80092004, status code 0x1. Reason: Initialization failed with an infrastructure error. Check for previous errors. Cannot find object or property. 
2015-02-08 19:55:06.16 spid14s     Error: 17826, Severity: 18, State: 3.
2015-02-08 19:55:06.16 spid14s     Could not start the network library because of an internal error in the network library. To determine the cause, review the errors immediately preceding this one in the error log.
2015-02-08 19:55:06.16 spid14s     Error: 17120, Severity: 16, State: 1.
2015-02-08 19:55:06.16 spid14s     SQL Server could not spawn FRunCommunicationsManager thread. Check the SQL Server error log and the Windows event logs for information about possible related problems.

私が単純であると想定していることが非常に困難で時間がかかることが判明していることに私はめちゃくちゃイライラしています。何かアドバイスをいただければ幸いです-ありがとうございます。

[UPDATE]

エラーで指定された場所にデフォルトのテンプレートデータベースをコピーしました。これにより、dbサービスを開始できました。 SQL Server Management Studioを開いたところ、Windows認証を使用してログインできませんでした。セットアップ時に混合認証を使用したため、作成したsaアカウントを使用できました。

残念ながら、これにより別のエラーメッセージが表示されました。「ユーザーに権限がないため、サーバーレベルでポリシーの正常性状態を表示できません。この機能を正しく動作させるには、msdbデータベースにアクセスする権限が必要です。」インストール中に作成されたsaアカウントのアクセス許可を設定する方法がわかりません。左側のナビゲーションツリーでシステムデータベースを確認できますが、msdbの横にテキスト(Recovery Pending)があります。新しいデータベースを作成しようとすると、次のエラーが発生します。

attempt to add new database error message

インストール全体で修復を実行しようとしたところ、SQL Serverサービスに関連する次のエラーメッセージが表示されました。インストールが成功した場合は修復できます。続行するには、指定されたSQL Server機能を削除してください。」 これは完全なエラーログです

これまでに何度か取り外して再インストールしてみたので、悪循環になっているようです。

7
Bugalley

データベースエンジンの起動ハンドルエラーが見つかりませんでした。SQLServerのインストールはSQL Serverサービスをインストールできましたが、インストールがSQL Serverサービスを開始しようとしたときに失敗しました。

私が言及した簡単な解決策 このTechnet記事

SQL Server構成マネージャーに移動して、SQL Serverサービスを見つけてください

SQL Server Expressサービスを右クリックしてプロパティを選択し、スタートアップアカウントをローカルシステムに変更して、[適用]を選択して[OK]をクリックします。これにより、ローカルシステムアカウント権限でサービスが開始されます。

enter image description here

このエラーの原因となる特定の理由。

  1. サーバーの構成ページのウィンドウ(インストール中)でユーザーが選択したアカウントは、SQL Serverデータベースエンジンサービスをオンラインにすることができません。特権がないか、破損しています。データベースエンジンサービスのインストール中に、SQL Serverはオンラインデータベースサービスを内部プロセスとして提供しようとしますが、起動アカウントが破損しているか適切な権限がないため、失敗し、最終的にインストールが失敗します。

  2. その他の理由は、何らかの理由でインストールが初めて失敗し、ユーザーが追加削除プログラムから失敗したインストールをアンインストールした場合、アンインストールではアカウントが壊れた状態のままになるため、これ以上インストールしようとするとこのエラーメッセージが点滅します。

  3. また、SQL ServerのインストールはSQL Serverとそのサービスのインストールに成功したが、システムのその他の制限やその他のシステム関連のエラーにより、SQL Serverがオンラインにならないことも理由の1つです。

あなたの場合の理由は

2015-02-08 19:55:06.16 spid14s     Error: 17190, Severity: 16, State: 1.
2015-02-08 19:55:06.16 spid14s     Initializing the FallBack certificate failed with error code: 1, state: 20, error number: 0.
2015-02-08 19:55:06.16 spid14s     Unable to initialize SSL encryption because a valid certificate could not be found, and it is not possible to create a self-signed certificate.
2015-02-08 19:55:06.16 spid14s     Error: 17182, Severity: 16, State: 1.

これを解決するにはローカルシステムでSQL Serverサービスアカウントを開始するか、ローカルマシンで管理者権限を持つ新しいローカルアカウントを作成し、そのアカウントでSQL Serverサービスを開始してください。 このBlogs.msdn 記事はそのようなアカウントプロファイルが破損している場合にエラーが発生する可能性があると述べています

管理者権限を持つアカウントでSQL Serverサービスを実行することはすでに知っているため、お勧めしません。しばらくの間、ローカルシステムでアカウントを実行できますが、 Windowsサービスアカウントとアクセス許可の構成 を使用して、最小限の特権でアカウントを作成できます。

編集:

FCB :: Openに失敗しました:ファイル番号1のファイルE:\ sql12_main_t.obj.x86Release\sql\mkmastr\databases\mkmastr.proj\MSDBData.mdfを開けませんでした。OSエラー:2(指定されたファイルが見つかりません。 )。

2015-02-09 10:42:45.12 spid8sエラー:5120、重大度:16、状態:101。

2015-02-09 10:42:45.12 spid8s物理ファイル「E:\ sql12_main_t.obj.x86Release\sql\mkmastr\databases\mkmastr.proj\MSDBData.mdf」を開けません。オペレーティングシステムエラー2:「2(システムは指定されたファイルを見つけることができません。)」。

2015-02-09 10:42:45.12 spid8sエラー:17207、重大度:16、状態:1。

以下のログのように、SQL ServerはE:\ sql12_main_t.obj.x86Release\sql\mkmastr\databases\mkmastr.proj \でmsdbファイルを検索しています

Msdbデータファイルとログファイルの両方を上記の場所に手動で移動できますか?これが目的の場所ではないことはわかっていますが、最初にSQL Serverをオンラインにしてから、alter databaseコマンドを使用して場所を変更します。私にとってこれはバグであり、SQL Serverが何らかの理由でmsdファイルの場所を決定できず、ランダムな場所を選択できないために発生しています。

これが機能しない場合は元に戻します

3
Shanky

私は問題を修正したことを慎重に楽観視しています。私が助けたかもしれないいくつかのことがあります:

  • SQLアプリケーションフォルダー内のファイルレベルでいくつかの権限を変更しました。
  • スクリプトを実行して、間違った場所を指しているテンプレートデータベースの一部を移動しました。
  • SQL Server内にいくつかのログインアカウントを追加できました。

しかし、それを修正するように思われた最後のことは、システムデータベースを再構築することでした( 詳細はこちら )。実際にデータベースを作成することはできなかったので、復元するバックアップはありませんでした。私はゼロから始めたばかりで、うまくいきました。

すべての提案をありがとう@Shanky。

1
Bugalley

これは、インストールの失敗時に発生しました。私の解決策は、USBドライブを使用し、一時インストールが行われる場所のパスを作成することでした(****main_t.obj.x86Release\sql\mkmastr\databases\mkmastr.proj)。 (または、そのドライブが既にある場合は、それを使用します。)ドライブ文字を変更するには、ディスクマネージャを使用する必要がある場合があります。システムファイルをコピーできます。tempdb.mdfなどからインストールフォルダー(C:\Program Files\Microsoft SQL Server\....instance\DATA\)を新しい一時フォルダに追加します。

SQL Server Management Studioにログインした後、起動権限を、それを起動するアカウントに変更しました。そして、非常に恐ろしいことに、セットアップ中に設定したとしてもsaパスワードが設定されなかったことがわかりました。そのため、saを使用しない限り、新しいインスタンスにログインできませんでした。 =、空白のパスワード。いったん入ると、すべての適切な情報を割り当てることができます。

次に、以下のコマンドを使用しました(NAMEは論理名です。正しいファイル名を使用してください)。

ALTER DATABASE tempdb
MODIFY FILE (
  NAME = 'templog' ,
  FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MYINSTANCENAME\MSSQL\DATA\templog.ldf'
)
Go

すべてのファイルでこれを実行すると、SQL Serverは、新しいパスを有効にするために再起動するように指示するメッセージで応答しました。

SQL Server 2016のインストールで最後の手順が完了したため、タスクを終了しなければならないときに、このすべてが発生しました。

0

SQLをDCにインストールすることはお勧めしません。理由や方法を言うのを怠ります。ADが必要とするリソースを参照していますが、ほとんどの場合この問題を抱えています。 500ユーザー、WSUS、IIS、VLANなどはありません。数台のサーバーが1つあり、4または5ユーザーのように「FEW」と表示されます。2台目のサーバーは、このような小さなネットワークではばかげています。議論することもできますが、ここでのポイントではありません。必要なのは、ソリューション、単一サーバーソリューションです。

私の解決策は複雑な回避策なしで機能するようです。 ADで管理ユーザーを作成します。データベースエンジンが使用するユーザーアカウントを指定し、作成したユーザーアカウントにする必要があるため、「カスタム」を使用してSQLをインストールします。 SQLサービスのユーザーアカウントを作成することをお勧めしますが、その推奨事項はこのエラーとは関係ありません。

それでおしまい。インストールは機能します。 powershell、シングルユーザーモード、SQLコマンドを使用して前に戻って修正する必要はありません。知っている人たちは、あなたが「これらをチェックする」リンクで逆流をチェックしていないと思います。そして、彼らは私たちを問題と混乱させるほど十分に知っています。シンプルなバカにしてください。正直なところ、これはそれほど難しいことではありません。マイクロソフトは両方の製品を製造しています。簡単な答えがあるはずです。どこでも見つけられなかったので、これが私の答えです。

0
user146303