中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mongodb導出導入

發布時間:2020-05-27 13:08:54 來源:網絡 閱讀:2767 作者:qhd2004 欄目:MongoDB數據庫

數據庫都分為冷備份與熱備份,所謂的冷備份就是停庫,然后把數據拷貝;熱備份就是使用相應工具,在數據庫運行時做備份。每種庫都會有自己的熱備份工具,mongodb也不例外。

mongodb的備份主要有熱備和冷備。

一,冷備:

停止mongodb服務,直接copy數據目錄;啟動mongodb時,可以用--dbpath指定自己設置的數據庫存儲目錄。

 

二,熱備:

用mongodump來做MongoDB的庫或表級別的熱備份。


認識一下mongodump,

[mongo@tstdb-25-220 mongodb]$ bin/mongodump --help
Usage:
  mongodump <options>

Export the content of a running server into .bson files.

Specify a database with -d and a collection with -c to only dump that database or collection.

See http://docs.mongodb.org/manual/reference/program/mongodump/ for more information.

general options:
      --help                                                print usage
      --version                                             print the tool version and exit

verbosity options:
  -v, --verbose=<level>                                     more detailed log output (include multiple times for more verbosity, e.g. -vvvvv, or specify a numeric
                                                            value, e.g. --verbose=N)
      --quiet                                               hide all log output

connection options:
  -h, --host=<hostname>                                     mongodb host to connect to (setname/host1,host2 for replica sets)
      --port=<port>                                         server port (can also use --host hostname:port)

authentication options:
  -u, --username=<username>                                 username for authentication
  -p, --password=<password>                                 password for authentication
      --authenticationDatabase=<database-name>              database that holds the user's credentials
      --authenticationMechanism=<mechanism>                 authentication mechanism to use

namespace options:
  -d, --db=<database-name>                                  database to use
  -c, --collection=<collection-name>                        collection to use

query options:
  -q, --query=                                              query filter, as a JSON string, e.g., '{x:{$gt:1}}'
      --queryFile=                                          path to a file containing a query filter (JSON)
      --readPreference=<string>|<json>                      specify either a preference name or a preference json object
      --forceTableScan                                      force a table scan

output options:
  -o, --out=<directory-path>                                output directory, or '-' for stdout (defaults to 'dump')
      --gzip                                                compress archive our collection output with Gzip
      --repair                                              try to recover documents from damaged data files (not supported by all storage engines)
      --oplog                                               use oplog for taking a point-in-time snapshot
      --archive=<file-path>                                 dump as an archive to the specified path. If flag is specified without a value, archive is written to
                                                            stdout
      --dumpDbUsersAndRoles                                 dump user and role definitions for the specified database
      --excludeCollection=<collection-name>                 collection to exclude from the dump (may be specified multiple times to exclude additional collections)
      --excludeCollectionsWithPrefix=<collection-prefix>    exclude all collections from the dump that have the given prefix (may be specified multiple times to
                                                            exclude additional prefixes)
  -j, --numParallelCollections=                             number of collections to dump in parallel (4 by default)

看下導出過程

[mongo@tstdb-25-220 mongodb]$ bin/mongodump -h 172.16.25.220 -d sykdb -o /usr/local/mongodb/backup
2016-10-31T09:41:03.521+0800    writing sykdb.system.indexes to 
2016-10-31T09:41:03.522+0800    done dumping sykdb.system.indexes (2 documents)
2016-10-31T09:41:03.523+0800    writing sykdb.system.profile to 
2016-10-31T09:41:03.523+0800    writing sykdb.sykdb to 
2016-10-31T09:41:03.523+0800    writing sykdb.table_syk to 
2016-10-31T09:41:03.524+0800    done dumping sykdb.system.profile (2 documents)
2016-10-31T09:41:03.524+0800    done dumping sykdb.sykdb (2 documents)
2016-10-31T09:41:03.524+0800    done dumping sykdb.table_syk (1 document)

導出后的文件如下:

[mongo@tstdb-25-220 mongodb]$ cd backup/
[mongo@tstdb-25-220 backup]$ ll
總用量 4
drwxr-xr-x. 2 mongo dbmon 4096 10月 31 09:41 sykdb
[mongo@tstdb-25-220 backup]$ cd sykdb/
[mongo@tstdb-25-220 sykdb]$ ll
總用量 28
-rw-r--r--. 1 mongo dbmon   75 10月 31 09:41 sykdb.bson
-rw-r--r--. 1 mongo dbmon   83 10月 31 09:41 sykdb.metadata.json
-rw-r--r--. 1 mongo dbmon  136 10月 31 09:41 system.indexes.bson
-rw-r--r--. 1 mongo dbmon 1529 10月 31 09:41 system.profile.bson
-rw-r--r--. 1 mongo dbmon   55 10月 31 09:41 system.profile.metadata.json
-rw-r--r--. 1 mongo dbmon   36 10月 31 09:41 table_syk.bson
-rw-r--r--. 1 mongo dbmon   87 10月 31 09:41 table_syk.metadata.json

下面看一下導入(導出與導入可以看做是備份與恢復,所有的備份都是為了恢復而做)

[mongo@tstdb-25-220 mongodb]$ bin/mongorestore --help
Usage:
  mongorestore <options> <directory or file to restore>

Restore backups generated with mongodump to a running server.

Specify a database with -d to restore a single database from the target directory,
or use -d and -c to restore a single collection from a single .bson file.

See http://docs.mongodb.org/manual/reference/program/mongorestore/ for more information.

general options:
      --help                                      print usage
      --version                                   print the tool version and exit

verbosity options:
  -v, --verbose=<level>                           more detailed log output (include multiple times for more verbosity, e.g. -vvvvv, or specify a numeric value, e.g.
                                                  --verbose=N)
      --quiet                                     hide all log output

