gpt4 book ai didi

单机上的 MongoDB 副本集

转载 作者:行者123 更新时间:2023-12-03 15:59:57 27 4
gpt4 key购买 nike

我有一个在服务器上运行的 Linux 实例(即没有虚拟化)。我有一个正在运行的 mongod 实例。转向生产我想实现副本集。我读过的所有内容都讨论了在多台机器上运行 mongod

我知道这可能不是最佳实践,但是是否可以运行同一台计算机的副本集。此外,该机器有两个硬盘驱动器。我希望主数据库位于第一个硬盘上,副本集位于第二个硬盘上。

这个设置可以吗?

最佳答案

这是我在 Ubuntu 上的做法。我想在第二个实例中使用 systemd。

复制我们现有的 MongoDB 配置:

sudo cp/etc/mongod.conf/etc/mongod_repl.conf

sudo pico/etc/mongod_repl.conf

更改这些行:

storage:
dbPath: /var/lib/mongodb_repl

systemLog:
path: /var/log/mongodb/mongod_repl.log

net:
port: 27018

replication:
replSetName: rs0

创建目录和文件,并分配权限

sudo mkdir /var/lib/mongodb_repl
sudo chown mongodb:mongodb /var/lib/mongodb_repl
sudo touch /var/log/mongodb/mongod_repl.log
sudo chown mongodb:mongodb /var/log/mongodb/mongod_repl.log

复制我们现有的启动文件:

sudo cp /lib/systemd/system/mongod.service /etc/systemd/system/mongod_repl.service

如果找不到 mongod.service,sudo systemctl status mongod。它看起来像:

已加载:已加载(/lib/systemd/system/mongod.service;已禁用;供应商预设:已启用)

sudo pico/etc/systemd/system/mongod_repl.service

更改这些行:

ExecStart=/usr/bin/mongod --config /etc/mongod_repl.conf
PIDFile=/var/run/mongodb/mongod_repl.pid

让 systemctl 知道我们做了一些更改:sudo systemctl daemon-reload

尝试启动我们的第二个服务器:

sudo systemctl start mongod_repl
sudo systemctl status mongod_repl

如果它没有运行,请查看日志:

sudo tail -n100 /var/log/mongodb/mongod_repl.log
sudo journalctl -n100 -u mongod_repl

(您可以将 -f 添加到其中任意一行以跟踪日志)

登录mongo --端口 27018

太棒了!现在您已经启动并运行了第二个 MongoDB 服务器。

将原始服务器配置为使用相同的复制集:sudo pico/etc/mongod.conf

添加此:

replication:
replSetName: rs0

重启MongoDBsudo systemctl restart mongod

现在您应该能够在主数据库上执行 rs.initiate() 过程,然后将 127.0.0.1:27018 添加为辅助数据库。

关于单机上的 MongoDB 副本集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42644517/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com