zoukankan      html  css  js  c++  java
  • mongodb指南(翻译)(九) developer zone 数据库之命令(四)

     

    验证命令

    使用这个命令检查一个集合是否合法(没有错误)并且获取很多统计信息。

    该命令扫描整个集合和它的索引,在大的数据集上会很慢。

    从mongo shell操作:

    > db.foo.validate()
    {"ns" : "test.foo" , "result" : "
    validate
    details: 08D03C9C ofs:963c9c
    firstExtent:0:156800 ns:test.foo
    lastExtent:0:156800 ns:test.foo
    # extents:1
    datasize?:144 nrecords?:3 lastExtentSize:2816
    padding:1
    first extent:
    loc:0:156800 xnext:null xprev:null
    ns:test.foo
    size:2816 firstRecord:0:1568b0 lastRecord:0:156930
    3 objects found, nobj:3
    192 bytes data w/headers
    144 bytes data wout/headers
    deletedList: 0000000100000000000
    deleted: n: 1 size: 2448
    nIndexes:1
    test.foo.$x_1 keys:3
    " , "ok" : 1 , "valid" : true , "lastExtentSize" : 2816}

    从一个驱动你可以调用类似于这样的驱动函数:

    > db.$cmd.findOne({validate:"foo" } );

    validate携带一个可选的扫描数据参数,跳过基本集合的扫描(但是依旧会扫描索引)。

    > db.$cmd.findOne({validate:"foo", scandata:true});

    这是一个阻塞型操作(类似于repaireDatabase)。

    Windows服务

    在windows平台,对mongodb.exe安装并作为服务来运行有着内部支持。

    服务相关命令

    服务相关的命令有:

    mongod --install
    mongod --service
    mongod --remove
    mongod --reinstall

    你可以传递下面的选项给--install 和 --reinstall

    --serviceName {arg}
    --serviceUser {arg}
    --servicePassword {arg}

    --install 和--remove选项是分别将mongo守护作为windows服务安装和移除的。--service选项启动这个服务。--reinstall尝试移除该服务,然后再安装它。如果该服务器并没有安装,--reinstall还是可以正常工作。

    如果该服务正在运行的话, --remove和--reinstall都会停止这个服务。

    使用--serviceName改变服务的名称。要使mongo相对于本地系统账户作为本地或者域用户运行,使用--serviceUser和--servicePassword.

    无论你在mongod的命令行--install旁边传递了什么其他参数,这些参数都将配置给mongod.exe运行时使用。使用下面的命令行作为例子(这些参数并不是让mongod作为服务运行的必须参数):

    mongod --logpath d:\mongo\logs --logappend --dbpath d:\mongo\data --directoryperdb --install

    执行下面的例子可以触发一个名为Mongo的服务启动:

    mongod --logpath d:\mongo\logs --logappend --dbpath d:\mongo\data --directoryperdb

    在windows7安装

    如果在windows7安装,你需要确保你是作为管理员来运行的。要确认这一点,请打开开始菜单,在搜索框中输入"cmd.exe",当执行页面出现后,在上面右击并选择“作为管理员运行”。

    到了这一步,你可以按照上面描述的使用--install将Mongodb作为服务安装。

    mongos作为windows服务运行

    此时(至少在1.8.x),mongos并不支持直接安装成服务。但是,使用windows资源套件,你可以配置一个windows主机将mongos作为系统启动项来启动。(使用mongodb 1.8.1在windows测试通过)

    1. 假定你的mongos配置文件在c:\MongoDB\mongos.conf,并且你已经测试过它可以工作。
    2. 使用管理员身份启动cmd.exe
    3. 安装srvany.exe为一个服务,类似这样:C:\Program Files\Windows Resource Kits\Tools>"C:\Program Files\Windows Resource
      Kits\Tools\instsrv.exe" mongos "C:\Program Files\Windows Resource Kits\Tools\srvany.exe",输出类似于:
      The service was successfuly added\!
      Make sure that you go into the Control Panel and use
      the Services applet to change the Account Name and
      Password that this newly installed service will use
      for its Security Context.
    4. 启动regedit.exe
    5. 找到子键
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mongos
    6. 右击mongos,选择新建>关键字。为关键字参数命名。
    7. 选择参数关键字。
    8. 在右侧窗口右击,选择新建>字符串值。为新应用命名。
    9. 修改应用的值为mongos.exe的全路径(例如:c:\mongodb\bin\mongs.exe)。
    10. 在右侧窗口再次右击。选择新建>字符串值,为新应用参数命名。
    11. 修改应用参数为mongos的参数(例如:--config c:\mongodb\mongos.conf)。
    12. 使用"NET START mongos"检查该服务是否可以启动。

    mongo元数据

    在mongodb中的<数据库名称>.system.*命名空间是特殊的并且包含了数据库系统信息。系统集合包含:

    • system.namespaces列出所有命名空间
    • system.indexes列出所有索引
    • 附加的命名空间/索引元数据存储在database.ns文件中,并且是不透明的。
    • system.profile存储数据库评测信息。
    • system.users列出可以访问该数据库的用户
    • local.sources存储复制组从节点配置数据和状态。
    • 存储的对象的结构细心。

    这里有一些处理系统集合中的对象的限制。对system.indexes进行插入会添加一个索引,但是除此之外这个表是不可更改的(特殊的丢弃索引命令可以帮你对他做更新)。system.users是可以更改的。system.profile是可以丢弃的。

    注意:$是一个保留的字符。不要在命名空间或者内部字段名称中使用它。表示索引的内部集合在他们的名称中使用$. 这些集合存储b-tree块数据并且没有使用BSON格式(此时直接查询是不可以的)。


  • 相关阅读:
    PHP+shell实现多线程的方法
    【JavaScript】一个同步于本地时间的动态时间
    void 0 或者 undefined
    Android Activity间动画跳转
    如何申请微信公众平台接口測试帐号
    hdu 4862 KM算法 最小K路径覆盖的模型
    【Unity 3D】学习笔记三十三:游戏元素——天空盒子
    cocos2d-x-lua基础系列教程五(lua单例)
    技术走向管理一些思考(7)-激励成员
    Runtime.getRuntime().exec()----记录日志案例
  • 原文地址:https://www.cnblogs.com/xinghebuluo/p/2277039.html
Copyright © 2011-2022 走看看