linux下搭建mongodb副本集

本文详细介绍如何搭建MongoDB集群,包括三台服务器的安装步骤、设置启动配置文件、启动MongoDB服务及集群初始化过程。

1.搭建三台mongodb服务器

  cd /usr/local

mkdir mongodb
tar -zxvf mongodb-linux-x86_64-2.6.7.tgz
cd mongodb-linux-x86_64-2.6.7
mv * /usr/local/mongodb
cd /usr/local/mongodb
mkdir data
touch logs
cd bin
./mongod -dbpath=/usr/local/mongodb/data -logpath=/usr/local/mongodb/logs启动 并测试

2.设置启动配置文件

 cd /usr/local/mongodb/

mkdir -p mongodb_data/mongodb_db

mkdir mongodb_data/mongodb_logs

   vi /etc/mongodb.conf

 

fork = true

quiet = true

bind_ip = 192.168.30.112

port = 27017

dbpath = /usr/local/mongodb/mongodb_data/mongodb_db

logpath = /usr/local/mongodb/mongodb_data/mongodb_logs/server1.log

logappend = true

journal = true

rest = true

replSet = test

以上3台服务器,一样的安装步骤

3.启动mongodb

cd /usr/local/mongodb/bin

./mongod -f /etc/mongodb.conf

我们连接到其中一个节点上,并使用replSetInitiate命令进行初始化。此命令需要一个配置对象,指定设定的每个成员的名字

./mongo 192.168.30.112:3306/admin

use admin

rs.initiate()

确认设定
rs.conf()

添加第一个从库rs0:PRIMARY> rs.add('IP:27017')
添加第二个从库
以通过priority来调整主库,选举的时候,priority大的优先被选举为主库
rs.add({host: 
"IP:27017", priority: 5})

确认设定
rs0:PRIMARY> rs.conf()

查看状态rs0:SECONDARY> rs.status()


移除从库

先关闭从库的mongoDB,然后在主库上移除从库

rs0:PRIMARY> rs.remove('IP:27017')

 

转载于:https://www.cnblogs.com/xuexin/p/7427828.html

### MongoDB 副本搭建教程 #### 环境准备 为了成功搭建 MongoDB 副本,首先需要准备好服务器环境。假设我们拥有三台服务器,其 IP 地址分别为 `10.0.0.1`、`10.0.0.2` 和 `10.0.0.3`。这些服务器将作为副本的成员节点。在每台服务器上安装并启动 MongoDB 实例之前,请确保操作系统已正确配置防火墙规则以允许 MongoDB 的通信端口(默认为 27017)。此外,在所有参与节点之间建立无密码 SSH 登录机制有助于简化管理流程[^1]。 #### 安装 MongoDB 按照官方文档说明完成各目标主机上的 MongoDB 软件包部署工作。具体方法可能因所使用的 Linux 发行版本不同而有所差异;例如对于基于 Debian 或 Ubuntu 的系统来说可以通过 APT 包管理系统来进行快速安装: ```bash wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add - echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list sudo apt-get update sudo apt-get install -y mongodb-org ``` 上述脚本适用于 Ubuntu 20.04 LTS 版本下的 MongoDB v4.4 下载与安装过程[^3]。 #### 配置 MongoDB 实例 编辑 `/etc/mongod.conf` 文件来指定存储路径、日志文件位置以及其他必要的选项,并启用复制功能。以下是针对第一个节点 (`10.0.0.1`) 的示例配置片段: ```yaml storage: dbPath: "/var/lib/mongodb" net: bindIp: 0.0.0.0 replication: replSetName: rs0 security: authorization: enabled ``` 重复此步骤分别调整另外两台机器的相关参数设置以便形成完整的群结构。 #### 初始化副本 登录到任意一台已经修改好 mongod.conf 并重启服务后的数据库实例中执行初始化命令: ```javascript rs.initiate({ _id : "rs0", members: [ { _id : 0, host : "10.0.0.1:27017"}, { _id : 1, host : "10.0.0.2:27017", priority: 0 }, { _id : 2, host : "10.0.0.3:27017", arbiterOnly: true } ] }) ``` 这段 JavaScript 将创建名为 'rs0' 的新副本,并定义三个初始成员角色及其属性。注意第二个次级节点被赋予较低优先级 (priority),意味着它不太可能会成为主节点候选者之一;第三个仲裁器仅用于投票决定哪个成员应该晋升为主节点而不保存任何实际的数据副本[^2]。 #### 测试连接性 最后一步是从客户端尝试访问刚组建好的副本验证一切正常运作。如果 PHP 应用程序打算利用该分布式架构,则需相应更改 DSN 字符串指向整个组而不是单一实体地址: ```php $manager = new MongoDB\Driver\Manager("mongodb://username:password@10.0.0.1:27017,10.0.0.2:27017/?replicaSet=rs0"); ``` 以上代码展示了如何通过 PHP 连接到具有身份认证保护措施开启状态下的远程 MongoDB 副本环境中去[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值