你的位置:首页 > 数据库

[数据库]MongoDB碎碎念


1. 如何从备份节点读取数据

    默认是不允许的,会报如下错误:

testReplSet:SECONDARY> show dbs2016-07-19T10:25:03.196+0800 E QUERY  [thread1] Error: listDatabases failed:{ "ok" : 0, "errmsg" : "not master and slaveOk=false", "code" : 13435 } 

  如果要允许备份节点读取数据,需要执行以下命令

db.getMongo().setSlaveOk()

2. 关于备份集

   1> 客户端在单机服务器上执行的操作,都可以发送到主节点执行(读,写,执行命令,创建索引等)

   2> 客户端不能在备份节点上执行写操作

   3> 默认情况下,客户端不能从备份节点读取数据,除非显式地执行了setSlaveOk操作。

   4> 无法将单机服务器转换为副本集,除非关服务重新初始化,所以建议,即使只有一个服务器,也配置成副本集的形式,这样后续添加节点就不需要停服务了。

   5> 副本集中很重要的一个概念是“大多数”:选择主节点需由大多数决定,主节点只有在得到大多数支持时才能继续作为主节点,写操作被复制到大多数成员时这个写操作

       才是安全的。

3. 如何查看服务器的命令行参数

   db.serverCmdLineOpts()

4. too many chunks to print, use verbose if you want to force print

    可通过执行以下命令查看

    printShardingStatus(db.getSisterDB("config"),1);