バックアップをリストアするときは、実行するリストアのタイプに基づいて適切なリストア順を選択する必要があります。クラスタをリストアするとき利用可能な方法は、クラスタをバックアップするときに使用した方法に依存します。cbbackupがバケットデータのバックアップに使用された場合、同じもしくは異なる構成のクラスタにリストアすることができます。これは、cbbackupが格納したバケットデータについての情報を新しいクラスタのバケットにリストアすることができる形式で格納しているためです。これらすべてのシナリオでは、cbrestoreを利用できます。「cbrestoreツールを使用したリストア」を参照してください。
直接ファイルコピーをして情報をバックアップした場合、同一のクラスタに情報をリストアする必要があります。「ファイルのコピーを使用したリストア」を参照してください。
同じ構成で同じクラスタへ情報をリストアするには、データをリストアしている間クラスタ全体を停止し、そしてクラスタを再起動する必要があります。クラスタ全体のデータと構成をバックアップバージョンのデータファイルに置き換えて、クラスタファイルの保存されたバージョンでクラスタを再起動します。
これらのファイルを復元する場合、ファイルの所有者をcouchbaseに設定するようにしてください。
データをリストアし、同じクラスタに戻す場合、処理をすすめる前に次の条件を満たす必要があります:
バックアップとリストアは同じバージョンのCouchbase Serverを使用したクラスタ間で行う必要があります。
クラスタは同じ数のノードを含む必要があります。
各ノードは、クラスタをバックアップしたときに設定されていたIPアドレスまたはホスト名である必要があります。
すべてのデータベースファイルと同様にすべてのconfig.dat
構成ファイルを元の場所にリストアする必要があります。
リストア処理を完了するために必要な手順は次のとおりです:
すべてのノードでCouchbase Serverサービスを停止します。詳細については、「Couchbase Serverの起動とシャットダウン」を参照して下さい。
各ノードでデータベース、stats.json
、そして構成ファイル(config.dat
)を各ノードのバックアップコピーからリストアしてください。
各ノード上のサービスを再起動します。詳細については、「Couchbase Serverの起動とシャットダウン」を参照して下さい。
cbrestoreコマンドは、cbbackupコマンドを使ってバックアップされた情報を使って、格納されたデータをクラスタに流し込みます。クラスタの構成はバックアップ時のクラスタの構成と一致する必要はなく、災害復旧時に新しいクラスタや、更新もしくは拡張されたバージョンの既存クラスタに情報を転送するときに使用できるようになっています。
データを柔軟にリストアすることができるので、様々なシナリオをバックアップされたデータを使って実行できます。
異なるサイズや構成のクラスタにデータをリストアしたい。
同じまたは別のクラスタ上の別のバケットにデータを転送/リストアしたい。
新規または別のクラスタ、または同じクラスタの別のバケットに選択したデータの一部をリストアしたい。
cbrestoreコマンドの基本的な書式は次のとおりです:
cbrestore [options] [source] [destination]
ここで:
[options]
情報がクラスタにどのようにリストアされるかを指定するオプション。共通のオプションが含まれます:
--bucket-source
リストアされるバックアップデータから読み取るべきバケットデータの名前を指定します。
--bucket-destination
データが書き込まれるバケットの名前を指定します。このオプションが指定されていない場合、データがソースバケットと同じ名前のバケットに書き込まれます。
cbrestoreを使用するとき、使用可能なすべてのオプションの詳細については、以下を参照してください。「cbrestoreツール」
[source]
cbbackupで指定したバックアップディレクトリで、バックアップデータが格納されているところです。
[destination]
クラスタ内のノードのREST APIのURLで、情報がリストアされるところです。
cbrestoreコマンドは、一度にひとつのデータバケットのみをリストアします。クラスタ全体(つまりすべてのバケット)のバックアップを作成している場合、各バケットを個々にリストアし、クラスタへ戻す必要があります。すべての宛先バケットはすでに存在している必要があります; cbrestoreは宛先のバケットを作成もしくは構成しません。
たとえば、ひとつのデータバケットをクラスタにリストアするには:
shell> cbrestore \ /backups/backup-2012-05-10 \ http://Administrator:password@HOST:8091 \ --bucket-source=XXX [####################] 100.0% (231726/231726 msgs) bucket: default, msgs transferred... : total | last | per sec batch : 232 | 232 | 33.1 byte : 10247683 | 10247683 | 1462020.7 msg : 231726 | 231726 | 33060.0 done
クラスタ上の別のバケットにバケットデータをリストアするには:
shell> cbrestore \ /backups/backup-2012-05-10 \ http://Administrator:password@HOST:8091 \ --bucket-source=XXX \ --bucket-destination=YYY [####################] 100.0% (231726/231726 msgs) bucket: default, msgs transferred... : total | last | per sec batch : 232 | 232 | 33.1 byte : 10247683 | 10247683 | 1462020.7 msg : 231726 | 231726 | 33060.0 done
この場合のmsg
数はクラスタのバケットにリストアされたドキュメントの数です。
cbrestoreコマンドでは、バックアップ時に作成されたファイルからデータベースに復元するキーをフィルタリングすることができます。バックアップ時にもフィルタリングすることができます(「バックアップ対象のキーフィルタリング」を参照してください)。
cbrestoreコマンドのオプションとして正規表現の形式で指定します。たとえば、'object'の接頭辞のキーであるデータのみバケットに情報を復元するには:
shell> cbrestore /backups/backup-20120501 http://HOST:8091 \ -u Administrator -p password \ -b default \ -k '^object.*' 2013-02-18 10:39:09,476: w0 skipping msg with key: sales_7597_3783_6 ... 2013-02-18 10:39:09,476: w0 skipping msg with key: sales_5575_3699_6 2013-02-18 10:39:09,476: w0 skipping msg with key: sales_7597_3840_6 [ ] 0.0% (0/231726 msgs) bucket: default, msgs transferred... : total | last | per sec batch : 1 | 1 | 0.1 byte : 0 | 0 | 0.0 msg : 0 | 0 | 0.0 done
上記では、 指定された接頭辞に一致するキーだけをdefault
バケットにコピーします。スキップされた各キーについては、情報メッセージが供給されます。残りの出力は転送されたレコードと通常の要約を示しています。