介绍:

分片(sharding)是指将数据库拆分,将其分散在不同的机器上的过程。将数据分散到不同的机器上,不需要功能强大的服务器就可以存储更多的数据和处理更大的负载。基本思想就是将集合切成小块,这些块分散到若干片里,每个片只负责总数据的一部分,最后通过一个均衡器来对各个分片进行均衡(数据迁移)。通过一个名为mongos的路由进程进行操作,mongos知道数据和片的对应关系(通过配置服务器)。大部分使用场景都是解决磁盘空间的问题,对于写入有可能会变差(+++里面的说明+++),查询则尽量避免跨分片查询。使用分片的时机:
Shard Server: mongod 实例,用于存储实际的数据块,实际生产环境中一个shard server角色可由几台机器组个一个relica set承担,防止主机单点故障;
Config Server: mongod 实例,存储了整个 Cluster Metadata,其中包括 chunk 信息。
Route Server: mongos 实例,前端路由,客户端由此接入,且让整个集群看上去像单一数据库,前端应用可以透明使用

主机规划:

IP地址实例(端口)实例(端口)实例(端口)实例(端口)实例(端口)
192.168.2.3mongos(27107)configsvr(20000)shard1(27018)shard2(27019)shard3(27020)
192.168.2.4mongos(27107)configsvr(20000)shard1(27018)shard2(27019)shard3(27020)
192.168.2.5mongos(27107)configsvr(20000)shard1(27018)shard2(27019)shard3(27020)

目录创建:

在每台服务器创建对应的目录

mkdir -p /data/mongodb/{share1,share2,share3}/db
mkdir -p /data/mongodb/mongos/db
mkdir -p /data/mongodb/configsvr/db
mkdir -p /data/mongodb/{conf,logs}

创建配置文件:

touch /data/mongodb/conf/configsvr.conf 
touch /data/mongodb/conf/mongos.conf 
touch /data/mongodb/conf/shard1.conf 
touch /data/mongodb/conf/shard2.conf 
touch /data/mongodb/conf/shard3.conf

配置文件详情:

官网连接 :https://docs.mongodb.com/manual/reference/configuration-options/
configsvr.conf

 systemLog:
     destination: file
     logAppend: true
     path: /data/mongodb/logs/configsvr.log
 storage:
     dbPath: /data/mongodb/configsvr/db
     journal:
         enabled: true
 processManagement:
    fork: true 
    pidFilePath: /data/mongodb/configsvr/configsvr.pid
net:
    port: 20000
    bindIp: 0.0.0.0 
replication:
    replSetName: config
sharding:
    clusterRole: configsvr

shard1.conf

systemLog:
    destination: file
    logAppend: true
    path: /data/mongodb/logs/shard1.log
storage:
    dbPath: /data/mongodb/shard1/db
    journal:
        enabled: true
processManagement:
    fork: true 
    pidFilePath: /data/mongodb/shard1/shard1.pid
net:
    port: 27018
    bindIp: 0.0.0.0 
replication:
    replSetName: shard1
sharding:
    clusterRole: shardsvr

shard2.conf

systemLog:
    destination: file
    logAppend: true
    path: /data/mongodb/logs/shard2.log
storage:
    dbPath: /data/mongodb/shard2/db
    journal:
        enabled: true
processManagement:
    fork: true 
    pidFilePath: /data/mongodb/shard2/shard2.pid
net:
    port: 27019
    bindIp: 0.0.0.0 
replication:
    replSetName: shard2
sharding:
    clusterRole: shardsvr

shard3.conf

systemLog:
    destination: file
    logAppend: true
    path: /data/mongodb/logs/shard3.log
storage:
    dbPath: /data/mongodb/shard3/db
    journal:
        enabled: true
processManagement:
    fork: true 
    pidFilePath: /data/mongodb/shard3/shard3.pid
net:
    port: 27020
    bindIp: 0.0.0.0 
replication:
    replSetName: shard3
sharding:
    clusterRole: shardsvr

mongos.conf

systemLog:
    destination: file
    logAppend: true
    path: /data/mongodb/logs/mongos.log
processManagement:
    fork: true 
    pidFilePath: /data/mongodb/mongos/mongos.pid
net:
    port: 27017
    bindIp: 0.0.0.0 
