1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IBM CloudantのバックアップをローカルのCouchDBにリストアする

Last updated at Posted at 2024-08-26

はじめに

IBM Cloudantのバックアップ・ファイルをCouchDBでリストアします。
CouchDBの環境は、Podmanを使ってローカル(Mac)で構築します。

事前準備

  1. IBM Cloudantのバックアップ・ファイルを作成、保存
    参考:IBM Cloudant バックアップの作成
  2. Podmanのインストールとセットアップ、VMの起動
    参考:Podman Desktop のインストール(for Mac)
    参考:Podmanを始めたい

作業手順

STEP 1. CouchDBの環境構築
STEP 2. データベースの作成とリストア

IBM CloudantとCouchDB
IBM Cloudant for IBM Cloudは、Apache CouchDBを基盤とするフルマネージドのクラウドDBサービスです。CloudantとCouchDBでは、共通のツール(CouchBackup)を使用してバックアップの作成とリストアができます。
参考:Apache CouchDB と IBM Cloudant の比較

STEP 1. CouchDBの環境構築

参考:Podmanを始めたい>コマンドを試してみる
PodmanのVMの初回起動と初期化、再起動まで完了しました。

参考:CouchDB Docker Official Image
STEP 1 はCouchDBをコンテナで起動します。
dockerhubを参照し、コマンド名 "docker" を "podman" に置き換えて実行していきます。

CouchDBのイメージを取得

terminal
podman pull couchdb

CouchDBのインスタンスを起動

terminal
podman run \
       --detach \ 
       --name my-couchdb \
       -e COUCHDB_USER=admin \
       -e COUCHDB_PASSWORD=password \
       --publish 5984:5984 \
       apache/couchdb:latest

--detach コンテナをデタッチモードで起動
--name my-couchdb コンテナ名
-e COUCHDB_USER=admin 管理者ユーザー(*必須)
-e COUCHDB_PASSWORD=password パスワード(*必須)
--publish 5984:5984 ポートを外部公開する

ステータス確認

podman psコマンドで作成中および実行中のコンテナを一覧表示します。
コンテナ"my-couchdb"が実行中になったことを確認できました。

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b333a38f5783 docker.io/apache/couchdb:latest /opt/couchdb/bin/... 6 seconds ago Up 6 seconds 0.0.0.0:5984->5984/tcp, 4369/tcp, 5984/tcp, 9100/tcp my-couchdb

(参考)ブラウザからCouchDBのダッシュボードにアクセスできます。
http://localhost:5984/_utils

STEP 2. データベースの作成とリストア

参考:IBM Cloudant バックアップの作成
リストアのターゲットとなるデータベースを作成し、CouchBackupツールのコマンドでバックアップ・ファイルのリストアを実行します。

CouchDB動作確認

ローカルのCouchDBインスタンスへの接続を確認します。
curl localhost:5984

{"couchdb":"Welcome","version":"3.3.3","git_sha":"40afbcfc7","uuid":"5034b96da22199b1003e85590a541843","features":["access-ready","partitioned","pluggable-storage-engines","reshard","scheduler"],"vendor":{"name":"The Apache Software Foundation"}}

(未インストールの場合)ローカルにCouchBackupをインストール

terminal
npm install -g @cloudant/couchbackup

Node.jsの導入が前提です。参考:Node.jsの導入方法

CouchBackup は IBM CloudantおよびCouchDBのデータベースをテキストファイルにバックアップし、リストアするためのツールです。

空のデータベースを新規作成

terminal
curl "http://admin:password@localhost:5984/cloudant_backup" -X PUT

{"ok":true}

データベース"cloudant_backup"が作成できたことを確認します。
curl "http://admin:password@localhost:5984/_all_dbs"

["cloudant_backup"]

リストアの実行には、ターゲットのDBが完全に空である必要があります。
一度書き込みを行ったDBは、ドキュメントを完全に削除してもリストアのターゲットとして使用することはできません。

リストアコマンドを実行

terminal
cat cloudant_backup.txt | couchrestore --db cloudant_backup --url http://admin:password@localhost:5984

couchbackup:restore:batch Restored batch ID: 0 Total document revisions restored: 443 Time: 0.163 +0ms
couchbackup:restore finished { total: 443 } +0ms

No such file or directoryの場合はバックアップ・ファイルの絶対パスを記述します。
コマンドにユーザー名とパスワードを含めないと認証エラーになる場合があります。

リストアの完了を確認

データベースの詳細を取得して、データが追加されたことを確認しました。
curl -X GET http://admin:password@localhost:5984/cloudant_backup

ブラウザでもドキュメントの追加を確認できました。 http://localhost:5984/_utils
image.png

まとめ

IBM Cloudantのバックアップ・ファイルをCouchDBでリストアすることができました。
使い終わった環境はコンテナを停止するか、VMごと削除しましょう。

参考:Podmanを始めたい > 片付け・環境を削除する

Index

1
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?