mongodumpとmongorestore を使用して、既存のMongoDBスタンドアロンまたはレプリカセットのデータを使用してMongoDB Atlasクラスターをシードできます。既存のMongoDBシャーディングされたクラスターからデータをシードするガイダンスについては、 Atlas サポート にお問い合わせください。
Atlas で、Support ページに移動します。
まだ表示されていない場合は、以下から目的の組織を選択しますナビゲーション バーのOrganizationsメニュー
ナビゲーション バーの Support アイコンをクリックします。
[View plan] をクリックします。
サポートページが表示されます。
Atlas UIを使用して、 無料クラスター(以前はM0 M10+mongodumpと呼ばれていました)を の有料クラスターに増やすできますが、このセクションでは とmongorestore の手順を使用して、無料クラスターから にデータをコピーすることもできます。M10+ クラスター。
このタスクについて
推奨される mongodump と mongorestore のバージョン
この手順では、最新の安定版リリース バージョンのmongodump とmongorestore を使用します。
必要なダウンタイム
最新の移行を実現するには、ソースクラスターへのすべての書き込みを停止できるメンテナンスウィンドウをスケジュールします。手順のmongodump 部分が完了した後にソースクラスターに発行された書込み操作は、宛先クラスターに移行されません。
mongorestoreがデータの復元を完了したら、書込み操作を再開する前に、アプリケーションを宛先の Atlas クラスターにカットオーバーする必要があります。 Atlas クラスターに接続するには、「 Atlas クラスターへの接続 」を参照してください。
必要なダウンタイムの合計量は、移行されるデータのサイズやソースクラスターと Atlas 間のネットワーク接続などの要因によって異なります。 長時間のダウンタイムに関する質問や懸念がある場合は、Atlas サポート にお問い合わせください。
Atlas で、Support ページに移動します。
まだ表示されていない場合は、以下から目的の組織を選択しますナビゲーション バーのOrganizationsメニュー
ナビゲーション バーの Support アイコンをクリックします。
[View plan] をクリックします。
サポートページが表示されます。
クラスターのセキュリティ
Atlas がデータベースユーザーの作成を管理します。 ソースクラスターが認証を強制する場合、次のことを行います。
プライマリへの読み取りアクセスを許可します。
オプションとともに を使用する場合は、 が作成する ディレクトリから
mongodumpmongorestore--oplogReplayadminconfigディレクトリとdumpディレクトリを削除する必要があります。 ディレクトリとadminディレクトリには、 を使用してconfigAtlas クラスターに追加できないデータベースユーザー情報が含まれています。mongorestoremongorestore--nsExcludeadmin.system.*名前空間を除外するには、 を使用します。
既存のユーザーまたはロール情報を Atlas に移行することはできません。 宛先 Atlas クラスターには、アプリケーションの使用パターンをサポートするための適切なデータベースユーザーを作成します。 新しいデータベースユーザーを使用するには、カットオーバー手順の一部としてアプリケーションをアップデートします。 詳細については、 「データベースユーザーの設定」 を参照してください。
パフォーマンス
この手順では、ソースクラスター内のホストでmongodump とmongorestore を実行中必要があります。これらのプログラムは CPU やメモリなどのシステム リソースを使用するため、ホストのパフォーマンスに影響可能性があります。
この手順は、ピーク以外のシステム使用中に、またはスケジュールされたメンテナンスウィンドウ中に実行します。 ソースがレプリカセットである場合は、セカンダリノードのホストからこの手順を実行できます。 クラスターへの書き込みを停止した後、この手順を開始する前に、セカンダリがプライマリに追いつくようにします。
パイプの動作
この手順では、Linux mongodumpパイプを使用して、 の出力をmongorestore にストリーミングします。mongorestore プロセスがmongodump プロセスに追いつけない場合、パイプライン エラーが発生する可能性があります。
永続的な壊れたパイプエラーへの対処に関するガイダンスは、Atlas サポートにお問い合わせください。
Atlas で、Support ページに移動します。
まだ表示されていない場合は、以下から目的の組織を選択しますナビゲーション バーのOrganizationsメニュー
ナビゲーション バーの Support アイコンをクリックします。
[View plan] をクリックします。
サポートページが表示されます。
手順
次のチュートリアルでは、mongodump とmongorestore を使用して、既存のMongoDBクラスターから Atlas クラスターにデータをアップロードします。
ソース レプリカセットにデータベースユーザーを作成します。
重要
任意
ソースクラスターが認証を強制しない場合は、このステップをスキップします。
ソース配置で認証が強制される場合は、この手順の一部として任意のデータベースを読み取る権限を持つデータベースユーザーに提供する必要があります。 データベースユーザーの特権の詳細については、「 MongoDB のロールベースのアクセス制御 」を参照してください。
そのようなユーザーが存在しない場合は、 データベースのバックアップロール を持つソースMongoDBレプリカセットにユーザーを作成します。admin
例
で次のコマンドを実行して、mongosh mySourceUseradminデータベースに を作成し、それにbackup ロールを割り当てます。レプリカセットの場合は、 プライマリ に対してこのコマンドを実行する必要があります。
use admin db.createUser( { user: "<mySourceUser>", pwd: "<mySourcePassword>", roles: [ "backup" ] } )
mongodump コマンドを組み立てます。
使用する接続文字列のタイプに基づいて、次のいずれかのテンプレートを にコピーして、希望のテキストエディタにコピーします。
注意
Atlasクラスターに接続するには、--uri オプションを使用して DNS シードリスト接続文字列に接続することを推奨します。
mongodump --uri "mongodb://username:password@mongodb0.example.com:<Port>,mongodb1.example.com:<Port1>,mongodb2.example.com:<Port2>/?replicaSet=<ReplicaSetName>&authSource=admin" \ --archive
ホストの例をレプリカセットの情報に置き換えます。 <ReplicaSetName>をソース レプリカセットの名前に置き換えます。
スタンドアロン配置の場合は、 replicaSet=<ReplicaSetName>を除外し、スタンドアロン配置のホスト名のみを指定します。 たとえば、 --uri "mongodb://standalone-mongod.example.net:27017"
mongodump --uri "mongodb+srv://username:password@cluster0.example.mongodb.net" \ --archive
注意
mongodumpmongorestoreUbuntu. で18 または04 cannot unmarshal DNSを使用している場合、SRV 接続文字列(mongodb+srv:// 形式)を オプションとともに使用すると、 エラー--uri メッセージが表示されることがあります。その場合は、次のいずれかのオプションを代わりに使用します。
--uri非 SRV接続文字列(mongodb://形式)と オプション直接接続するホストを指定するための
--hostオプション
注意
パスワードに特殊文字が含まれている場合は、パーセント エンコードする必要があります。
このコマンドはまだ実行しないでください。 テンプレートを変更したら、次の手順に進みます。
ターゲット Atlas クラスターに、データベースユーザーを設定します。
mongorestoreAtlas クラスターに対して を実行するには、 ロールを持つ AtlasAtlas admin クラスター内のデータベースユーザーを指定する必要があります。
そのようなユーザーが存在しない場合は、ユーザーを作成します。
Atlas で、プロジェクトの [Database Access] ページに移動します。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のDatabase & Network Accessをクリックします。
[ データベースとネットワーク アクセス ] ページが表示されます。
Add New Database User をクリックします。
Atlas admin ユーザーを追加します。
ユーザー管理の詳細については、「データベースユーザーの構成 」を参照してください。
Atlas で、プロジェクトの [Clusters] ページに移動します。
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
サイドバーで、 Database見出しの下のClustersをクリックします。
[ Clusters (クラスター) ] ページが表示されます。
mongorestore 接続テンプレートを検索し、変更します。
Binary Import and Export ToolsタブのCommand Line Tools セクションには、mongorestore を Atlas クラスターに接続するために必要な最小限のオプションを含むコピー可能なテンプレートが表示されます。
テンプレートには、特定のオプションのプレースホルダー値が含まれています。 テンプレートをコピーして、希望のテキストエディタに貼り付け、次の変更を行います。
password: これを、usernameで指定されたユーザーのパスワードに置き換えます。 テンプレートには、プロジェクトのデータベースユーザーがusernameとして含まれています。 別のユーザーとして認証する場合は、usernameの値を置き換え、passwordにそのユーザーのパスワードを指定します。--nsExcludeを追加し、その値を"admin.system.*"に設定します。Add
--archive.
使用する接続文字列のタイプに基づいて、テンプレートは次のいずれかのコマンドのようになります。
mongorestore --uri "mongodb://username:password@00.foo.mongodb.net:27017,01.foo.mongodb.net:27017,02.foo.mongodb.net:27017/?replicaSet=myRepl&authSource=admin" \ --archive \ --ssl \ --nsExclude "admin.system.*"
mongorestore --uri "mongodb+srv://username:password@cluster1.example.mongodb.net" \ --archive \ --nsExclude "admin.system.*"
mongodumpとmongorestore を実行します。
重要
mongodumpとmongorestore を実行中いるホストがプロジェクトのIPアクセス リストにあることを確認します。
プロジェクトの IP アクセス リストを確認するには、サイドバーのSecurityセクションにある [ Network Accessをクリックします。 IP Access Listタブが表示されます。 詳細については、「 IP アクセス リスト 」を参照してください。
お好みのテキスト| エディターで、パイプmongodump mongorestore演算子を使用して コマンドと コマンドを分離します。使用する接続文字列のタイプに基づいて、最終コマンドは次のいずれかのようになります。
mongodump --uri "mongodb://username:password@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?replicaSet=sourceRS&authSource=admin" \ --archive \ | \ mongorestore --uri "mongodb://username:password@00.foo.mongodb.net:27017,01.foo.mongodb.net:27017,02.foo.mongodb.net:27017/?replicaSet=myAtlasRS&authSource=admin" \ --archive \ --ssl \ --nsExclude "admin.system.*"
mongodump --uri "mongodb+srv://username:password@cluster0.example.mongodb.net" \ --archive \ | \ mongorestore --uri "mongodb+srv://username:password@cluster1.example.mongodb.net" \ --archive \ --nsExclude "admin.system.*"
ソースクラスター上のホストマシンに接続されたターミナルまたは shell から、完了した コマンドを実行します。
手順が正常に完了したら、 を使用して Atlas クラスターに接続し、手順の結果を確認します。方法については、mongosh 「 mongosh経由でクラスターに接続する 」を参照してください。
書込み操作を再開する前に、アプリケーションを更新して Atlas クラスターを点ようにする必要があります。Atlas にアプリケーションを接続する方法については、クライアント ライブラリを使用してクラスターに接続する を参照してください。