sharding:
    configDB: config/192.168.2.3:20000,192.168.2.4:20000,192.168.2.5:20000

启动命令:

/data/mongodb/bin/mongod -f /data/mongodb/config/configser.conf #
/data/mongodb/bin/mongod -f /data/mongodb/config/shard1.conf #启动分片1
/data/mongodb/bin/mongod -f /data/mongodb/config/shard2.conf #启动分片2
/data/mongodb/bin/mongod -f /data/mongodb/config/shard3.conf #启动分片3
/data/mongodb/bin/mongos -f /data/mongodb/config/mongos.conf #

停止命令:

killall mongod  #停止config 和shard 
killall mongos  #停止 mongos

连接 shard1

/data/mongodb/bin/mongo 192.168.2.3:27018
执行

rs.initiate({
  "_id":"shard1",
  "members":[
  {
  "_id":0,
  "host":"192.168.2.3:27018"
  },
  {
  "_id":1,
 "host":"192.168.2.4:27018"
 },
 {
 "_id":2,
 "host":"192.168.2.5:27018"
 }
 ]
 })

连接 shard2
/data/mongodb/bin/mongo 192.168.2.3:27019
执行

rs.initiate({
 "_id":"shard2",
 "members":[
 {
 "_id":0,
 "host":"192.168.2.3:27019"
 },
 {
 "_id":1,
"host":"192.168.2.4:27019"
},
{
"_id":2,
"host":"192.168.2.5:27019"
}
]
})

连接 shard3
/data/mongodb/bin/mongo 192.168.2.3:27020
执行

 rs.initiate({
 "_id":"shard3",
 "members":[
 {
 "_id":0,
 "host":"192.168.2.3:27020"
 },
 {
 "_id":1,
"host":"192.168.2.4:27020"
},
{
"_id":2,
"host":"192.168.2.5:27020"
}
]
})

连接 config
/data/mongodb/bin/mongo 192.168.2.3:20000

 rs.initiate({
 "_id":"config",
 "members":[
 {
 "_id":0,
 "host":"192.168.2.3:20000"
 },
 {
 "_id":1,
"host":"192.168.2.4:20000"
},
{
"_id":2,
"host":"192.168.2.5:20000"
}
]
})

连接 mongos 添加路由
/data/mongodb/bin/mongo 192.168.2.3:27017

sh.addShard("shard1/192.168.2.3:27018,192.168.2.4:27018,192.168.2.5:27018")
sh.addShard("shard2/192.168.2.3:27019,192.168.2.4:27019,192.168.2.5:27019")
sh.addShard("shard3/192.168.2.3:27020,192.168.2.4:27020,192.168.2.5:27020")

查看状态

mongos> sh.status()
--- Sharding Status --- 
  sharding version: {
      "_id" : 1,
      "minCompatibleVersion" : 5,
      "currentVersion" : 6,
      "clusterId" : ObjectId("5e0995613452582938deff4f")
  }
  shards:
        {  "_id" : "shard1",  "host" : "shard1/192.168.2.3:27018,192.168.2.4:27018,192.168.2.5:27018",  "state" : 1 }
        {  "_id" : "shard2",  "host" : "shard2/192.168.2.3:27019,192.168.2.4:27019,192.168.2.5:27019",  "state" : 1 }
        {  "_id" : "shard3",  "host" : "shard3/192.168.2.3:27020,192.168.2.4:27020,192.168.2.5:27020",  "state" : 1 }
  active mongoses:
        "3.6.3" : 1
  autosplit:
        Currently enabled: yes
  balancer:
        Currently enabled:  yes
        Currently running:  no
        Failed balancer rounds in last 5 attempts:  5
        Last reported error:  Could not find host matching read preference { mode: "primary" } for set shard1
        Time of Reported error:  Mon Dec 30 2019 14:30:41 GMT+0800 (CST)
        Migration Results for the last 24 hours: 
                No recent migrations
  databases:
        {  "_id" : "config",  "primary" : "config",  "partitioned" : true }
                config.system.sessions
                        shard key: { "_id" : 1 }
                        unique: false
                        balancing: true
                        chunks:
                                shard1    1
                        { "_id" : { "$minKey" : 1 } } -->> { "_id" : { "$maxKey" : 1 } } on : shard1 Timestamp(1, 0) 
        {  "_id" : "dfcx_test",  "primary" : "shard2",  "partitioned" : false }
        {  "_id" : "test",  "primary" : "shard1",  "partitioned" : false }

