1. 概要

アプリケーションにNoSQLデータベースを使用しているとしましょう。これは、テーブルの設計やクエリの作成のオーバーヘッドなしに、多くのキーと値のペアにすばやくアクセスするのに最適です。

ただし、「NoSQL」は「メンテナンスなし」を意味するものではないことがわかりました。 MongoDBのAtlasやAmazonのDynamoDBなどのマネージドホスティングの使用を検討していますが、自社でホストするか、独自のクラウドインスタンスでホストすることにしました。 RedisやCassandraなどのいくつかのNoSQLの選択肢を検討し、MongoDBを決定します。

インストール(Linuxディストリビューションから、Mongoのリポジトリから、スナップから)が、問題が発生したため、再起動する必要があります。

このチュートリアルでは、MongoDBデータベースを再起動するさまざまな方法を検討します。

2. サービス笑顔で?

データベースを再起動する方法を検索すると、レガシースクリプトへの参照が見つかる場合がありますサービス。 これは、Linuxインストールで使用するスタートアップシステムの種類に関係なく機能する1つの標準コマンドを提供することで機能します。 service を使用しても問題はありませんが、不要になりました。

これを使用して、MongoDBのローカルインストールを再開できます。

service mongod restart

このツールは、 Great Init Wars で人気を博しました。その間、人々はUnixまたはLinuxシステムの一部を起動および制御するさまざまな方法について議論しました。

Red Hat Linuxは、/etc/init.dのスクリプトの集中ラッパーとしてこのスクリプトを提供しました。 これらのスクリプトは起動時に実行され、 cronデーモンやApacheHTTPサーバーなどのシステムサービスの開始(および再起動)を処理します。

Canonicalは、Ubuntu用のこれらのスクリプトをUpstartと呼ばれるシステムに置き換えようとしました。

サービススクリプト(必要に応じて / usr / sbin で確認できます!)は、これらの競合する起動、ステータス、およびシャットダウンツールの両方を処理するように進化しました。 、systemdもラップアラウンドします。 Red Hatは、7.0リリースでsystemdに切り替えました。 CanonicalはUbuntu15.04で切り替えられました。

最近では、 systemd があらゆるLinux環境で期待できる標準になり、serviceは不要になりました。

3. すべてがsystemctlの下にあります

systemctlツールを使用してsystemdを操作します。 これにより、MongoDBとすべての依存関係が管理されます。

MongoDBを最初にインストールしたとき、すべてのバイナリと構成ファイルは配置されていますが、実行されていません。

これは、systemctlstatus関数で確認できます。

a@shoes:~$ systemctl status mongod
mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
     Active: inactive (dead)
       Docs: https://docs.mongodb.org/manual

systemctlstart stop 、およびrestartmongodサービスを依頼することもできます。

今すぐ再起動しましょう:

a@shoes:~$ sudo service mongod restart
a@shoes:~$ sudo service mongod status
mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-07-13 07:45:50 HST; 7s ago
       Docs: https://docs.mongodb.org/manual
   Main PID: 154987 (mongod)
     Memory: 155.4M
     CGroup: /system.slice/mongod.service
             └─154987 /usr/bin/mongod --config /etc/mongod.conf

Jul 13 07:45:50 shoes systemd[1]: Started MongoDB Database Server.

ステータスを確認すると、最近のログも取得して、イベントが発生した日付とサーバー名を確認できます。

MongoDBサーバーをすばやく簡単に再起動する方法はです。

systemctl mongod restart

3.1. enableを使用して起動時に起動するようにMongoDBを設定する

ただし、systemctlを使用してmongodを起動したからといって、システムが起動するたびに自動的に起動するわけではありません。

systemctlenableオプションを使用して、MongoDBがシステムの残りの部分で起動することを確認しましょう。

a@shoes:~$ sudo systemctl enable mongod
Created symlink /etc/systemd/system/multi-user.target.wants/mongod.service → /lib/systemd/system/mongod.service.

ご覧のとおり、 / lib /systemdmongod.serviceファイルは、「マルチユーザー」またはデフォルトの実行レベルに含まれています。 これらのサービスのリストについては、 / etc /systemdの下のリンクを参照してください。

このターゲットは、MongoDBが通常の起動で起動することを「望んでいる」ため、 mongod は、すべての依存関係が満たされた後(たとえば、ネットワークの起動後)に起動されます。

4. 結論

この記事では、systemdスイートを使用してMongoDBサーバーを再起動します。 systemctl を使用して、 mongod サーバーのステータスを確認し、再起動します。

それを行う方法は他にもありますが、古いシステムで作業している場合を除いて、それらについて知る必要はありません。

そして最後に、再起動時にMongoDBサーバーを再び起動する場合は、MongoDBサーバーを「有効」に設定することを忘れないでください。