广告
返回顶部
首页 > 资讯 > 数据库 >搭建高可用mongo集群
  • 600
分享到

搭建高可用mongo集群

2024-04-02 19:04:59 600人浏览 薄情痞子
摘要

简介:    mongoDB是一个可扩展、高性能的分布式文档存储数据库,由C 语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。它的特点是高性能、易部署、

简介:

    mongoDB是一个可扩展、高性能的分布式文档存储数据库,由C 语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。它的特点是高性能、易部署、易使用,存储数据非常方便。MonGoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据 结构非常松散,是类似JSON的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面 向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它的特点是高性能、易部署、易使用,存储数据非常方便。

功能特性:

面向集合存储,易存储对象类型的数据。

模式自由。

支持动态查询。

支持完全索引,包含内部对象。

支持查询。

支持复制和故障恢复。

使用高效的二进制数据存储,包括大型对象(如视频等)。

自动处理碎片,以支持云计算层次的扩展性

支持RUBY,python,JAVA,c++PHP等多种语言。

文件存储格式为BSON(一种JSON的扩展)

可通过网络访问

搭建方式:

    搭建集群采用副本集+分片的方式,用于生产环境。

网络拓扑:

 

搭建高可用mongo集群

搭建过程:

①开启配置服务器(config):

172.16.2.230:mongod –port 20000 –dbpath data/ --logpath log/config.log –logappend &

172.16.2.231:mongod –port 20000 –dbpath data/ --logpath log/config.log –logappend &

172.16.2.232:mongod –port 20000 –dbpath data/ --logpath log/config.log –logappend &

 

②开启路由(mongos):

172.16.2.230:mongos --port 27017 –configdb 172.16.2.230:20000,172.16.2.231:20000,172.16.2.232:20000 –logpath data/mongos.log –logappend &

172.16.2.231:mongos --port 27017 –configdb 172.16.2.230:20000,172.16.2.231:20000,172.16.2.232:20000 –logpath data/mongos.log –logappend &

172.16.2.232:mongos --port 27017 –configdb 172.16.2.230:20000,172.16.2.231:20000,172.16.2.232:20000 –logpath data/mongos.log –logappend &

 

③副本集的启动与配置:

分片一:

172.16.2.233:mongod --port 27017 --replSet shard1 --dbpath data/ --logpath log/shard1.log –logappend &

172.16.2.234:mongod --port 27017 --replSet shard1 --dbpath data/ --logpath log/shard1.log –logappend &

172.16.2.235:mongod --port 27017 --replSet shard1 --dbpath data/ --logpath log/shard1.log –logappend &

初始化副本集:

172.16.2.233:mongo localhost:27017/admin

>rsconfig={"_id":"shard1","members":[{"_id":0,"host":"172.16.2.233:27017"}]}

>rs.initiate(rs.config)#初始化

>rs.add("172.16.2.234:27017")

>rs.add("172.16.2.235:27017")

>rs.conf()#查看配置状态(查看分片是否挂掉)

 

分片二:

172.16.2.236:mongod --port 27017 --replSet shard2 --dbpath data/ --logpath log/shard1.log –logappend &

172.16.2.237:mongod --port 27017 --replSet shard2 --dbpath data/ --logpath log/shard1.log –logappend &

172.16.2.238:mongod --port 27017 --replSet shard2 --dbpath data/ --logpath log/shard1.log –logappend &

初始化副本集:

172.16.2.236:mongo localhost:27017/admin

>rsconfig={"_id":"shard2","members":[{"_id":0,"host":"172.16.2.236:27017"}]}

>rs.initiate(rs.config)#初始化

>rs.add("172.16.2.237:27017")

>rs.add("172.16.2.238:27017")

>rs.conf()#查看配置状态(查看分片是否挂掉)

 

分片三:

172.16.2.239:mongod --port 27017 --replSet shard3 --dbpath data/ --logpath log/shard1.log –logappend &

172.16.2.240:mongod --port 27017 --replSet shard3 --dbpath data/ --logpath log/shard1.log –logappend &

172.16.2.241:mongod --port 27017 --replSet shard3 --dbpath data/ --logpath log/shard1.log –logappend &

初始化副本集:

172.16.2.239:mongo localhost:27017/admin