mongodb 6.0 以后的版本连接客户端mongosh需要单独下载使用

下载地址
在这里插入图片描述

初始化用户

接入其中一个mongos实例,添加管理员用户

use admin
db.createUser({user:'admin',pwd:'admin',roles:['clusterAdmin','dbAdminAnyDatabase','userAdminAnyDatabase','readWriteAnyDatabase']})
  # 查看用户 在 admin库
db.system.users.find().pretty()
  #授权库账号
use df_test
db.createUser({user:'df_test',pwd:'admin',roles:['readWrite']})
  #修改权限
db.updateUser("usertest",{roles:[ {role:"read",db:"testDB"} ]})
  注:updateuser它是完全替换之前的值,如果要新增或添加roles而不是代替它 
  #修改密码
db.updateUser("usertest",{pwd:"changepass1"})

role角色:
数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
备份恢复角色:backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root
内部角色:__system
角色说明:
read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
dbOwner: readWrite + dbAdmin + dbAdmin

MongoDB管理用户的认证机制拓展内容

在这里插入图片描述

数据操作

在案例中,创建appuser用户、为数据库实例df_test启动分片。

use df_test
db.createUser({user:'appuser',pwd:'AppUser@01',roles:[{role:'dbOwner',db:'df_test'}]}) 
sh.enableSharding("df_test")     #开启分片

创建集合userid,为其执行分片初始化。

use df_test
db.createCollection("users")
db.users.ensureIndex({userid:1}) 创建索引,
sh.shardCollection("dfcx_test.users",{userid:1}) 同时为集合指定片键
sh.shardCollection("dfcx_test.users.users", {users:"hashed"}, false, { numInitialChunks: 4} ) (添加参数,可以执行4 和5任意一个)

插入测试数据

mongos> for(var i=1;i<1000000;i++) db.users.insert({userid:i,username:"HSJ"+i,city:"beijing"})
mongos> for(var i=1;i<1000000;i++) db.users.insert({userid:i,username:"HSJ"+i,city:"tianjing"})

查看状态

sh.status()
--- Sharding Status --- 
  sharding version: {
      "_id" : 1,
      "minCompatibleVersion" : 5,
      "currentVersion" : 6,
      "clusterId" : ObjectId("5e0995613452582938deff4f")
  }
  shards:
        {  "_id" : "shard1",  "host" : "shard1/192.168.2.3:27018,192.168.2.4:27018,192.168.2.5:27018",  "state" : 1 }
        {  "_id" : "shard2",  "host" : "shard2/192.168.2.3:27019,192.168.2.4:27019,192.168.2.5:27019",  "state" : 1 }
        {  "_id" : "shard3",  "host" : "shard3/192.168.2.3:27020,192.168.2.4:27020,192.168.2.5:27020",  "state" : 1 }
  active mongoses:
        "3.6.3" : 1
  autosplit:
        Currently enabled: yes
  balancer:
        Currently enabled:  yes
        Currently running:  yes
        Collections with active migrations: 
                dfcx_test.users started at Thu Jan 02 2020 14:35:34 GMT+0800 (CST)
        Failed balancer rounds in last 5 attempts:  4
        Last reported error:  Could not find host matching read preference { mode: "primary" } for set shard1
        Time of Reported error:  Mon Dec 30 2019 14:32:41 GMT+0800 (CST)
        Migration Results for the last 24 hours: 
                1 : Success
  databases:
        {  "_id" : "config",  "primary" : "config",  "partitioned" : true }
                config.system.sessions
                        shard key: { "_id" : 1 }
                        unique: false
                        balancing: true
                        chunks:
                                shard1    1
                        { "_id" : { "$minKey" : 1 } } -->> { "_id" : { "$maxKey" : 1 } } on : shard1 Timestamp(1, 0) 
        {  "_id" : "dfcx_test",  "primary" : "shard2",  "partitioned" : true }
                dfcx_test.users
                        shard key: { "userid" : 1 }
                        unique: false
                        balancing: true
                        chunks:
                                shard1    1
                                shard2    3
                        { "userid" : { "$minKey" : 1 } } -->> { "userid" : 2 } on : shard1 Timestamp(2, 0) 
                        { "userid" : 2 } -->> { "userid" : 500002 } on : shard2 Timestamp(2, 1) 
                        { "userid" : 500002 } -->> { "userid" : 750003 } on : shard2 Timestamp(1, 3) 
                        { "userid" : 750003 } -->> { "userid" : { "$maxKey" : 1 } } on : shard2 Timestamp(1, 4) 
        {  "_id" : "test",  "primary" : "shard1",  "partitioned" : false }

