MongoDB整库备份与还原以及单个collection备份、恢复方法-创新互联

备份前的检查

创新互联长期为成百上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为新会企业提供专业的成都做网站、网站设计,新会网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。> show dbs MyDB 0.0625GB admin (empty) bruce 0.0625GB local (empty) test 0.0625GB > use MyDB switched to db MyDB > db.users.find() { "_id" : ObjectId("4e290aa39a1945747b28f1ee"), "a" : 1, "b" : 1 } { "_id" : ObjectId("4e2cd2182a65c81f21566318"), "a" : 3, "b" : 5 } >

整库备份

mongodump -h dbhost -d dbname -o dbdirectory -h:MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017 -d:需要备份的数据库实例,例如:test -o:备份的数据存放位置,例如:c:\data\dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。 mongodump的官方说明(可通过mongodump --help查看): options:  --help          produce help message  -v [ --verbose ]     be more verbose (include multiple times for more               verbosity e.g. -vvvvv)  --version        print the program's version and exit  -h [ --host ] arg    mongo host to connect to ( /s1,s2 for               sets)  --port arg        server port. Can also use --host hostname:port  --ipv6          enable IPv6 support (disabled by default)  -u [ --username ] arg  username  -p [ --password ] arg  password  --dbpath arg       directly access mongod database files in the given               path, instead of connecting to a mongod server -               needs to lock the data directory, so cannot be used               if a mongod is currently accessing the same path  --directoryperdb     if dbpath specified, each db is in a separate               directory  --journal        enable journaling  -d [ --db ] arg     database to use  -c [ --collection ] arg collection to use (some commands)  -o [ --out ] arg (=dump) output directory or "-" for stdout  -q [ --query ] arg    json query  --oplog         Use oplog for point-in-time snapshotting  --repair         try to recover a crashed database  --forceTableScan     force a table scan (do not use $snapshot)

整库恢复

mongorestore -h dbhost -d dbname –directoryperdb dbdirectory -h:MongoDB所在服务器地址 -d:需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2 –directoryperdb:备份数据所在位置,例如:c:\data\dump\test,这里为什么要多加一个test,而不是备份时候的dump,读者自己查看提示吧! –drop:恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦! mongorestore的官方说明(可通过mongorestore --help查看): options:  --help         produce help message  -v [ --verbose ]    be more verbose (include multiple times for more              verbosity e.g. -vvvvv)  --version        print the program's version and exit  -h [ --host ] arg    mongo host to connect to ( /s1,s2 for sets)  --port arg       server port. Can also use --host hostname:port  --ipv6         enable IPv6 support (disabled by default)  -u [ --username ] arg  username  -p [ --password ] arg  password  --dbpath arg      directly access mongod database files in the given              path, instead of connecting to a mongod server -              needs to lock the data directory, so cannot be used              if a mongod is currently accessing the same path  --directoryperdb    if dbpath specified, each db is in a separate              directory  --journal        enable journaling  -d [ --db ] arg     database to use  -c [ --collection ] arg collection to use (some commands)  --objcheck       validate object before inserting  --filter arg      filter to apply before inserting  --drop         drop each collection before import  --oplogReplay      replay oplog for point-in-time restore  --oplogLimit arg    exclude oplog entries newer than provided timestamp              (epoch[:ordinal])  --keepIndexVersion   don't upgrade indexes to newest version  --noOptionsRestore   don't restore collection options  --noIndexRestore    don't restore indexes  --w arg (=1)      minimum number of replicas per write

单个collection备份

mongoexport -h dbhost -d dbname -c collectionname -f collectionKey -o dbdirectory -h: MongoDB所在服务器地址 -d: 需要恢复的数据库实例 -c: 需要恢复的集合 -f: 需要导出的字段(省略为所有字段) -o: 表示导出的文件名 mongoexport的官方说明(可通过mongoexport --help查看):  --help          produce help message  -v [ --verbose ]     be more verbose (include multiple times for more               verbosity e.g. -vvvvv)  --version         print the program's version and exit  -h [ --host ] arg     mongo host to connect to ( /s1,s2 for               sets)  --port arg        server port. Can also use --host hostname:port  --ipv6          enable IPv6 support (disabled by default)  -u [ --username ] arg   username  -p [ --password ] arg   password  --dbpath arg       directly access mongod database files in the given               path, instead of connecting to a mongod server -               needs to lock the data directory, so cannot be used               if a mongod is currently accessing the same path  --directoryperdb     if dbpath specified, each db is in a separate               directory  --journal         enable journaling  -d [ --db ] arg      database to use  -c [ --collection ] arg  collection to use (some commands)  -f [ --fields ] arg    comma separated list of field names e.g. -f               name,age  --fieldFile arg      file with fields names - 1 per line  -q [ --query ] arg    query filter, as a JSON string  --csv           export to csv instead of json  -o [ --out ] arg     output file; if not specified, stdout is used  --jsonArray        output to a json array rather than one object per               line  -k [ --slaveOk ] arg (=1) use secondaries for export if available, default               true  --forceTableScan     force a table scan (do not use $snapshot)

单个collection恢复

mongoimport -d dbhost -c collectionname –type csv –headerline –file -type: 指明要导入的文件格式 -headerline: 批明不导入第一行,因为第一行是列名 -file: 指明要导入的文件路径 mongoimport的官方说明(可通过mongoimport --help查看):  --help         produce help message  -v [ --verbose ]    be more verbose (include multiple times for more              verbosity e.g. -vvvvv)  --version        print the program's version and exit  -h [ --host ] arg    mongo host to connect to ( /s1,s2 for sets)  --port arg       server port. Can also use --host hostname:port  --ipv6         enable IPv6 support (disabled by default)  -u [ --username ] arg  username  -p [ --password ] arg  password  --dbpath arg      directly access mongod database files in the given              path, instead of connecting to a mongod server -              needs to lock the data directory, so cannot be used              if a mongod is currently accessing the same path  --directoryperdb    if dbpath specified, each db is in a separate              directory  --journal        enable journaling  -d [ --db ] arg     database to use  -c [ --collection ] arg collection to use (some commands)  -f [ --fields ] arg   comma separated list of field names e.g. -f name,age  --fieldFile arg     file with fields names - 1 per line  --ignoreBlanks     if given, empty fields in csv and tsv will be ignored  --type arg       type of file to import. default: json (json,csv,tsv)  --file arg       file to import from; if not specified stdin is used  --drop         drop collection first  --headerline      CSV,TSV only - use first line as headers  --upsert        insert or update objects that already exist  --upsertFields arg   comma-separated fields for the query part of the              upsert. You should make sure this is indexed  --stopOnError      stop importing at first error rather than continuing  --jsonArray       load a json array, not one item per line. Currently              limited to 16MB.

其他导入与导出操作

1. mongoimport -d my_mongodb -c user user.dat 参数说明: -d 指明使用的库, 本例中为” my_mongodb” -c 指明要导出的表, 本例中为”user” 可以看到导入数据的时候会隐式创建表结构 2. mongoexport -d my_mongodb -c user -o user.dat 参数说明: -d 指明使用的库, 本例中为” my_mongodb” -c 指明要导出的表, 本例中为”user” -o 指明要导出的文件名, 本例中为”user.dat”

从上面可以看到导出的方式使用的是JSON 的样式.

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前标题:MongoDB整库备份与还原以及单个collection备份、恢复方法-创新互联
文章链接:http://hbruida.cn/article/dcopei.html