TeamCity 2020.2 ヘルプ

バックアップからの 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 サーバーの最初の起動時にバックアップファイルを復元するには:

  1. On the TeamCity First Start step of the browser dialog, enter the path to the データディレクトリ and click バックアップから復元

  2. TeamCity サーバーのバックアップディレクトリへの絶対パスを入力するか、バックアップデータを含む ZIP アーカイブをアップロードします。

  3. ターゲットデータベースを選択します。外部データベースを使用する場合、そのアドレスと資格情報を構成します。

  4. 修復を続行します。

TeamCity はデータを復元し、maintainDB ユーティリティのログを表示します。バックアップされたデータ形式のバージョンが現在のものよりも古い場合、TeamCity はそれをアップグレードすることを提案します。

または、maintainDB ユーティリティを手動で使用することもできます。このセクションでは、maintainDB オプションの一部についてのみ説明します。使用可能なすべてのオプションの完全なリストについては、コマンドラインから maintainDB をパラメーターなしで実行してください。また、maintainDB 起動オプションも参照してください。

MaintainDB を介してバックアップファイルから復元を実行するには:

  1. tar.gz または .exe インストールパッケージから TeamCity サーバーをインストールします。TeamCity サーバーを開始しないでください。

  2. 新しい空の TeamCity データディレクトリを作成します。

  3. 次のオプションのいずれかを選択します。

    • バックアップを新しい外部データベースに復元するには、空のデータベースを作成して構成し、後で restore コマンドに渡されるデータベース設定を使用して database.properties ファイルを構成し、新しく作成された TeamCity データディレクトリ/config サブディレクトリまたはどこかに配置します。TeamCity データディレクトリ外のファイルシステム。

    • バックアップが作成されたのと同じデータベースにデータを復元するには、次の手順に進みます。

  4. 必要なデータベースドライバを、新しく作成された TeamCity データディレクトリディレクトリの lib/jdbc サブディレクトリに配置します。

  5. <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>
  6. プロセスが正常に完了した場合、復元完了するには、古いディレクトリから <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 the maintainDB utility: -D-C-U-L-P .

データベースのみの復元

データベースを復元し、最新の TeamCity データディレクトリを保持する場合、データの一貫性を確認することが重要です。

TeamCity データベースを既存のサーバーに復元する前に、TeamCity サーバーが実行されていないことを確認してください。

TeamCity データベースをバックアップファイルから既存のサーバーにのみ復元するには:

  1. データベースを作成して構成するdatabase.properties ファイルを TeamCity Data Directoryconfig サブディレクトリに配置します。

  2. /lib/jdbc サブディレクトリに必要なデータベースドライバーが存在することを確認します。

  3. <TeamCity ホーム > / bin ディレクトリにある maintainDB ユーティリティを使用します(TeamCity .tar.gz および .exe ディストリビューションでのみ使用可能)。

  4. 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).

  5. 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> -D
  6. maintainDB ユーティリティコンソールの出力を参照してください。要求された場合は、database.properties ファイルを手動でコピーする必要があります。

  7. <TeamCity データディレクトリ > / system / caches ディレクトリの内容を削除します。

中断後の復元の再開

次の理由により、復元が中断される場合があります。

  • ファイルシステムまたはデータベースのスペース不足

  • ファイルシステムまたはデータベースに対する権限が不十分です

中断は、テーブルまたはインデックスの 1 つが復元に失敗したときに発生します。これは、maintainDB ユーティリティコンソール出力に示されます。
復元を再開する前に、データベースから誤って復元されたオブジェクトを手動で削除します。

中断後にバックアップの復元を再開するには:
必要なオプションと追加の --continue オプションを指定して restore コマンドで maintainDB ユーティリティを実行します。

maintainDB.[cmd|sh] restore <all previously used restore options> --continue