mongodb 集群重构和释放磁盘空间实例详解
集群重构实例
当我们需要扩展mongodb集群时,我们需要向集群添加新的节点。但是,一旦有了新节点,我们必须通过重构过程来使该节点成为集群的一部分。这里我们以MongoDB 3.4
版本为例,演示如何对一个集群进行重构。
- 启动
mongod
进程,这里使用基本配置文件:
mongod --config /etc/mongod.conf
- 进入mongo shell,使用
rs.initiate()
初始化一个副本集
rs.initiate()
以上操作将启用一个副本集,其中该单节点是主节点(primary)。
- 引入新节点,让该节点加入rs集群
rs.add("192.168.0.2:27017")
这里使用了一个新节点,节点地址为192.168.0.2
,端口号为27017
。
- 在第二个节点上启动
mongod
进程
mongod --config /etc/mongod.conf
- 这时主节点会自动将新节点加入集群。我们可以使用以下命令查看当前的成员:
rs.status()
释放磁盘空间实例
在mongodb集群上,释放磁盘空间是一项必要的操作。对于一个较大的集群,磁盘释放工作可能很麻烦。这里我们将演示如何在mongo shell中实现磁盘空间释放。
- 在mongo shell中使用
use
命令进入需要释放空间的数据库。
use mydb
- 查看数据库存储内容及索引大小。
db.stats()
以上命令将显示数据库存储容量及索引大小。我们可以看到各种信息和数据类型,包括未使用的空间。
- 使用
compact
命令释放未使用的空间。
db.runCommand({ "compact": "mycoll" })
该命令将迭代当前数据库集合(stores)并将其空间释放。
以上是两个实例,在演示中,我们学习了如何重构mongodb集群,并演示了如何进行mongodb磁盘空间释放。