Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MongoDB副本集存储回收

MongoDB副本集存储回收

作者头像
星哥玩云
发布于 2022-08-18 11:41:30
发布于 2022-08-18 11:41:30
41600
代码可运行
举报
文章被收录于专栏:开源部署开源部署
运行总次数:0
代码可运行
描述:

目前Mongodb副本集为三节点+1仲裁节点,已经稳定运行两年,由于数据不断的更新和删除,存储空间很大一部分没有释放,数据库中查看数据库暂用存储并不大,存储没有回收(1.8T数据删除掉了1.2T),为了节省成本进行维护。

解决办法:

在这里没有使用官方的磁盘整理 我们采用新节点替换老节点的方式,要注意数据库的oplog设置的大小,是否能存储所有的信息。 1、添加新的节点重新同步 启动新节点新节点配置文件和复制集成员配置文件保持一致,数据库版本也要一致。 新节点1T存储,我们有一个节点隐藏专门为程序统计使用,线上业务程序不可见访问不到这个节点, 将新节点加入复制集时设置为隐藏节点 在复制集primary节点操作: 延迟0秒,权重为0,隐藏开启,同步索引开启

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mongo>  rs.add({_id:1,host:'10.0.6.44:27010',"slaveDelay":0,"priority":0,"hidden":true,"buildIndexes":true}); 
mongo> rs.status() #查看节点成员状态

通过查看节点状态我发现,新加如的节点同步源我们的主节点,我们要保证线上业务,我们要修改同步源。

2、修改新加入节点同步源

在复制集primary节点操作

Run replSetSyncFrom in the admin database.需要切换到admin数据库使用此命令。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mongo> db.adminCommand( { replSetSyncFrom: "10.0.6.55:27010" })
#设置同步源为隐藏节点
查看是否修改成功:

