このトピックでは、データのバックアップと復元のためにMongoDBに構築されているmongodumpとmongorestoreを使用して、自己管理型MongoDBデータベースをApsaraDB for MongoDBに移行する方法について説明します。 MongoDBデータベースをオンプレミスデバイスまたはECS (Elastic Compute Service) インスタンスにインストールし、mongodumpとmongorestoreを使用して自己管理型MongoDBデータベースをApsaraDB for MongoDBインスタンスに移行できます。
サービスの中断を回避するために、Data Transmission service (DTS) を使用して、スタンドアロンアーキテクチャを使用する自己管理型MongoDBデータベースをApsaraDB for MongoDBに移行することを推奨します。 詳細については、「スタンドアロンApsaraDB For MongoDBインスタンスから別のApsaraDB for MongoDBインスタンスへのデータの移行」をご参照ください。
データ移行および同期ソリューションの詳細については、「概要」をご参照ください。
前提条件
mongodumpとmongorestoreは、自己管理型MongoDBデータベースとは異なるサーバーにインストールされますが、データベースと同じバージョンで実行されます。 インストール手順の詳細については、MongoDB公式WebサイトのMongoDBのインストールをご参照ください。
説明mongodumpコマンドとmongorestoreコマンドは、自己管理型MongoDBデータベースが存在するサーバーで実行することもできます。
互換性を確保するために、自己管理型MongoDBデータベースのバージョンは3.0以降です。
説明移行元の自己管理型MongoDBデータベースと移行先のApsaraDB for MongoDBインスタンスが異なるデータベースバージョンまたはストレージエンジンを実行している場合は、移行を開始する前に、それらの間で互換性の問題が発生しないようにしてください。 ApsaraDB For MongoDBでサポートされているデータベースのバージョンとストレージエンジンの詳細については、「MongoDBのバージョンとストレージエンジン」をご参照ください。
ApsaraDB for MongoDBスタンドアロンインスタンスのストレージ容量は、自己管理型MongoDBデータベースが占有する容量よりも大きくなっています。 ストレージ容量が不足している場合は、ストレージ容量を拡張できます。 詳細については、「概要」をご参照ください。
使用上の注意
これは完全なデータ移行です。 データの一貫性を確保するために、データを移行する前に、自己管理型MongoDBデータベースへのデータの書き込みを停止することを推奨します。
mongodumpコマンドを実行して自己管理型MongoDBデータベースをバックアップした場合は、dumpフォルダ内のバックアップファイルを別のディレクトリに移動し、dumpフォルダが空であることを確認します。 空でない場合は、次回データベースをバックアップするときに履歴バックアップファイルが上書きされます。
自己管理型MongoDBデータベースが存在するサーバーで、mongodumpコマンドとmongorestoreコマンドを実行します。 モンゴシェルでそれらを実行しないでください。
ステップ1: 自己管理MongoDBデータベースのバックアップ
自己管理MongoDBデータベースが存在するサーバーで、次のコマンドを実行してすべてのデータベースをバックアップします。
mongodump -- host <mongodb_host> -- port <port> -u <username> -- authenticationDatabase <database>
説明<mongodb_host>: 自己管理型MongoDBデータベースが存在するサーバーのアドレス。 この場合、127.0.0.1と入力します。
<port>: 自己管理MongoDBデータベースのサービスポート。 デフォルト値は27017です。
<username>: 自己管理型MongoDBデータベースへのログインに使用されるアカウント。 このトピックの例では、テストアカウントが使用されています。
<database>: 認証が有効になっているユーザー名に対応するデータベースの名前。
例:
mongodump -- host 127.0.0.1 -- ポート27017 -uテスト -- authenticationDatabase admin
Enter password
が表示されたら、データベースアカウントのパスワードを入力し、Enterキーを押します。 データのバックアップ操作が開始されます。説明パスワードを入力すると、パスワード文字がマスクされます。
データのバックアップが完了するまで待ちます。 自己管理型MongoDBデータベースのデータは、このコマンドを実行したディレクトリのdumpフォルダにバックアップされます。
手順2: ターゲットインスタンスへのデータの移行
ApsaraDB for MongoDBインスタンスのプライマリノードの接続アドレスを取得します。
にログインします。ApsaraDB for MongoDBコンソール.
ページの左上隅で、インスタンスがデプロイされているリージョンを選択します。
左側のナビゲーションウィンドウで、レプリカセットインスタンス.
目的のインスタンスを見つけて、インスタンスIDをクリックします。
左側のナビゲーションウィンドウで、データベース接続データベース接続の詳細を表示します。
表 1 接続アドレス Endpointタイプ
説明
シナリオ
VPC エンドポイント
仮想プライベートクラウド (VPC) は、クラシックネットワークよりも高いセキュリティとパフォーマンスを提供する分離されたネットワークです。
自己管理型MongoDBデータベースは、 ECSインスタンスを使用します。
説明ECSインスタンスとApsaraDB for MongoDBインスタンスは、同じリージョンとVPCにある必要があります。
パブリックエンドポイント
デフォルトでは、ApsaraDB for MongoDBインスタンスはパブリック接続アドレスを提供しません。 必要に応じて、パブリックエンドポイントを申請する必要があります。 詳細については、「ApsaraDB For MongoDBスタンドアロンインスタンスのパブリックエンドポイントの申請」をご参照ください。
自己管理MongoDBデータベースは、オンプレミスのデバイスにデプロイされています。
自己管理データベースが存在するサーバーのIPアドレスをApsaraDB for MongoDBインスタンスのホワイトリストに追加します。 詳細については、「ApsaraDB For MongoDBインスタンスのホワイトリストの設定」をご参照ください。
説明VPC経由でApsaraDB for MongoDBインスタンスに接続する場合、自己管理データベースがデプロイされているECSインスタンスの内部IPアドレスをApsaraDB for MongoDBインスタンスのホワイトリストに追加する必要があります。
インターネット経由でApsaraDB for MongoDBインスタンスに接続する場合、自己管理データベースが存在するローカルサーバーのパブリックIPアドレスをApsaraDB for MongoDBインスタンスのホワイトリストに追加する必要があります。
自己管理データベースが存在するサーバーで次のコマンドを実行して、完全なデータをApsaraDB for MongoDBインスタンスに移行します。
mongorestore -- host <Primary_host> -u <username> -- authenticationDatabase <database> <バックアップディレクトリ>
説明<Primary_host>: ApsaraDB for MongoDBインスタンスのプライマリノードの接続アドレス。
<username>: ApsaraDB for MongoDBインスタンスのデータベースアカウント。 初期アカウントは root です。
<database>: 認証が有効になっているユーザー名に対応するデータベースの名前。 ユーザー名がrootの場合は、adminと入力します。
<Backup directory>: バックアップファイルが保存されているディレクトリ。 デフォルト値はdumpです。
次のサンプルコマンドでは、ユーザー名はtest、データベースはadminです。
mongorestore -- ホストdds-bp19f409d7512 **** -pub.mongodb.rds.aliyuncs.com:3717 -uテスト -- authenticationDatabase管理者ダンプ
Enter password
が表示されたら、ApsaraDB for MongoDBインスタンスのアカウントパスワードを入力し、Enterキーを押します。 データのバックアップ操作が開始されます。説明パスワードを入力すると、パスワード文字がマスクされます。
rootアカウントのパスワードを忘れた場合は、リセットできます。 詳細については、「 (オプション) パスワードのリセット」をご参照ください。
データの移行が完了するまで待ちます。 オフピーク時にビジネスをApsaraDB for MongoDBインスタンスに切り替えます。
次のステップ
データベースがApsaraDB for MongoDBインスタンスに移行された後、データベースに接続し、データベースとデータベースアカウントを管理できます。