mongodb副本集删除方法

本文介绍了两种删除并重建MongoDB副本集的方法。一种是通过停止实例、删除数据文件后重新配置,另一种是利用rs.reconfig函数调整现有配置。这两种方法为维护和管理MongoDB集群提供了实用指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mongodb副本集删除方法

起因:由于要搭建一个mongodb的测试环境,所以从原来的一台服务器上克隆了一个过来,上面有三个mongodb实例,组成了一个副本集。

副本集的设置也一起copy过来了,所以要删除在重新设置,由于不知道有没有好的方法可以方便移除副本集,用了一个非常笨的方法,如下:

1 首先停调三个实例

/etc/init.d/mongodbmaster stop

/etc/init.d/mongodbslave stop

/etc/init.d/mongodbarbiter stop

2 删除三个实例的数据文件和log

3 把三个实例以单库启动 (这步应该可以省,没试)

配置文件如下:

#master.conf  
dbpath=/usr/mongodb/data/master  
logpath=/usr/mongodb/log/master.log  
pidfilepath=/usr/mongodb/master.pid  
directoryperdb=true  
logappend=true  
#replSet=repmongo117   注释掉了
bind_ip=192.168.1.117   
port=37017  
oplogSize=1000  
fork=true  
noprealloc=true
nojournal=true  
smallfiles=true

4 以副本集方式启动三个实例

配置如下:

#master.conf  
dbpath=/usr/mongodb/data/master  
logpath=/usr/mongodb/log/master.log  
pidfilepath=/usr/mongodb/master.pid  
directoryperdb=true  
logappend=true  
replSet=repmongo117  
bind_ip=192.168.1.117   
port=37017  
oplogSize=1000  
fork=true  
noprealloc=true
nojournal=true  
smallfiles=true

5 初始化副本集

initset.sh 内容如下:

#!/bin/bash
#mongodb
cd /usr/mongodb/bin
MongoDB='./mongo 192.168.1.117:37017'
$MongoDB <<EOF
use admin
rsconf={
        "_id" : "repmongo117",
        "members" : [
            {
                "_id" : 0,
                "host" : "192.168.1.117:37017"
            }
        ]
    }
rs.initiate(rsconf)
rs.add("192.168.1.117:37018")
rs.add("192.168.1.117:37019")
exit;
EOF

chmod 777 initset.sh

sh initset.sh

即可初始化副本集。

---------------------

方法二

直接修改配置,

cfg = rs.conf()
cfg.members[0].host = "你的IP 或者域名"
rs.reconfig(cfg)

---------------------

对于复杂的副本集配置,rs.reconfig函数修改比rs.add和rs.remove更有用;

如果有更好的方法删除原来的副本集,在新建副本集,请告知,多谢!!!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值