バックアップからの TeamCity データの復元
TeamCity 管理者は、TeamCity UI 経由で、または maintainDB コマンドラインユーティリティを使用して手動で、バックアップされたデータを復元できます。
復元する前に
バックアップされたデータは、サポートされている任意のデータベースから、またはサポートされている任意のデータベースに、同じデータベースまたは別のデータベースに復元できます (たとえば、HSQL データベースから PostgreSQL データベースにデータを復元したり、PostgreSQL データベースのバックアップを新しい PostgreSQL データベースに復元したりできます)。
TeamCity の新しいバージョンを使用して、以前の TeamCity バージョンで作成されたバックアップを復元できます(TeamCity バージョンが 6.0 以降である場合)。
大規模なデータベースの復元中に、大量のデータ変更をより速く行うためにデータベース固有の設定を構成することが必要な場合があります (SQL Server の「リカバリモデル」を「シンプル」に設定するなど)。詳細については、DBA にお問い合わせください。
TeamCity バックアップファイルにはビルドアーティファクトは含まれません。ビルドログとアーティファクトをバックアップするには、アーティファクトディレクトリ (デフォルトでは <TeamCity Data Directory> /system/artifacts) の内容を古い場所から新しい場所に手動でコピーします。system/artifacts のデータの一般的な互換性ルールは、古い TeamCity バージョンで作成されたファイルは新しいバージョンで読み取ることができますが、その逆は必ずしも可能ではないということです。
外部アーティファクトストレージが有効になっている場合、TeamCity データディレクトリのアーティファクトディレクトリにはアーティファクトマッピングに関するメタデータが含まれるため、それらが復元されていることを確認してください。
TeamCity データディレクトリの説明にあるディレクトリの詳細も参照してください。
バックアップから復元されたサーバーの起動時にビルドメタデータの再インデックスが自動的に開始されるため、サーバーの起動前にアーティファクトをコピーすることが重要です。インデックス作成中に一部のアーティファクトが欠落すると、TeamCity サーバーの一部が失敗する可能性があります (たとえば、NuGet フィード)。サーバーの起動後にアーティファクトをコピーした場合 (またはサーバーの起動前にアーティファクトのコピーが完了していない場合)、ビルドメタデータを手動で再インデックスし、再インデックスが完了するまで待つ必要がある場合があります。
復元の実行
TeamCity は、バックアップされたデータを新しい TeamCity のインストールに自動的に復元できます (たとえば、既存のサーバーのコピーを作成する場合)。このプロセスは maintainDB ユーティリティに依存しますが、必要なすべての操作を内部で実行します。
ブラウザーで TeamCity URL (デフォルトでは、
exeインストールの場合はhttp://localhost/、tar.gzの場合はhttp://localhost:8111/) を開きます。TeamCity ファーストスタートページで、データディレクトリへのパスを入力し、バックアップから復元をクリックします。
TeamCity サーバーのバックアップディレクトリへの絶対パスを入力するか、バックアップデータを含む ZIP アーカイブをアップロードします。
ターゲットデータベースを選択します。外部データベースを使用する場合、そのアドレスと資格情報を構成します。
修復を続行します。
TeamCity はデータを復元し、maintainDB ユーティリティログを表示します。バックアップされたデータ形式のバージョンが現在のものよりも古い場合、TeamCity はそれをアップグレードすることを提案します。
バックアップしたファイルを既存の TeamCity インストールに復元するか、自動復元の制限を克服するには、maintainDB ユーティリティを手動で使用します。このセクションでは、maintainDB オプションの一部についてのみ説明します。使用可能なすべてのオプションの完全なリストについては、コマンドラインからパラメーターなしで maintainDB を実行してください。maintainDB 起動オプションも参照してください。
maintainDB を介してバックアップファイルから復元を実行するには:
tar.gzまたは.exeインストールパッケージから TeamCity サーバーをインストールします。TeamCity サーバーを開始しないでください。新しい空の TeamCity データディレクトリを作成します。
次のオプションのいずれかを選択します。
バックアップを新しい外部データベースに復元するには、空のデータベースを作成して構成し、後で
restoreコマンドに渡されるデータベース設定を含むdatabase.propertiesファイルを構成し、それを新しく作成された TeamCity データディレクトリの/configサブディレクトリに配置するか、ファイルシステム上の TeamCity データディレクトリ外の任意の場所に配置します。バックアップが作成されたのと同じデータベースにデータを復元するには、次の手順に進みます。
必要なデータベースドライバーを、新しく作成した TeamCity データディレクトリディレクトリの
lib/jdbcサブディレクトリに配置します。<TeamCity Home>/binディレクトリにあるmaintainDBユーティリティを使用して、restoreコマンドを実行します。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 Data Directory>/system/artifactsをコピーする必要があります。ディレクトリにはビルドアーティファクトが保存されますが、それらはバックアップファイルには含まれません。
restore コマンドオプションに関する注意:
TEAMCITY_DATA_PATH環境変数が設定されている場合、-A引数は省略できます。-F引数は絶対パスまたは<TeamCity Data Directory>/system/backupディレクトリへの相対パスにすることができます。-T引数は、手順 3 で作成されたdatabase.propertiesファイルを指している必要があります。-T引数が指定されておらず、新しく作成された<TeamCity Data Directory>/configおよびバックアップファイルにdatabase.propertiesファイルが存在する場合、データベースは<TeamCity Data Directory>/configのプロパティファイルを使用して復元されます。デフォルトでは、
-F以外のオプションが指定されていない場合、バックアップされたすべてのスコープがバックアップファイルから復元されます。バックアップファイルから特定のスコープのみを復元するには、maintainDBユーティリティの対応するオプション-D、-C、-U、-L、-Pを使用します。
データベースのみの復元
データベースを復元し、最新の TeamCity データディレクトリを保持する場合、データの一貫性を確認することが重要です。
データベースに保存されているデータと一貫性を保つために、
<TeamCity Data Directory>/system/pluginData( 補足データ ) も復元する必要があります。サーバーの起動前に
<TeamCity Data Directory>/system/cachesをクリアする必要があります。
TeamCity データベースを既存のサーバーに復元する前に、TeamCity サーバーが実行されていないことを確認してください。
TeamCity データベースをバックアップファイルから既存のサーバーにのみ復元するには:
データベースを作成して構成する、
database.propertiesファイルをTeamCity Data Directoryのconfigサブディレクトリに配置します。必要なデータベースドライバが
/lib/jdbcサブディレクトリに存在することを確認してください。<TeamCity Data Directory>/binディレクトリにあるmaintainDBユーティリティを使用します (TeamCity.tar.gzおよび.exeディストリビューションでのみ使用可能)。バックアップに追加データが存在する場合は、
<TeamCity Data Directory>/system/pluginDataディレクトリの内容を削除します (最初に別の場所にバックアップすることを検討してください)。restoreコマンドを使用します(-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 Data Directory>/system/cachesディレクトリの内容を削除します。
中断後の復元の再開
次の理由により、復元が中断される場合があります。
ファイルシステムまたはデータベースのスペース不足
ファイルシステムまたはデータベースに対する権限が不十分です
テーブルまたはインデックスの 1 つを復元できなかった場合に中断が発生し、maintainDB ユーティリティコンソールの出力に表示されます。
復元を再開する前に、誤って復元されたオブジェクトをデータベースから手動で削除します。
中断後にバックアップの復元を再開するには:
必要なオプションと --continue オプションを指定した restore コマンドを使用して、maintainDB ユーティリティを実行します。
関連ページ:
maintainDB コマンドラインツールを使用したバックアップの作成
TeamCity.tar.gz および .exe ディストリビューションは、ディレクトリにあるユーティリティを提供します。このコマンドラインツールを使用すると、サーバーデータのバックアップ、復元、および異なるデータベース間の移行を行うことができます。また、UI を使用してデータをバックアップすることもできます。バックアップする前に:データをバックアップする前に、TeamCity サーバーをシャットダウンして、すべてのビルドをバックアップに含めることをお勧めします。TeamCity サーバーが稼働...
TeamCity データディレクトリ
TeamCity データディレクトリは、TeamCity サーバーが構成、ビルド結果、現在の操作ファイルを保存するために使用するファイルシステム上のディレクトリです。このディレクトリは、すべての構成設定の 1 次ストレージであり、TeamCity のインストールに不可欠なデータを保持します。ビルド履歴、ユーザーとそのデータ、その他のデータはデータベースに保存されます。ディレクトリとデータベースに保存されるデータの説明については、バックアップに関する注意事項を参照してください。このドキュメントや他...
アーティファクトストレージの構成
プロジェクト設定 | アーティファクトストレージタブには、このプロジェクトで構成されたアーティファクトストレージと、親から継承されたストレージが表示されます。デフォルトでは、組み込み TeamCity アーティファクトストレージが表示され、アクティブとしてマークされています。対応するリンクを使用して別のストレージを有効化することができます。組み込みアーティファクトストレージ:TeamCity は、ビルドによって生成されたアーティファクトを、TeamCity サーバーがアクセスできるファイルシステ...
TeamCity の設定とメンテナンス
サーバー構成を変更するには、管理 | グローバル設定に移動します。次の設定ブロックを使用できます。TeamCity の設定:データベース実行中の TeamCity サーバーによって使用されるデータベース。データディレクトリディレクトリを参照できる \<TeamCity データディレクトリ \> パス。アーティファクトディレクトリ TeamCity サーバーがビルドアーティファクト、ビルドログ、その他のビルドデータを保存するために使用するルートディレクトリのリスト。デフォルトの場所はです...