すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for MongoDB:MongoDB ツールを使用した自主管理 MongoDB データベースからレプリカセットインスタンスへの移行

最終更新日:Mar 29, 2026

mongodump および mongorestore を使用して、自主管理 MongoDB データベースから ApsaraDB for MongoDB レプリカセットインスタンスへの完全オフライン移行を実行します。この手法では、ソースデータベースの完全なスナップショットをエクスポートし、宛先インスタンスに復元します。スナップショット取得後は、増分同期は行われません。

mongodump および mongorestore は、mongodump の実行時におけるすべてのデータを移行します。その後のソースデータベースへの書き込みは移行されません。ダウンタイムを最小限に抑えて移行する場合は、代わりに Data Transmission Service (DTS) をご使用ください。詳細については、「DTS を使用した、レプリカセットアーキテクチャを採用する自主管理 MongoDB データベースから ApsaraDB for MongoDB へのデータ移行」をご参照ください。

すべての移行および同期オプションの概要については、「データ移行および同期」をご参照ください。

仕組み

  1. 一貫性のあるスナップショットを確保するため、ソースデータベースへの書き込みを停止します。

  2. mongodump を実行して、すべてのデータベースをローカルのダンプディレクトリにエクスポートします。

  3. ソースサーバーと宛先レプリカセットインスタンス間のネットワークアクセスを設定します。

  4. mongorestore を実行して、ダンプファイルをレプリカセットインスタンスにインポートします。

  5. 移行されたデータを検証した後、アプリケーションを宛先インスタンスに切り替えます。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

  • 自主管理 MongoDB データベースと同じバージョンの mongodump および mongorestore がインストールされていること。インストール手順については、MongoDB ウェブサイトの「MongoDB のインストール」をご参照ください。

  • 自主管理 MongoDB データベースの使用中のストレージ容量を[上回るストレージ容量]を持つ送信先レプリカセットインスタンス。インスタンスをスペックアップするには、「インスタンスの構成を変更する」をご参照ください。

mongodump および mongorestore は、ソースサーバーまたはソースへのネットワークアクセスを持つ別途のサーバー上で実行してください(mongo シェル内では実行しないでください)。

注意事項

  • mongodump を実行する前に、ソースデータベースへのすべての書き込みを停止してください。mongodump 実行後の書き込みは移行されません。

  • 以前に mongodump を実行済みの場合、ダンプディレクトリ内のバックアップファイルを別のディレクトリに移動し、再実行前にダンプディレクトリが空であることを確認してください。空でない場合、次回のデータベースバックアップ時に過去のバックアップファイルが上書きされます。

ステップ 1:自主管理 MongoDB データベースのバックアップ

自主管理 MongoDB データベースが配置されているサーバー(またはソースへのネットワークアクセスを持つ別途のサーバー)で mongodump を実行します。

mongodump --host <mongodb_host> --port <port> -u <username> --authenticationDatabase <database>

以下のプレースホルダーを置き換えてください。

プレースホルダー説明
<mongodb_host>ソースサーバーの IP アドレスまたはホスト名127.0.0.1
<port>自主管理 MongoDB データベースのサービスポート27017(デフォルト)
<username>ソースへの接続に使用するデータベースアカウントtest
<database>指定アカウントの認証データベースadmin

例:

mongodump --host 127.0.0.1 --port 27017 -u test --authenticationDatabase admin

Enter password: プロンプトが表示されたら、データベースパスワードを入力し、Enter キーを押してください。入力中のパスワードはマスクされます。

mongodump の実行が完了すると、バックアップファイルが現在の作業ディレクトリ内の dump ディレクトリに保存されます。

ステップ 2:レプリカセットインスタンスへのデータ移行

2.1 プライマリノードの接続文字列の取得

宛先レプリカセットインスタンスのプライマリノードのパブリックまたは内部接続文字列を取得します。詳細については、「レプリカセットインスタンスの接続についての概要」をご参照ください。

インターネット経由で接続する場合は、事前にパブリックエンドポイントを申請してください。詳細については、「ApsaraDB for MongoDB インスタンスのパブリックエンドポイントの申請」をご参照ください。

2.2 ソースサーバーの IP アドレスをホワイトリストに追加

ソースサーバーの IP アドレスを宛先レプリカセットインスタンスのホワイトリストに追加します。

  • イントラネット: ソースデータベースが配置されている Elastic Compute Service (ECS) インスタンスのプライベート IP アドレスを追加します。

  • インターネット: ソースサーバーのパブリック IP アドレスを追加します。

詳細については、「レプリカセットインスタンスのホワイトリストの設定」をご参照ください。

2.3 バックアップファイルをレプリカセットインスタンスに復元

ソースサーバーで mongorestore を実行し、すべてのバックアップファイルを宛先インスタンスにインポートします。

mongorestore --host <Primary_host> -u <username> --authenticationDatabase <database> <backup_directory>

以下のプレースホルダーを置き換えてください。

プレースホルダー説明
<Primary_host>ポートを含むプライマリノードの接続文字列dds-bp19f409d7512****-pub.mongodb.rds.aliyuncs.com:3717
<username>宛先インスタンスのデータベースアカウント(初期アカウント: roottest
<database>指定アカウントの認証データベース。root アカウントの場合は adminadmin
<backup_directory>ステップ 1 で作成したダンプディレクトリへのパスdump(デフォルト)

例:

mongorestore --host dds-bp19f409d7512****-pub.mongodb.rds.aliyuncs.com:3717 -u test --authenticationDatabase admin dump

Enter password: プロンプトが表示されたら、データベースパスワードを入力し、Enter キーを押してください。入力中のパスワードはマスクされます。

移行の検証

mongorestore の実行が完了したら、トラフィックの切り替え前にデータが正しく存在し、完全であることを確認してください。

アプリケーションの切り替え

アプリケーションの接続文字列を宛先レプリカセットインスタンスを指すように更新してください。影響を最小限に抑えるため、トラフィックの切り替えは非ピーク時間帯に実施してください。

次のステップ