实现mongodb远程数据库的复制 (mongodb 复制远程数据库)

实现MongoDB远程数据库的复制

随着大数据、云计算等技术的普及与发展,数据处理系统的规模越来越大,维护和管理数据变得越来越复杂,而数据库复制技术的应用逐渐成为管理大规模系统的有效手段之一。MongoDB作为一种基于分布式架构的NoSQL数据库,其在大规模系统中的应用越来越广泛。本文将介绍如何实现MongoDB远程数据库的复制。

一、MongoDB概述

MongoDB是一种支持面向文档设计的数据库,通过BSON二进制形式存储数据,支持多种语言的API操作,比较适用于大规模的数据存储与处理场景,很多互联网公司以及大型企业都采用了MongoDB。

MongoDB支持多种数据复制方式,包括单节点复制、多节点复制、主从复制以及副本集等。其中,副本集是MongoDB复制机制中最为常用的一种方式,它能够提供数据库的高可用性和可扩展性。

二、MongoDB副本集

副本集(replica set)是MongoDB中常用的一种数据复制技术,它包含多个MongoDB副本节点(replica node)和一个主节点(primary node)。通过副本集技术,可以实现MongoDB的故障转移和数据备份。

在副本集中,每个节点都会保存一份数据副本,主节点将自动将其更改同步到其他节点上,保证数据的一致性。当主节点发生宕机等故障时,副本通过选举机制,自动选择一个新的主节点,并将其它节点上的数据同步至其身上,以实现自动故障转移。

三、MongoDB副本集的配置

要实现MongoDB远程数据库的复制,需要先对副本集的配置进行处理,具体步骤如下:

1. 启动所有的MongoDB副本节点

以Ubuntu为例,启动MongoDB需要输入以下命令:

sudo systemctl start mongod

2. 配置副本集

在其中一个节点上启动mongo shell,执行以下命令:

rs.initiate( { _id: “rs0”, members: [ { _id: 0, host: “:” }, { _id: 1, host: “:” }, { _id: 2, host: “:”, arbiterOnly: true } ] } )

其中,_id是副本集的名称,members字段定义了包括主节点在内的节点列表。arbiterOnly表示该节点为仲裁节点,即只负责参与选举,不保存数据。

执行rs.status()命令可以查看副本集状态,如图所示:

需要把所有节点的状态都变为“REACHABLE”(可达)。

四、实现MongoDB远程数据库的复制

完成副本集的配置后,需要对MongoDB进行一些额外的设置才能实现正常的复制。

1. 配置主节点的账户权限

通过mongo shell连接主节点,创建一个具有replica_set权限的账户,如下所示:

use admin

db.createUser( { user: “admin”, pwd: “password”, roles: [ { role: “root”, db: “admin” }, { role: “replicaSetMonitor”, db: “local” } ] } )

root角色用于管理数据,replicaSetMonitor角色用于监控副本集节点。

2. 配置MongoDB节点的配置文件

在每个MongoDB节点上,编辑mongod.conf配置文件,设置复制相关的参数,如下所示:

replication:

replSetName: rs0

oplogSizeMB: 512

其中,replSetName是副本集名称,oplogSizeMB设置操作日志的大小。

3. 启动MongoDB节点

重新启动每个MongoDB节点,并绑定对应的IP地址和端口号,命令如下:

sudo systemctl restart mongod

要在MongoDB节点上指定端口可以使用–port参数。

4. 验证MongoDB数据复制是否正常

通过mongo shell连接主节点,执行rs.status()命令可以查看副本集的状态,如下所示:

其中,members字段列出了每个MongoDB节点的状态信息。每个成员的状态都应该变为“SECONDARY”(从节点)。

五、

相关问题拓展阅读:

10个顶级Mongodb GUI工具,以图形方式管理数据库

MongoDB是一个面向文档的数据库,属于NoSQL数据库,它使用类似ON的文档和schemata。

MongoDB的默认接口是(CLI)命令行,新用户很难像专业人员那样处理数据库。因此,有一些MongoDB管理工具来提供GUI界面以提高生产力。就像phpmyadmin为MySQL/MariaDB数据库提供基于HTTP网络的GUI界面一样。但是,此处包含的所有工具都不是基于HTTP的,只有少数工具为MongoDB提供Web界面。以下是使用GUI的比较流行的MongoDB管理工具列表:

要从具有图形用户界面的MongoDB开始,MongoDB是更好的方法之一。MongoDB Compass Community由MongoDB开发人员开发,这意味着更高的可靠性和兼容性。它为MongoDB提供GUI mongodb工具,以 探索 数据库交互;具有完整的CRUD功能并提供可视方式。借搏孙圆助内置模式可视化,用户可以分析文档并显示丰富的结构。为了监控服务器的负载,它提供了数据库操作的实时统计信息。就像MongoDB一样,Compass也有两个版本,一个是Enterprise(付费),社区可以免费使用。适用于Linux,Mac或Windows。

NoSQLBooster是MongoDB CLI界面中非常流行的GUI工具。它正式名称为MongoBooster。NoSQLBooster是一个跨平台,它带有一堆mongodb工具来管理数据库和监控服务器。这个Mongodb工具包括服务器监控工具,Visual Explain Plan,查询构建器,SQL查询,ES2023语法支持等等……它有免费,个人和商业版本,当然,免费版本有一些功能限制。NoSQLBooster也可用于Windows,MacOS和Linux。