mongodb 生产开启 keyfile安全认证以及用户权限

keyfile是mongodb副本集的实例之间的权限认证,如果keyfile文件内容不同,那么该实例添加到副本集的时候,会出现不可达的状态

创建副本集认证key文件

1、创建key文件: 注意,三个节点必须要用同一份keyfile,在一台机器生成,拷贝到另外两台,并且修改成 600 的文件属性

openssl rand -base64 90 -out ./keyfile
cp keyfile /data/mongodb/conf
chmod 600 /data/mongodb/keyfile  

2.在每个配置文件里添加配置
config 和shard 添加:

security:
  keyFile: /data/mongodb/conf/keyfile
  authorization: enabled

mongos 添加

security:
  keyFile: /data/mongodb/conf/keyfile

3.重启集群

3.重启集群

查看文档:https://www.cnblogs.com/kevingrace/p/8178549.html

生产环境部署MongoDB副本集(带keyfile安全认证以及用户权限)
配置文件(拓展内容)

systemLog:
	#MongoDB发送所有日志输出的目标指定为文件
	# #The path of the log file to which mongod or mongos should send all diagnostic 										logging information
	destination: file
	#mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
	path: "/mongodb/single/log/mongod.log"
	#当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。
	logAppend: true
storage:
	#mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。
	##The directory where the mongod instance stores its data.Default Value is 	"/data/db".
	dbPath: "/mongodb/single/data/db"
	journal:
	#启用或禁用持久性日志以确保数据文件保持有效和可恢复。
		enabled: true
processManagement:
	#启用在后台运行mongos或mongod进程的守护进程模式。
	fork: true
net:
	#服务实例绑定的IP,默认是localhost
	bindIp: localhost,192.168.0.2
	#bindIp
	#绑定的端口,默认是27017
	port: 27017

MongoDB配置文件详解

#Mongod config file  # Mongod配置文件
#MongoDB configuration files use the YAML format.  # MongoDB配置文件使用YAML格式
#The following example configuration file contains several mongod settings. # 下面的示例配置文件包含几个mongod设置
#
########Example Start(示例开始)########
#systemLog:  # 系统日志配置
#   destination: file  # 日志输出的目的地,file | syslog,如果指定file,必须指定systemlog.path
#   path: "/var/log/mongodb/mongodb.log" # 日志路径
#   logAppend: true # 写日志的模式,ture:追加 | false:覆盖(默认)。ture:实例重启时,在老的日志文件末尾继续添加
#storage: 
#   journal:
#      enabled: true  # 是否开启journal日志持久存储,journal日志用来数据恢复,通常用于故障恢复。64位默认true,32位默认false,建议开启,仅对mongod进程有效。
#processManagement:
#   fork: true  # 是否守护进程在后台运行
#net:
#   bindIp: 127.0.0.1  # 绑定Ip
#   port: 27017 # 监听端口号
#setParameter:
#   enableLocalhostAuthBypass: false # 本地主机绕过身份验证,0或false:禁止,1或true:启动(默认)
#
########Example End(示例结束)########
#
########Core Options
systemLog: # 日志相关参数
#   verbosity: 0    # 日志级别  默认值0,包含"info"信息,大于0的值,会包含debug信息
#   quiet: <boolean>  # 是否减少日志的输出量,不建议在生成环境下开启,跟踪错误比较困难
#   traceAllException: <boolean>  # 打印调试详细信息,用于支持相关的故障排除的附加日志
#   syslogFacility: user  # 用于登录时信息到syslog Facility水平,指定的值必须由你的操作系统实现支持syslog。要使用此选项,您必须启用–syslog
   path: "/data/mongodb/data/conf/mongodb.log"  # 日志路径
   logAppend: true   # 写日志的模式
