Linux で SQL Server サービスを開始、停止、再起動する

適用対象:SQL Server - Linux

この記事では、コマンド ラインまたは Transact-SQL を使って、Linux 上の SQL Server Database Engine および SQL Server エージェントを開始、停止、または再起動する方法について説明します。

Windows 上の SQL Server の場合は、「SQL Server サービスの開始、停止、一時停止、再開、および再起動」をご覧ください。

サービスを識別する

SQL Server コンポーネントは、サービスとして実行される実行可能プログラムです (Linux では "デーモン" とも呼ばれます)。 Linux サービスを実行するために、コンピューター画面にアクティビティを表示する必要はなく、コマンド ラインでのユーザー操作も必要ありません。

データベース エンジン サービス

Database Engine サービスは既定のインスタンスであり、コンピューターごとに 1 つに制限されます。 Linux では名前付きインスタンスはサポートされていません。 コンテナーを使って 1 台のコンピューターで SQL Server の複数のインスタンスを実行する方法については、コンテナー内の SQL Server のデプロイと接続に関する記事をご覧ください。

SQL Server エージェント サービス

SQL Server エージェント サービスは、ジョブとアラートと呼ばれるスケジュールされた管理タスクを実行します。 詳しくは、「 SQL Server Agent」をご覧ください。 SQL Server エージェントは、SQL Server のすべてのエディションで使用できるわけではありません。 SQL Server の各エディションでサポートされる機能の一覧については、SQL Server 2019 の各エディションでサポートされる機能に関する記事を参照してください。

追加情報

  • Database Engine サービスを一時停止することは、Windows ではできますが、Linux ではできません。 SQL Server エージェント サービスも、一時停止および再開することはできません。

  • クラスターで実行するときは、適切なクラスター管理ツールを使って、Linux ディストリビューション用の Database Engine を管理します。 Pacemaker を使用する例については、「SQL Server on Linux 用の Pacemaker クラスターをデプロイする」をご覧ください。

アクセス許可

サービスを開始、停止、または再起動できるのは、既定ではローカル管理者グループのメンバーだけです。

Transact-SQL の SHUTDOWN コマンドを使用してデータベース エンジンを停止するには、sysadmin または serveradmin の固定サーバー ロールのメンバーシップが必要です。この権限を譲渡することはできません。

コマンド ライン ツールの使用

以下の手順では、Linux 上の SQL Server サービスの開始、停止、再起動、状態確認を行う方法について説明します。 SQL Server コンテナーの管理については、「SQL Server on Linux のトラブルシューティング」をご覧ください。

次のコマンドを使って、Database Engine サービスの状態を確認します。

sudo systemctl status mssql-server

必要に応じて、次のコマンドを使って、Database Engine サービスを開始、停止、または再起動することができます。

sudo systemctl stop mssql-server
sudo systemctl start mssql-server
sudo systemctl restart mssql-server

SQL Server エージェントの設定と管理については、「Linux 上に SQL Server エージェントをインストールする」をご覧ください。 SQL Server エージェント サービスを再起動するには、Database Engine サービスを再起動する必要があります。

Transact-SQL

SHUTDOWN ステートメントを使用して、データベース エンジンを停止できます。

Transact-SQL を使用してデータベース エンジンを停止するには

  • 現在実行中の Transact-SQL ステートメントおよびストアド プロシージャが終了するまで待機してからデータベース エンジンを停止するには、次のステートメントを実行します。

    SHUTDOWN;
    
  • データベース エンジンを直ちに停止するには、次のステートメントを実行します。

    SHUTDOWN WITH NOWAIT;
    

SHUTDOWN ステートメントについて詳しくは、「SHUTDOWN (Transact-SQL)」をご覧ください。