connection options:
  -h, --host=<hostname>                           mongodb host to connect to (setname/host1,host2 for replica sets)
      --port=<port>                               server port (can also use --host hostname:port)

authentication options:
  -u, --username=<username>                       username for authentication
  -p, --password=<password>                       password for authentication
      --authenticationDatabase=<database-name>    database that holds the user's credentials
      --authenticationMechanism=<mechanism>       authentication mechanism to use

namespace options:
  -d, --db=<database-name>                        database to use
  -c, --collection=<collection-name>              collection to use

input options:
      --objcheck                                  validate all objects before inserting
      --oplogReplay                               replay oplog for point-in-time restore
      --oplogLimit=<seconds>[:ordinal]            only include oplog entries before the provided Timestamp
      --archive=<filename>                        restore dump from the specified archive file.  If flag is specified without a value, archive is read from stdin
      --restoreDbUsersAndRoles                    restore user and role definitions for the given database
      --dir=<directory-name>                      input directory, use '-' for stdin
      --gzip                                      decompress gzipped input

restore options:
      --drop                                      drop each collection before import
      --writeConcern=<write-concern>              write concern options e.g. --writeConcern majority, --writeConcern '{w: 3, wtimeout: 500, fsync: true, j: true}'
                                                  (defaults to 'majority')
      --noIndexRestore                            don't restore indexes
      --noOptionsRestore                          don't restore collection options
      --keepIndexVersion                          don't update index version
      --maintainInsertionOrder                    preserve order of documents during restoration
  -j, --numParallelCollections=                   number of collections to restore in parallel (4 by default)
      --numInsertionWorkersPerCollection=         number of insert operations to run concurrently per collection (1 by default)
      --stopOnError                               stop restoring if an error is encountered on insert (off by default)
      --bypassDocumentValidation                  bypass document validation

--oplogReplay這個參數,大家注意一下,mongodb的導出導入可以做的基本時間點的恢復

我們再insert一行,然后測試一下:

moe:PRIMARY> db.sykdb.insert ({"job":"dba"})

然后導入:

[mongo@tstdb-25-220 mongodb]$ bin/mongorestore -h 172.16.25.220 -d sykdb backup/sykdb
2016-10-31T10:28:21.049+0800    building a list of collections to restore from backup/sykdb dir
2016-10-31T10:28:21.051+0800    reading metadata for sykdb.sykdb from backup/sykdb/sykdb.metadata.json
2016-10-31T10:28:21.051+0800    reading metadata for sykdb.table_syk from backup/sykdb/table_syk.metadata.json
2016-10-31T10:28:21.051+0800    reading metadata for sykdb.system.profile from backup/sykdb/system.profile.metadata.json
2016-10-31T10:28:21.051+0800    restoring sykdb.sykdb from backup/sykdb/sykdb.bson
2016-10-31T10:28:21.051+0800    no indexes to restore
2016-10-31T10:28:21.052+0800    finished restoring sykdb.system.profile (0 documents)
2016-10-31T10:28:21.052+0800    restoring sykdb.table_syk from backup/sykdb/table_syk.bson
2016-10-31T10:28:21.086+0800    restoring indexes for collection sykdb.sykdb from metadata
2016-10-31T10:28:21.086+0800    restoring indexes for collection sykdb.table_syk from metadata
2016-10-31T10:28:21.086+0800    finished restoring sykdb.sykdb (2 documents)
2016-10-31T10:28:21.086+0800    finished restoring sykdb.table_syk (1 document)
2016-10-31T10:28:21.087+0800    done

查詢一下,看數據是否回來了

moe:PRIMARY> db.sykdb.find().limit(100);
{ "_id" : ObjectId("5816ac26d37a70860b091c1f"), "job" : "dba" }
{ "_id" : ObjectId("5813041a56c55d778812e689"), "name" : "syk" }
{ "_id" : ObjectId("5813065356c55d778812e68a"), "loc" : "beijing" }

介紹一對命令:mongoexport/mongoimport

[mongo@tstdb-25-220 mongodb]$ bin/mongoexport -h 172.16.25.220 -d sykdb -c table_syk -o table_syk.dat
2016-10-31T11:43:40.893+0800    connected to: 172.16.25.220
2016-10-31T11:43:40.894+0800    exported 1 record

查看導出來的文件:

[mongo@tstdb-25-220 mongodb]$ strings table_syk.dat 
{"_id":{"$oid":"581313a856c55d778812e68b"},"name":"syk"}
[mongo@tstdb-25-220 mongodb]$ file table_syk.dat 
table_syk.dat: ASCII text

看來這個工具相當于其他數據庫中的邏輯導出

把表清空

moe:PRIMARY> db.table_syk.drop()

導入

[mongo@tstdb-25-220 mongodb]$ bin/mongoimport -h 172.16.25.220 -d sykdb -c table_syk table_syk.dat
2016-10-31T11:45:22.499+0800    connected to: 172.16.25.220
2016-10-31T11:45:22.540+0800    imported 1 document

數據回來了。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宽城| 太仆寺旗| 海口市| 闻喜县| 维西| 萍乡市| 启东市| 澎湖县| 竹溪县| 行唐县| 马山县| 基隆市| 阜南县| 资源县| 敦煌市| 赤峰市| 新泰市| 保山市| 古交市| 临沂市| 金阳县| 洛隆县| 喀喇| 陵川县| 北京市| 明水县| 海伦市| 龙井市| 全南县| 苏尼特右旗| 无为县| 桦甸市| 和田县| 桐柏县| 平定县| 阿坝县| 密山市| 科技| 许昌市| 靖州| 安义县|