#   logRotate: <string>    # 日志回转,防止一个日志文件特别大  rename: 重命名日志文件 | reopen:使用Linux日志rotate特性,关闭并重新打开此日志文件,可以避免日志丢失,但是logAppend必须为true
   destination: file  # 日志输出的目的地
#   timeStampFormat: iso8601-local # 指定日志格式的时间戳格式
#   component: # 为不同的组件指定各自的日志信息级别
#      accessControl:
#         verbosity: 0
#      command:
#         verbosity: 0
#      # COMMENT additional component verbosity settings omitted for brevity
#      storage:
#         verbosity: 0
#         journal:
#            verbosity: <int>
#      write:
#         verbosity: 0
#
#
########ProcessManagement Options
processManagement: # 进程相关参数
   fork: true  # 是否守护进程在后台运行
   pidFilePath: "/data/mongodb/data/conf/mongod.pid" # fork为true时,将mongod/mongos进程ID写入指定的文件,如果不指定,将不会创建PID文件
#
#
#########Net Options
net:  # 网络相关参数
   port: 27020    # 监听端口号
   bindIp: 0.0.0.0   # mongod/monogs进程绑定的IP
#   maxIncomingConnections: 65536 # mongod/mongos进程允许的最大连接数
#   wireObjectCheck: true  # 客户端写入数据时,mongos/mongod检测数据的有效性(BSON),如果数据格式不良,此insert、update操作将会被拒绝;默认值为true。
#   ipv6: false # 是否支持ipv6
#   unixDomainSocket: # 适用于Unix系统,启用或禁用监听Unix域的套接字
#      enabled: true
#      pathPrefix: "/tmp"
#      filePermissions: 0700
#   http:  # http相关
#      enabled: false
#      JSONPEnabled: false
#      RESTInterfaceEnabled: false
#   ssl: # ssl相关
#      sslOnNormalPorts: <boolean>  # deprecated since 2.6
#      mode: <string>
#      PEMKeyFile: <string>
#      PEMKeyPassword: <string>
#      clusterFile: <string>
#      clusterPassword: <string>
#      CAFile: <string>
#      CRLFile: <string>
#      allowConnectionsWithoutCertificates: <boolean>
#      allowInvalidCertificates: <boolean>
#      allowInvalidHostnames: false
#      FIPSMode: <boolean>
#
#
########security Options
security: # 安全相关参数
   keyFile:  /data/mongodb/data/keyfile/security  # 对于副本集模式,指定副本集节点间身份验证密钥文件的路径,注意这个只是副本集节点间的认证,跟Mongodb认证和授权不是一回事
   clusterAuthMode: keyFile
   authorization: enabled # 开启或关闭副本集模式下的MongoDB认证功能
   #javascriptEnabled:  true
########security.sasl Options
#   sasl:
#      hostName: <string>
#      serviceName: <string>
#      saslauthdSocketPath: <string>
#
#
#########setParameter Option
setParameter: # 自定义变量
   enableLocalhostAuthBypass: false  # 本地主机绕过身份验证
#   <parameter1>: <value1>
#   <parameter2>: <value2>
#
#
#########storage Options
storage: # 存储引擎相关参数
   dbPath: "/data/mongodb/data/conf"  # mongod进程存储数据目录,此配置仅对mongod进程有效
#   indexBuildRetry: true # 当构建索引时mongod意外关闭,再次启动是否重新构建索引,默认值为true
#   repairPath: "/data/db/_tmp" # 配合–repair启动命令参数,在repair期间使用此目录存储临时数据,repair结束后此目录下数据将被删除,此配置仅对mongod进程有效(不建议在配置文件中配置,而是使用mongod启动命令指定)
#   journal:
#      enabled: true # 是否开启journal日志持久存储,journal日志用来数据恢复,通常用于故障恢复。64位默认true,32位默认false,建议开启,仅对mongod进程有效。
#   directoryPerDB: false # 是否将不同DB的数据存储在不同的目录中,dbPath的子目录,目录名为db的名称
#   syncPeriodSecs: 60 # mongod使用fsync操作将数据flush到磁盘的时间间隔,默认值为60s,强烈建议不要修改此值
   engine: "wiredTiger"  # mongodb数据库的存储引擎,wiredTiger存储引擎(3.2开始默认使用)
