Using the Bitbucket Server Backup Client

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

This page describes using the Bitbucket Server Backup Client. This tool can be used to backup data from Bitbucket Server instances from release 2.7.0 and later.

The Bitbucket Server Backup Client is not compatible with clustered Bitbucket Data Center instances (even if you switch back to a single node). To back up a Bitbucket Data Center instance, you must switch to Bitbucket Server DIY Backup instead of the Bitbucket Server Backup Client.

For information about other backup strategies for Bitbucket Server, see Data recovery and backups.

With any strategy, you should consider scheduling the backup window so as to minimize the impact on Bitbucket Server availability. You might consider checking the access logs to determine patterns of lowest usage to help with this.

We highly recommend that you establish a data recovery plan that is aligned with your company's policies.

ご質問がある場合は、「FAQ - データの復元とバックアップ」を参照してください。

Unzip the client into a directory on the Bitbucket Server server.

動作の仕組み

The Backup Client implements a common and universal way to back up a Bitbucket Server instance, and does the following:

  1. Bitbucket Server アプリケーションへのアクセス、Bitbucket Server によって管理されているリポジトリ、および Bitbucket Server データベースを確認して、バックアップの全体的な時間を確認します。この状態は "メンテナンス モード" と呼ばれます。
  2. すべての Git およびデータベース操作が完了したことを確認します。
  3. Performs an application-specific backup of the Bitbucket Server home directory and the Bitbucket Server database. The backup is generic and does not depend on the server or database configuration. 
  4. バックアップ ファイルをローカル ファイルシステムの指定された場所に、1 つの tar ファイルして保管します。 
  5. Bitbucket Server のメンテナンス モードのロックを解除します。

Bitbucket Server がメンテナンス モードのときに、Bitbucket Server の web インターフェイスにアクセスしようとしたり、Bitbucket Server のホスティング サーバーを使用しようとしたりすると、エラー メッセージが表示されます。

クライアントは Windows および Linux プラットフォームと Bitbucket Server バージョン 4.0 以降をサポートしていますが、個々の組織の IT ポリシーやプロセスに連携するような機能は提供していません。

Bitbucket Server Backup Client の使用時に利用が不可能になる時間を予測するための参考値として、弊社の内部使用では、Bitbucket Server のダウンタイムは 7–8 分 (リポジトリのサイズが合計 6 GB の場合) になりました。比較のために、同じリポジトリで Bitbucket Server DIY Backup を使用すると、一般にダウンタイムは 1 分未満になります。

バックアップ対象

Backup Client は次のすべてのデータをバックアップします。

  • Bitbucket Server が接続されているデータベース (内部または外部 DB)
  • 管理された Git リポジトリ
  • Bitbucket Server の監査ログ
  • インストール済みのプラグインとそれらのデータ

