Docs Menu
Docs Home
/
MongoDB Atlas
/ / /

でシード処理 mongorestore

mongodumpmongorestoreを使用して、既存の MongoDB スタンドアロンまたはレプリカセットのデータを含む MongoDB Atlas クラスターをシードできます。 既存の MongoDB シャーディングされたクラスターからデータをシードする方法については、Atlas サポート にお問い合わせください。

1
  1. まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー

  2. まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。

  3. Projects メニューの横にある Options メニューをクリックし、 Project Support をクリックします。

    プロジェクト サポートページが表示されます。

2

Atlas UI を使用して、 M0無料階層クラスターをM10+有料クラスターにスケーリングできますが、このセクションではmongodumpmongorestoreの手順を使用して、 M0無料階層からデータをコピーすることもできます。階層クラスターをM10+クラスターに階層化します。

この手順では、 mongodumpmongorestoreの最新の安定版リリース バージョンを使用します。

最新の移行を実現するには、ソースクラスターへの書き込みをすべて停止できるメンテナンスウィンドウをスケジュールします。 手順のmongodump部分が完了した後にソースクラスターに発行された書込み操作は、宛先クラスターに移行されません。

mongorestoreがデータの復元を完了したら、書込み操作を再開する前に、アプリケーションを宛先の Atlas クラスターにカットオーバーする必要があります。 Atlas クラスターに接続するには、「 クラスターへの接続 」を参照してください。

必要なダウンタイムの合計量は、移行されるデータのサイズやソースクラスターと Atlas 間のネットワーク接続などの要因によって異なります。 長時間のダウンタイムに関する質問や懸念がある場合は、Atlas サポート にお問い合わせください。

1
  1. まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー

  2. まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。

  3. Projects メニューの横にある Options メニューをクリックし、 Project Support をクリックします。

    プロジェクト サポートページが表示されます。

2

より前のバージョンのMongoDBの最小ダウンタイム移行手順については、「6.0 レプリカセットのライブ移行」を参照してください。

Atlas がデータベースユーザーの作成を管理します。 ソースクラスターが認証を強制する場合、次のことを行います。

  • プライマリへの読み取りアクセスを許可します。

  • オプションとともに mongorestore--oplogReplayadminを使用する場合は、config が作成する ディレクトリからdumpmongodump ディレクトリと ディレクトリを削除する必要があります。adminディレクトリとconfigディレクトリには、 mongorestoreを使用して Atlas クラスターに追加できないデータベースユーザー情報が含まれています。 admin.system.*名前空間を除外するには、 mongorestore --nsExcludeを使用します。

既存のユーザーまたはロール情報を Atlas に移行することはできません。 宛先 Atlas クラスターには、アプリケーションの使用パターンをサポートするための適切なデータベースユーザーを作成します。 新しいデータベースユーザーを使用するには、カットオーバー手順の一部としてアプリケーションをアップデートします。 詳細については、 「データベースユーザーの設定」 を参照してください。

この手順では、ソースクラスター内のホストでmongodumpmongorestoreを実行する必要があります。 これらのプログラムは CPU やメモリなどのシステム リソースを使用するため、ホストのパフォーマンスに影響を与える可能性があります。

この手順は、ピーク以外のシステム使用中に、またはスケジュールされたメンテナンスウィンドウ中に実行します。 ソースがレプリカセットである場合は、セカンダリノードのホストからこの手順を実行できます。 クラスターへの書き込みを停止した後、この手順を開始する前に、セカンダリがプライマリに追いつくようにします。

この手順では、 Linux パイプ を使用します。mongodumpmongorestore の出力を にストリーミングします。mongorestoreプロセスがmongodumpプロセスに追いつけない場合、パイプライン エラーが発生する可能性があります。

永続的な壊れたパイプエラーへの対処に関するガイダンスは、Atlas サポートにお問い合わせください。

1
  1. まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー

  2. まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。

  3. Projects メニューの横にある Options メニューをクリックし、 Project Support をクリックします。

    プロジェクト サポートページが表示されます。

2

次のチュートリアルでは、 mongodumpmongorestoreを使用して、既存の MongoDB クラスターから Atlas クラスターにデータをアップロードします。

1

重要

任意

ソースクラスターが認証を強制しない場合は、このステップをスキップします。

ソース配置で認証が強制される場合は、この手順の一部として任意のデータベースを読み取る権限を持つデータベースユーザーに提供する必要があります。 データベースユーザーの特権の詳細については、「 MongoDB のロールベースのアクセス制御 」を参照してください。

そのようなユーザーが存在しない場合は、 adminデータベースのバックアップロールを持つソース MongoDB レプリカセットにユーザーを作成します。

mongoshで次のコマンドを実行して、 adminデータベースにmySourceUserを作成し、それにbackupロールを割り当てます。 レプリカセットの場合は、プライマリ に対してこのコマンドを実行する必要があります。

use admin
db.createUser(
{
user: "<mySourceUser>",
pwd: "<mySourcePassword>",
roles: [ "backup" ]
}
)
2

使用する接続文字列のタイプに基づいて、次のいずれかのテンプレートを にコピーして、希望のテキストエディタにコピーします。

注意

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

注意

Ubuntu 18.04でmongodumpまたはmongorestoreを使用している場合、 SRV 接続文字列mongodb+srv://形式)を--uriオプションとともに使用すると、 cannot unmarshal DNSエラー メッセージが表示されることがあります。 その場合は、次のいずれかのオプションを代わりに使用します。

  • 非 SRV 接続stringmongodb:// 形式)と --uri オプション

  • 直接接続するホストを指定するための--hostオプション

注意

パスワードに特殊文字が含まれている場合は、パーセント エンコードする必要があります。

このコマンドはまだ実行しないでください。 テンプレートを変更したら、次の手順に進みます。

3

Atlas クラスターに対してmongorestoreを実行するには、 Atlas adminロールを持つ Atlas クラスター内のデータベースユーザーを指定する必要があります。

そのようなユーザーが存在しない場合は、ユーザーを作成します。

  1. Atlas で、 Organization Access Manager ページに移動します。

    1. まだ表示されていない場合は、以下から目的の組織を選択しますナビゲーション バーのOrganizationsメニュー

    2. 次のいずれかの手順を行います。

      • ナビゲーション バーのAccess ManagerメニューからOrganization Accessを選択します。

      • サイドバーの Access Manager をクリックします。

      [ Organization Access Manager ]ページが表示されます。

  2. Add New Database User をクリックします。

  3. Atlas admin ユーザーを追加します。

ユーザー管理の詳細については、「データベースユーザーの構成 」を参照してください。

4
  1. まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー

  2. まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。

  3. まだ表示されていない場合は、サイドバーの [Clusters] をクリックします。

    [ Clusters (クラスター) ] ページが表示されます。

5

クラスターのメニューから、Command Line Tools をクリックします。

6

Command Line Tools タブの Binary Import and Export 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.*"
7

重要

mongodumpmongorestoreを実行しているホストがプロジェクトの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 から、完了した コマンドを実行します。

手順が正常に完了したら、 mongoshを使用して Atlas クラスターに接続し、手順の結果を確認します。 方法については、「 mongosh経由で接続 」を参照してください。

書込み操作を再開する前に、アプリケーションを更新して Atlas クラスターを指すようにする必要があります。 Atlas にアプリケーションを接続する方法については、「ドライバー経由で接続 」を参照してください。

Tip

以下も参照してください。

戻る

mongormirror のバージョン