#########storage.mmapv1 Options
#   mmapv1: # mmapv1存储引擎相关参数
#      preallocDataFiles: true
#      nsSize: 16
#      quota:
#         enforced: false
#         maxFilesPerDB: 8
#      smallFiles: false
#      journal:
#         debugFlags: <int>
#         commitIntervalMs: 100   # 100 or 30
#########storage.wiredTiger Options
#   wiredTiger: # wiredTiger存储引擎相关参数
#      engineConfig:
#         cacheSizeGB: <number>  # 使用所有数据的最大缓存大小,wiredTiger缓存工作集数据的内存大小,单位:GB
#         statisticsLogDelaySecs: 0  # 默认值设置为0,wiredtiger不做日志统计
#         journalCompressor: "snappy" # journal日志的压缩算法,可选值为"none"、"snappy"(默认)、"zlib"。
#         directoryForIndexes: false  # 是否将索引和collections数据分别存储在dbPath单独的目录中。即index数据保存"index"子目录,collections数据保存在"collection"子目录。默认值为false,仅对mongod有效。
#      collectionConfig:
#         blockCompressor: "snappy"  # collection数据压缩算法,可选值"none"、"snappy"、"zlib"。
#      indexConfig:
#         prefixCompression: true # 是否对索引数据使用"前缀压缩"(prefix compression,一种算法)。
#
#
##########operationProfiling Options
#operationProfiling: # 慢查询相关参数
#   slowOpThresholdMs: 100 # 判定一个操作是“慢查询”的时间阀值,单位毫秒
#   mode # 操作的性能信息将会被写入日志文件中,off:关闭、slowOp:on,只包含慢操作日志、all:on,记录所有操作。
 
数据库profiling会影响性能,建议只在性能调试阶段开启。此参数仅对mongod有效。
 
#########replication Options
replication:  # 复制集相关参数
#   oplogSizeMB: <int>  # replication操作日志的最大尺寸,单位:MB
   replSetName: cfgsvr  # "复制集"的名称,复制集中的所有mongd实例都必须有相同的名字,sharding分布式下,不同的sharding应该使用不同的replSetName。仅对mongod有效。
#   secondaryIndexPrefetch: all # 默认值all,复制集中的secondary
#
#
##########sharding Options
sharding: # 分片相关参数
   clusterRole: configsvr    # 在sharding集群中,此mongod实例的角色,可选值:configsvr-->config server,默认侦听27019端口;shardsvr-->sharding(分片),默认侦听27018端口
                             # --此配置仅对mongod有效。通常config server和sharding server需要使用各自的配置文件。
#   archiveMovedChunks: True # 当chunks因为"负载平衡"而迁移到其他节点时,mongod是否将这些chunks归档,并保存在dbPath下"moveChunk"目录下,mongod不会删除moveChunk下的文件。默认为true。
#
#
#########auditLog Options
#auditLog: # 审计相关参数
#   destination: <string>   # 开启审计,需指定审计记录的输出方式 syslog | console | file
#   format: <string>   # 目标文件的输出文件格式  JSON | BSON
#   path: <string>   # 如果审计时间输入为文件,那么这里就需要指定文件的完整路径及文件名
#   filter: <string> # 过滤器,可以限制审计系统记录的操作类型
#
#
#########snmp Options
#snmp: # SNMP监控相关参数
#   subagent: <boolean>
#   master: <boolean>
#
#
########mongos-only Options 
## mongos配置文件的单独设置
#replication:  
#   localPingThresholdMs: 15
#
#sharding:
#   autoSplit: true
#   configDB: 10.50.16.34:27017,10.50.16.35:27017,10.50.16.36:27017,10.50.16.18:27017 # 监听的配置服务器,只能有1个或者3个。configs为配置服务器的副本集名字
#   chunkSize: 64
#
#
########Windows Service Options
## windows系统设置
#processManagement:
#   windowsService:
#      serviceName: <string>
#      displayName: <string>
#      description: <string>
#      serviceUser: <string>
#      servicePassword: <string>

mongodb常用命令

db.collectionName.getShardDistribution() #可以查看数据分布
db.collectionName.stats().sharded #简单的返回true或者false
sh.status() #查看分片状态


Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