mongorestore
このドキュメントは、mongorestore
のバージョン 100.10.0
用です。
Synopsis
mongorestore
プログラムは、mongodump
によって作成されたバイナリのデータベース ダンプ、または標準入力からデータを読み込み、mongod
または mongos
インスタンスにロードします。
mongodump
から生成された BSON ファイルは、復元元と同じかそれ以降のバージョンを実行中の MongoDB 配置に復元できます。ただし、新しいバージョンの配置へのファイルの復元は、配置のアップグレード方法としては推奨されていません。配置のアップグレード方法については、アップグレードのドキュメントを参照してください。
mongo
shell ではなく、システム コマンド ラインから mongorestore
を実行します。
MongoDB は、同じコレクションに対して複数の mongorestore
プログラムを同時に実行することをサポートしていません。
MongoDB データベースツールを使用して、セルフホスト型配置から MongoDB Atlas へ移行できます。MongoDB Atlas は、MongoDB をクラウドに配置するためのフルマネージド サービスです。詳細については、「mongorestore でのシード処理」を参照してください。
MongoDB Atlas への移行方法については、「データの移行またはインポート」を参照してください。
構文
mongorestore
構文:
mongorestore <options> <connection-string> <directory or file to restore>
たとえば、dump
ディレクトリから ポート 27017
で実行されている mongod
のローカル インスタンスに復元するには、次の手順に従います。
mongorestore dump/
mongorestore
は、dump/
ディレクトリから復元する際、必要に応じてデータベースとコレクションを作成し、進行状況をログに記録します。
2019-07-08T14:37:38.942-0400 preparing collections to restore from 2019-07-08T14:37:38.944-0400 reading metadata for test.bakesales from dump/test/bakesales.metadata.json 2019-07-08T14:37:38.944-0400 reading metadata for test.salaries from dump/test/salaries.metadata.json 2019-07-08T14:37:38.976-0400 restoring test.salaries from dump/test/salaries.bson 2019-07-08T14:37:38.985-0400 no indexes to restore 2019-07-08T14:37:38.985-0400 finished restoring test.salaries (10 documents, 0 failures) 2019-07-08T14:37:39.009-0400 restoring test.bakesales from dump/test/bakesales.bson 2019-07-08T14:37:39.011-0400 restoring indexes for collection test.bakesales from metadata 2019-07-08T14:37:39.118-0400 finished restoring test.bakesales (21 documents, 0 failures) 2019-07-08T14:37:39.118-0400 restoring users from dump/admin/system.users.bson 2019-07-08T14:37:39.163-0400 restoring roles from dump/admin/system.roles.bson 2019-07-08T14:37:39.249-0400 31 document(s) restored successfully. 0 document(s) failed to restore.
dump/
ディレクトリから特定のコレクション(複数可)を復元することもできます。次の操作の例では、dump/
ディレクトリ内の対応するデータファイルから 1 つのコレクションを復元します。
mongorestore --nsInclude=test.purchaseorders dump/
dump/
ディレクトリに、指定された名前空間に対応するデータファイルが含まれていない場合、データは復元されません。次の例では、dump/
ディレクトリに対応するデータがないコレクション名前空間が指定されています。
mongorestore --nsInclude=foo.bar dump/
mongorestore
では、次のメッセージが出力されます。
2019-07-08T14:38:15.142-0400 preparing collections to restore from 2019-07-08T14:38:15.142-0400 0 document(s) restored successfully. 0 document(s) failed to restore.
その他の例については、「mongorestore の例」を参照してください。
オプション
--quiet
出力量を制限する quiet モードで
mongorestore
を実行します。このオプションにより次の項目が抑制されます。
データベースコマンドからの出力
レプリケーション アクティビティ
接続を受け付けたイベント
接続を終了したイベント
--config=<filename>
バージョン 100.3.0 の新機能。
次のオプションの機密値を含む YAML 構成ファイルへのフル パスを
mongorestore
に指定します。これは、
mongorestore
にパスワードを指定するのに、パスワード プロンプトを使用して指定する以外で推奨される方法です。構成ファイルは以下の形式をとります。
password: <password> uri: mongodb://mongodb0.example.com:27017 sslPEMKeyPassword: <password> password:
フィールドにパスワードを指定し、競合するパスワードを含む接続文字列をuri:
フィールドに指定すると、エラーが発生します。このファイルは、必ず適切なファイルシステム権限で保護してください。
注意
--config
で構成ファイルを指定し、かつmongorestore
--password
、--uri
または--sslPEMKeyPassword
オプションも使用する場合、各コマンドライン オプションによって構成ファイルの対応オプションが上書きされます。
--uri=<connectionString>
MongoDB 配置の解決可能な URI 接続文字列 を引用符で囲んで指定します。
--uri="mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]" mongorestore
のバージョン100.0
以降、接続文字列は、--uri
オプションを使用せずに、位置パラメータとして入力することもできます。mongorestore mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] 接続文字列は、位置指定パラメータとして
mongodb://
またはmongodb+srv://
で始まっている限り、コマンドラインの任意の点で指定できます。以下に例を挙げます。mongorestore --username joe --password secret1 mongodb://mongodb0.example.com:27017 --ssl 入力できる接続文字列は 1 つのみです。複数の値を含めようとすると、
--uri
オプションを使用する場合でも、位置引数として使用する場合でも、エラーになります。接続文字列のコンポーネントの詳細については、「接続文字列 URI 形式」ドキュメントを参照してください。
注意
connection string
内の一部のコンポーネントは、--username
や--password
など、独自の明示的コマンドライン オプションを使用して指定することもできます。明示的オプションを使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。注意
mongorestore
を Ubuntu 18.04 で使用する場合、(mongodb+srv://
形式で)SRV 接続文字列を--uri
オプションと併用する場合、cannot unmarshal DNS
というエラー メッセージが表示されることがあります。その場合は、次のいずれかのオプションを代わりに使用します。--uri
オプションと非 SRV 接続文字列(mongodb://
形式)直接接続するホストを指定するための
--host
オプション
--host=<hostname><:port>, -h=<hostname><:port>
デフォルト: localhost:27017
MongoDB 配置の解決可能なホスト名を指定します。デフォルトでは、
mongorestore
によってポート番号27017
のローカルホストで実行されている MongoDB インスタンスに接続しようとします。レプリカセットに接続するには、
replSetName
とセットノードのシードリストを次のように指定します。--host=<replSetName>/<hostname1><:port>,<hostname2><:port>,<...> レプリカセット リスト形式を指定する場合、
mongorestore
は常にプライマリに接続します。また、レプリカセットの任意の 1 つのノードに接続するには、そのノードのみのホストとポートを指定します。
--host=<hostname1><:port> IPv6 を使用し、
<address>:<port>
形式を使用する場合は、アドレスとポートの組み合わせの一部を括弧で囲む必要があります(例:[<address>]
)。あるいは、
URI connection string
でホスト名を直接指定することもできます。--host
を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。
--port=<port>
デフォルト: 27017
MongoDB インスタンスがクライアント接続のためにリッスンする TCP ポートを指定します。
あるいは、
URI connection string
でポートを直接指定することもできます。--port
を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。
--ssl
TLS/SSL サポートが有効になっている
mongod
またはmongos
への接続を有効にします。あるいは、
URI connection string
で TLS/SSL サポートを直接構成することもできます。--ssl
を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。
--sslCAFile=<filename>
証明書認証機関からのルート証明書チェーンを含む
.pem
ファイルを指定します。相対パスまたは絶対パスを使用して.pem
ファイルのファイル名を指定します。あるいは、
URI connection string
で.pem
ファイルを直接指定することもできます。接続文字列を提供し、さらに--sslCAFile
を使用中に競合する情報を指定すると、エラーが発生します。TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。
--sslPEMKeyFile=<filename>
TLS/SSL 証明書とキーの両方を含む
.pem
ファイルを指定します。相対パスまたは絶対パスを使用して、.pem
ファイルのファイル名を指定します。このオプションが必要になるのは、
--ssl
オプションを使用してmongod
またはmongos
に接続し、かつこれらでallowConnectionsWithoutCertificates
. がない状態でCAFile
が有効化されている場合です。あるいは、
URI connection string
で.pem
ファイルを直接指定することもできます。接続文字列を提供し、さらに--sslPEMKeyFile
を使用中に競合する情報を指定すると、エラーが発生します。TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。
--sslPEMKeyPassword=<value>
証明書キーファイル(例:
--sslPEMKeyFile
)を復号化するためのパスワードを指定します。--sslPEMKeyPassword
オプションは、証明書キーファイルが暗号化されている場合にのみ使用してください。いずれの場合も、mongorestore
はログおよびレポート出力でパスワードを非表示にします。PEM ファイル内の秘密キーが暗号化されており、
--sslPEMKeyPassword
オプションを指定しない場合は、mongorestore
によってパスフレーズの入力が求められます。詳しくは、「TLS/SSL 証明書のパスフレーズ」を参照してください。あるいは、
URI connection string
でパスワードを直接指定することもできます。--sslPEMKeyPassword
を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。
警告
一部のシステムでは、
--sslPEMKeyPassword
オプションを使用して直接提供されたパスワードは、他のユーザーによって呼び出される可能性のあるps
などのシステム ステータス プログラムに表示される場合があります。代わりに--config
オプションを使用して、パスワードを含む構成ファイルを指定することを検討してください。
--sslCRLFile=<filename>
証明書失効リストを含む
.pem
ファイルを指定します。相対パスまたは絶対パスを使用して.pem
ファイルのファイル名を指定します。TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。
--sslAllowInvalidCertificates
サーバー証明書の検証チェックをバイパスし、無効な証明書を使用できるようにします。
allowInvalidCertificates
設定を使用すると、MongoDB では無効な証明書の使用に対する警告としてログに記録されます。警告
あるいは、
URI connection string
で証明書の検証を直接無効にすることもできます。接続文字列を提供し、さらに--sslAllowInvalidCertificates
を使用して競合する情報を指定すると、エラーが発生します。TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。
--sslAllowInvalidHostnames
TLS/SSL 証明書のホスト名の検証を無効にします。証明書内のホスト名が指定されたホスト名と一致しない場合でも、
mongorestore
によって MongoDB インスタンスへの接続が許可されます。あるいは、
URI connection string
でホスト名の検証を直接無効にすることもできます。--sslAllowInvalidHostnames
を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。
--username=<username>, -u=<username>
認証を使用する MongoDB データベースへの認証すに使用するユーザー名を指定します。
--password
オプションおよび--authenticationDatabase
オプションと組み合わせて使用します。あるいは、
URI connection string
でユーザー名を直接指定することもできます。--username
を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。MONGODB-AWS
authentication mechanism
を使用して MongoDB Atlas クラスターに接続する場合は、次の場所で AWS アクセス キー ID を指定できます。このフィールド
AWS_ACCESS_KEY_ID
環境変数。
それぞれの例については、「AWS IAM 認証情報を使用した MongoDB Atlas クラスターへの接続」を参照してください。
--password=<password>, -p=<password>
認証を使用する MongoDB データベースに対して認証するためのパスワードを指定します。
--username
オプションおよび--authenticationDatabase
オプションと組み合わせて使用します。ユーザーにパスワードの入力を求めるには、
--username
オプションを--password
なしで渡すか、--password=""
のように--password
の値に空の文字列を指定します。あるいは、
URI connection string
でパスワードを直接指定することもできます。--password
を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。MONGODB-AWS
authentication mechanism
を使用して MongoDB Atlas クラスターに接続する場合は、次の場所で AWS シークレットアクセスキーを指定できます。このフィールド
AWS_SECRET_ACCESS_KEY
環境変数。
それぞれの例については、「AWS IAM 認証情報を使用した MongoDB Atlas クラスターへの接続」を参照してください。
警告
一部のシステムでは、
--password
オプションを使用して直接提供されたパスワードは、他のユーザーによって呼び出される可能性のあるps
などのシステム ステータス プログラムに表示される場合があります。そのため、次の代替策を検討しましょう。--password
オプションを省略し、インタラクティブなパスワード プロンプトを表示する--config
オプションを使用して、パスワードを含む構成ファイルを指定します。
--awsSessionToken=<AWS Session Token>
MONGODB-AWS
authentication mechanism
を使用して MongoDB Atlas クラスターに接続し、AWS アクセスキー ID とシークレットアクセスキーに加えてセッション トークンを使用する場合は、次の場所に AWS セッション トークンを指定できます。このフィールド
AWS_SESSION_TOKEN
authMechanismProperties
パラメーターをconnection string
へ、またはAWS_SESSION_TOKEN
環境変数。
それぞれの例については、「AWS IAM 認証情報を使用した MongoDB Atlas クラスターへの接続」を参照してください。
MONGODB-AWS
authentication mechanism
を使用している場合にのみ有効です。
--authenticationDatabase=<dbname>
指定された
--username
が作成された認証データベースを指定します。詳細については、「認証データベース」を参照してください。GSSAPI(Kerberos)、PLAIN(LDAP SASL)、または
MONGODB-AWS
authentication mechanisms
を使用する場合は、--authenticationDatabase
を$external
に設定する必要があります。あるいは、
URI connection string
で認証データベースを直接指定することもできます。--authenticationDatabase
を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。
--authenticationMechanism=<name>
デフォルト: SCRAM-SHA-1
mongorestore
インスタンスがmongod
またはmongos
への認証に使用する認証メカニズムを指定します。バージョン 100.1.0 での変更: バージョン
100.1.0
以降、MongoDB Atlas クラスターへの接続時にMONGODB-AWS
認証メカニズムのサポートがmongorestore
に追加されます。値説明SHA-1 ハッシュ関数を使用する RFC5802 標準の Salted Challenge Response Authentication Mechanismです。SHA-256 ハッシュ関数を使用する RFC 7677 標準の Salted Challenge Response Authentication Mechanism。
featureCompatibilityVersion を
4.0
に設定する必要があります。MongoDB TLS/SSL 証明書認証。MONGODB-AWS
MongoDB Atlas クラスターへの接続に使用する AWS IAM 認証情報を使用した外部認証。「AWS IAM 認証情報を使用して MongoDB Atlas クラスターに接続する」を参照してください。
バージョン 100.1.0 の新機能。
GSSAPI(Kerberos)Kerberos を使用する外部認証。このメカニズムは MongoDB Enterprise でのみ使用できます。PLAIN(LDAP SASL)LDAP を使用する外部認証。データベース内のユーザー認証には、PLAIN
を使用することもできます。PLAIN
はパスワードをプレーン テキストで送信します。このメカニズムは MongoDB Enterprise でのみ使用できます。あるいは、
URI connection string
で認証メカニズムを直接指定することもできます。--authenticationMechanism
を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。
--gssapiServiceName=<serviceName>
GSSAPI/Kerberos を使用してサービスの名前を指定します。サービスがデフォルト名
mongodb
を使用しない場合のみ必要となります。このオプションは MongoDB Enterprise でのみ使用できます。
--gssapiHostName=<hostname>
GSSAPI/Kerberos を使用してサービスのホスト名を指定します。マシンのホスト名が DNS で解決されたホスト名と一致しない場合にのみ必要となります。
このオプションは MongoDB Enterprise でのみ使用できます。
--db=<database>, -d=<database>
BSON ファイルからデータを復元するときに、
mongorestore
にデータの復元先のデータベースを指定します。データベースが存在しない場合は、mongorestore
によりデータベースが作成されます。次の例では、salaries
コレクションをreporting
データベースに復元しています。mongorestore --db=reporting dump/test/salaries.bson --db
を指定しない場合、mongorestore
はデータファイルからデータベース名を読み取ります。ディレクトリまたはアーカイブ ファイルから復元する場合、
--db
と--collection
オプションの使用は推奨されません。代わりに、アーカイブまたはディレクトリから復元するには、「--nsInclude
」を参照してください。あるいは、
URI connection string
でデータベースを直接指定することもできます。--db
を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。
--collection=<collection>, -c=<collection>
BSON ファイルからの復元時にデータを読み込む
mongorestore
の復元先コレクション名を指定します。--collection
を指定しない場合、mongorestore
は入力ファイル名からコレクション名を取得します。入力ファイルに拡張子がある場合、コレクション名ではその拡張子は省略されます。mongorestore --db=reporting --collection=employeesalaries dump/test/salaries.bson ディレクトリまたはアーカイブ ファイルから復元する場合、
--db
と--collection
オプションの使用は推奨されません。代わりに、アーカイブまたはディレクトリから復元するには、「--nsInclude
」を参照してください。
--nsExclude=<namespace pattern>
名前空間パターン(例:
"test.myCollection"
、"reporting.*"
、"dept*.bar"
)を指定して、一致する名前空間を復元対象から除外します。このパターンでは、ワイルドカードとしてアスタリスク*
を使用できます。ワイルド カード パターンの例については、「ワイルドカードを使用したコレクションの復元」を参照してください。--nsExclude
を複数回指定回指定することで、複数の名前空間パターンを除外することができます。
--nsInclude=<namespace pattern>
名前空間パターン(例:
"test.myCollection"
、"reporting.*"
、"dept*.bar"
)を指定して、パターンに一致する名前空間のみを復元します。このパターンでは、ワイルドカードとしてアスタリスク*
を使用できます。ワイルド カード パターンの例については、「ワイルドカードを使用したコレクションの復元」を参照してください。複数の名前空間パターンを含めるには、
--nsInclude
を複数回指定できます。ソース ディレクトリまたはファイル(つまり、データの復元元のディレクトリ/ファイル)に名前空間パターンと一致するデータファイルが含まれていない場合、データは復元されません。
コレクション名に非 ASCII 文字が含まれている場合、
mongodump
は、対応するファイル名をパーセント エンコードされた名前で出力します。ただし、これらのコレクションを復元する場合は、エンコードされた名前を使用しないでください。代わりに、非 ASCII 文字を含む名前空間を使用してください。たとえば、ダンプ ディレクトリに
dump/test/caf%C3%A9s.bson
が含まれている場合は、--nsInclude "test.cafés"
と指定します。
--nsFrom=<namespace pattern>
--nsTo
を使用して、復元操作中に名前空間の名前を変更します。--nsFrom
はダンプファイル内のコレクションを指定し、--nsTo
は復元されたデータベースで使用する名前を指定します。--nsFrom
は名前空間パターンを引数として受け入れます。名前空間パターンにより--nsFrom
は指定パターンに一致する任意の名前空間を参照できます。mongorestore
は、名前空間パターンの最小の有効な出現と一致します。単純な置換の場合は、ワイルド カードとしてアスタリスク(
*
)を使用します。すべてのリテラルのアスタリスクとバックスラッシュを、バックスラッシュでエスケープします。置換は一致に対して順次に対応します。--nsFrom
の各アスタリスクは--nsTo
のアスタリスクに対応し、--nsFrom
の最初のアスタリスクはnsTo
の最初のアスタリスクと一致する必要があります。より複雑な置き換えでは、使用する「ワイルドカード」変数をドル記号で区切ります。このワイルドカードを使った複雑な置き換えの例については、「復元中のコレクションの名前空間の変更」を参照してください。
アスタリスクによる置換とは異なり、ドル記号で区切られたワイルド カードの置換は順次対応する必要はありません。
--nsTo=<namespace pattern>
--nsFrom
を使用して、復元操作中に名前空間の名前を変更します。--nsTo
は復元されたデータベースで使用する新しいコレクション名を、--nsFrom
はダンプファイル内の名前を指定します。--nsTo
は名前空間パターンを引数として受け入れます。名前空間パターンにより--nsTo
は指定パターンに一致する任意の名前空間を参照できます。mongorestore
は、名前空間パターンの最小の有効な出現と一致します。単純な置換の場合は、ワイルド カードとしてアスタリスク(
*
)を使用します。すべてのリテラルのアスタリスクとバックスラッシュを、バックスラッシュでエスケープします。置換は一致に対して順次に対応します。--nsFrom
の各アスタリスクは--nsTo
のアスタリスクに対応し、--nsFrom
の最初のアスタリスクはnsTo
の最初のアスタリスクと一致する必要があります。より複雑な置き換えでは、使用する「ワイルドカード」変数をドル記号で区切ります。このワイルドカードを使った複雑な置き換えの例については、「復元中のコレクションの名前空間の変更」を参照してください。
アスタリスクによる置換とは異なり、ドル記号で区切られたワイルド カードの置換は順次対応する必要はありません。
--objcheck
クライアントからのすべてのリクエストについて、受信時に
mongorestore
に検証を強制して、クライアントがデータベースに無効なドキュメントを挿入しないようにします。サブドキュメントのネストが深いオブジェクトの場合、--objcheck
によってパフォーマンスに若干影響が出る可能性があります。
--drop
ダンプされたバックアップからコレクションを復元する前に、復元先のデータベースからコレクションを削除します。バックアップに含まれていないコレクションは、
--drop
によって削除されません。復元に
admin
データベースが含まれている場合、mongorestore
は--drop
を使用してすべてのユーザー認証情報を削除し、ダンプファイルで定義されたユーザーに置き換えます。そのため、authorization
が有効なシステムでは、mongorestore
は既存のユーザーおよびダンプファイルで定義されたユーザーの両方に対して認証できる必要があります。mongorestore
がダンプファイルで定義されたユーザーに対して認証できない場合、復元プロセスは失敗し、空のデータベースが残ります。コレクションが復元過程で削除、再作成される場合、新たに作成されるコレクションの UUID は、
--drop
が--preserveUUID
と併用されない限り、異なるものになります。
--preserveUUID
復元の一環で削除、再作成されたコレクションに対して新しい UUID が作成されるのではなく、復元されたコレクションには復元データの UUID が使用されます。
--preserveUUID
を使用するには、--drop
オプションも含める必要があります。
--dryRun
データを実際にインポートせずに
mongorestore
を実行し、mongorestore
サマリー情報を返します。より詳細なサマリー情報を生成するには、--verbose
を一緒に使用します。
--oplogReplay
データベース ダンプの復元後に、
oplog.bson
ファイルから oplog エントリを再生します。復元時に
oplog.bson
ファイルから oplog エントリを適用するには、mongorestore --oplogReplay
を使用します。データが最新で、ダンプ操作中に発生したすべての書き込みが含まれていることを確認するには、mongodump --oplog
をmongorestore --oplogReplay
と併用します。mongorestore
次のロケーションで BSON ファイルの有効なソースの検索も使用します。mongodump --oplog
で作成されたダンプの場合と同様に、最上位のダンプ ディレクトリです。mongodump --oplog
--oplogFile
で指定されるパス。<dump-directory>/local/oplog.rs.bson
。たとえば、レプリカセットのノードである mongod
上のlocal
データベース内のoplog.rs
コレクションのダンプの場合などです。
oplog.bson
ファイルがダンプ ディレクトリの最上位にあり、かつパスが--oplogFile
で指定されている場合には、mongorestore
からエラーが返されます。ダンプ ディレクトリの最上位に
oplog.bson
ファイルがある場合、mongorestore
は、そのファイルを oplog として復元します。dump/local
ディレクトリに bson ファイルもある場合、mongorestore
は、通常のコレクションと同様にそれらを復元します。--oplogFile
を使用して oplog ファイルを指定すると、mongorestore
ではそのファイルは oplog として復元されます。dump/local
ディレクトリに bson ファイルもある場合、これらのファイルはmongorestore
で通常のコレクションと同様に復元されます。oplog replay 出力の次のメッセージは、oplog replay の前の挿入数を示しています。リプレイ中に行われた挿入は含まれません。
0 document(s) restored successfully. 0 document(s) failed to restore. --oplogReplay
の例については、「Oplog ファイルを使用したデータのバックアップと復元」を参照してください。注意
mongorestore
を使用して--oplogReplay
でレプリカセットを復元する場合、mongodump --oplog
を使用して作成されたレプリカセットノードの完全なダンプを復元する必要があります。次のオプションのいずれかを使用して復元するデータを制限する場合、mongorestore
と--oplogReplay
は併用できません。
--oplogLimit=<timestamp>
mongorestore
が oplog エントリを<timestamp>
以降のタイムスタンプで適用しないようにします。<timestamp>
の値は<time_t>:<ordinal>
の形式で指定します。ここで<time_t>
は UNIX エポック後の秒数、<ordinal>
は指定秒数内に発生した oplog 内の操作カウンターを示します。警告
oplogLimit
の使用には注意が必要です。適用する oplog エントリを手動で指定すると、復元データの破損や不整合につながる恐れがあります。--oplogLimit
は--oplogReplay
オプションと組み合わせて使用する必要があります。
--oplogFile=<path>
復元用の oplog データを含む oplog ファイルへのパスを指定します。
--oplogReplay
と併用します。--oplogFile
を指定した場合にダンプ ディレクトリの最上位にoplog.bson
ファイルがあると、mongorestore
からエラーが返されます。警告
oplogFile
の使用には注意が必要です。適用する oplog エントリを手動で指定すると、復元データの破損や不整合につながる恐れがあります。
--convertLegacyIndexes
バージョン100.0.0の新機能。
対応する
mongodump
出力で指定された無効なインデックス オプションをすべて排除し、レガシー インデックス キーの値を有効な値に書き換えます。無効なインデックス オプションとは、
createIndexes
コマンドの有効フィールドとしてリストされていないインデックス専用のオプションです。たとえば、name
とcollation
は有効ですが、無作為のcustom_field
は有効ではありません。--convertLegacyIndexes
が指定されている場合、見つかった無効なインデックス オプションはすべて削除されます。レガシー インデックス キー値とは、サポートされなくなったインデックス タイプの値です。たとえば、
1
と-1
は有効なインデックス キー値ですが、0
または空の文字列はレガシー値です。--convertLegacyIndexes
が指定されている場合、見つかったレガシー インデックス キー値は1
に書き換えられます。空でない文字列の値は書き換えられません。
--convertLegacyIndexes
オプションが指定されていない場合、無効なインデックス オプションまたはレガシー インデックス キーの値が存在すると、インデックス構築が失敗する可能性があります。--noIndexRestore
オプションがmongorestore
に指定されている場合、--convertLegacyIndexes
オプションは無視されます。
--noIndexRestore
対応する
mongodump
出力で指定されているように、mongorestore
がインデックスを復元および構築するのを防ぎます。
--fixDottedHashIndex
ドット表記されたフィールドのすべてのハッシュインデックスを、ターゲットデータベースの 1 つのフィールドの昇順インデックスとして作成します。
--noOptionsRestore
mongorestore
が復元されたコレクションに対してcollMod
データベースコマンドによって指定されたコレクション オプションを設定するのを防ぎます。
--restoreDbUsersAndRoles
指定されたデータベースのユーザーとロールの定義を復元します。詳細については、system.roles コレクションおよび system.users コレクションを参照してください。
注意
--restoreDbUsersAndRoles
オプションは、admin
データベースに--db
オプションを指定すると使用できなくなり、指定を試みるとエラーが発生します。--db admin
にmongorestore
を指定してadmin
データベースを復元すると、すべてのユーザーとロールは自動的に復元されます。
--writeConcern=<document>
デフォルト: 過半数
mongorestore
で実行される各書き込み操作の書き込み保証(write concern)レベルを指定します。w オプション適用のドキュメントとしての書込み保証(write concern)の指定
--writeConcern="{w:'majority'}" 書き込み保証が
--uri connection string
にも含まれている場合、URI文字列で指定された書き込み保証はコマンドライン--writeConcern
で上書きされます。
--maintainInsertionOrder
デフォルト: false
指定した場合、
mongorestore
は、入力ソースに出現する順序でドキュメントを挿入します。つまり、一括書き込み (write) バッチの順と、バッチ内のドキュメント順の両方が維持されます。--maintainInsertionOrder
を指定することで--stopOnError
も有効になり、numInsertionWorkersPerCollection
は 1 に設定されます。指定されていない場合、
mongorestore
が、無作為な順序で挿入を実行する可能性があります。
--numParallelCollections=<int>, -j=<int>
デフォルト: 4
mongorestore
が並行して復元すべきコレクションの数。単一コレクションの復元時に、
-j
を指定すると、-j
は--numParallelCollections
ではなく--numInsertionWorkersPerCollection
オプションにマッピングされます。
--numInsertionWorkersPerCollection=<int>
デフォルト: 1
コレクションごとに同時に実行する挿入ワーカーの数を指定します。
大規模なインポートの場合、挿入ワーカーの数を増やすとインポートが迅速化する可能性があります。
--stopOnError
エラーに遭遇すると、
mongorestore
は復元を中止するよう強制します。mongorestore
のデフォルト設定では、キーの重複とドキュメント検証エラーが発生しても復元処理は続行されます。こうしたエラー発生時にプログラムが停止するようにするには、--stopOnError
を指定します。
--bypassDocumentValidation
操作中にドキュメントの検証をバイパスするよう
mongorestore
を有効にします。これにより、検証要件を満たさないドキュメントを挿入できるようになります。このオプションは、Queryable Encryption が有効なコレクションを復元する場合に必要です。
--gzip
以下によって作成された圧縮ファイルまたはデータ ストリームから復元します。
mongodump --gzip
圧縮ファイルを含むダンプ ディレクトリから復元するには、
--gzip
オプションを指定してmongorestore
を実行します。圧縮されたアーカイブ ファイルから復元するには、
--gzip
オプションと--archive
オプションの両方を指定してmongorestore
を実行します。
--archive=<file>
指定されたアーカイブ ファイルから復元します。ファイルが指定されていない場合は、標準入力(
stdin
)から復元します。アーカイブ ファイルから復元するには、
--archive
オプションとアーカイブ ファイル名を指定してmongorestore
を実行します。標準入力から復元するには、
--archive
オプションを指定してmongorestore
を実行しますが、ファイル名は省略します。