翻译或纠错本页面

The local Database

概述

每个 mongod 实例拥有其自己的 local 数据库,其中存储了复制进程所用的数据和其他实例单独的信息。 local 数据库对于复制是不可见的。 local 数据库将不会被复制。

在复制中,local 数据库存储了 replica set 内每个节点的复制信息。local 中有如下的集合:

在 2.4 版更改: 当开启了认证( authorization ),对 local 的认证不等效于 admin 数据库的认证。在更早的版本里, local 数据库的认证权限是对所有数据库有效的。

所有 mongod 实例中都有的集合

local.startup_log

在startup阶段,每个 mongod 实例向 startup_log 插入一条有关 mongod 实例自身和host信息的诊断信息。 startup_log 是一个固定集合。该集合主要是用来诊断的。

例子

考虑下列 startup_log 集合的文档:

{
  "_id" : "<string>",
  "hostname" : "<string>",
  "startTime" : ISODate("<date>"),
  "startTimeLocal" : "<string>",
  "cmdLine" : {
        "dbpath" : "<path>",
        "<option>" : <value>
  },
  "pid" : <number>,
  "buildinfo" : {
        "version" : "<string>",
        "gitVersion" : "<string>",
        "sysInfo" : "<string>",
        "loaderFlags" : "<string>",
        "compilerFlags" : "<string>",
        "allocator" : "<string>",
        "versionArray" : [ <num>, <num>, <...> ],
        "javascriptEngine" : "<string>",
        "bits" : <number>,
        "debug" : <boolean>,
        "maxBsonObjectSize" : <number>
  }
}

startup_log 中的文档包含如下项:

local.startup_log._id

包含系统主机名和毫秒值。

local.startup_log.hostname

系统的主机名

local.startup_log.startTime

一个UTC 的 ISODate 值(系统启动时间)。

local.startup_log.startTimeLocal

显示系统本地时区的 startTime 报告。

local.startup_log.cmdLine

An embedded document that reports the mongod runtime options and their values.

local.startup_log.pid

该进程的pid

local.startup_log.buildinfo

有关编译 mongod 的环境信息和设置的子文档。这个和 buildInfo 的输出一样。参见 buildInfo

复制集节点上的集合

local.system.replset

local.system.replset 保存了复制集的配置对象。可以使用 rs.conf() 来查看配置信息。我们可以可以直接查询这个集合。

local.oplog.rs

local.oplog.rs 是一个存储了 oplog`的固定集合。我们可以在启动的时候使用 :setting:`~replication.oplogSizeMB 参数来设置其大小。也可以重新设定其大小通过 修改Oplog大小 中的方法。更多信息请参考 Oplog大小

local.replset.minvalid

包含了复制集内部定位复制集状态的信息。

local.slaves

包含了复制集每个节点和与其通讯的最后时间戳。如果该集合过时了,我们可以通过删除该节点来让复制集自动刷新生成。

主/从模式中的集合

master/slave 中, local 数据库包含如下集合:

  • 在主上:

    local.oplog.$main

    这个是主从配置的oplog。

    local.slaves

    Removed in version 3.0: MongoDB no longer stores information about each slave in the local.slaves collection. Use db.serverStatus( { repl: 1 } ) instead.

  • 在每个从节点上:

    local.sources

    包含了从节点的主节点信息。