ClusterControl是另一个MongoDB工具,具有管理数据库基础结构的GUI。它还有两个版本 – 社区和企业版。不用说,ClusterControl社区版可以免费使用,而企业则是付费的。它不仅限于MongoDB,还基塌支持MySQL,MySQL复制,MySQL NDB集群,Galera集群,MariaDB,PostgreSQL,TimescaleDB,Docker和ProxySQL。

ClusterControl为数据库基础架构提供全自动安全性,该基础架构具有单个图形用户界面,可操作和自动化MongoDB和MySQL数据库环境。它可通过YUM/APT提供回购,适用于Linux平台(RedHat,Centos,Ubuntu或Debian)。

Nosqlclient是一个免费的开凯或源MongoDB管理工具,基于Web的GUI意味着不再需要命令行来管理数据库。我们可以使用Nosqlclient在MongoDB中插入,删除或更新数据,而无需使用查询。它可作为桌面应用程序,Docker和Web应用程序使用。Web使用HTTP为MOngoDB提供基于浏览器的界面。

Robo 3T由MongoDB客户端Studio 3T的开发人员维护和提供。以前,Robo 3T被称为Robomongo。它也是适用于Windows,MacOS和Linux的跨平台MongoDB GUI管理工具。它具有相同的引擎和环境,是MongoDB shell(3.2)的一部分。

上面提到的Robomong被3T收购并更名为Robot 3T;现在是Studio 3T的一部分。那么,Studio 3T是什么?与其他提到的MongoDB管理GUI工具一样,Studio 3T也是一个基于GUI的工具,用于管理数据库,但在付费类别中。但是,此工具的30天免费试用版允许用户在投入资金之前使用并了解其功能。与免费和开源Robot 3T相比,Studio 3T具有更多功能并提供企业支持。与Robo 3T相同,它也适用于Windows,Linux(Ubuntu和CentOS)和MacOS。

Mongo Management Studio是一个用于数据库管理的免费MongoDB GUI工具。它轻巧,界面清晰,易于开发基于MongoDB的项目。它使用nodeJs,Electron框架,MongoDB和AngularJs开发。MMS与MongoDB 3.0/3.2/3.4兼容。

与上述所有MongoDB管理工具一样,用户可以轻松安装它,但免费版仅适用于Windows;而企业和个人则适用于Linux,Windows和MacOS。企业版(Web服务器)支持MongoDB Web界面HTTP GUI,这意味着我们可以在主服务器上安装,之后可以在本地或远程使用浏览器的任何系统问。但是,个人版和免费版只能在已安装它们的本地系统上使用。

它是面向关系,NoSQL和云平台的数据库开发人员的通用集成开发环境(IDE)。因此,支持各种数据库来开发,访问,管理和可视化分析数据。

对于MongoDB,Aqua Data Studio使用具有管理和数据库查询功能的图形用户界面作为管理工具。Aqua Data studio的Visual界面允许用户浏览和修改数据库结构,包括模式对象和,以及维护数据库安全性。

它提供了一个MongoDB数据库工具包,包括各种工具,如Visual Analytics,MongoSQL查询参考,Mongo查询分析器,MongoShell MongoShell,FluidShell,查询和分析工具,网格和数据透视图,表数据编辑器,导入和导出工具,实体关系建模;Visual Query Builder;比较工具:架构比较,文件比较;SQL 历史 记录,Open API脚本环境,集成安全Shell(SSH)和版本控制:Subversion(SVN),Git,CVS,Perforce。

Mongo查询分析器Javascript编辑器允许执行JavaScript命令并支持自动完成和语法突出显示。结果可以在树层次结构,网格结果和文本中看到。

作为付费产品,Aqua Data Studio的试用版提供14天,具有所有企业功能。所以,如果你正在寻找一些付费产品,那么你可以在花钱之前免费试用它。它适用于Windows,Linux和MacOS。

这听起来像phpMyAdmin工具。但是,phpMoAdmin也是PHP编写的但是可用于MongoDB。它基于Vork PHP框架。很轻巧,易于安装。它只有115KB的moadmin.php文件,用户可以放在网站的任何地方开始工作。

它是一个跨平台的MongoDB管理工具,在Open Source许可下发布,使用Electron框架和Angular 构建。可在GitHub上找到。

以上谈到了Windows,Linux和MacOS MongoDB管理客户端,所以那些正在寻找智能手机和平板电脑的用户mongoDB管理可以试试Mongolime。它为MongoDB移动客户端提供了轻松连接和访问MongoDB服务器的功能。它具有内置的SSH隧道,可以通过SSL轻松验证和连接远程服务器。MongoLime是免费增值MongoDB客户端应用程序,支持iOS和Android平台。

使用Node.js,Express和Bootstrap3编写的基于Web的MongoDB管理界面。它允许连接多个数据库;查看/添加/删除数据库,和文档;预览音频/视频/图像资产;GridFS支持 – 添加/获取/删除难以置信的大文件;在文档中使用BSON数据类型,Mobile / Responsive – Bootstrap以及更多功能。

mongodb 复制远程数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于mongodb 复制远程数据库,实现mongodb远程数据库的复制,10个顶级Mongodb GUI工具,以图形方式管理数据库的信息别忘了在本站进行查找喔。


数据运维技术 » 实现mongodb远程数据库的复制 (mongodb 复制远程数据库)