mongodbデータベースのバックアップとリカバリ
3424 ワード
私のブログはnodejs+mongodbで書かれているので、自然にmongodbのデータベースバックアップに使いました.データベースのバックアップは、データの損失を防ぐために、いつでも重要です.私のブログのデータ損失を防ぐために、アリクラウドでスナップショットを作成するほか、データのバックアップもしました.ではmongodbはどのようにしてデータベースのバックアップとリカバリを行いますか?Windowsの下mongodbデータベースのバックアップとリカバリc:datadumpディレクトリの下にデータをバックアップし、まずこのパスを作成します.それからmongodbのbinディレクトリの下に入って私のは:C:Program Filesmongodbbinバックアップスクリプトは://バックアップmongodump-h 127.0.0.1:27017-d test-o c:datadumpリカバリスクリプト://リカバリmongorestore-h 127.0.0.1:27017-d test--directoryperdb c:datadumptest説明するコマンド-h:MongoDBが存在するサーバアドレス-d:リカバリが必要なデータベースインスタンス、例えばtest、もちろんこの名前はバックアップ時とは異なります.例えばtest 2-o:バックアップのデータ格納場所、例えば:c:datadump、もちろんこのディレクトリは事前に確立する必要があります.バックアップが完了すると、データベース・インスタンスのバックアップ・データを格納するdumpディレクトリの下にtestディレクトリが自動的に作成されます.--directoryperdb:バックアップデータの場所、例えば:c:datadumptest、ここではなぜバックアップ時のdumpではなくtestを追加するのか、読者自身がヒントを見てみましょう.--drop:リカバリするときは、現在のデータを削除し、バックアップしたデータをリカバリします.つまり、リカバリ後、バックアップ後に変更を加えたデータは削除されますので、ご遠慮ください.元の解釈:-v[--verbose]be more verbose(include multiple times for more verbosity e.g.-vvvv)--version print the program's version and exit-h[--host]arg mongo host to connect to(name>/s 1,s 2 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 --authenticationDatabase arg user source (defaults to dbname) --authenticationMechanism arg (=MONGODB-CR) authentication mechanism --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 each db is in a separate directly (relevant only if dbpath specified) --journal enable journaling (relevant only if dbpath specified) -d [ --db ] arg database to use -c [ --collection ] arg collection to use (some commands) --objcheck validate object before inserting (default) --noobjcheck don't 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 include oplog entries before the provided Timestamp (seconds[:ordinal]) during the oplog replay; The ordinal value is optional--keepIndexVersion don't upgrade indexes to newest version--noOptionsRestore don't restore collection options--noIndexRestore don't restore indexes--w arg(=0)minimum number of replicas per write linuxの下mongodbデータベースのバックアップとリカバリlinuxの下に自動バックアップスクリプトを作成できます.スケジュールタスクを設定したり、手動でバックアップしたりできます.私は手動でバックアップしました.まずshコマンドを作成し、ホームの下に置きます.vim/home/mongoBeiFen.sh次のように入力します.
!/bin/bash
shijie=
!/bin/bash
shijie=
date +%Y%m%d%H
backmongodbFile=mongodb$shijie.tar.gz cd/home/mongoDbback//usr/local/mongo/bin/mongodump -h 127.0.0.1 --port 27017 -u mongo -p 123456 -d my_mongodb -o my_mongodb_dump/tar czf $backmongodbFile my_mongodb_dump/rm my_mongodb_dump-rf解釈:バックアップを格納するフォルダは/home/mongodbback/-uはデータベース名ユーザー名-pはパスワード-dはデータベース名具体的にwindowと差が少ないので、上のwindowsの解釈を見てみましょう.バックアップ時に実行するだけです./mongoBeiFen.shでいいです.データベース・リカバリ:/usr/local/mongo/bin/mongorestore-d my_mongodb my_mongodb_dump/my_mongodb/*は、各ファイル/usr/local/mongo/bin/mongorestore-h 127.0を指す.0.1 --port 27017 -- drop --directoryperdb my_mongodb_dump/my_mongodbが1つのディレクトリに問題がある場合はwindowの書き方を試してみてください:/usr/local/mongo/bin/mongorestore-h 127.0.0.1:27017 -d test --drop --directoryperdb my_mongodb_dump/my_mongodb