如何重启像 MongoDB 这样的 NoSQL 数据库服务?


如果我们要为我们的应用程序使用 NoSQL 数据库,那么我们需要一些快速且易于使用的数据库。

我们了解到“NoSQL”并不一定意味着“无需维护”。我们考虑使用托管服务,如 MongoDB 的 Atlas 或亚马逊的 DynamoDB,但我们选择自行托管,无论是在本地还是在自己的云实例中。我们评估了 Redis 和 Cassandra 等多个 NoSQL 选项,并选择了 MongoDB。

我们可以通过从 Linux 发行版安装、使用 Mongo 的仓库或使用快照来安装它。但是,如果出现问题,我们可能需要重新启动它。

我们将了解重新启动 MongoDB 数据库的不同方法。

服务

我们可能能够找到对旧版脚本服务的引用。它们提供了一个单一的标准命令,无论我们的 Linux 安装使用 systemd、upstart 还是其他类型的启动服务,该命令都能正常工作。无论你是否使用服务,它现在都不再必要了

让我们再次启动我们本地的 MongoDB 实例 -

$ service mongod restart

在伟大的 Init 战争期间,当不同的团体就启动和控制 Unix 或 Linux 系统部分的不同方法争论不休时,这个程序变得流行起来。

Red Hat Linux 提供了一个名为“system-config-kickstart”的集中式脚本,它负责在启动时运行这些脚本,并在不再需要时停止它们。

Canonical 试图用一个名为 Upstart 的系统替换这些脚本。

服务脚本发展到处理这两个相互竞争的启动、停止和状态工具——现在,服务脚本也围绕 systemctl 进行封装。Red Hat 在其 7.0 版本中采用了 SystemD。Canonical 在 Ubuntu 20.04 中采用了 SystemD。

最近,systemd 已经成为我们在 Linux 环境中启动服务的默认方式。而 service 已经不再必要了。

使用 systemctl

我们将使用 systemctl 工具来管理 MongoDB 及其任何依赖项。

当我们最初安装 MongoDB 时,其所有二进制文件和配置文件位置都已设置好,但它目前未运行。

要查看我们是否可以使用 status 命令来检查我们的服务是否已启动,我们可以运行以下命令 -

$ 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

Systemd 为我们提供了多个用于启动、停止和重新启动服务的命令。

让我们使用以下命令重新启动 -

命令

$ sudo service mongod restart $ 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 2022-10-11 07:45:50 HST; 7s ago
   Docs: https://docs.mongodb.org/manual
   Main PID: 124287 (mongod)
   Memory: 135.4M
   CGroup: /system.slice/mongod.service
   └─154987 /usr/bin/mongod --config /etc/mongod.conf
   Oct 11 07:45:50 shoes systemd[1]: Started MongoDB Database Server.

我们可以检查状态以获取最近的日志条目,包括它们发生的时间和日期以及记录它们的宿主名称。

要再次启动我们的 MongoDB 服务器,我们只需运行 -

$ systemctl mongod restart

使用enable设置 MongoDB 在系统启动时启动

但是,即使我们已使用 systemd 启动了 MongoDB,这也不一定意味着它会在我们的系统启动时始终运行。

我们可以使用 systemctl 的“enable”命令来确保 MongoDB 与我们的系统一起启动。

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

现在我们已经了解了 systemd 如何管理服务文件,让我们快速浏览一下 etc/systemd 下的链接,以列出这些服务文件。

现在我们已经为应用程序设置了 Dockerfile,让我们运行它!我们要确保 MongoDB 在容器启动时启动。为此,我们需要告诉 Docker 在满足所有依赖项后启动 MongoDB。

结论

在这里,我们使用 systemd 服务管理工具来检查 MongoDB 服务器的状态,并在必要时重新启动它。

还有其他方法可以做到这一点,但除非我们在较旧的系统上工作,否则我们不需要了解它们。

最后,如果我们希望 MongoDB 服务器在重新启动计算机时自动启动,请记住“启用”它。

更新于: 2022-12-01

923 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告