バックアップからの TeamCity データの復元
TeamCity 管理者は、 バックアップされたデータを TeamCity UI 経由で、または maintainDB コマンドラインユーティリティを手動で使用して復元できます。
復元前
バックアップされたデータは、 サポートされている任意のデータベースから、またはサポートされている任意のデータベースに、同じデータベースまたは別のデータベースに復元できます (たとえば、HSQL データベースから PostgreSQL データベースにデータを復元したり、PostgreSQL データベースのバックアップを新しい PostgreSQL データベースに復元したりできます)。
新しいバージョンの TeamCity を使用して、以前の任意の TeamCity バージョンで作成されたバックアップを復元できます (TeamCity バージョンが 6.0 より後の場合)。
大規模なデータベースの復元中に、大量のデータ変更をより速く行うためにデータベース固有の設定を構成することが必要な場合があります (SQL Server の「リカバリモデル」を「シンプル」に設定するなど)。 詳細については、DBA にお問い合わせください。
TeamCity の バックアップファイルビルドアーティファクトが含まれていません。 ビルドログとアーティファクトをバックアップするには、 アーティファクトディレクトリ (デフォルトでは <TeamCity データディレクトリ>/system/artifacts) の内容を古い場所から新しい場所に手動でコピーします。 システム/アーティファクト 配下のデータに関する一般的な互換性ルールでは、古い TeamCity バージョンで作成されたファイルは新しいバージョンで読み取れますが、その逆が必ずしも可能とは限りません。
外部アーティファクトストレージが有効化されている場合、TeamCity データディレクトリの アーティファクトディレクトリにはアーティファクトマッピングに関するメタデータが含まれるため、必ず復元されていることを確認してください。
TeamCity データディレクトリの説明にあるディレクトリの詳細も参照してください。
バックアップから復元されたサーバーの起動時にビルドメタデータの再インデックスが自動的に開始されるため、 サーバーの起動前にアーティファクトをコピーする することが重要です。 インデックス作成中に一部のアーティファクトが欠落していると、TeamCity サーバーの一部で障害が発生する可能性があります (例: NuGet フィード)。 サーバーの起動後にアーティファクトをコピーした場合 (またはサーバーの起動前にアーティファクトのコピーが完了していない場合)、 ビルドメタデータを手動で再インデックスし、再インデックスが完了するまで待つ必要がある場合があります。
復元の実行
TeamCity は、バックアップされたデータを 新しい TeamCity インストールに自動的に復元できます (たとえば、既存サーバーのコピーを作成する場合)。 このプロセスは maintainDB ユーティリティに依存しますが、必要なすべての操作を内部で実行します。
ブラウザーで TeamCity URL (デフォルトでは、
http://localhost/はexeインストール用、http://localhost:8111/はTAR.GZ用) を開きます。TeamCity の初回起動ページで、 データディレクトリへのパスを入力し、 バックアップから復元 をクリックします。
TeamCity サーバー上のバックアップディレクトリへの絶対パスを入力するか、バックアップされたデータを含む ZIP アーカイブをアップロードします。
ターゲットデータベースを選択します。 外部データベースを使用する場合、そのアドレスと資格情報を構成します。
修復を続行します。
TeamCity はデータを復元し、 maintainDB ユーティリティログを表示します。 バックアップされたデータフォーマットのバージョンが現在のものより古い場合、TeamCity はアップグレードを提案します。
バックアップされたファイルを 既存の TeamCity インストールに復元する場合、または自動復元の制限を回避する場合は、 maintainDB ユーティリティを手動で使用します。 このセクションでは、 maintainDB オプションの 一部のみ 説明します。 使用可能なすべてのオプションの完全なリストについては、コマンドラインからパラメーターなしで maintainDB を実行してください。 maintainDB 起動オプションも参照してください。
maintainDB を介してバックアップファイルから復元を実行するには:
TAR.GZまたは.exeインストールパッケージから TeamCity サーバーをインストールします。 TeamCity サーバーを起動しないでください。新しい空の TeamCity データディレクトリを作成します。
次のオプションのいずれかを選択します。
バックアップを 新しい外部データベース に復元するには、 空のデータベースを作成して構成し、
database.propertiesファイルを、後で復元コマンドに渡すデータベース設定で構成し、それを/設定サブディレクトリ (新しく作成した TeamCity データディレクトリ 内) または TeamCity データディレクトリ外のファイルシステム上の任意の場所に配置します。バックアップの作成元と同じデータベース にデータを復元するには、次の手順に進みます。
必要な データベースドライバーを
ライブラリ/JDBCサブディレクトリ、つまり新しく作成した TeamCity Data Directory ディレクトリ内のサブディレクトリに配置します。<TeamCity ホーム>/バイナリディレクトリにあるmaintainDBユーティリティを使用して、復元コマンドを実行します。a. バックアップを 新しい外部データベース に復元するには
database.propertiesファイルが TeamCity データディレクトリ内にある場合:
maintainDB.[cmd|sh] restore -A <absolute path to the newly created TeamCity Data Directory> -F <path to the TeamCity backup file> -T <config/database.properties>database.propertiesファイルが TeamCity データディレクトリ外にある場合:
maintainDB.[cmd|sh] restore -A <absolute path to the newly created TeamCity Data Directory> -F <path to the TeamCity backup file> -T <absolute path to the database.properties file of the target database on the file system outside data dir>b。 データを バックアップの作成元と同じデータベース に復元するには:
maintainDB.[cmd|sh] restore -A <absolute path to the newly created TeamCity Data Directory> -F <path to the TeamCity backup file>c. バックアップを 内部データベース に復元するには:
maintainDB.[cmd|sh] restore -A <absolute path to the newly created TeamCity Data Directory> -I -F <path to the TeamCity backup file>プロセスが正常に完了した場合、 復元を完了する には、古いディレクトリから
<TeamCity データディレクトリ>/system/artifactsを コピー 必要があります。 ディレクトリにはビルドアーティファクトが保存されますが、それらはバックアップファイルには含まれません。
復元 コマンドオプションに関する注意:
TEAMCITY_DATA_PATH環境変数が設定されている場合、-A引数は省略できます。-F引数は絶対パスまたは<TeamCity データディレクトリ>/system/backupディレクトリへの相対パスにすることができます。-T引数は、手順 3 で作成されたdatabase.propertiesファイルを指している必要があります。-T引数が指定されておらず、新しく作成された<TeamCity データディレクトリ>/configおよびバックアップファイルにdatabase.propertiesファイルが存在する場合、データベースは<TeamCity データディレクトリ>/configのプロパティファイルを使用して復元されます。デフォルトでは、
-F以外のオプションが指定されていない場合、バックアップされたすべてのスコープがバックアップファイルから復元されます。 バックアップファイルから特定のスコープのみを復元するには、maintainDBユーティリティの対応するオプション-D、-C、-U、-L、-Pを使用します。
データベースのみの復元
データベースを復元しつつ、より新しい TeamCity データディレクトリを保持する場合は、データの一貫性を確認することが重要です:
データベースに保存されているデータと一貫性を保つために、
<TeamCity データディレクトリ>/system/pluginData(補足データ) も復元する必要があります。サーバーの起動前に
<TeamCity データディレクトリ>/system/cachesをクリアする必要があります。
TeamCity データベースを既存のサーバーに復元する前に、TeamCity サーバーが実行されていないことを確認してください。
TeamCity データベースのみをバックアップファイルから既存のサーバーに復元するには:
データベースを作成して構成する、
database.propertiesファイルをTeamCity データディレクトリの設定サブディレクトリに配置します。必要なデータベースドライバが
/ライブラリ/JDBCサブディレクトリに存在することを確認してください。maintainDBユーティリティを使用します。このユーティリティは<TeamCity データディレクトリ>/バイナリディレクトリにあります (TeamCity.tar.gzおよび.exeディストリビューションでのみ使用可能)。バックアップに 追加データが存在する場合は、
<TeamCity データディレクトリ>/system/pluginDataディレクトリの内容を削除します (最初に別の場所にバックアップすることを検討してください)。復元コマンドを使用します(-T引数は、ステップ 1 で作成されたdatabase.propertiesファイルを指している必要があります)。maintainDB.[cmd|sh] restore -A <absolute path to TeamCity Data Directory> -F <path to the TeamCity backup file> -T <path to the database.properties file of the target database> -DmaintainDBユーティリティコンソールの出力を参照してください。 要求された場合は、database.propertiesファイルを手動でコピーする必要があります。<TeamCity データディレクトリ>/system/cachesディレクトリの内容を削除します。
中断後の復元の再開
次の理由により、復元が中断される場合があります。
ファイルシステムまたはデータベースのスペース不足
ファイルシステムまたはデータベースに対する権限が不十分です
この中断は、テーブルまたはインデックスのいずれかの復元に失敗した場合に発生し、 maintainDB ユーティリティのコンソール出力に示されます。
復元を再開する前に 、正しく復元されなかったオブジェクトをデータベースから手動で削除します。
中断後にバックアップの復元を再開するには:
必要なオプションと --続行 オプションを指定した 復元 コマンドを使用して、 maintainDB ユーティリティを実行します。