バックアップには次のファイルおよびディレクトリは含まれません。

  • export/*
  • log/* (監査ログを除く)
  • shared/data/db* (DB 内の HSQL データはバックアップされますが、ディスクのファイルはバックアップされません)
  • tmp
  • plugins ディレクトリ (installed-plugins ディレクトリを除く) 

クライアントを使用した Bitbucket Server のバックアップ

クライアントを使用して Bitbucket Server をバックアップする前に、ご使用の Bitbucket Server インスタンスと互換性のある Bitbucket Server Backup Client のリリースを使用していることを確認します

Backup Client はコマンド ライン ツールであり、プラグインではない (アプリケーションの UI はない) ため、Bitbucket Server のホーム ディレクトリにアクセス可能な外部のどこかから実行する必要があります。通常、Backup Client は Bitbucket Server で直接実行します。次のコマンドでクライアントを実行します。

cd <path/to/backup-config.properties file>
java -jar <path/to/bitbucket-backup-client.jar>

構成オプションは、クライアントに含まれるサンプルである  backup-config.properties ファイルに保持されます。このファイルは、bitbucket-backup-client の実行時にいたディレクトリから自動的に読み取られます。プロパティは backup-config.properties ファイルに完全に文書化されていますが、次のものが含まれます。

bitbucket.home

バックアップまたは復元先にする、Bitbucket Server インスタンスのホーム ディレクトリの場所を指定します。必須

If omitted here it will be taken from the BITBUCKET_HOME environment variable or the Java system property of the same name if supplied to the Backup and Restore Client on the command line. As a required value, backup and restore will fail if it is not supplied through one of these mechanisms.

bitbucket.user

バックアップを実行する、管理権限を持つ Bitbucket Server ユーザーのユーザー名を定義します。必須

ここで省略した場合、同じ名前の Java システム プロパティから取得されます (コマンド ラインで Backup Client に指定していた場合)。これは必須の値であるため、これらのメカニズムのいずれかで指定されていない場合は、バックアップが失敗します。

bitbucket.password

バックアップを実行する、管理権限を持つ Bitbucket Server ユーザーのパスワードを定義します。必須

ここで省略した場合、同じ名前の Java システム プロパティから取得されます (コマンド ラインで Backup Client に指定していた場合)。これは必須の値であるため、これらのメカニズムのいずれかで指定されていない場合は、バックアップが失敗します。

bitbucket.baseUrl


バックアップを行う Bitbucket Server インスタンスのベース URL を定義します。必須

E.g. http://localhost:7990/bitbucket or http://bitbucketserver/.

If omitted here it will be taken from the Java system property of the same name if supplied on the command line to the Backup Client. As a required value, backup will fail if it is not supplied through one of these mechanisms.

backup.home

Backup Client がバックアップ アーカイブなどの自身のファイルを保存する場所を定義します。

指定しない場合、これらのファイルは Backup Client の作業ディレクトリの配下に保存されます。バックアップ ファイルは backup サブディレクトリに、ログは logs サブディレクトリに保存されます。

Windows の場合、パスの間に 2 つのバックスラッシュを使用する必要がある点にご注意ください。例: C:\\path\\to\\folder または代わりにフォワード スラッシュを使用してください。例: C:/path/to/folder

The location defined by backup.home must not be located in the directory defined by bitbucket.home. If that is the case, the Backup Client will fail.

あるいは、次のプロパティをコマンドラインで指定できます。これらは "-D" プレフィックスを持ち、"-jar" パラメーターの前に配置する必要があります。次に例を示します。

java -Dbitbucket.password="admin" -Dbitbucket.user="admin" -Dbitbucket.baseUrl="http://localhost:7990" -Dbitbucket.home=path/to/bitbucket/home -Dbackup.home=path/to/backup-home -jar bitbucket-backup-client.jar

クライアントのバックアップのキャンセル

必要に応じて、実行中のクライアント バックアップ操作をキャンセルできます。

バックアップのキャンセル方法

  1. ターミナル (または Windows のコマンド プロンプト) でクライアントによって返されるキャンセル トークンをコピーします。

    $ ./bitbucket.diy-backup.sh
    [http://localhost:7990/bitbucket]  INFO: Prepared backup of DB bitbucket in /bitbucket-backup/bitbucket-db/
    building file list ... done.
    sent 4.17M bytes  received 484 bytes  2.78M bytes/sec
    total size is 121.12M  speedup is 29.06
    [http://localhost:7990/bitbucket]  INFO: Prepared backup of /bitbucket-home to /bitbucket-backup/bitbucket-home/
    [http://localhost:7990/bitbucket]  INFO: locked with '7187ae1824ce1ede38a8e7de4bccf58d9a8e1a7a'
    [http://localhost:7990/bitbucket]  INFO: backup started with '82c73f89e790b27fef3032e81c7071388ae4e371'
    [http://localhost:7990/bitbucket]  INFO: Waiting for DRAINED state....... done
    [http://localhost:7990/bitbucket]  INFO: db state 'DRAINED'
    [http://localhost:7990/bitbucket]  INFO: scm state 'DRAINED'
  2. ブラウザで Bitbucket Server インターフェイスに移動します。Bitbucket Server は次の画面を表示します。
  3. [バックアップを取消] をクリックし、キャンセル トークンを入力します。

  4. [バックアップを取消] をクリックします。

既存の DB を使用するように Bitbucket Server を復元

このセクションは、インストールの破損を修復するために Bitbucket Server を復元しているが、Bitbucket Server のバックアップ元の既存の DB を使用可能な場合に適用されます。このシナリオでは、Bitbucket Server は元のバックアップ元と同じサーバーに Bitbucket Server を復元しようとしていると見なします。

Restore Client は、Bitbucket Server の復元先と同じマシンで実行されている必要があります。復元で既存のデータを意図せず削除してしまうことがないよう、Restore Client は空白のホーム ディレクトリと空白のデータベースにのみ復元を行います。

Restore Client は復元元のバックアップに含まれる JDBC 接続構成を使用します。

次のプロセスに従います。

  1. Bitbucket Server インスタンスを停止します。
  2. 現在のホーム ディレクトリのコンテンツを削除し、空にします。
  3. データベースの既存のテーブルをドロップし、空にします。データベースは引き続き同じユーザー/パスワードで存在していて、次の関連ページの「Bitbucket Server データベースの作成セクションで説明されている構成を持っている必要があります。 
  4. 次のコマンドを使用して Restore Client を実行します (「path/to/bitbucket/home」と「/path/to/original/backup/file」の値を自身のものに置き換えてください)。

    java -Dbitbucket.home="path/to/bitbucket/home" -jar bitbucket-restore-client.jar /path/to/original/backup/file
  5. 破損したインストールを修正するために Bitbucket Server を復元する場合、「Bitbucket Server アップグレード ガイド」のステップ 4 から 6 に従います。Bitbucket Server のバックアップに使用された Bitbucket Server バージョンと同じものを使用する必要があります。

新しく作成された DB を使用するように Bitbucket Server を復元 

新しく作成したデータベースに Bitbucket Server を復元する場合は、このセクションの説明に従ってください。このシナリオは、Bitbucket Server をバックアップ元とは異なるサーバーに復元することを前提としています。

復元プロセスはデータベースを問いません。つまり、バックアップの復元先のデータベースは、元のバックアップされたデータベースと異なる構成やタイプでもかまいません。

Bitbucket Server を復元する際には、Bitbucket Server の復元先のマシンで Restore Client が実行されている必要があります。復元で既存のデータを意図せず削除してしまうことがないよう、Restore Client は空白のホーム ディレクトリと空白のデータベースにのみ復元を行います。 

次のプロセスに従います。

  1. Bitbucket Server の実行に使用するユーザー アカウントを使用して、新しい空のホーム ディレクトリを作成します。
  2. データベースを作成します。次の関連ページの「Bitbucket Server データベースの作成セクションで説明されている構成を持っている必要があります。
  3. Restore Client を実行します。 詳細については、以下のセクションをご確認ください。
  4. Install Bitbucket server on the new server by following the instructions on Running the Bitbucket Server installer. Point the installation to an empty directory and install it as a service in case you used to have that in your previous server.
  5. Make sure your new installation is up and running - refer to Starting and stopping Bitbucket Server. At this stage you should see Bitbucket server guiding you for a configuration from scratch (i.e. it will ask you for license details, admin user etc.) and that's expected.
  6. 新しくインストールしたインスタンスを停止します。
  7. 新しくインストールした BITBUCKET_HOME からコンテンツを削除してください。 
  8. 復元された BITBUCKET_HOME の内容を、新たにインストールされた BITBUCKET_HOME にコピーします。
  9. 新しくインストールされた Bitbucket Server を開始します。
  10. この段階で、次のようになります。
    1. 以前のサーバーと同じリリースのバイナリをインストールした場合、すべてが以前と同じようになり、個別のステップでアップグレードを行う必要があります。これは推奨アプローチです。
    2. 以前のリリースにインストールされていたリリースよりもあとのリリースのバイナリをインストールした場合、この段階でアップグレードが実行されます。

コマンド ラインから Restore Client を実行する

Restore Client をコマンド ラインから実行することもできます。このシナリオでは、新しいデータベースを作成済みであるため、使用すべき JDBC 接続を指定する必要があります。

Restore Client は、Restore Client を実行するコマンドで使用される jdbc.driver jdbc.url jdbc.user および jdbc.password パラメーターで指定された JDBC 接続構成を使用します (以下を参照)データベースのバックアップが正常に復元されると、クライアントは指定されたパラメーターを新しく復元された Bitbucket Server ホーム ディレクトリ内の bitbucket-config.properties ファイルに書き込み、以下に概説する手順に従うと、新しいインスタンスが復元されたデータベースに接続できるようになります。

MySQL データベースへの復元を実行する前に、MySQL 用の JDBC はバンドルされていない点にご注意ください (ライセンス上の制限のため)。ドライバを自身でダウンロードおよびインストールする必要があります。

  1. MySQL Connector/J JDBC ドライバをダウンロード サイトからダウンロードします。

  2. ダウンロードした zip/tar.gz ファイルを解凍します。

  3. 抽出したディレクトリから mysql-connector-java-5.1.XX-bin.jar ファイルを <path/to/backup/client>/jdbc ディレクトリにコピーします。

この例では、新しく作成された PostgreSQL への復元を行っています。

java -Djdbc.override=true -Djdbc.driver=org.postgresql.Driver -Djdbc.url=jdbc:postgresql://HOSTNAME:PORT/DATABASE -Djdbc.user=bitbucketuser -Djdbc.password=password -Dbitbucket.home="path/to/bitbucket/home" -jar /path/to/bitbucket-restore-client.jar /path/to/original/backup/file

あるいは、backup-config.properties ファイルでこれらのパラメータを構成することもできます。ファイルが現在のワーキング ディレクトリに存在することを確認してください。サンプル ファイルはクライアントに同梱されます。プロパティは、backup-config.properties ファイルに完全に文書化されており、詳細は以下で説明されています。

bitbucket.home

The full path to a directory that the Restore Client will populate with the Bitbucket Server home data. This directory must be empty.
On Windows, you must use two backslashes ( \\ ) or a single forward slash ( / ) to separate paths. 
jdbc.override

By default, the Restore Client will restore into the same database that was backed up. If jdbc.override is set to true, the Restore Client will restore into the database specified by the jdbc properties in the table below. The database must be empty.

jdbc.driver Bitbucket Server が新しいデータベースへのログインに使用すべきドライバ クラスです。以降の例をご確認ください。
jdbc.url新しいデータベースの接続の詳細です。JDBC URL の形式を持ちます。以降の例をご確認ください。
jdbc.userBitbucket Server が新しいデータベースへのログインに使用すべきユーザー名です。
jdbc.password
Bitbucket Server が新しいデータベースへのログインに使用すべきユーザー名です。
bitbucket.home.restore.whitelist

バックアップの復元時にターゲットのホーム共有ディレクトリに存在する可能性があるファイルとディレクトリの、コンマ区切りの一覧を定義します。これらのエントリに一致しないファイルがあった場合、処理に失敗します。

By default files .snapshot, lost+found, .DS_Store are white listed.

JDBC プロパティの使用例

jdbc.driver および jdbc.url プロパティの例を以下に示します。

データベースjdbc.driverjdbc.url
MySQLcom.mysql.jdbc.Driver

jdbc:mysql://HOSTNAME:PORT/DATABASE?autoReconnect=true&characterEncoding=utf8&useUnicode=true&sessionVariables=storage_engine%3DInnoDB

Oracleoracle.jdbc.driver.OracleDriverjdbc:oracle:thin:@//HOSTNAME:PORT/SERVICE
PostgreSQLorg.postgresql.Driverjdbc:postgresql://HOSTNAME:PORT/DATABASE
SQL Servercom.microsoft.sqlserver.jdbc.SQLServerDriverjdbc:sqlserver://HOSTNAME:PORT;databaseName=DATABASE;

デバッグ ロギング

バックアップ クライアントを実行しているワーキング ディレクトリで logback.xml ファイルに次の情報を追加することで、デバッグ ロギングを有効化できます。このファイルが存在しない場合は作成します。

logback.xml
<included><logger name="com.atlassian.bitbucket" level="DEBUG"/></included> 
最終更新日 2016 年 9 月 29 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.