MongoBD 日常操作小节

一、开启Mongodb 密码验证功能
默认安装完mongodb是不用密码验证的,直接输入mongo就可以登入数据库进行相关操作,设置参数auth=true启动mongodb密码验证功能,开启改功能步骤如下:
①、修改参数文件auth=false,并重启mongodb
②、登入数据库,创建管理员用户(默认是没有管理员账户的)
[root@mongodb ~] # mongo
> user admin
db.createUser(  
  {  
    user: "admin",  
    pwd: "admin",  
    roles: [ { role: "root", db: "admin" } ]  
  }  
) 

db.createUser(  
  {  
    user: "root",  
    pwd: "mongotest",  
    roles: [ { role: "root", db: "admin" } ]  
  }  
) 

③、修改参数文件auth=true,重启数据库,使用admin用户登入数据库
mongo 127.0.0.1:27017/admin(database) -u admin(username)  -p admin(password)
或者
[root@mongodb ~] # mongo
> use admin
> db.auth("admin","admin");

二、用户权限管理

创建user文档,定义了用户的以下形式:
create
{ user: "<name>",
  pwd: "<cleartext password>",
  customData: { <any information> },
  roles: [
    { role: "<role>", db: "<database>" } | "<role>",
    ...
  ]
}

user文档字段介绍:
user字段,为新用户的名字;
pwd字段,用户的密码;
cusomData字段,为任意内容,例如可以为用户全名介绍;
roles字段,指定用户的角色,可以用一个空数组给新用户设定空角色;
在roles字段,可以指定内置角色和用户定义的角色。

1. 数据库用户角色:read、readWrite;
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超级用户角色:root  
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 内部角色:__system

示例:
db.createUser(  
  {  
    user: "admin1",  
    pwd: "admin1",  
    roles: [ 
                { role: "read", db: "mydb" }
              ]  
  }  
) 

db.createUser(  
  {  
    user: "testuser",  
    pwd: "testuser",  
    roles: [ 
                { role: "dbAdmin", db: "admin" },
                { role: "backup", db: "admin" }
              ]  
  }  
) 
db.auth("testuser","testuser");
查找用户信息和删除用户
db.system.users.find();
db.system.users.remove({user:"pmsadapter"});

关闭mongo
mongod  --shutdown  --dbpath /database/mongodb/data/
 > use admin;
switched to db admin

db.shutdownServer();

三、导入导出小结
导出dbname下collectionname 表到 /home/area.dat
mongoexport -d dbname -c collectionname -o /home/area.dat
导入
mongoimport -d dbname -c collectionname /home/area.dat

导出iflashbuy_log数据库/home/my_mongodb_dump
mongodump -d iflashbuy_log -o /home/my_mongodb_dump
恢复数据库
mongorestore -d my_mongodb  /home/my_mongodb_dump








