mongo安装副本集

mongo安装副本集


wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.4.tgz
tar zxvf mongodb-linux-x86_64-3.0.4.tgz
cp -rf mongodb-linux-x86_64-3.0.4 /usr/local/


创建文件夹

mkdir /shard/replset27017/
mkdir /shard/replset27018/
mkdir /shard/replset27019/

chmod -R 777 /shard/replset27017/
chmod -R 777 /shard/replset27018/
chmod -R 777 /shard/replset27019/

创建多个副本集节点 --replSet   (注意要区分大小写,官方建议命名空间使用IP地址)
/usr/local/mongodb-linux-x86_64-3.0.4/bin/mongod -shardsvr -port 27017  --replSet replset/127.0.0.1:27018 -dbpath=/shard/replset27017/ --storageEngine wiredTiger -logpath=/shard/replset27017.log --fork
/usr/local/mongodb-linux-x86_64-3.0.4/bin/mongod -shardsvr -port 27018  --replSet replset/127.0.0.1:27019 -dbpath=/shard/replset27018/ --storageEngine wiredTiger -logpath=/shard/replset27018.log --fork
/usr/local/mongodb-linux-x86_64-3.0.4/bin/mongod -shardsvr -port 27019  --replSet replset/127.0.0.1:27017 -dbpath=/shard/replset27019/ --storageEngine wiredTiger -logpath=/shard/replset27019.log --fork

首先建立3个是为了投票不会冲突,当服务器为偶数时可能会导致无法正常选举出主服务器。


完成上面的工作后,要初始化副本集,随便连接一台服务器执行以下命令 (priority 0~1,被选为主服务器的优先级)
/usr/local/mongodb-linux-x86_64-3.0.4/bin/mongo


>use admin
>db.runCommand(
{"replSetInitiate":{
    "_id":"replset",
    "members":[
    {
        "_id":1,
        "host":"127.0.0.1:27017",


        "priority":1
    },
   {
        "_id":2,
        "host":"127.0.0.1:27018",


        "priority":1
   },
  {
        "_id":3,
        "host":"127.0.0.1:27019",
        "priority":1
   }]}}
)


查看哪台机器是主机哪台是从机?
rs.status()
查看配置
rs.conf()




增加节点:/usr/local/mongodb-linux-x86_64-3.0.4/bin/mongod -shardsvr -port 27020  --replSet replset/127.0.0.1:27017 -dbpath=/shard/replset27020/ --storageEngine wiredTiger -logpath=/shard/replset27020.log --fork


rs.add("127.0.0.1:27020");   或者rs.add({"_id":4,"host":"127.0.0.1:27020"})


尝试杀掉一个mongo看看,另外两台是否可以自动选择主从?
<think>嗯,用户想了解如何配置和使用MongoDB副本。首先,我需要回忆一下MongoDB副本的基本概念。副本MongoDB的高可用性解决方案,通过多个节点实现数据冗余和自动故障转移。通常包括一个主节点(Primary)、多个从节点(Secondary)和可能的仲裁节点(Arbiter)。 根据用户提供的引用内容,有四个参考信息。引用1提到启动mongod实例并指定配置文件。引用2说明复制bin文件到其他节点,并创建db和log目录。引用3提到PSA模式,即Primary+Secondary+Arbiter架构。引用4建议复制三份文件夹,可能对应三个节点配置。 首先,配置副本的步骤应该包括:准备多个实例,修改配置文件,启动实例,然后初始化副本。需要确保每个实例的配置文件中有副本名称、端口号、数据目录和日志路径。然后通过mongo shell连接到其中一个节点,使用rs.initiate()命令进行初始化,并添加其他节点和仲裁节点。 可能需要注意配置文件中的replication部分,设置replSetName,以及网络绑定的IP地址。另外,副本初始化后可能需要检查节点状态,确保所有成员正确加入。 用户的问题还可能涉及实际应用中的问题,比如如何添加节点、处理故障转移,或者性能优化的方法。根据引用3,PSA模式适合资源有限的情况,使用仲裁节点节省资源,但需要权衡数据冗余和性能。 需要确保回答结构清晰,分步骤说明配置和使用方法,并引用提供的参考资料。同时生成相关的问题,比如如何添加节点、故障恢复方法,或者副本与分片的区别。</think>### MongoDB副本配置与使用分步说明 #### 一、环境准备 1. **创建多实例目录** 复制MongoDB程序文件到3个不同目录(如`myrs_27018`、`myrs_27019`、`myrs_27020`)[^4] ```bash cp -r /usr/local/mongodb /usr/local/MongoDBReplicaSet/myrs_27018 cp -r /usr/local/mongodb /usr/local/MongoDBReplicaSet/myrs_27019 cp -r /usr/local/mongodb /usr/local/MongoDBReplicaSet/myrs_27020 ``` 2. **配置节点文件** 每个节点需要独立的配置文件,以`myrs_27018/mongod.conf`为例: ```yaml systemLog: destination: file path: /usr/local/MongoDBReplicaSet/myrs_27018/log/mongod.log storage: dbPath: /usr/local/MongoDBReplicaSet/myrs_27018/db net: bindIp: 0.0.0.0 port: 27018 replication: replSetName: myrs # 统一副本名称[^1] ``` #### 二、启动副本 1. **启动所有节点服务** ```bash bin/mongod -f myrs_27018/mongod.conf bin/mongod -f myrs_27019/mongod.conf bin/mongod -f myrs_27020/mongod.conf ``` 2. **初始化副本** 连接任意节点执行: ```javascript rs.initiate({ _id: "myrs", members: [ { _id: 0, host: "IP:27018", priority: 2 }, { _id: 1, host: "IP:27019", priority: 1 }, { _id: 2, host: "IP:27020", arbiterOnly: true } // 仲裁节点配置[^3] ] }) ``` #### 三、验证副本状态 1. **查看副本状态** ```javascript rs.status() ``` 输出应显示各节点角色和状态,例如: ```json { "set": "myrs", "members": [ { "name": "IP:27018", "stateStr": "PRIMARY" }, { "name": "IP:27019", "stateStr": "SECONDARY" }, { "name": "IP:27020", "stateStr": "ARBITER" } ] } ``` #### 四、数据同步验证 1. **主节点写入测试** ```javascript use testdb db.users.insert({name: "样例数据"}) ``` 2. **从节点读取验证** ```bash mongo --port 27019 rs.slaveOk() // 允许从节点读取[^2] db.users.find() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

e421083458

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值