>rsconfig={"_id":"shard3","members":[{"_id":0,"host":"172.16.2.239:27017"}]}

>rs.initiate(rs.config)#初始化

>rs.add("172.16.2.240:27017")

>rs.add("172.16.2.241:27017")

>rs.conf()#查看配置状态(查看分片是否挂掉)

 

④添加分片(副本集)至集群:

172.16.2.230:mongo 172.16.2.230:27017/admin

>db.runCommand({"addshard":"shard1/172.16.2.233:27017,172.16.2.234:27017,172.16.2.235:27017"})

>db.runCommand({"addshard":"shard2/172.16.2.236:27017,172.16.2.237:27017,172.16.2.238:27017"})

>db.runCommand({"addshard":"shard3/172.16.2.239:27017,172.16.2.240:27017,172.16.2.241:27017"})

>db.runCommand({"listshard":1})#查看添加的结果(查看健康状态)

 

⑤激活db和colletion分片功能:

172.16.2.230:mongo 172.16.2.230:27017/admin

>db.runCommand({"enablesharding":"database_1"})

注:激活databas_1分片功能,可让数据库夸shard。若不执行此命令,数据只能存放在一个分片上。此后不同的集合会放到不同的shard上,但同一个collection不会切分。

>db.runCommand({"shardcollection":"database_1.collection_1","key":{"_id":1}})#按片键值"_id"把集合切分

 

⑥查看分片情况:

>use database_1

>db.collection_1.stats()#查看集合分片状态

>db.printShardingStatus()#查看数据库分片

>printShardingStatus(db.getsisterDB("config"),1)#显示太多chunk无法全部显示时可用此命令查看

 

至此,mongo集群搭建完毕,并适用于生产环境。但由于此框架有3个接口(路由),很多时候只用了一个接口导致另外两个被浪费掉了。为了避免资源浪费,可在3个接口前边做一个负载均衡,如haproxy。

 

付:

添加分片:db.runCommand({addshard:"ip:port",allowLocal:true})

删除分片:db.runCommand({removeshard:"ip:port"})

数据备份:./bin/mongodump -h 远程要备份的数据库ip –port 27017 -d 要备份的数据库 –c 要备份的集合(可选)-o 备份到某处

数据恢复:./bin/mongorestore -h 远程要恢复的数据库ip -p 27017 -d 要恢复的数据库 --drop 先前备份的位置/数据库名字


您可能感兴趣的文档:

--结束END--

本文标题: 搭建高可用mongo集群

