Mongoサービス再起動例外問題の対処方法
問題の発見
今、同社のサーバーは、定期的に停電ので、定期的にすべてのサービスを再起動するには、しかし、これらのredis、mysql、mongoと他のサービスは、モンゴは定期的に以前の経験とネットワークの記事に関する情報に基づいて、再起動に失敗しました、ここで要約を記録することです。
まず第一に、ここにインストールされているサービスは、yumまたはaptを介してインストールされている、これは私が常に推奨し、使用する操作である、このようにインストールがきちんとあるので、どのディレクトリに配置するファイルの種類は同じです(例:/var/log/xxx/xxx.log)。
エラーの報告に関する主な問題点は以下の通りです。
[root@localhost mongo]# systemctl status mongod
● mongod.service - MongoDB Database Server
Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since a 2021-06-28 14:32:51 CST; 6s ago
Docs: https://docs.mongodb.org/manual
Process: 3351 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=1/FAILURE)
Process: 3348 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)
Process: 3345 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)
Process: 3343 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)
Jun 28 14:32:51 localhost systemd[1]: Starting MongoDB Database Server...
Jun 28 14:32:51 localhost mongod[3351]: about to fork child process, waiting until server is ready for connections.
Jun 28 14:32:51 localhost mongod[3351]: forked process: 3354
Jun 28 14:32:51 localhost mongod[3351]: ERROR: child process failed, exited with 1
Jun 28 14:32:51 localhost mongod[3351]: To see additional information in this output, start without the "--fork" option.
Jun 28 14:32:51 localhost systemd[1]: mongod.service: control process exited, code=exited status=1
Jun 28 14:32:51 localhost systemd[1]: Failed to start MongoDB Database Server.
Jun 28 14:32:51 localhost systemd[1]: Unit mongod.service entered failed state.
Jun 28 14:32:51 localhost systemd[1]: mongod.service failed.
例外が発生し、そこからあまり有効な情報が得られないのを見て、まずログを見に行き、ログファイルから有用な情報を見る(ここではスクリーンショットを時間内に記録しなかったので、コードやスクリーンショットは最初に載せないことにする)。
処理の手順
mongoが提供する修復ツールを使用して、以下のコマンドを実行します。
mongod --repair -f /etc/mongod.conf
ただ、いくつかの投稿では、最初のステップを実行した後、スタートアップコマンド(以下のように:)を実行すると、新しいdbpathを指すdbpathとlogpathパラメータを運び、これも立ち上がるが、データを失うし、毎回新しいディレクトリを指すように与えることはできない、としていますね?
mongod --port 27017 --dbpath /data/db --logpath /var/log/mongod.log --fork
mongo の dbpath ディレクトリ (デフォルト: /var/lib/mongodb) に mongod.lock ファイルが存在するかどうかを調べ、存在する場合は削除します。
dbpath ディレクトリ(デフォルト:/var/lib/mongodb)、log ディレクトリ(デフォルト:/var/lib/mongo)のパーミッションを確認し、mongod.mongod に操作権限があるか、ない場合は mongod.mongod に権限付与します。
chown -Rc mongod. /var/log/mongodb
chown -Rc mongod. /var/lib/mongo
上記の手順が完了したら、mongodbサービスを再起動します。
まとめ
今回の記事は、Mongoのサービス再起動例外についてです。Mongo サービス再起動例外については、スクリプトハウスの過去記事を検索するか、引き続き以下の関連記事を参照してください。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン