mongodb管理命令

1.复制集合(collection)
1)从远端mongodb复制
# mongo 10.10.10.2:27017/db_test -u "test" -p "test"
> db.tab1.find();
> db.tab1.getIndexes();

# mongo
> use db_test
> db.tab1.find();
> db.tab1.getIndexes();

> db.runCommand(cloneCollection:"db_test.tab1",from:"10.10.10.2:27017");
--注:
  1)默认复制集合中的所有数据和索引,并将数据和索引附加于本地集合.
> db.runCommand(cloneCollection:"db_test.tab1",from:"10.10.10.2:27017",copyIndexes:false);
--注:
  1)上述命令设置为只复制集合数据,而并不复制集合上的索引.

> db.tab1.find();
> db.tab1.getIndexes();

2)从本地mongodb复制
# mongo
> use db_test
> db.tab1.find().forEach(function(x){db.tab2.insert(x)});

2.复制数据库(database)
1)从远端mongodb复制
# mongo 10.10.10.2:27017/db_test -u "test" -p "test"
> show dbs;
> use db_test1
> show collections;

# mongo
> show dbs;

> db.copyDatabase("db_test1","db_test1","10.10.10.2:27017","test","test");

2)从本地mongodb复制
# mongo
> show dbs;

> db.copyDatabase("db_test1","db_test2");

3.刷新磁盘
--将内存数据与磁盘同步,期间,会阻止写操作,但允许读操作.
# mongo
> use admin
--同步刷新
> db.runCommand({fsync:1});
--异步刷新
> db.runCommand({fsync:1,async:true});

--备份前刷新并显示锁住库
> use admin
> db.runCommand({fsync:1,lock:1});
> db.cuurentOp();
--执行数据库备份
--备份后解锁数据库
> db.$cmd.sys.unlock.findOne();
> db.currentOp();

4.捕获异常
1)返回异常信息
# mongo
> db.getLastError();

2)确认复制信息
# mongo
--确保之前的操作已被复制到包括主库在内的两个成员库上
# db.runCommand( { getLastError: 1, w: 2, wtimeout:5000 } )

5.进程监控
1)查看活动进程
# mongo
> db.currentOp();
> db.$cmd.sys.inprog.findOne();
--注(输出结果):
  1)opid:操作进程号.
  2)op:操作类型(读写).
  3)ns:操作数据库及集合.
  4)query:查询内容和条件.
  5)inLock:锁类型.-1:读锁;0:无锁;1:写锁.
2)结束进程
# mongo
> db.killOp(shard1:188);
> db.$cmd.sys.killop.findOne({op:188});

6.验证集合(collection)
# mongo
> use db_test
> db.tab1.validate();

--注(输出结果):
  1)ns:校验的数据库和集合名.
  2)result:校验结果的详细信息.
  3)ok:命令执行状态.1:成功.
  4)valid:校验结果,true为集合有效.
  5)lastExtentSize:集合最后一个extent的大小.
 
7.数据压缩
# mongo
> db.tab1.totalSize();
> db.repairDatabase();
> db.tab1.totalSize();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lhdz_bj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值