Bitbucket のゼロ ダウンタイム バックアップを使用する
前提条件
ブロック レベルのファイル システム スナップショット
共有ホーム ディレクトリは、原子的な (ブロック レベルの) スナップショットを処理できるファイル ボリュームに配置されている必要があります (例: Amazon EBS、LVM、NetApp、XFS、ZFS)。このような技術は、最近のオペレーティング システムやストレージ ソリューションで一般的なものになりつつあります。ご利用の共有ホーム ディレクトリのボリュームがこのような技術よりも前のものを使用している場合、ゼロ ダウンタイム バックアップを使用するには、ブロック レベルのスナップショットをサポートするボリュームに共有ホーム ディレクトリを移動する必要があります。また、バックアップ プロセスでボリュームのスナップショットを作成するためのスクリプトを記述する必要があります。atlassian-bitbucket-diy-backup スクリプトには、すべてのベンダー技術に対応するような動作確認済みのサンプルは含まれません。このようなスナップショットを作成できない場合、別のバックアップ戦略をご検討ください。
データベースのスナップショット技術
データベースでは、ホーム ディレクトリのスナップショットの作成時点に近いタイミングのスナップショットを復元できる必要があります。これを行うもっとも簡単な方法は、データベースのスナップショットをホーム ディレクトリのバックアップ時間に近いタイミングで作成することです。あるいは、一部のデータベースは、ベンダー固有の、復元時の "ポイントインタイム リカバリ" 機能をサポートしています。Bitbucket のサポート対象のすべてのデータベース ベンダーは、スナップショットを素早く作成したり、ポイントインタイム リカバリを行ったりするためのツールを提供しています。
Bitbucket Server 4.8 以降
ゼロ ダウンタイム バックアップを使用するには、Bitbucket 4.8 以降を実行している必要があります。「Bitbucket Server アップグレード ガイド」をご参照ください。
Configure the example DIY Backup script for zero downtime backup
上述の前提条件を踏まえ、ホーム ディレクトリとデータベースのスナップショット作成を同時に作成可能な任意の方法でバックアップを作成できます。アトラシアンではこのプロセスを自動化できるサンプルの atlassian-bitbucket-diy-backup スクリプトを提供しています。これを開始点として、独自のバックアップ手順を構成およびカスタマイズできます。
ステップ 1: スクリプトを取得
サンプルの atlassian-bitbucket-diy-backup スクリプトの最新バージョンをクローンまたはプルします。例:
git clone https://bitbucket.org/atlassianlabs/atlassian-bitbucket-diy-backup.git
cd atlassian-bitbucket-diy-backup
ステップ 2: スクリプトを構成
Create the file bitbucket.diy-backup.vars.sh
by copying the appropriate bitbucket.diy-backup.vars.sh.example
, and edit it to match your environment. For example, to use Amazon EBS snapshots of the volume containing your shared home directory and Amazon RDS snapshots of your database, you might configure it as follows:
BACKUP_DATABASE_TYPE=amazon-rds
BACKUP_HOME_TYPE=amazon-ebs
BACKUP_ZERO_DOWNTIME=true
BITBUCKET_URL=https://your-bitbucket-url
If your shared home directory is not on Amazon EBS, then you must define a new BACKUP_HOME_TYPE
for your chosen file system technology. Give it a name (e.g., myhome
) that will identify the snapshot script to run in the next step.
BACKUP_HOME_TYPE=myhome
BACKUP_HOME_TYPE=rsync
is not a valid option to use with zero downtime backup.
DIY Backup のサンプル スクリプトで構成可能なオプションの詳細情報については、「Bitbucket Server DIY Backup を使用する」および「AWS で Bitbucket Server DIY Backup を使用する」をご確認ください。
ステップ 3: (必要な場合) スナップショット プロセスのスクリプトを記述
If you have chosen BACKUP_HOME_TYPE
and BACKUP_DATABASE_TYPE
values that both already have worked examples included in the atlassian-bitbucket-diy-backup repository (e.g., ebs-home
and rds
), then you can just configure the appropriate variables in bitbucket.diy-backup.vars.sh
to match your environment, and skip this step.
ご利用の共有ホーム ディレクトリが atlassian-bitbucket-diy-backup の動作確認済みのサンプルに含まれない場合、ホーム ディレクトリ ボリュームのスナップショットの作成および復元プロセスをスクリプトに記述する必要があります。
同様に、データベースのポイントインタイム リカバリ機能をゼロ ダウンタイム バックアップと組み合わせて使用したい場合 (あるいは完全な動作確認済みのサンプルが atlassian-bitbucket-diy-backup で提供されていない他の機能を使用したい場合)、プロセスのスクリプトを記述する必要があります。
インスタンスのバックアップ
Once your bitbucket.diy-backup.vars.sh
is correctly configured, SSH to the instance (or the appropriate node in a Data Center instance, typically the file server) and run the backup script from the atlassian-bitbucket-diy-backup
directory.
./bitbucket.diy-backup.sh
This script can also be run on a regular schedule (e.g., hourly), from cron
.
バックアップからの復元
ステップ 1: Bitbucket の停止
復元プロセスは、Bitbucket が停止されている場合にのみ動作します。Bitbucket サービスを停止します (インスタンスがクラスタ化された Data Center インスタンスの場合はすべてのノードで停止)。
sudo service atlbitbucket stop
sudo service atlbitbucket_search stop
詳細については「Bitbucket Server の開始および終了」をご参照ください。
ステップ 2: 復元スクリプトを実行
To restore, SSH to the instance (or the appropriate node in a Data Center instance, typically the file server) and run the restore script from the atlassian-bitbucket-diy-backup
directory.
./bitbucket.diy-restore.sh
ステップ 3: Bitbucket の開始
Data Center のお客様はこの時点で、データベースとホーム ディレクトリの間の潜在的な不一致をスキャンして必要に応じて解決する、整合性チェックを有効化できます。これにより、プル リクエストとリポジトリで互いに完全な一貫性を保つことができます。詳細については「Bitbucket Data Center での整合性チェックの実行」をご確認ください。
Bitbucket サービスを開始します (インスタンスがクラスタ化された Data Center インスタンスの場合はすべてのノードで開始)。
sudo service atlbitbucket start
sudo service atlbitbucket_search start
詳細については「Bitbucket Server の開始および終了」をご参照ください。