バックアップからの 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 データディレクトリの説明にあるディレクトリの詳細も参照してください。
復元の実行
バージョン 2019.2 以降、TeamCity はバックアップデータを自動的に復元できます。自動復元プロセスも maintainDB ユーティリティに依存していますが、内部で必要なすべての操作を実行します。TeamCity サーバーの最初の起動時にバックアップファイルを復元するには:
On the TeamCity First Start step of the browser dialog, enter the path to the データディレクトリ and click バックアップから復元。
TeamCity サーバーのバックアップディレクトリへの絶対パスを入力するか、バックアップデータを含む ZIP アーカイブをアップロードします。
ターゲットデータベースを選択します。外部データベースを使用する場合、そのアドレスと資格情報を構成します。
修復を続行します。
TeamCity はデータを復元し、maintainDB ユーティリティのログを表示します。バックアップされたデータ形式のバージョンが現在のものよりも古い場合、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 データディレクトリ > / system / artifacts をコピーする必要があります。ディレクトリにはビルドアーティファクトが格納され、それらはバックアップファイルには含まれません。
restore
コマンドオプションに関する注意:
TEAMCITY_DATA_PATH
環境変数が設定されている場合、-A
引数は省略できます。-F
引数には、絶対パスまたは <TeamCity データディレクトリ > / backup ディレクトリからの相対パスを指定できます。-T
引数は、手順 3 で作成されたdatabase.properties
ファイルを指している必要があります。-T
引数が指定されておらず、新しく作成された<TeamCity Data Directory>/config
およびバックアップファイルにdatabase.properties
ファイルが存在する場合、データベースは<TeamCity Data Directory>/config
のプロパティファイルを使用して復元されます。By default, if no other option except
-F
is specified, all of the backed up scopes will be restored from the backup file. To restore only specific scopes from the backup file, use the corresponding options of themaintainDB
utility:-D
、-C
、-U
、-L
、-P
.
データベースのみの復元
データベースを復元し、最新の TeamCity データディレクトリを保持する場合、データの一貫性を確認することが重要です。
< TeamCity データディレクトリ >/system/pluginData (supplementary data) should be restored as well to be consistent with the data stored in the database
<TeamCity データディレクトリ > / system / caches は、サーバーが起動する前にクリアする必要があります
TeamCity データベースを既存のサーバーに復元する前に、TeamCity サーバーが実行されていないことを確認してください。
TeamCity データベースをバックアップファイルから既存のサーバーにのみ復元するには:
データベースを作成して構成する、
database.properties
ファイルをTeamCity Data Directory
のconfig
サブディレクトリに配置します。/lib/jdbc
サブディレクトリに必要なデータベースドライバーが存在することを確認します。<TeamCity ホーム > / bin ディレクトリにある
maintainDB
ユーティリティを使用します(TeamCity.tar.gz
および.exe
ディストリビューションでのみ使用可能)。If the supplementary data is present in the backup, delete the content of the < TeamCity データディレクトリ >/system/pluginData directory (consider backing it up in another location first).
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 データディレクトリ > / system / caches ディレクトリの内容を削除します。
中断後の復元の再開
次の理由により、復元が中断される場合があります。
ファイルシステムまたはデータベースのスペース不足
ファイルシステムまたはデータベースに対する権限が不十分です
中断は、テーブルまたはインデックスの 1 つが復元に失敗したときに発生します。これは、maintainDB
ユーティリティコンソール出力に示されます。
復元を再開する前に、データベースから誤って復元されたオブジェクトを手動で削除します。
中断後にバックアップの復元を再開するには:
必要なオプションと追加の --continue
オプションを指定して restore
コマンドで maintainDB
ユーティリティを実行します。