web-dev-qa-db-ja.com

SQLサーバーを停止する正しい方法(自動化による)

質問

  • PowerShellのStart-ServiceおよびStop-Serviceコマンドを使用してSQLのサービスを開始および停止しても安全ですか?
  • そうでない場合、自動化によってSQLのサービスを開始および停止するための推奨される方法はありますか?

追加情報

現在、メンテナンスウィンドウの前にシステムを完全に停止し、その後、システムを再起動するスクリプトを作成しています。きれいに言うと、それはアプリケーションのサービスを停止し、次にデータベースサービスを停止し(つまり、依存関係の順序で)、すべてを無効に設定して、インフラストラクチャチームがWindowsの更新を適用したり、作業を実行したりする前に、必要に応じてサーバーを安全に再起動できるようにします。システムを正しい(依存関係を認識する)順序で再起動するスクリプト。

私たちのDBAは、サービスを停止する正しい方法はSQLの構成マネージャーを使用することであると述べました。これは、単にservices.mscを使用することとは異なることを意味します(または、自動化の場合、Powershellのstop-service /コマンドラインのsc \\someServer stop someService

ただし、通常の方法でサービスを開始/停止することは正しくないこと、またはサービスの単純な開始と停止に関してSQL構成マネージャーが追加の保護/機能を提供することを明確に示しているものは何も見つかりませんでした。

4
JohnLBevan

どちらに行っても安全です。 SERVICES.MSCおよびPOWERSHELLコマンドラインは、MSSQL構成マネージャーにとって同等の機能です...

構成マネージャーはインスタンスの制御などにも使用されますが、サービスの開始と停止の機能は、どちらの方法を選択しても同じです。

たとえば、アプリケーションを終了するには、[ファイル]> [終了]を実行できます。または、ALT + F4を実行できます。どちらも同じ機能です...

追加情報と役立つ詳細については、以下のこのリンクをご覧ください。これは、すべての異なる方法(SQL構成マネージャー、SSMS、コマンドラインなど)をカバーします

https://msdn.Microsoft.com/en-us/library/hh403394.aspx

フェールオーバークラスターインスタンスに関する更新...

インスタンスがクラスター化されている場合、上記の提案のいずれの使用も適用されないため、使用しないでください。 FCIの場合、クラスターマネージャーまたはFailoverClusters PowerShellモジュールコマンドを使用する必要があります。

6
Hector

推奨される方法は、常に次の2つの理由で構成マネージャーを使用することです。

i)パスワードを変更する場合は、構成マネージャーを使用して、SQLエンジンやエージェントサービスを再起動して新しいパスワードを有効にする必要はありません。詳細はこちら こちら

ii)SQLクラスターを管理していて、services.mscを介してパスワードを変更しようとすると、node1の再起動中に別のノードにフェイルオーバーし、sql構成マネージャーはこれを回避します。

そうは言っても、構成マネージャーを通じてすべてのタスクを実行するスクリプトはありません。誰かがそれを持っているかどうかを知るのは興味深いでしょう:).

1
Firasath Ahmed