外部データベースの設定
TeamCity はビルド履歴、ユーザー、ビルド結果、いくつかのランタイムデータを SQL データベースに保存します。手動バックアップと復元ページのどこに格納されているかの説明も参照してください。
本番用に推奨されていない内部データベースを使用して TeamCity を評価した場合は、外部データベースへの移行を参照してください。
現在使用中のデータベースは、データベースフィールドの管理 | グローバル設定ページに表示され、サーバー起動時の teamcity-server.log
にも表示されます。 HSQL*
は、内部データベースが使用中であることを意味します。
デフォルトの内部データベース
最初の TeamCity の実行時には、デフォルトで HSQLDB データベースエンジンに基づく内部データベースを使用することをお勧めします。内部データベースは評価目的にのみ適しています。すぐに動作し、追加の設定は必要ありません。
ただし、実稼働環境では外部データベースをバックエンド TeamCity データベースとして使用することを強くお勧めします。外部データベースは通常、信頼性が高く、パフォーマンスが向上します。内部データベースはクラッシュし、すべてのデータが失われる可能性があります(「ディスク容量不足」の場合など)。また、内部データベースは大きなデータセットでは極端に遅くなるかもしれません(たとえば、200Mb を超えるデータベースストレージファイル)。また、内部データベースを使用している場合、弊社のサポートはパフォーマンスまたはデータベースデータ損失の問題をカバーしていません。
つまり、本番 TeamCity インスタンスには内部 HSQLDB データベースを使用しないでください。外部データベースに移行するは、TeamCity サーバーに保存されているデータに依存し始めた瞬間です。
外部データベースエンジンの選択
原則として、自分の環境により適したデータベースを使用し、組織内でより適切に保守 / 構成できるようにする必要があります。サポートされているすべてのデータベースで TeamCity が同等に機能するように努力していますが、TeamCity による負荷が高い場合、問題が発生することがあります。
必要なデータベース容量を見積もることもできます。
サポートされているデータベース
TeamCity は以下のデータベースをサポートします。
MySQL
PostgreSQL
Oracle
MS SQL
一般的な手順
TeamCity が使用するように外部データベースを構成します(下記のデータベース固有のセクションを参照)。
最初の TeamCity サーバー起動時のフォームを介して、またはデータベース接続設定を手動で構成することにより、データベースへの接続を構成します。
TeamCity がデータベーススキーマの所有権を引き継ぐメモ。データベース構造は最初の起動時に作成され、新しい TeamCity バージョンへのアップグレード中にアクティブに変更されます。TeamCity が正常に動作している場合、スキーマは変更されません。
TeamCity が使用するユーザーアカウントでは、すべてのテーブルで通常の読み取り / 書き込み権限に加えて、スキーマに新規テーブルの作成、既存テーブルの変更および削除の権限が含まれている必要があります。データベース用の JDBC ドライバーをダウンロードする必要がある場合もあります。
ライセンス条項により、TeamCity は外部データベース用のドライバー.jar
ファイルをバンドルしていません。Java JDBC ドライバーをダウンロードし、そこから適切な.jar
ファイル(以下のドライバー固有のセクションを参照)を <TeamCity データディレクトリ > /lib/jdbc ディレクトリに配置する必要があります。
.jar
ファイルは、TeamCity の実行に使用されたもの以下の Java バージョン用にコンパイルする必要があることに注意してください。そうしないと、データベースドライバークラスに関連するUnsupported major.minor version
エラーが発生する可能性があります。
データベース固有の手順
以下のセクションでは、データベースサーバーと TeamCity サーバーで必要な設定について説明します。
MySQL
MySQL サーバー側
推奨データベースサーバー設定:
InnoDB ストレージエンジンを使用する
utf8mb4 文字セットを使用 (MySQL のバージョンが 5.5.2 以前の場合は utf8)
大文字と小文字を区別する照合を使用する
my.cnf
ファイルを使用するか、または OS レベルでタイムゾーンを設定して、TeamCity を実行する JVM のタイムゾーンと MySQL インスタンスのタイムゾーンが同じであることを確認します。- MySQL サーバーの設定に関する推奨事項も参照してください
TeamCity によって使用される MySQL ユーザーアカウントには、TeamCity データベースに対するすべての権限が付与されている必要があります。これは MySQL コンソールから以下の SQL コマンドを実行することで実行できます。
TeamCity サーバー側 (MySQL)
JDBC ドライバのインストール
http://dev.mysql.com/downloads/connector/j/(英語) から MySQLJDBC ドライバーをダウンロードします。サーバーと互換性のあるバージョンを使用していることを確認してください。MySQL サーバーのバージョンが 5.5 以降の場合、JDBC ドライバーのバージョンは少なくとも 5.1.23 である必要があります。8 を超えるバージョンの場合は、ドライバーバージョン 8 を使用する必要があります。
ダウンロードしたアーカイブから
mysql-connector-java-*-bin.jar
を<TeamCity Data Directory>/lib/jdbc
ディレクトリに配置します(既存のファイルがある場合は、そこから削除します)。TeamCity のセットアップを続行します。
PostgreSQL
PostgreSQL サーバー側
- PostgreSQL で TeamCity 用の空のデータベースを作成します。
データベースが UTF8 を使用するように設定してください。
データベースを操作するために TeamCity によって使用されるユーザーアカウントにこのデータベースを変更するための権限を付与します。
- PostgreSQL サーバーの設定に関する推奨事項も参照してください
TeamCity は、テーブルに使用されるスキーマを指定しません。デフォルトでは、PostgreSQL は「public」スキーマ(英語)にテーブルを作成します(「public」はスキーマの名前です)。TeamCity は、他の PostgreSQL スキーマでも機能します。別のスキーマに切り替えるには、次の手順を実行します。
ユーザー名とまったく同じ名前のスキーマを作成します。これは、pgAdmin
ツールを使用するか、次の SQL を使用して実行できます。
スキーマは空にする必要があります(テーブルを含めることはできません)。
TeamCity サーバー側 (PostgreSQL との連携)
必要な PostgreSQL JDBC42 ドライバ(英語)をダウンロードして、<TeamCity データディレクトリ > /lib/jdbc ディレクトリに置きます(存在する場合は、そこに既存のファイルを削除します)。TeamCity セットアップに進みます。
Oracle
Oracle サーバー側
TeamCity 用の Oracle ユーザーアカウント / スキーマを作成します。
データベースインスタンスの各国語キャラクタセットが UTF または Unicode であることを確認してください。
このデータベースを操作するために TeamCity がアカウントを使用するユーザーに
CREATE SESSION
、CREATE TABLE
権限を付与します。
TeamCity は最初の接続で、ユーザーのスキーマに必要なすべてのテーブルとインデックスを作成します。(メモ: TeamCity は他のスキーマがアクセス可能であってもそれらにアクセスしようとしません)
TeamCity サーバー側 (Oracle との)
1. Oracle JDBC ドライバーを入手してください。サポートされているドライバーのバージョンは 11.1 以上です。次のファイルを配置します。
ojdbc8.jar
(またはデータベースのバージョンに応じてojdbc6.jar
、ojdbc7.jar
)orai18n.jar
(ドライババージョンにない場合は省略可能)を <TeamCity データディレクトリ > /lib/jdbc ディレクトリに追加します(存在する場合は既存のファイルを削除します)。
Oracle サーバーのインストール場所にドライバを配置することを強くお勧めします。必要に応じて、ファイルについて DBA に連絡してください。または、Oracle Web サイト(英語)から Oracle JDBC ドライバをダウンロードしてください。ドライバのバージョンが Oracle サーバーと互換性があることを確認してください。
2. TeamCity セットアップに進みます。
Microsoft SQL Server
詳しい手順については、専用のページを参照してください。現在のセクションでは、セットアップに必要な主な詳細情報を提供します。
MS SQL サーバー側
新しいデータベースを作成します。プライマリ照合として、ロケールに対応する大文字と小文字を区別する照合(
_CS_AS
で終わる照合名)を使用してください。TeamCity ユーザーを作成し、このユーザーがデータベースの所有者であることを確認します(ユーザーに dbo 権限を付与します)。これにより、ユーザーはデータベーススキーマを変更することができます。SSL 接続の場合は、MS SQL サーバーのバージョンと TeamCity バージョンの java の間に互換性があることを確認してください。最新の SQL サーバーを使用することをお勧めします。
サーバーの使用頻度に応じて、十分なトランザクションログ領域を割り当てます。推奨設定は 1Gb 以上です。
SQL Server ブラウザーが起動していることを確認してください。
TCP/IP プロトコルが SQL Server インスタンスに対して有効になっていることを確認してください。
TeamCity サーバー側 (MS SQL)
Microsoft
Download Center
(英語) からMicrosoft JDBC driver v6.4+
(英語)(sqljdbc_6.*.x
パッケージ)をダウンロードします。ダウンロードしたパッケージを一時ディレクトリに解凍します。
ダウンロードしたばかりのパッケージから
mssql-jdbc-*.jre8.jar
を <TeamCity データディレクトリ > /lib/jdbc ディレクトリにコピーします(存在する場合は、そこに既存のファイルを削除します)。MS SQL 統合セキュリティ(Windows 認証)を使用するには、指示に従ってドライバパッケージからsqljdbc_auth.dll
をインストールする必要があります。TeamCity セットアップに進みます。
jTDS ドライバー
jTDS JDBC ドライバを使用することはお勧めできません。ドライバの使用中に Unicode 文字を使用することに関する少なくとも既知の問題があります。
ドライバを使用する場合(jtds
テキストは database.properties
の connectionUrl
に表示されます)、ネイティブドライバを切り替えることを強くお勧めします。
スイッチの適切な手順は次のとおりです。
データベースを含むサーバーバックアップを作成します
上記のセクションで説明したように、サーバーを停止し、ネイティブの Microsoft JDBC ドライバーを使用するようにサーバーを構成します。
データベースをバックアップから新しい MS SQL データベースに復元します
サーバーを実行する
データベース構成プロパティ
データベース接続設定は、<TeamCity データディレクトリ > /config/database.properties ファイルに保存されます。このファイルは Java プロパティファイルです(英語)。これを変更して、データベース接続に必要なプロパティを指定できます。
サポートされているすべてのデータベースに対して、<TeamCity データディレクトリ > /config ディレクトリにデータベース固有のプロパティを持つテンプレートファイルがあります。ファイルの命名形式は database.<database_type>.properties.dist
であり、必要な設定の参照として使用できます。
TeamCity はデータベース接続プーリングに Apache DBCP を使用します。構成プロパティの詳細な説明については、Apache Commons のドキュメント(英語)を参照してください。
関連ページ:

手動バックアップと復元 | TeamCity
サーバーの手動バックアップ:バックアップを作成する他の方法も利用できます。バックアッププロセスをきめ細かく制御する場合、または TeamCity バックアップに特定の手順を使用する必要がある場合は、このページの手順を使用できます。手動バックアップは、使用中の特定のインフラストラクチャに合わせて調整できるため、バックアップを作成および復元する最もパフォーマンスの高い方法でもあります。次のデータをバックアップする必要があります。TeamCity データディレクトリストア: サーバー設定、プロジェクト...

MS SQL Server による TeamCity の設定 | TeamCity
前提条件:MS SQL サーバー、MS SQL Server Management Studio、TeamCity サーバーをインストール、TeamCity で使用される MS SQL サーバーの構成:SQL サーバーの TCP/IP プロトコルを有効にする SQL Server 構成マネージャーを開き、以下を実行します。SQL Server ネットワーク構成を展開し、MSSQL のプロトコルをクリックします。右側のウィンドウで、TCP/IP を右クリックし、有効をクリックして、はいを選択します...