本番用、開発用にアプリケーションを分けたり、リージョン間でお引っ越しをしたり、DBの災対用バックアップを持ったりするとき、同じ内容のCloudantDBを複数持ちたいと言うことはないだろうか?
コピーする方法を紹介する。
CloudantDBをコピーしたいと思った。データや設計をもう一度し直すのは面倒くさい。
コピーする方法はないだろうか?
CloudantDashboardで「Replicate」機能を使うとコピーは出来る。
簡単な手順はこんな感じだ。
- コピー先のCloudantサービスに予めDBを作成しておく。
- Cloudantサービスの資格情報を調べる。
- コピー元のCloudantサービスで「Replicate」ボタンを押す。
- 資格情報を入力し、「StartReplication」ボタンを押す。
- 結果を確認する。
コピー先のCloudantサービスに予めDBを作成
コピー先のCloudant NoSQL DB サービスのダッシュボードで予めDBを作成しよう。DB名は何でもよい。コピー元のDB名と同じでも違ってもよい。
Cloudantサービスの資格情報を調べる
Cloudant NoSQL DB サービスの資格情報を調べよう。
方法はいろいろあるが、DBの管理画面から調べる方法を書いておく。
ダッシュボードから、該当DBの管理画面を開き、「サービス資格情報」を選ぶ。資格情報がひとつもなければ、「新規資格情報」をクリックして作成しよう。
任意の資格情報の「資格情報の表示」をクリックすると資格情報が表示される。
表示された資格情報よりコピー先およびコピー元DBの「username」と「password」と「apikey」、コピー先DBの「url」を覚えておこう。
なお、上記項目はCloudantがIAMサービスかCloudFoundryサービスかで、存在しないものもある。
コピー元のCloudantサービスで「Replicate」ボタンを押す
コピー元のDBがあるCloudant NoSQL DB サービス管理画面を開き、Databasesのコピー元DBのActions項目にある、「Replicate」ボタンを押す。
資格情報を入力する
Job Configuration画面に遷移する。ここで資格情報を入力していく。
Source セクション
- Type と Name : すでに入力済。
- Authentication : DBがIAMサービスなら「IAM Authentication」 CloudFoundryサービスなら「CloudantUsername or API Key」を選ぶ。それぞれ入力項目の違うボックスが出てくる。
- IAM API Key欄に、資格情報の「apikey」を入力。
- Username or API key欄には、資格情報の「username」を入力。
- ㎩ssword欄には、資格情報の「password」を入力。

Target セクション
- Type : 適当なものを選ぶ。
- Name : 適当なものを選ぶか、入力。TypeでExisting remote database」にした場合は、コピー先のURL+「/[DB名]」を入力。
TargetName入力例
https://aaaa:bbbb@cccc-bluemix.cloudant.com/csvtest2
- Authentication : SourceのAuthenticationと同じで、DBがIAMサービスなら「IAM Authentication」 CloudFoundryサービスなら「CloudantUsername or API Key」を選ぶ。それぞれ入力項目の違うボックスが出てくる。
- IAM API Key欄に、資格情報の「apikey」を入力。
- Username or API key欄には、資格情報の「username」を入力。
- ㎩ssword欄には、資格情報の「password」を入力。
入力したら「StartReplication」ボタンを押す。

結果を確認する
結果はCloudantDashboardのRaplication画面で見ることができる。