mongoDB3 最新高可用集群环境和认证
- 格式:doc
- 大小:40.00 KB
- 文档页数:8
高可用集群三节点原理高可用集群是一种分布式计算系统,它通过将多个节点(一般为三个节点)连接在一起,以实现数据的冗余备份和资源的共享,从而提高系统的可用性和容错能力。
下面将介绍三节点高可用集群的工作原理。
在三节点高可用集群中,每个节点都是一台独立的服务器,具备相同的硬件和软件配置。
这三个节点通过高速网络互连,并通过软件共享存储来实现数据的同步和共享。
集群中的节点可以分为两个角色:主节点(Primary)和备节点(Secondary)。
在正常运行状态下,主节点负责处理客户端请求,并将数据同步至备节点。
同时,备节点以热备份的形式,实时复制主节点的数据和状态。
这样,在主节点发生故障或不可用时,备节点可以立即接管并继续提供服务,实现故障的无缝切换。
为了确保高可用性和数据一致性,集群采用了心跳机制和共享存储的方式。
心跳机制用于监控节点的状态,每个节点定期发送心跳信号以及当前节点的状态信息给其余节点。
如果主节点的心跳信号长时间未接收到,备节点可以判断主节点已经失效,并将自己切换为主节点运行。
共享存储用于存储集群的数据,主节点和备节点通过共享存储来实现数据的同步,确保数据在节点之间的一致性和可用性。
除了故障切换外,三节点高可用集群还可以进行软件和硬件的维护操作,如升级、扩容、修复等,而不会中断用户的访问。
这是因为在进行维护操作时,可以通过将一个节点切换到维护模式,并将其任务和数据迁移到其他节点上,再进行相应的操作。
维护完成后,将节点切换回正常模式,实现集群的无缝恢复。
综上所述,三节点高可用集群通过节点之间的数据同步和故障切换,提高了系统的可用性和容错能力。
它可以保证在主节点故障或维护时,集群可以继续正常提供服务,从而保证系统的稳定性和可靠性。
opengauss3手册一、概述opengauss3是一款基于开源数据库OpenGauss开发的分布式数据库系统,旨在为企业级大数据处理提供高性能、高可用、高扩展的数据库解决方案。
本手册旨在帮助用户了解opengauss3的基本概念、安装配置、管理维护、性能优化等方面的知识。
二、安装配置1.准备环境:确保服务器满足最低要求,如CPU、内存、存储等。
2.下载安装包:从官方网站下载适合操作系统的安装包。
3.安装数据库:根据安装指南,将安装包安装到服务器上。
4.配置网络:设置数据库的网络地址和端口号,确保服务器与其他系统之间可以进行通信。
5.初始化集群:使用特定命令初始化集群,创建数据目录、用户账户等。
6.添加节点:将其他服务器加入集群,进行配置同步和数据复制。
三、管理维护1.登录数据库:使用管理员账户登录opengauss3数据库。
2.创建表:根据需求创建表结构,包括字段定义、数据类型等。
3.插入数据:向表中插入数据,可以使用SQL语句或可视化工具。
4.查询数据:使用SQL语句查询表中的数据,支持多种查询方式。
5.更新数据:对表中数据进行修改操作,包括插入、删除、更新等。
6.删除数据:删除表中的数据,需要谨慎操作,避免误删重要数据。
7.维护索引:为表建立索引以提高查询性能,根据需求选择合适的索引类型。
8.监控性能:通过性能监控工具,实时了解数据库的运行状态和性能指标。
四、性能优化1.优化硬件:根据需求升级服务器硬件,提高CPU、内存、存储等性能。
2.调整参数:根据数据库运行情况,调整相关参数,如内存使用、磁盘IO等。
3.优化查询:优化SQL查询语句,减少执行时间,提高查询效率。
4.使用分区:对表进行分区,减少查询时间,提高系统性能。
5.使用缓存:利用缓存技术,减少对数据库的访问次数,提高系统整体性能。
6.优化网络:优化数据库之间的网络连接,降低网络延迟,提高数据传输效率。
五、常见问题及解决方法1.数据库无法连接:检查网络设置、防火墙设置、账户权限等。
mongodb 高可用方案MongoDB是一种流行的开源文档数据库,提供了高可用性和灵活性的解决方案。
为了实现高可用性,我们可以采用以下几种MongoDB的高可用方案:1. 副本集(Replica Set):副本集是MongoDB用于提供数据冗余和故障恢复的基本方式。
一个副本集由多个MongoDB实例组成,其中一个是主节点(Primary),其余是副本节点(Secondary)。
主节点处理所有的读写请求,副本节点复制主节点的数据,并提供读操作的能力。
如果主节点发生故障,副本集会自动进行主节点选举,选择一个新的主节点来接管服务。
2. 故障转移(Failover):故障转移是指当主节点不可用时,副本集能够自动选择一个新的主节点来保证服务的可用性。
副本集通过心跳机制来检测主节点的可用性,如果主节点不可用,副本集会自动进行选举以选择一个新的主节点。
这种自动故障转移可以在毫秒级别完成,不会对应用程序的正常运行产生明显的影响。
3. 分片集群(Sharded Cluster):分片集群是一种横向扩展的解决方案,用于处理大规模数据集。
在分片集群中,数据被分散存储在多个分片(Shard)上。
每个分片只存储部分数据,因此能够扩展到更大的存储容量和处理吞吐量。
分片集群还提供了故障恢复和自动扩容的功能,当某个分片发生故障或存储不足时,系统可以自动将数据迁移或重新分片来保证服务的可用性。
4. 心跳和延迟检测:为了进一步增加可用性和冗余性,可以在不同的地理位置部署MongoDB节点。
通过在多个地理位置部署节点,可以提供数据的快速复制和故障转移,以保证服务的高可用性。
此外,还可以通过定期发送心跳信号和检测延迟来实时监测节点的健康状况,以便及时发现并处理故障。
总结起来,MongoDB提供了多种高可用方案,包括副本集、故障转移、分片集群以及心跳和延迟检测等。
这些方案能够有效地提供数据冗余、故障恢复和灵活的扩展能力,以确保MongoDB系统的高可用性和可靠性。
目录1.对项目的理解............................................................. . (6)1.1背景...................................................................................................................... (6)1.2业务目标.................................................................................................. ..错误!不决义书签。
1.3应用感知目标....................................................................... (6)2.系统整体架构.................................................................... .. (7)2.1技术框架............................................................................ . (7)2.2数据架构............................................................................ . (7)2.3功能模块............................................................................ . (8)2.4功能模块............................................................................ . (9)2.5应用部署架构...................................................................... .. (10)3.详尽建设方案.................................................................... (11)3.1一站式大数据采集、储存、冲洗、训练、导出.............................. .. (11)3.2多租户管理......................................................................... (11)功能说明....................................................................................... . (11)平台截图............................................................................................... .. (11)3.3丰富的数据接口................................................................... (11)3.4平台高可用性...................................................................... .. (11)3.5抓取高效性......................................................................... (12)3.6高可扩展性......................................................................... (12)3.7可视化爬虫界面................................................................... (12)3.8抓取过程............................................................................ .. (12)3.9硬件配置方案...................................................................... .. (13)主机、储存资源..................................................................................... . (13)软件资源....................................................................................... . (14)3.10资源估量.......................................................................... .. (14)储存.................................................................................................. (14)CPU与内存....................................................................................... (15)4.系统安全与系统测试.....................................................................错误!不决义书签。
monggodb数据库安全配置基线MongoDB是一种非常流行的开源数据库,广泛用于Web应用程序和大规模数据存储。
然而,由于安全配置的疏忽,MongoDB数据库经常成为黑客的攻击目标。
因此,为了保护数据库中的数据,必须对MongoDB 进行安全配置。
以下是MongoDB数据库安全配置的基线要求:1.关闭远程访问:默认情况下,MongoDB允许远程访问,这使得数据库容易受到攻击。
为了增加安全性,应该将远程访问关闭,并限制只允许在指定IP地址上访问。
2.启用访问认证:MongoDB提供了基于用户名和密码的访问控制功能。
为了确保只有授权的用户可以访问数据库,应该启用访问认证,并为所有用户设置强密码。
3.限制管理员访问:MongoDB默认情况下有一个超级管理员账户(admin),该账户拥有对所有数据库的完全访问权限。
为了增加安全性,应该限制管理员账户的使用,并使用普通用户来管理数据库。
4.定期备份数据库:定期备份是保护数据库的重要措施。
MongoDB提供了mongodump和mongorestore工具用于备份和恢复数据库。
应该定期执行备份,并将备份文件存储在安全的位置。
5.更新数据库版本:MongoDB的开发者通过不断更新数据库版本来修复安全漏洞和其他问题。
为了确保数据库的安全性,应该定期更新数据库版本,并及时应用安全补丁。
6.启用防火墙:防火墙可以限制对MongoDB数据库的访问。
应该配置防火墙,只允许来自信任IP地址的访问。
7.使用SSL加密通信:MongoDB支持通过SSL加密进行数据库通信。
为了保护数据的传输过程中的安全性,应该启用SSL加密,并为数据库服务器配置有效的SSL证书。
8.配置访问控制列表:使用访问控制列表可以进一步限制数据库的访问。
可以配置允许访问数据库的IP地址列表,并禁止其他未授权的IP地址访问。
9.监控数据库活动:应该定期监控数据库的活动,以检测任何异常行为或攻击。
可以使用MongoDB提供的日志功能,并配合安全监控工具进行检测和分析。
MongoDB数据库测评指导书一、概述本指导书旨在为评估MongoDB数据库提供一个详细的指南。
在以下章节中,我们将介绍MongoDB的基本概念、安装和配置、性能测试、安全性和可用性等方面的评估方法。
二、MongoDB简介MongoDB是一个开源的文档数据库,使用类似于JSON的BSON(二进制JSON)格式存储数据。
它具有高性能、可扩展性和易用性等特点,广泛应用于各种业务场景。
三、安装和配置1. 下载MongoDB安装包,根据操作系统类型选择合适的版本。
2. 按照官方文档完成安装过程,并配置环境变量。
3. 启动MongoDB服务,并检查是否能够正常访问。
四、性能测试1. 选择合适的硬件和操作系统配置,以满足MongoDB的性能需求。
2. 使用MongoDB官方提供的性能测试工具进行基准测试,以评估数据库的基本性能。
3. 根据业务需求,模拟实际场景进行压力测试,以评估数据库在高负载情况下的性能表现。
五、安全性1. 为MongoDB实例设置强密码,并定期更换。
2. 禁用默认的匿名访问权限。
3. 配置访问控制列表(ACL),以确保只有授权用户可以访问数据库。
4. 使用SSL/TLS等加密协议,保护数据传输过程中的安全性。
六、可用性1. 在多个地理位置部署MongoDB实例,以提高数据可用性。
2. 使用MongoDB复制集(Replica Set)或分片(Sharding)技术,确保数据在不同节点之间进行备份和冗余。
3. 定期进行数据备份,以防止数据丢失。
4. 监控MongoDB实例的运行状态,及时发现并解决问题。
七、总结与报告根据上述评估过程收集的数据和分析结果,撰写评估报告,总结优缺点以及改进建议。
评估报告应包括以下内容:1. MongoDB的安装和配置情况。
2. 性能测试的结果和分析。
3. 安全性和可用性的配置及注意事项。
4. 结论和建议。
一、介绍MongoDB是一个开源的NoSQL数据库,其具有高性能、可伸缩性和灵活的数据模型等特点。
在实际应用中,往往需要构建MongoDB的集裙环境来保证数据的高可用性和容量扩展性。
对于MongoDB集裙形式的URL参数,我们需要了解其作用和配置方法。
二、URL参数的作用在构建MongoDB集裙环境时,我们需要使用URL参数来连接不同的节点。
这些URL参数可以帮助我们指定MongoDB的集裙形式、节点的信息和其他配置项。
通过合理配置URL参数,我们可以实现不同集裙形式的部署,如副本集、分片集裙等。
三、URL参数的配置方法1. 针对副本集当我们需要构建MongoDB的副本集时,可以通过配置URL参数来指定副本集的成员和优先级等信息。
可以使用如下的URL参数来连接副本集的节点:mongodb://node1:xxx,node2:xxx,node3:xxx/?replicaSet=myRepl icaSet2. 针对分片集裙如果我们需要构建MongoDB的分片集裙,我们可以在URL参数中指定分片集裙的各个分片节点和配置信息。
可以使用如下的URL参数来连接分片集裙的节点:mongodb://shard1:xxx,shard2:xxx,shard3:xxx/?replicaSet=myRe plicaSet3. 其他配置项在实际应用中,还可以在URL参数中指定其他的配置项,如设置连接的超时时间、读写关注等。
可以使用如下的URL参数来连接节点并设置超时时间:mongodb://node1:xxx,node2:xxx,node3:xxx/?connectTimeoutMS=xxx四、URL参数的注意事项在配置MongoDB集裙形式的URL参数时,我们需要注意以下几点:1. 确保URL参数的格式正确,包括协议、节点信息和配置项等内容。
2. 注意节点的可用性和健康状况,确保连接的节点正常运行。
3. 根据实际需求合理选择和配置URL参数,确保集裙环境的稳定性和性能。
MongoDB安装和配置官⽹下载5.0.3, 并安装. Windows下安装后并选择使⽤windows 服务来启动mongo服务.======================================免密登录======================================初次登录, 打开 mongo.exe 客户端, 不需要输⼊⽤户密码就能登录, 安全性不⾼, 后⾯介绍如何加上安全认证.在mongo.exe中执⾏show dbs命令, 能显⽰有三个数据库, 说明登录成功.查看 mongo 的配置⽂件mongod.cfg注意默认绑定IP 是127.0.0.1, 如果要在局域⽹内访问mongo服务, 需要修改IP为 0.0.0.1, 即绑定所有的⽹卡.======================================创建账号======================================创建⼀个mongoDB 的超级管理员root账号先切到admin db下, 账号名设定为 root, ⾓⾊也选 root.use admindb.createUser({user:'root', pwd: '123456', roles:['root']})使⽤ db.auth() ⽅法可以验证⽤户密码是否OK.在test db 下的test_user/test_guest/test_owner 账号use testdb.createUser({user:'test_user', pwd: '123456', roles:[{db:'test', role:'readWrite'}]})db.createUser({user:'test_guest', pwd: '123456', roles:[{db:'test', role:'read'}]})db.createUser({user:'test_owner', pwd: '123456', roles:[{db:'test', role:'dbOwner'}]})在 admin 数据库的 ers 集合中, 可以查看所有⽤户信息.======================================启⽤验证⽅式登录======================================mongo 的配置⽂件mongod.cfg 增加 auth 选项mongod.cfg新版使⽤yml格式, 配置如下:security:authorization: enabledmongod.cfg⽼版⽂件, 配置如下:auth=true再次启动mongo.exe客户端, 运⾏ show dbs, 没有列出任何数据库, 可见并未进⾏真正登录成功mongodb.exe 客户端使⽤账号密码⽅式登录, 以root账号登录:.\mongo.exe mongodb://localhost:27017/admin -u root -p 123456端⼝后的/db, 这⾥的db和应⽤程序连接url的authSource含义相同, ⽤来指定在哪个库验证⽤户. 虽然 admin 库下存储所有账号的⽤户名和密码, 但 authSource 参数不⼀定就是 admin 库, 准确地说: 在哪个库下创建⽤户, authSource 就是那个库.root 账号虽然能管理任何数据库, 但不能直接登录test 数据库.test_owner 账号登录:======================================应⽤程序url写法:======================================mongodb://root:123456@127.0.0.1:27017/admin?authSource=admin&w=majority&wTimeoutMS=5000&journal=true&readPreference=primary&retryWrites=true mongodb://test_owner:123456@127.0.0.1:27017/test?authSource=test&w=majority&wTimeoutMS=5000&journal=true&readPreference=primary&retryWrites=true authSource 参数, ⽤来指定在哪个库验证⽤户. 虽然 admin 库下存储所有账号的⽤户名和密码, 但 authSource 参数不⼀定就是 admin 库, 准确地说: 在哪个库下创建⽤户, authSource 就是那个库.retryWrites 采⽤可重试写⼊⽅式, 设定 retryWrites 为true 后, writeConcern 参数配不能设置为 0w 参数即 writeConcern, 设置为 majority, 保证每次写操作都成功写⼊到复制集中的多数服务器中, 数据安全性较好.j 参数即 journal HAL⽇志, j=true, 落盘后返回写操作, j=false, 刷到内存后即返回写操作.wTimeoutMS 设定 writeConcern 的超时时间, 单位毫秒, 如果没有设定, 则写操作可能会⽆限阻塞等待.readPreference 参数, 设定读操作选⽤节点的策略, 默认为只从主节点读取, 可选项有:primary (只主)只从 primary 节点读数据,这个是默认设置primaryPreferred (先主后从)优先从 primary 读取,primary 不可服务,从 secondary 读secondary (只从)只从 scondary 节点读数据secondaryPreferred (先从后主)优先从 secondary 读取,没有 secondary 成员时,从 primary 读取nearest (就近)根据⽹络距离就近读取,根据客户端与服务端的PingTime实现======================================MongoDB for VS Code插件的使⽤======================================MongoDB 官⽅的VS code插件, 可以编写playground ⽂件, 语法是 js, 可以编写⼀些CRUD的脚本,如果是使⽤Run selected line from playground 命令, 选择部分要包含 use("test") 代码来切换到⽬标DB, 否则都是在默认db中执⾏.另外, 输出窗⼝也切换到 Playground output, 这样我们能看到⼀些⾃⼰的print()结果.======================================mongodb role类型======================================数据库⽤户⾓⾊(Database User Roles):read:授予User只读数据的权限readWrite:授予User读写数据的权限数据库管理⾓⾊(Database Administration Roles):dbAdmin:在当前DB中执⾏管理操作dbOwner:在当前DB中执⾏任意操作userAdmin:在当前DB中管理User备份和还原⾓⾊(Backup and Restoration Roles):backuprestore跨库⾓⾊(All-Database Roles):readAnyDatabase:授予在所有数据库上读取数据的权限readWriteAnyDatabase:授予在所有数据库上读写数据的权限userAdminAnyDatabase:授予在所有数据库上管理User的权限dbAdminAnyDatabase:授予管理所有数据库的权限集群管理⾓⾊(Cluster Administration Roles):clusterAdmin:授予管理集群的最⾼权限clusterManager:授予管理和监控集群的权限,A user with this role can access the config and local databases, which are used in sharding and replication, respectively.clusterMonitor:授予监控集群的权限,对监控⼯具具有readonly的权限hostManager:管理Server超级⾓⾊(super master Roles)root :超级账户和权限,只在admin中可⽤======================================参考======================================。
mangodb 数据库等保测评指导书MongoDB数据库等保测评指导书是为了衡量和评估MongoDB数据库安全等级的一份参考文档。
本文将从数据库安全设计、身份认证与访问控制、数据传输与加密、高可用性与容灾、日志与审计等方面介绍MongoDB数据库等保测评的相关参考内容。
1.数据库安全设计:- 确保数据库服务器与操作系统的安全配置,包括安全策略、防火墙设置、操作系统补丁等。
- 确保数据库服务器与网络的隔离,限制外部网络对数据库的访问。
- 采用适当的网络拓扑结构,避免数据暴露在公网上。
2. 身份认证与访问控制:- 启用强密码策略,并定期更改密码。
- 设置角色权限,只赋予合适的权限给用户,避免权限过大导致的潜在风险。
- 禁用不必要的MongoDB默认用户账户。
3. 数据传输与加密:- 使用SSL/TLS协议对数据传输进行加密。
- 避免明文传输密码和敏感信息。
4. 高可用性与容灾:- 设计数据备份策略,定期对数据库进行备份,避免数据丢失。
- 配置MongoDB副本集或分片集群以提供高可用性和容灾能力。
- 测试数据库故障切换及数据恢复的可行性。
5. 日志与审计:- 启用数据库的审计功能,记录关键操作和访问日志。
- 定期审计数据库操作日志,及时发现异常行为和潜在安全风险。
- 实施日志管理措施,保护日志文件的完整性和机密性。
6. 安全事件响应:- 建立应急响应计划,明确安全事件的处理流程与责任分工。
- 监控数据库活动,及时发现并响应异常行为。
- 定期对数据库进行安全性检查,修复漏洞和安全风险。
以上是MongoDB数据库等保测评指导书的一些参考内容,通过对数据库的安全设计、身份认证与访问控制、数据传输与加密、高可用性与容灾、日志与审计等方面的评估,可以有效提高MongoDB数据库的安全性,保护数据的机密性、完整性和可用性。
mongodb集群Replica Set +Sharding高可用集群搭建(含认证)ln -s -f /data/cloud/deploy/src/mongodb-linux-x86_64-rhel62-3.0.4 /usr/local/cloud/mongodb(M) Mongod1:60001(M) Mongod2:60002(M) Mongod3:60003(M) Mongod4:60004(M) Mongod5:60005(S) Mongod5:60005(S) Mongod1:60001(S) Mongod2:60002(S) Mongod3:60003(S) Mongod4:60004(A) Mongod4:60004(A) Mongod5:60005(A) Mongod1:60001(A) Mongod2:60002(A) Mongod3:60003beta3 beta4 beta5Config:60060 Config:60060 Config:60060mongos:60000 m ongos:60000 m ongos:60000一、启动配置服务器在beta3 beta4 beta5启动:numactl --interleave=all /usr/local/cloud/mongodb/bin/mongod -f /data/cloud/mongodb/etc/configsvr.yaml二、启动MONGOS服务器beta3 beta4 beta5numactl --interleave=all /usr/local/cloud/mongodb/bin/mongos -f /data/cloud/mongodb/etc/mongos.yaml三、启动分片及其副本集实例beta1:numactl --interleave=all /usr/local/cloud/mongodb/bin/mongod -f /data/cloud/mongodb/etc/mongodb1.yamlnumactl --interleave=all /usr/local/cloud/mongodb/bin/mongod -f /data/cloud/mongodb/etc/mongodb4.yamlnumactl --interleave=all /usr/local/cloud/mongodb/bin/mongod -f /data/cloud/mongodb/etc/mongodb5.yamlbeta2:numactl --interleave=all /usr/local/cloud/mongodb/bin/mongod -f /data/cloud/mongodb/etc/mongodb1.yamlnumactl --interleave=all /usr/local/cloud/mongodb/bin/mongod -f /data/cloud/mongodb/etc/mongodb2.yamlnumactl --interleave=all /usr/local/cloud/mongodb/bin/mongod -f /data/cloud/mongodb/etc/mongodb5.yamlbeta3:numactl --interleave=all /usr/local/cloud/mongodb/bin/mongod -f /data/cloud/mongodb/etc/mongodb1.yamlnumactl --interleave=all /usr/local/cloud/mongodb/bin/mongod -f /data/cloud/mongodb/etc/mongodb2.yamlnumactl --interleave=all /usr/local/cloud/mongodb/bin/mongod -f /data/cloud/mongodb/etc/mongodb3.yamlbeta4:numactl --interleave=all /usr/local/cloud/mongodb/bin/mongod -f /data/cloud/mongodb/etc/mongodb2.yamlnumactl --interleave=all /usr/local/cloud/mongodb/bin/mongod -f /data/cloud/mongodb/etc/mongodb3.yamlnumactl --interleave=all /usr/local/cloud/mongodb/bin/mongod -f /data/cloud/mongodb/etc/mongodb4.yamlbeta5:numactl --interleave=all /usr/local/cloud/mongodb/bin/mongod -f /data/cloud/mongodb/etc/mongodb3.yamlnumactl --interleave=all /usr/local/cloud/mongodb/bin/mongod -f /data/cloud/mongodb/etc/mongodb4.yamlnumactl --interleave=all /usr/local/cloud/mongodb/bin/mongod -f /data/cloud/mongodb/etc/mongodb5.yaml四、启动分片副本集登录各个副本集中的任意实例,进行副本集初始化/usr/local/cloud/mongodb/bin/mongo beta1:60001/adminconfig = { _id:"shard1", members:[{_id:0,host:"beta1:60001",priority:2},{_id:1,host:"beta2:60001"},{_id:3,host:"beta3:60001",arbiterOnly:true},]};rs.initiate(config);rs.status();/usr/local/cloud/mongodb/bin/mongo beta2:60002/adminconfig = { _id:"shard2", members:[{_id:0,host:"beta2:60002",priority:2},{_id:1,host:"beta3:60002"},{_id:3,host:"beta4:60002",arbiterOnly:true},]};rs.initiate(config);rs.status();/usr/local/cloud/mongodb/bin/mongo beta3:60003/adminconfig = { _id:"shard3", members:[{_id:0,host:"beta3:60003",priority:2},{_id:1,host:"beta4:60003"},{_id:3,host:"beta5:60003",arbiterOnly:true},]};rs.initiate(config);rs.status();/usr/local/cloud/mongodb/bin/mongo beta4:60004/adminconfig = { _id:"shard4", members:[{_id:0,host:"beta4:60004",priority:2},{_id:1,host:"beta5:60004"},{_id:3,host:"beta1:60004",arbiterOnly:true},]};rs.initiate(config);rs.status();/usr/local/cloud/mongodb/bin/mongo beta5:60005/adminconfig = { _id:"shard5", members:[{_id:0,host:"beta5:60005",priority:2},{_id:1,host:"beta1:60005"},{_id:3,host:"beta2:60005",arbiterOnly:true},]};rs.initiate(config);rs.status();五、设置分片,让分片生效/usr/local/cloud/mongodb/bin/mongo beta5:60000/admindb.runCommand( { addshard : "shard1/beta1:60001,beta2:60001,beta3:60001"});db.runCommand( { addshard : "shard2/beta2:60002,beta3:60002,beta4:60002"});db.runCommand( { addshard : "shard3/beta3:60003,beta4:60003,beta5:60003"});db.runCommand( { addshard : "shard4/beta4:60004,beta5:60004,beta1:60004"});db.runCommand( { addshard : "shard5/beta5:60005,beta1:60005,beta2:60005"});db.runCommand({enablesharding:"crawler"})使数据库启用分片db.grantRolesToUser( "admin" , [ { role: "dbOwner", db: "admin" },{role: "dbAdmin", db: "admin"}, {role: "dbAdminAnyDatabase", db: "admin"}])db.grantRolesToUser( "puhui_db" , [ { role: "dbOwner", db: "admin" }])db.grantRolesToUser( "admin" , [ { role: "root", db: "admin" }])db.grantRolesToUser( "admin" , [ { role: "dbOwner", db: "admin" },{role: "dbAdmin", db: "admin"}, {role: "dbAdminAnyDatabase", db: "admin"}])db.grantRolesToUser( "puhui_db" , [ { role: "dbOwner", db: "admin" }])use admindb.createUser({user: "admin",pwd: "puhui_123456",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})db.createUser({user: "puhui_db",pwd: "puhui_123456",roles: [ { role: "readWrite", db: "crawler" } ]})db.runCommand({ shardcollection:"ers",key:{_id:1} }) 使集合users以_id为Sharding Key分片六、添加认证权限kill 掉所有的mongodb服务killall mongodbopenssl rand -base64 741 > mongodb-keyfilechmod 600 mongodb-keyfile添加认证security:keyFile: "/data/cloud/mongodb/key/mongodb-keyfile"clusterAuthMode: "keyFile"authorization: "enabled"七、重新启动重新执行一、二、三步骤db.runCommand({enablesharding:"store"})db.runCommand({ shardcollection:"store.AlipayBankStore",key:{_id:1} })db.runCommand({ shardcollection:"ers",key:{_id:1} }) 使集合users以_id为Sharding Key分片六、添加认证权限kill 掉所有的mongodb服务killall mongodbopenssl rand -base64 741 > mongodb-keyfilechmod 600 mongodb-keyfile添加认证security:keyFile: "/data/cloud/mongodb/key/mongodb-keyfile"clusterAuthMode: "keyFile"authorization: "enabled"七、重新启动重新执行一、二、三步骤Mongos.yaml文件systemLog:destination: file#日志位置path: /data/cloud/logs/mongodb/mongos.loglogAppend: true##网路配置processManagement:fork: truenet:##端口配置port: 60000##分片配置security:keyFile: "/data/cloud/mongodb/key/mongodb-keyfile"clusterAuthMode: "keyFile"# authorization: "enabled"sharding:##指定config serverconfigDB: beta3:60060,beta4:60060,beta5:60060Configsvr.yaml文件systemLog:destination: filepath: "/data/cloud/logs/mongodb/configsvr.log" logAppend: truestorage:journal:enabled: truedbPath: "/data/cloud//mongodb/config/data" processManagement:fork: truenet:#bindIp: 127.0.0.1port: 60060setParameter:enableLocalhostAuthBypass: falsesecurity:keyFile: "/data/cloud/mongodb/key/mongodb-keyfile" clusterAuthMode: "keyFile"authorization: "enabled"sharding:clusterRole: configsvrMongod.yaml 文件systemLog:destination: file###日志存储位置path: /data/cloud/logs/mongodb/mongodb_mongod1.log logAppend: truestorage:##journal配置journal:enabled: true##数据文件存储位置dbPath: /data/cloud/mongodb/mongod1/data##是否一个库一个文件夹directoryPerDB: true##数据引擎engine: wiredTiger##WT引擎配置wiredTiger:engineConfig:##WT最大使用cache(根据服务器实际情况调节)cacheSizeGB: 10##是否将索引也按数据库名单独存储directoryForIndexes: true##表压缩配置collectionConfig:blockCompressor: snappy##索引配置indexConfig:prefixCompression: truenet:port: 60001replication:oplogSizeMB: 1024replSetName: shard1#分片服务器节点类型sharding:clusterRole: shardsvr #configsvrsecurity:keyFile: "/data/cloud/mongodb/key/mongodb-keyfile" clusterAuthMode: "keyFile"authorization: "enabled"processManagement:pidFilePath: /data/cloud/mongodb/mongod1/pid/mongod.pid fork: truesetParameter:enableLocalhostAuthBypass: false。