db.createUser( { "user" : "test",
                 "pwd": "test",
                 "customData" : { test:test },
                 "roles" : [ { role: "clusterAdmin", db: "admin" },
                             { role: "readAnyDatabase", db: "admin" },
                             "readWrite"
                             ] }
db.createUser(  
  {  
    user: "admin",  
    pwd: "admin",  
    roles: [ { role: "userAdminAnyDatabase", db: "admin" },
                { role: "userAdminAnyDatabase", db: "admin" } ]  
  }  
)  

db.createUser(  
  {  
    user: "admin1",  
    pwd: "admin1",  
    roles: [ { role: "root", db: "mydb" } ]  
  }  
)  

db.createUser(  
  {  
    user: "admin11",  
    pwd: "admin11",  
    roles: [ { role: "root", db: "mydb" } ]  
  }  
)



db.createUser(  
  {  
    user: "admin2",  
    pwd: "admin2",  
    roles: [ { role: "dbAdmin", db: "mydb" } ]  
  }  
)  


db.createUser(  
  {  
    user: "admin3",  
    pwd: "admin3",  
    roles: [ { role: "readWriteAnyDatabase", db: "mydb" } ]  
  }  
) 

db.createUser(  
  {  
    user: "admin3",  
    pwd: "admin3",  
    roles: [ { role: "dbAdminAnyDatabase", db: "mydb" } ]  
  }  
) 

db.createUser(  
  {  
    user: "admin3",  
    pwd: "admin3",  
    roles: [ { role: "dbAdminAnyDatabase", db: "mydb" } ]  
  }  
) 



db.createUser(  
{  
user: "user001",  
pwd: "user001",  
roles: [ { role: "readWrite", db: "mydb" } ]  
}  
)


>show dbs
local   0.078125GB
ttlsa_com       0.203125GB
>db
ttlsa_com
>db.ttlsa_com.getDB()
ttlsa_com
>show collections
system.indexes
>db.dropDatabase()
{"dropped":"ttlsa_com","ok":1}
>db
ttlsa_com
>show dbs


导出查询结果到excel
mongoexport -d pmsadapterlog-ly -c pms_log_resv -q "{'msgType':'crsnewresv'}" -f crsnum,createTime,usedTime,updateTime --csv -o pms_log_resv20160127.csv



在 从server 上查看主从复制的状态
> db.printReplicationInfo()
this is a slave, printing slave replication info.
source:   10.48.255.244:27017
 syncedTo: Thu Aug 16 2012 18:33:27 GMT+0000 (UTC)
 = 18 secs ago (0.01hrs)
> db.printSlaveReplicationInfo()
source:   10.48.255.244:27017
 syncedTo: Thu Aug 16 2012 18:34:37 GMT+0000 (UTC)
 = 20 secs ago (0.01hrs)


本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。

在Buffer Cache中自动大表缓存 - 2016-08-09 17:08:09

约翰,在A银行做DBA。凯特琳,新的首席技术官,她正在为数据库性能问题由于长的I/O响应时间而沮丧。为了提高性能,她希望增加数据库实例的缓冲区缓存,以便在缓存中缓存更多的数据,从而减少了频繁需要去读磁盘。戴比,系统开发工程师,经历了很多这样的问题在她的职业生涯中,她解释说,“我们的应用有很多全表扫描,数据库的全表扫描使用的是直接路径读取(DPR)在表中的数据块,不做缓冲区高速缓存。”因此,添加物理内存到服务器后,增加缓冲区缓存,是不会帮助,因为缓冲区没有用。应用程序可以通过加hits跳过DPRs,使用缓冲

MySQL案例-mysqld got signal 11 - 2016-08-09 14:08:35

-------------------------------------------------------------------------------------------------正文--------------------------------------------------------------------------------------------------------------- 背景: MySQL-5.7.12, debian 8核16G虚拟机 , 业务方反馈在某一
今天的技术问答是刘晨兄的一个问题,提问来自于我新书中的一个实验,刘晨兄非常认真,对我书中的很多细节都进行了测试。 看到这个错误,如果出现end-of-file这类的错误信息,基本可以断定数据库实例是宕了。 找到刘晨兄提到的页码标示,原来和我书中的测试结果有一些差别。 我书中的结果类似这样的形式: 错误代码也完全不同,这个问题该怎么解释呢,这个应该是一个很细节的问题。 首先网络上关于这个错误有很多种说法,很多我不认同。 我们先来复现一下问题,找了一套11.2.0.3的环境测试了一下。 先初始化数据 然后复现问
【故障处理】分布式事务 ORA-01591 错误解决 1    BLOG 文档结构图       2    前言部分 2.1    导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~ : ①  分布式事务的简单概念         ②  ORA-01591 错误解决   Tips: ① 本文在 ITpub ( http://blog.itpub.net/26736162 )、博客园 ( http://www.cnblogs.com/lh
我们有几个项目使用了Windows Server 2008+ ROSE HA+Oracle 的组合方案,但是最近遇到了一个不大不小的麻烦。 甲方在进行故障测试时,断掉了一个网络交换机 的电源 (共有两个网络交换机,对应两个冗余的业务网络),Oracle服务竟然停止了,导致所有的客户端数据库连接中断。 首先,这个测试结果甲方是无法接受的; 其次,这个结果也出乎我们的意料,在另外一个交换机正常工作的情况下,ROSE HA 停止了 Oracle服务。 那么,如何给甲方一个交代呢?在和 ROSE售后经过多次沟通后,
故障现象: 用服务器上面的(客户端)sql server management  stutio 去连接本服务器上的sql server 数据库,如下图:点击连接不报任何错,就是连接不上,一直处于等待状态; 但是通过windows 身份验证是可以连接的,并且是可以正常操作的,如下图:服务器名字不在是个IP,要选择local. 通过这个现象可判断出 数据库本身的服务(通过任务管理器中也可以看出来)是没有问题,只是连接方面出现问题:网络,端口或者是监听之类的问题。 这是网上查到的一篇文档:经验证我的这里是 没有
《 Oracle DBA 工作笔记》第二章 常用工具和问题分析   一.1    BLOG 文档结构图     一.2    本文简介 建荣的新书《 Oracle DBA 工作笔记》第二章的目录如下图,主要讲解了 SQL*Plus 、 exp/imp 、 expdp/impdp 以及常见的问题分析,第二章的目录如下:     下边小麦苗将自己阅读完第二章后整理的一些内容分享给大家。 一.3    第一章内容修改 一.3.1    删除数据库的几种方式 这个内容是第一章( http://blog.itpub
工作中可能需要某一天各个时间段的ash报告或awr报告,手动一个一个生成太费力了.利用 dbms_workload_repository 包再配合sqlplus的spool 可以使这件事情简单一些. 以下示例: 一.批量生成一天的ash报告 1.生成查询语句 #此处是按照15分钟的间隔时间,生成前一天所有的ash报告  的查询语句 select 'spool ash_'||db_unique_name||'_'||inst_id||'_'||to_char(trunc(sysdate-1)+level/9
分区索引分为本地索引和全局索引,但对于在分区表上建索引,一般用的比较多的还是普通索引和本地分区索引,而全局分区索引相对用的比较少. 以下测试为验证:分区表上 的本地分区索引 因为查询条件引起跨分区,是否改为普通索引更合适. 以下测试: oracle version:11.2.0.4 建测试表: drop table SCOTT.TB_TEST01; create table SCOTT.TB_TEST01 partition by range (CREATED) (   partition P_2015
关于半自动化搭建Data Guard,自己花了一些时间,总算是把这件事情继续推进了一下,还是再啰嗦一句,为什么不自动化,因为安全。主库就是主库,任何变更都要手工检查审核,自动化的工作在备库和中控端来完成。我希望自己的脚本能够只知道主库的IP,不用一次又一次连过去配置和检查,当然要完成自动化还是半自动化,有些网友也提醒的极是,那就是规范和标准。 预先条件: 1.目前的设计是基于11.2.0.4的版本,当然这个很容易定制,在此是作为一个基本的标准,作为环境的初始化和Data Guard对的搭建的基线。 2.默认