本文链接: https://www.lsjlt.com/news/44048.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 搭建高可用mongo集群
    简介:    MongoDB是一个可扩展、高性能的分布式文档存储数据库,由C 语言编写,旨在为web应用提供可扩展的高性能数据存储解决方案。它的特点是高性能、易部署、...
    99+
    2022-10-18
  • MongoDB高可用集群搭建
    MongoDB高可用集群搭建   MongoDB副本集搭建 准备三台服务器:   10.175.120.131(主节点)   10.175.121.134(副本节点)   10.175...
    99+
    2015-11-17
    MongoDB高可用集群搭建
  • 搭建 MySQL 高可用高性能集群
    什么是MySQL集群,什么是MySQL集群,如果你想知道什么是MySQL集群,我现在就带你研究。 MySQL 是一款流行的轻量级数据库,很多应用都是使用它作为数据存储。作为小型应用的数据库,它完全可以胜任,但是如果是大型应用,高性能高...
    99+
    2015-11-09
    搭建 MySQL 高可用高性能集群
  • mysql高可用集群如何搭建
    要搭建MySQL高可用集群,可以按照以下步骤进行操作: 选择合适的集群架构:常用的MySQL集群架构有主从复制、主备切换和主主复...
    99+
    2023-10-24
    mysql
  • 搭建高可用MongoDB集群(分片)
    MongoDB基础请参考:https://blog.51cto.com/kaliarch/2044423MongoDB(replica set)请参考:https://blog.51cto.com/kali...
    99+
    2022-10-18
  • MySQL集群搭建实现高可用
    MySQL集群搭建实现高可用 MySQL集群概述和安装环境 MySQL Cluster是MySQL适合于分布式计算环境的高实用、高冗余版本。Cluster的汉语是"集群...
    99+
    2022-10-18
  • CentOS7怎么搭建高可用集群
    这篇文章主要讲解了“CentOS7怎么搭建高可用集群”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CentOS7怎么搭建高可用集群”吧!一、安装集群软件必须软件pcs,pacemaker,c...
    99+
    2023-06-28
  • Redis高可用集群的搭建配置
    这篇文章将为大家详细讲解有关Redis高可用集群的搭建配置,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Redis的集群主从模型是一种高可用的集群架构。本章主要内容有:高...
    99+
    2022-10-18
  • MongoDB搭建高可用集群的案例
    小编给大家分享一下MongoDB搭建高可用集群的案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、规划好端口ip ...
    99+
    2022-10-18
  • 如何搭建 MySQL 高可用高性能集群
    目录MySQL NDB Cluster 是什么搭建集群的前置工作开始部署集群部署管理服务器部署数据服务器部署 SQL 服务所有集群服务部署完毕,我们来测试一下集群是否真的部署成功数据库集群部署成功了,总结一下集群的注...
    99+
    2022-06-01
    MySQL 搭建集群 MySQL 高性能集群 MySQL 高可用集群
  • docker搭建Hadoop CDH高可用集群实现
    目录0. docker安装1. 构建Centos-cdh镜像2. 容器安装ClouderaManager2.1 初始化环境2.2 配置中文环境变量2.3 设置NTP时间同步服务2.4 安装mysql2.5 准备Cloudera-Manage...
    99+
    2022-09-23
  • MySQL8.0 MIC高可用集群的搭建过程
    本篇内容主要讲解“MySQL8.0 MIC高可用集群的搭建过程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL8.0 MIC高可用集群的搭建过程”吧!一,集群部署1 安装环境;操作系统:...
    99+
    2023-06-01
  • 怎么在CentOS 7下搭建高可用集群
    本篇内容主要讲解“怎么在CentOS 7下搭建高可用集群”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在CentOS 7下搭建高可用集群”吧!一、安装集群软件必须软件pcs,pacemake...
    99+
    2023-06-16
  • 基于MHA搭建MySQL Replication集群高可用架
    MHA架构介绍 MHA是Master High Availability的缩写,它是目前MySQL高可用方面的一个相对成熟的解决方案,其核心是使用perl语言编写的一组脚本,是一套优秀的作为MySQL高可用...
    99+
    2022-10-18
  • 基于MMM搭建MySQL Replication集群高可用架
    MMM介绍 MMM是Multi-Master Replication Manager for MySQL的缩写,它是MySQL提供的一个多主复制管理器,其核心是使用perl语言编写的一组脚本。实际上MMM是...
    99+
    2022-10-18
  • nginx搭建高可用集群的实现方法
    目录Keepalived+Nginx 高可用集群(主从模式)Keepalived+Nginx 高可用集群(主从模式) 集群架构图 1、准备两台装有Nginx虚拟机 2、都需安装Ke...
    99+
    2023-01-28
    nginx 高可用集群 nginx 高可用
  • 使用Redis5怎么搭建一个高可用集群
    本篇文章为大家展示了使用Redis5怎么搭建一个高可用集群,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、安装redis安装gccyum install gcc下载redis-...
    99+
    2023-06-14
  • mongodb3.4集群搭建实战之高可用的分片+副本集
    前言 最近因为工作的原因,在学习使用mongodb数据库,mongodb是最常用的nodql数据库,在数据库排名中已经上升到了前六。这篇文章介绍如何搭建高可用的mongodb(分片+副本)集群,分享出来供大...
    99+
    2022-10-18
  • mycat和mysql搭建高可用企业数据库集群
    mycat 基础 mycat 作用   当 mysql 为 1主一从的时候,mycat 支持写DB高可用,即当主挂了,那么可以写入从数据库中 将数据库看出一个蛋糕: 垂直切分,类似 上下切,水...
    99+
    2021-11-03
    mycat和mysql搭建高可用企业数据库集群
  • centos环境下nginx高可用集群的搭建指南
    目录1.概述2.CentOS中nginx集群搭建2.1 集群架构图2.2 Keepalived2.3 集群搭建准备2.4 集群搭建2.4.1 安装keepalived2.4.2 配置...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作