Centos-mongodb副本集加分片配置

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: Centos升级到7之后,发现无法使用iptables控制Linuxs的端口,google之后发现Centos 7使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口: firewall-cmd --zone=public --add-port=.

Centos升级到7之后,发现无法使用iptables控制Linuxs的端口,google之后发现Centos 7使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口:

firewall-cmd --zone=public --add-port=27017/tcp --permanent
firewall-cmd --zone=public --add-port=27018/tcp --permanent
firewall-cmd --zone=public --add-port=20000/tcp --permanent
firewall-cmd --zone=public --add-port=30000/tcp --permanent

重启防火墙

firewall-cmd --reload

复制集加分片(192.168.1.222、192.168.1.223、192.168.1.224)

mkdir /usr/local/mongodb/data/log1
mkdir /usr/local/mongodb/data/log2
mkdir /usr/local/mongodb/data/shard1
mkdir /usr/local/mongodb/data/shard2
mkdir /usr/local/mongodb/data/config

1、配置shard1复制集(3台都运行)

/usr/nacp/mongodb-linux-x86_64-rhel70-3.4.0/bin/mongod --shardsvr --dbpath /usr/local/mongodb/data/shard1 --logpath=/usr/local/mongodb/data/log1/shard1.log --logappend --port 27017 --replSet shard1 -fork
/usr/nacp/mongodb-linux-x86_64-rhel70-3.4.0/bin/mongo 192.168.1.222:27017
use admin
#定义副本集配置
db.runCommand({"replSetInitiate":{"_id":"shard1","members":[{"_id":1,"host":"192.168.1.222:27017"},{"_id":2,"host":"192.168.1.223:27017"},{"_id":3,"host":"192.168.1.224:27017"}]}});
rs.status();

2、配置shard2复制集(3台都运行)

/usr/nacp/mongodb-linux-x86_64-rhel70-3.4.0/bin/mongod --shardsvr --dbpath /usr/local/mongodb/data/shard2 --logpath=/usr/local/mongodb/data/log2/shard2.log --logappend --port 27018  --replSet shard2 -fork
/usr/nacp/mongodb-linux-x86_64-rhel70-3.4.0/bin/mongo 192.168.1.224:27018
use admin
#定义副本集配置
config = { _id:"shard2", members:[
    {_id:0,host:"192.168.1.222:27018"},
    {_id:1,host:"192.168.1.223:27018"},
    {_id:2,host:"192.168.1.224:27018"}
    ]
}
rs.initiate(config);

3、配置config(3台都运行)

/usr/nacp/mongodb-linux-x86_64-rhel70-3.4.0/bin/mongod --port 20000 --configsvr --dbpath=/usr/local/mongodb/data/config --logpath=/usr/local/mongodb/data/config/config.log --logappend --replSet config --fork 
/usr/nacp/mongodb-linux-x86_64-rhel70-3.4.0/bin/mongo 192.168.1.223:20000
use admin
#定义副本集配置
db.runCommand({"replSetInitiate":{"_id":"config","members":[{"_id":1,"host":"192.168.1.222:20000"},{"_id":2,"host":"192.168.1.223:20000"},{"_id":3,"host":"192.168.1.224:20000"}]}});

4、配置mongodb路由(3台都运行)

/usr/nacp/mongodb-linux-x86_64-rhel70-3.4.0/bin/mongos --port 30000 --configdb config/192.168.1.222:20000,192.168.1.223:20000,192.168.1.224:20000 --logpath=/usr/local/mongodb/data/mongos.log --logappend --fork

配置shard

/usr/nacp/mongodb-linux-x86_64-rhel70-3.4.0/bin/mongo 192.168.1.222:30000
use admin
db.runCommand({ addshard:"shard1/192.168.1.222:27017,192.168.1.223:27017,192.168.1.224:27017" })
db.runCommand({ addshard:"shard2/192.168.1.222:27018,192.168.1.223:27018,192.168.1.224:27018" })

设置分片数据库:

db.runCommand({"enablesharding": "test"}) 

设置表分片基于字段hash设置表分片基于字段

db.runCommand({"shardcollection": "test.t1", key: { id:1}})

打印数据库分片信息:

db.printShardingStatus()   

打印服务器信息:

db.serverStatus() 

测试

use test
for (var i = 1; i <= 10000; i++) db.t1.save({id:i,"test1":"testval1"});
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
1月前
|
Linux 网络安全 Apache
CentOS 7.2配置Apache服务httpd(上)
CentOS 7.2配置Apache服务httpd(上)
191 1
|
3月前
|
消息中间件 Linux API
centos7 安装rabbitmq自定义版本及配置
centos7 安装rabbitmq自定义版本及配置
|
18天前
|
存储 NoSQL MongoDB
MongoDB 复制(副本集)
10月更文挑战第17天
32 2
MongoDB 复制(副本集)
|
10天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
46 2
|
18天前
|
存储 NoSQL 前端开发
MongoDB 分片
10月更文挑战第17天
26 2
|
24天前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
75 1
|
26天前
|
存储 监控 Linux
在 CentOS 7 中如何对新硬盘进行分区、格式化、挂载及配置最佳实践
本文详细介绍了在 CentOS 7 中如何对新硬盘进行分区、格式化、挂载及配置最佳实践,包括使用 `fdisk` 创建分区、`mkfs` 格式化分区、创建挂载点、编辑 `/etc/fstab` 实现永久挂载等步骤,旨在有效管理服务器磁盘空间,提高系统稳定性和可维护性。
29 1
|
1月前
|
Linux PHP Apache
CentOS 7.2配置Apache服务httpd(下)
CentOS 7.2配置Apache服务httpd(下)
47 1
|
2月前
|
存储 监控 NoSQL
*MongoDB的水平扩展主要通过分片技术实
*MongoDB的水平扩展主要通过分片技术实
42 5
|
2月前
|
存储 NoSQL 前端开发
MongoDB 分片总结
这篇文章总结了MongoDB分片的概念、集群结构、分片实例、配置和测试过程。
55 6