3、我们通过命令查看新添加节点是否同步完成 查看节点状态

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PRIMARY> rs.status()
"members" : [
        {
            "_id" : 1,
            "name" : "10.0.6.44:27010",
            "health" : 1,
            "state" : 2,
            "stateStr" : "SECONDARY",                             #由开始的STARTUP2变为了SECONDARY
            "uptime" : 2991253,
            "optime" : {
                "ts" : Timestamp(1584078756, 24),
                "t" : NumberLong(1687)
            },
            "optimeDurable" : {
                "ts" : Timestamp(1584078756, 24),
                "t" : NumberLong(1687)
            },
            "optimeDate" : ISODate("2020-03-13T05:52:36Z"),
            "optimeDurableDate" : ISODate("2020-03-13T05:52:36Z"),
            "lastHeartbeat" : ISODate("2020-03-13T05:52:36.903Z"),
            "lastHeartbeatRecv" : ISODate("2020-03-13T05:52:37.019Z"),
            "pingMs" : NumberLong(1),
            "lastHeartbeatMessage" : "",
            "syncingTo" : "10.10.20.31:27010",
            "syncSourceHost" : "10.10.20.31:27010",
            "syncSourceId" : 5,
            "infoMessage" : "",
            "configVersion" : 171
        },

查看节点复制是否有延迟

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PRIMARY> db.printSlaveReplicationInfo()
source: 10.0.6.44:27010
    syncedTo: Fri Mar 13 2020 13:49:54 GMT+0800 (CST)
    1 secs (0 hrs) behind the primary
PRIMARY>

4、隐藏节点数据同步完成以后,修改为程序可见 连接到PRIMARY节点

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PRIMARY> conf = rs.conf();                              #查看10.0.6.44:27010排序第几,不是_id
PRIMARY> conf.members[3].priority=10        #从第一个节点开始为0123      //10.0.6.44:27010排序3,修改权重为10
10
rs02:PRIMARY> conf.members[3].hidden=false       #隐藏设为false
false
PRIMARY> rs.reconfig(conf);                                  #重新加载配置        
{
    "ok" : 1,
    "operationTime" : Timestamp(1584080742, 1),
    "$clusterTime" : {
        "clusterTime" : Timestamp(1584080742, 1),
        "signature" : {
            "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
            "keyId" : NumberLong(0)
        }
    }
}
PRIMARY> rs.config()

5、查看新节点日志是否正常 6、可以关闭老的节点,并在集群中去掉

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PRIMARY> rs.remove("10.1.1.77:27030")
{
    "ok" : 1,
    "operationTime" : Timestamp(1584081322, 1),
    "$clusterTime" : {
        "clusterTime" : Timestamp(1584081322, 1),
        "signature" : {
            "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
            "keyId" : NumberLong(0)
        }
    }
}
PRIMARY>

复制集其多节点采用轮训替换的方式,完成磁盘整理。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MongoDB副本集搭建教程
MongoDB副本集三节点包含主节点(Primary)、副本节点(Secondary)、仲裁节点(Arbiter)。主节点(primary)负责整个副本集的读写,用户也可根据业务需求情况设置全部或部分读请求到副本节点(Secondary);副本集实时同步数据,如果主节点出现故障或宕机,副本节点就会选举一个新的主节点,这一切对于应用服务器不需关心。仲裁节点不存储数据,只负责故障转移的群体投票,这样就少了数据复制的压力。
Power
2025/03/02
840
mongodb副本集搭建
副本集(Replica Set)是一组MongoDB实例组成的集群,由一个主(Primary)服务器和多个备份(Secondary)服务器构成。通过Replication,将数据的更新由Primary推送到其他实例上,在一定的延迟之后,每个MongoDB实例维护相同的数据集副本。通过维护冗余的数据库副本,能够实现数据的异地备份,读写分离和自动故障转移。
端碗吹水
2020/09/23
1.1K0
mongodb副本集搭建
Monogo副本集
MongoDB 副本集(Replica Set)是有自动故障恢复功能的主从集群,有一个Primary节点和一个或多个Secondary节点组成。类似于MySQL的MMM架构
mikelLam
2022/10/31
8900
Monogo副本集
MongoDB副本集调整节点
MongoDB的副本集(Replica Set)是一个高可用性、可扩展性和冗余性的数据库解决方案。它能够确保数据库的高可用性,同时保障了数据的安全性。在本文中,我们将探讨如何在一个已经包含三个数据节点的副本集集群中,添加一个仲裁节点,并同时删除原先的一个数据节点。
俊才
2023/10/25
5120
MongoDB副本集调整节点
mongodb 4.0副本集搭建
近期有同学问mongodb副本集难不难部署,我的回答是不难,很快,几分钟搞定,比mysql MHA简单的不止一点半点。那么到底如何部署呢?请看下文。
俊才
2020/08/13
1.3K0
mongodb副本集主从切换
因默认情况下,各节点的权重都为1,因此可以调整需要切换为主库的节点的权重为较大的值(建议超过节点数)
俊才
2021/12/17
2.7K0
mongodb副本集添加节点
mongodb副本集架构运行一段时间后如果业务发展需要新增新的成员,或者迁移集群,则可以参考本文处理
俊才
2021/12/17
2.6K0
【赵渝强老师】部署MongoDB复制集
在了解到了MongoDB复制集的体系架构以后,下面将通过具体的步骤来演示如何搭建单个节点的MongoDB复制集环境。下表列举了MongoDB复制集的配置信息。
赵渝强老师
2024/08/14
1020
【赵渝强老师】部署MongoDB复制集
MongoDB副本集(一主两从)读写分离、故障转移功能环境部署记录
Mongodb是一种非关系数据库(NoSQL),非关系型数据库的产生就是为了解决大数据量、高扩展性、高性能、灵活数据模型、高可用性。MongoDB官方已经不建议使用主从模式了,替代方案是采用副本集的模式。主从模式其实就是一个单副本的应用,没有很好的扩展性和容错性,而Mongodb副本集具有多个副本保证了容错性,就算一个副本挂掉了还有很多副本存在,主节点挂掉后,整个集群内会实现自动切换。
洗尽了浮华
2019/05/25
2.2K0
MongoDB 副本集搭建与管理详解
单节点的 MongoDB 在数据的安全和冗余方面是比较低的,在生产环境中,我们为 MongoDB 配置副本集,这样可以提高数据的高可用性和安全性。
星哥玩云
2022/08/18
1.6K0
MongoDB 副本集搭建与管理详解
MongoDB之副本集
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
小忽悠
2018/08/27
6450
【ManggoDB】安装配置(伪分布式集群搭建)Replia Set
介于 关系型数据库 非关系型数据库之间 菜鸟教程 https://www.runoob.com/mongodb https://www.mongodb.org.cn/
瑞新
2020/12/07
1.1K0
【ManggoDB】安装配置(伪分布式集群搭建)Replia Set
MongoDB分片集群安装部署教程
注:这里我为了节省虚机数量,单台虚机会部署多个MongoDB节点,生产环境中,建议每台机器部署一个节点。
Power
2025/03/02
1380
mongodb4.0.2 复制集主从部署
复制集(Replica Sets),是一个基于主/从复制机制的复制功能,进行同一数据的异步同步,从而使多台机器拥有同一数据的都多个副本,由于有自动故障转移和恢复特性,当主库宕机时不需要用户干预的情况下自动切换到其他备份服务器上做主库,一个集群最多可以支持7个服务器,并且任意节点都可以是主节点。所有的写操作都被分发到主节点,而读操作可以在任何节点上进行,可以实现读写分离,提高负载。
程序员同行者
2018/09/27
2.3K0
mongodb4.0.2 复制集主从部署
浅尝辄止MongoDB:复制
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/83113823
用户1148526
2019/05/25
6060
MongoDB 4.0 Sharded Cluster部署
针对MongoDB的监控除了使用第三方软件外,强烈推荐是官方提供的Ops Manager,如下图所示:
星哥玩云
2022/08/17
3280
MongoDB 4.0 Sharded Cluster部署
MongoDB集群架构之副本集架构
本文介绍了热门的NoSQL数据库MongoDB的副本集这种分布式架构的一些概念和操作。主要内容包括:
星哥玩云
2022/08/17
8930
MongoDB集群架构之副本集架构
MongoDB3.6之Replica Set初步体验
   这个说法不能说对也不能说不对,要从不同的角度考虑。如果公司的业务量很少,数据不多,一台服务器就可以搞定,那就不需要将一份数据存储在多个地方。随着公司的发展壮大,业务量越来越多,数据也越来越多,这时就需要考虑使用分布式集群的方式来解决了,将数据分散在不同的服务器中。此时仍可以不使用副本,通过将数据分散在不同的服务器中来分散各服务器的压力也可以跟上公司目前的业务量。如果公司规模进一步扩大,用户量越来越多,有可能很多客户要访问同一份资源,此时就有可能造成存放该资源的服务器压力过大。副本的必要性就显现出来了。
星哥玩云
2022/08/16
5420
MongoDB3.6之Replica Set初步体验
MongoDB分片搭建
分片(sharding)是指将数据库拆分,将其分散在不同的机器上的过程。将数据分散到不同的机器上,不需要功能强大的服务器就可以存储更多的数据和处理更大的负载。基本思想就是将集合切成小块,这些块分散到若干片里,每个片只负责总数据的一部分,最后通过一个均衡器来对各个分片进行均衡(数据迁移)。通过一个名为mongos的路由进程进行操作,mongos知道数据和片的对应关系(通过配置服务器)。大部分使用场景都是解决磁盘空间的问题,对于写入有可能会变差,查询则尽量避免跨分片查询。使用分片的时机:
端碗吹水
2020/09/23
1.1K0
MongoDB分片搭建
手把手教你 MongoDB 的安装与详细使用(二)
上一篇文章练习了,MongoDB 的以下操作
程序员鹏磊
2018/02/02
3.6K0
手把手教你 MongoDB 的安装与详细使用(二)
相关推荐
MongoDB副本集搭建教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验