MongoDBライブラリ全体のバックアップとリストア、および単一collectionのバックアップ、リカバリ

9209 ワード

バックアップ前のチェック>show dbsMyDB 0.0625 GBadmin(empty)bruce 0.0625 GBlocal(empty)test 0.0625 GB>use MyDbswitched 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:datadump、もちろんこのディレクトリは事前に確立する必要があります.バックアップが完了した後、システムは自動的に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–directoryperdbdirectory-h:MongoDBが存在するサーバアドレス-d:リカバリが必要なデータベースインスタンス、例えばtest、もちろんこの名前はバックアップ時とは異なります.例えばtest 2-directoryperdb:バックアップデータが存在する場所、例えば:c:datadumptest、ここでなぜバックアップ時のdumpではなくtestを追加するのか、読者は自分でヒントを見ましょう!–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 collectioname–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.Dataパラメータの説明:-dは使用するライブラリを示し、この例では「my_mongodb-cは、エクスポートするテーブルを示します.この例では「user」では、データのインポート時にテーブル構造が暗黙的に作成されることがわかります.
2. mongoexport -d my_mongodb -c user -o user.Dataパラメータの説明:-dは使用するライブラリを示し、この例では「my_mongodb-cはエクスポートするテーブルを示し、この例では「user」-oはエクスポートするファイル名を示し、この例では「user」である.dat」上から見えるように書き出す方式はJSONの様式を用いる.
 
http://www.cr173.com/html/20275_1.html