MongoDB 运维常用操作

MongoDB 运维常用操作  
 
分析方法:    
1. 通过top、free、iostat、iftop等工具查看Linux服务器平均负载、CPU利用率、IO、内存、swap、网络流量等,先定位到压力源头。

2. 通过mongostat、mongotop等分析MongoDB读写压力。观察Page Faults、Connections、Queues等性能指标。

3. 日志中默认记录超过100ms的请求,过滤出Overflow查询,再使用Mtools跟踪分析MongoDB日志文件中的慢查询语句。若是语句问题,可从日志定位到出现性能问题时刻的源头语句。

常用操作:  
1. 重启服务

#service mongod restart

2. 跟踪日志分析查询

$tail -f /var/log/mongodb/mongod.log

3. 分析当前读写状态

$mongostat -uxucy -p

4. 查看数据库状态

>db.serverStatus()

5. 查看数据库连接数

>db.serverStatus().connections

6. 查看复制集状态

>rs.status()

7. 手动降级实例

>rs.stepDown(30)

8. 查看当前执行活跃查询

>db.currentOp();

9. 杀掉正在执行的操作

>db.killOp("shard3:466404288");

10. 分析查询语句的执行计划

>db.Product.find({"_id": 10086}).explain().pretty();

11. 在后台创建索引

>db.Product.ensureIndex({ "Category": 1, "Status": 1}, { background: 1 });

12. 数据导出

$ mongoexport -u xucy -p --authenticationDatabase admin -d DBName -c Product -q ‘{"AddDate":{"$gte":new Date(1445558400000),"$lte":new Date(1445731200000)}}‘ -f "_id,AddDate,Status" -o Product_20151026.json

13. 数据导入

$mongoimport -h 192.168.1.101 -u xucy -p -d DBName --authenticationDatabase admin -c datacontent datacontent_bak.json

14. 数据库/表备份

$ mongodump --authenticationDatabase admin -uxucy -p --db DBName -o /disk1/mongobackup/DBName_fullbackup_20150917

15. 数据库/表恢复

$ mongorestore --authenticationDatabase admin -uxucy -p --db DBName --drop Temp_20150909/DBName/

16. 数据库授权

>use dbname    
>db.createUser(    
    {    
      user: "peter",    
      pwd: "xxxxxxxx",    
      roles: [    
         { role: "readWrite", db: "dbname" }    
      ]    
    }    
)
时间: 2024-08-06 07:28:37

MongoDB 运维常用操作的相关文章

tornado+ansible+twisted+mongodb运维自动化系统开发(三)

又到周末啦~~楼上在装修!!睡不着了.....你懂得! 索性整理一下思路做一个改进版的运维自动化个工具,希望能够实现: 控制主机的初始化:如添加ssh密钥\存储资料库的设置\操作用户和密码 受管主机管理:添加\修改\删除 添加主机的用户名\密码\端口 在后台完成ssh密钥登陆,添加受管主机到存储资料库 playbooks管理:添加\修改\删除 添加一个标准的playbook,方便添加修改 ansible模块管理:添加\修改\删除 模块操作:包含ping\setup\shell\copy4个模块,

Python系统运维常用库

Python系统运维常用库 1.psutil是一个跨平台库(http://code.google.com/p/psutil/) 能够实现获取系统运行的进程和系统利用率(内存,CPU,磁盘,网络等),主要用于系统监控,分析和系统资源及进程的管理. 2.IPy(http://github.com/haypo/python-ipy),辅助IP规划. 3.dnspython(http://dnspython.org)Python实现的一个DNS工具包. 4.difflib:difflib作为Python

运维常用表格-干货分享

运维常用表格-干货分享 机房巡检记录单 机房 日期: 时间: 巡检人员: 1 检查项目 机房温度 机房湿度 空调状态 UPS状态 服务器状态 网络设备状态 存在问题 故障处理措施 保密自查情况登记表 负责人签字:                  填报人及电话: 检查项目 检查执行情况 检查结果 自查事项 1.单位是否留存涉密文件资料(包括复印件) 检查人签字: 有□没有□ 2.办公计算机是否存储涉密文件资料 检查人签字: 有□没有□ 3.单位网页是否发布涉密文件资料信息 检查人签字: 有□没有

Python 运维常用模块

基础库:sys.os(os.path.os.stat).time.logging.prarmiko.re.random Python运维常用的20个库 1.psutil是一个跨平台库(https://github.com/giampaolo/psutil)能够实现获取系统运行的进程和系统利用率(内存,CPU,磁盘,网络等),主要用于系统监控,分析和系统资源及进程的管理. 2.IPy(http://github.com/haypo/python-ipy),辅助IP规划. 3.dnspython(h

Linux运维常用命令

Linux运维常用的150个命令 命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更复杂的还有info,但不常用. help 查看Linux内置命令的帮助,比如cd命令. 文件和目录操作命令(18个) ls 全拼list,功能是列出目录的内容及其内容属性信息. cd 全拼change directory,功能是从当前工作目录切换到指定的工作目录. cp 全拼copy,其功能为复制文件或目录. find 查找的意思,用于查找目录及目录下的文件. mkdir 全拼mak

Linux运维常用知识(4)

linux命令无效-bash: ls: command not found 一次重启后开机,基本所有的命令都不可用,只有少数的命令可用 [[email protected] ~]# ll -bash: ls: command not found [[email protected] ~]# pwd /root [[email protected] ~]# shutdown -r now -bash: shutdown: command not found [[email protected] ~

[Linux运维]常用场景模拟 -- cpu使用率模拟

[Linux运维]常用场景模拟 -- cpu使用率模拟 from http://www.cnblogs.com/zk47/p/4771105.html 1 单个核 100%: 代码 kill_cpu.c #include <stdlib.h> int main() { while(1); return 0; } 运行 $ gcc -o out kill_cpu.c $ ./out 看top的结果: $ top top - 15:44:08 up 207 days, 21:29, 2 users

服务器运维常用的python模块概述

最近开始复习python的使用,把服务器运维常用的模块的用法进行了实例化概述. ==========sort========================= python 排序: ls=[1,31,13,141,41] ls.sort() print ls 元组sort: >>> lst=[('wyl',24),('hjj',25),('zs',22),('lisi',14)] >>> sorted(lst,key=lambda lst:lst[1],reverse=

运维-常用命令

1.以80开头的端口排序:netstat -lntup|awk '{if ($4 ~/80/){split($4,a,":");print a[2]}}'|sort -u 运维-常用命令