数据库|mysql教程
monogdb,数据备份,恢复,数据,导入,导出,###,备
数据库-mysql教程
蔬菜系统源码,vscode是那些版本,ubuntu 温度高,tomcat已经关闭了,易语言sqlite3服务器,爬虫莉莉,php 下载文件代码,seo实战指南pdf下载,领取钻的钓鱼网站源码,dz app模板lzw
### 备份方式和恢复方式 备份全部数据库 mkdir /bak mongodump 备份指定数据库 mkidr /bak mongodump -d admin 备份一个数据库中的某个集合 mkdir /bak mongodump -d admin -c student 恢复全部数据库 mongorestore –drop # –drop是为了防止数据重复 恢复
THINKPHP小说源码安装,ubuntu怎么显示终端,可以爬虫的证券,php jqajax实例,seo 外包 个人lzw
条码采集器数据源码,vscode怎么用双标签,ubuntu 改源、,tomcat配置可读写,docker爬虫教学,php类 概念,h韩漫免费seo综合,仿包图网素材图片下载站网站源码,餐馆介绍手机模板lzw
### 备份方式和恢复方式
备份全部数据库
mkdir /bak
mongodump
备份指定数据库
mkidr /bak
mongodump -d admin
备份一个数据库中的某个集合
mkdir /bak
mongodump -d admin -c student
恢复全部数据库
mongorestore –drop # –drop是为了防止数据重复
恢复某个数据库
mongorestore -d dbname –drop
恢复某个数据库的某个集合
mongorestore -d dbname -c student –drop
异机数据恢复
mongorestore -h host -d dbname /path/sourcefile # 注意这里要使用dump出来的文件的源文件
mongodump
-h 导出源
-d 要导出的数据库名称
-o 数据库要导出的位置
mongorestore
-d 使用的数据库名称
-c 恢复一个表
### 数据的导出
Mongodb中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。
mongoexport
参数说明:
-h:指明数据库宿主机的IP
-u:指明数据库的用户名
-p:指明数据库的密码
-d:指明数据库的名字
-c:指明collection的名字
-f:指明要导出那些列
-o:指明到要导出的文件名
-q:指明导出数据的过滤条件
### 数据的导入
mongoimport
-type 指明要导入的文件格式
-headerline 指明不导入第一行
-file 指明要导入的文件路径
参数说明:
-h:指明数据库宿主机的IP
-u:指明数据库的用户名
-p:指明数据库的密码
-d:指明数据库的名字
-c:指明collection的名字
-f:指明要导入那些列
CSV 格式良好,主流数据库都支持导出为CSV 的格式,所以这种格式非常利于异构数据迁移
### 演示备份数据库
mkdir /bakcd /bak[root@redis bak]# mongodump -h 192.168.58.30 --port 27017 -u root -pconnected to: 192.168.58.30:27017Enter password: Thu Jul 17 08:15:42.996 all dbsThu Jul 17 08:15:43.006 DATABASE: admin to dump/adminThu Jul 17 08:15:43.015 admin.system.indexes to dump/admin/system.indexes.bsonThu Jul 17 08:15:43.076 2 objectsThu Jul 17 08:15:43.077 admin.system.users to dump/admin/system.users.bsonThu Jul 17 08:15:43.077 1 objectsThu Jul 17 08:15:43.077 Metadata for admin.system.users to dump/admin/system.users.metadata.jsonThu Jul 17 08:15:43.078 DATABASE: guest to dump/guestThu Jul 17 08:15:43.082 guest.system.indexes to dump/guest/system.indexes.bsonThu Jul 17 08:15:43.088 3 objectsThu Jul 17 08:15:43.088 guest.system.users to dump/guest/system.users.bsonThu Jul 17 08:15:43.097 1 objectsThu Jul 17 08:15:43.097 Metadata for guest.system.users to dump/guest/system.users.metadata.jsonThu Jul 17 08:15:43.098 guest.student to dump/guest/student.bsonThu Jul 17 08:15:43.103 26 objectsThu Jul 17 08:15:43.103 Metadata for guest.student to dump/guest/student.metadata.json[root@redis bak]# lltotal 4drwxr-xr-x 4 root root 4096 Jul 17 08:15 dump[root@redis bak]# cd dump/[root@redis dump]# lsadmin guest[root@redis dump]#
###恢复数据库
由于刚开始的时候指定了备份目录下面的所有文件,所以会报错
[root@localhost ~]# [root@localhost ~]# mongorestore -d admin admin/*ERROR: too many positional optionsImport BSON files into MongoDB.
后来从新换了一个,再次报错
[root@localhost ~]# mongorestore -d admin admin/ couldn connect to [127.0.0.1] couldn connect to server 127.0.0.1:27017
上面报错是因为我配置文件中写的是本机ip,更换后
[root@localhost ~]# mongorestore -d admin admin/ -h 192.168.58.10connected to: 192.168.58.10Thu Jul 17 09:08:33.873 admin/system.users.bsonThu Jul 17 09:08:33.873 going into namespace [admin.system.users]1 objects foundThu Jul 17 09:08:33.902 Creating index: { key: { _id: 1 }, ns: "admin.system.users", name: "_id_" }Thu Jul 17 09:08:34.043 Creating index: { key: { user: 1, userSource: 1 }, unique: true, ns: "admin.system.users", name: "user_1_userSource_1" }[root@localhost ~]#
### 查看是否正确导入
[root@localhost ~]# mongo 192.168.58.10MongoDB shell version: 2.4.6connecting to: 192.168.58.10/testWelcome to the MongoDB shell.For interactive help, type "help".For more comprehensive documentation, see/Questions? Try the support group/group/mongodb-user> show dbslThu Jul 17 09:12:34.806 don know how to show [dbsl] at src/mongo/shell/utils.js:847> show dbs;admin0.203125GBguest0.203125GBlocal0.078125GB> use guestswitched to db guest> show collections;studentsystem.indexessystem.users> db.student.find(){ "_id" : ObjectId("53c769621d184866a15043ec"), "name" : "zhuima" }{ "_id" : ObjectId("53c769861d184866a15043ed"), "x" : 1 }{ "_id" : ObjectId("53c769861d184866a15043ee"), "x" : 2 }{ "_id" : ObjectId("53c769861d184866a15043ef"), "x" : 3 }{ "_id" : ObjectId("53c769861d184866a15043f0"), "x" : 4 }{ "_id" : ObjectId("53c769861d184866a15043f1"), "x" : 5 }{ "_id" : ObjectId("53c769861d184866a15043f2"), "x" : 6 }{ "_id" : ObjectId("53c769861d184866a15043f3"), "x" : 7 }{ "_id" : ObjectId("53c769861d184866a15043f4"), "x" : 8 }{ "_id" : ObjectId("53c769861d184866a15043f5"), "x" : 9 }{ "_id" : ObjectId("53c769861d184866a15043f6"), "x" : 10 }{ "_id" : ObjectId("53c769861d184866a15043f7"), "x" : 11 }{ "_id" : ObjectId("53c769861d184866a15043f8"), "x" : 12 }{ "_id" : ObjectId("53c769861d184866a15043f9"), "x" : 13 }{ "_id" : ObjectId("53c769861d184866a15043fa"), "x" : 14 }{ "_id" : ObjectId("53c769861d184866a15043fb"), "x" : 15 }{ "_id" : ObjectId("53c769861d184866a15043fc"), "x" : 16 }{ "_id" : ObjectId("53c769861d184866a15043fd"), "x" : 17 }{ "_id" : ObjectId("53c769861d184866a15043fe"), "x" : 18 }{ "_id" : ObjectId("53c769861d184866a15043ff"), "x" : 19 }Type "it" for more>
### 用户管理
添加超级用户
use admin
db.addUser(‘name’,’password’)
添加只读用户
use dbname
db.addUser(‘name’,’password’,true)
添加普通用户
use dbname
db.addUser(‘name’,’password’) 其实也不能说是普通用户,这个只是针对于某一个数据库有权限
删除用户
use dbname
db.system.users.remove(‘name’,’password’)
更换用户密码
use dbname
db.addUser(‘name’,’password’)
切换用户(必须要先到对对应的数据库,root账户除外)
use dbname
db.auth(‘name’,’password’)
查找用户
use dbname
db.system.users.find()
### 监控mongodb
1、db.serverStatus()可以查看系统的大部分状态
> db.serverStatus(){"host" : "redis.vagrant.internal","version" : "2.6.3","process" : "mongod","pid" : NumberLong(27724),"uptime" : 4997,"uptimeMillis" : NumberLong(4997102),"uptimeEstimate" : 4608,"localTime" : ISODate("-07-21T10:49:35.340Z"),"asserts" : {"regular" : 0,"warning" : 0,"msg" : 0,"user" : 4,"rollovers" : 0},"backgroundFlushing" : {"flushes" : 83,"total_ms" : 202,"average_ms" : 2.433734939759036,"last_ms" : 0,"last_finished" : ISODate("-07-21T10:49:18.431Z")},"connections" : {"current" : 1,"available" : 51199,"totalCreated" : NumberLong(2)},"cursors" : {"note" : "deprecated, use server status metrics","clientCursors_size" : 0,"totalOpen" : 0,"pinned" : 0,"totalNoTimeout" : 0,"timedOut" : 0},"dur" : {"commits" : 30,"journaledMB" : 0,"writeToDataFilesMB" : 0,"compression" : 0,"commitsInWriteLock" : 0,"earlyCommits" : 0,"timeMs" : {"dt" : 3102,"prepLogBuffer" : 0,"writeToJournal" : 0,"writeToDataFiles" : 0,"remapPrivateView" : 0}},"extra_info" : {"note" : "fields vary by platform","heap_usage_bytes" : 62587072,"page_faults" : 2},"globalLock" : {"totalTime" : NumberLong("4997106000"),"lockTime" : NumberLong(466098),"currentQueue" : {"total" : 0,"readers" : 0,"writers" : 0},"activeClients" : {"total" : 0,"readers" : 0,"writers" : 0}},"indexCounters" : {"accesses" : 48,"hits" : 48,"misses" : 0,"resets" : 0,"missRatio" : 0},"locks" : {"." : {"timeLockedMicros" : {"R" : NumberLong(388976),"W" : NumberLong(466098)},"timeAcquiringMicros" : {"R" : NumberLong(382921),"W" : NumberLong(52063)}},"admin" : {"timeLockedMicros" : {"r" : NumberLong(239696),"w" : NumberLong(0)},"timeAcquiringMicros" : {"r" : NumberLong(105140),"w" : NumberLong(0)}},"local" : {"timeLockedMicros" : {"r" : NumberLong(236543),"w" : NumberLong(842)},"timeAcquiringMicros" : {"r" : NumberLong(73211),"w" : NumberLong(45)}},"zhuima" : {"timeLockedMicros" : {"r" : NumberLong(139309),"w" : NumberLong(208)},"timeAcquiringMicros" : {"r" : NumberLong(1778),"w" : NumberLong(3)}}},"network" : {"bytesIn" : 12768,"bytesOut" : 29899,"numRequests" : 150},"opcounters" : {"insert" : 5,"query" : 22,"update" : 9,"delete" : 4,"getmore" : 0,"command" : 141},"opcountersRepl" : {"insert" : 0,"query" : 0,"update" : 0,"delete" : 0,"getmore" : 0,"command" : 0},"recordStats" : {"accessesNotInMemory" : 0,"pageFaultExceptionsThrown" : 0,"admin" : {"accessesNotInMemory" : 0,"pageFaultExceptionsThrown" : 0},"local" : {"accessesNotInMemory" : 0,"pageFaultExceptionsThrown" : 0}},"writeBacksQueued" : false,"mem" : {"bits" : 64,"resident" : 31,"virtual" : 2654,"supported" : true,"mapped" : 1184,"mappedWithJournal" : 2368},"metrics" : {"cursor" : {"timedOut" : NumberLong(0),"open" : {"noTimeout" : NumberLong(0),"pinned" : NumberLong(0),"total" : NumberLong(0)}},"document" : {"deleted" : NumberLong(1),"inserted" : NumberLong(5),"returned" : NumberLong(81),"updated" : NumberLong(9)},"getLastError" : {"wtime" : {"num" : 0,"totalMillis" : 0},"wtimeouts" : NumberLong(0)},"operation" : {"fastmod" : NumberLong(0),"idhack" : NumberLong(0),"scanAndOrder" : NumberLong(0)},"queryExecutor" : {"scanned" : NumberLong(9),"scannedObjects" : NumberLong(9)},"record" : {"moves" : NumberLong(0)},"repl" : {"apply" : {"batches" : {"num" : 0,"totalMillis" : 0},"ops" : NumberLong(0)},"buffer" : {"count" : NumberLong(0),"maxSizeBytes" : 268435456,"sizeBytes" : NumberLong(0)},"network" : {"bytes" : NumberLong(0),"getmores" : {"num" : 0,"totalMillis" : 0},"ops" : NumberLong(0),"readersCreated" : NumberLong(0)},"preload" : {"docs" : {"num" : 0,"totalMillis" : 0},"indexes" : {"num" : 0,"totalMillis" : 0}}},"storage" : {"freelist" : {"search" : {"bucketExhausted" : NumberLong(0),"requests" : NumberLong(5),"scanned" : NumberLong(8)}}},"ttl" : {"deletedDocuments" : NumberLong(0),"passes" : NumberLong(0)}},"ok" : 1}>
2、mongostat 可以动态查看mongodb的各种状态
[root@redis ~]# mongostat -h 192.168.58.30 -uzhuima -pzhuimaconnected to: 192.168.58.30insert query update delete getmore command flushes mapped vsize res faults locked db idx miss %qr|qw ar|aw netIn netOut conn time*0*0*0*0 01|0 0 1.16g 2.59g 31m0 zhuima:0.0%0 0|00|0 62b3k1 12:52:12*0*0*0*0 01|0 0 1.16g 2.59g 31m0.:0.0%0 0|00|0 62b3k1 12:52:13*0*0*0*0 01|0 0 1.16g 2.59g 31m0.:0.1%0 0|00|0 62b3k1 12:52:14*0*0*0*0 01|0 0 1.16g 2.59g 31m0 zhuima:0.0%0 0|00|0 62b3k1 12:52:15*0*0*0*0 01|0 0 1.16g 2.59g 31m0 zhuima:0.0%0 0|00|0 62b3k1 12:52:16*0*0*0*0 01|0 0 1.16g 2.59g 31m0 zhuima:0.0%0 0|00|0 62b3k1 12:52:17*0*0*0*0 01|0 0 1.16g 2.59g 31m0 zhuima:0.0%0 0|00|0 62b3k1 12:52:18 ^Z[1]+ Stopped mongostat -h 192.168.58.30 -uzhuima -pzhuima[root@redis ~]#
### 参考文章:
/shirdrn/article/details/7105539
/huangxincheng/archive//03/08/2384571.html