外部データベースを設定する
TeamCity は、ビルド履歴、ユーザー、ビルド結果、一部のランタイムデータを組み込みの SQL データベースに保存します。
現在使用されているデータベースは、管理 | グローバル設定ページに表示されます。また、サーバーの起動時に teamcity-server.log にも表示されます。HSQL* は、内部データベースが使用中であることを意味します。安定性とセキュリティのために、デフォルトの HSQL から別のマシンにある外部データベースに移行することをお勧めします。
デフォルトの内部データベース
最初の TeamCity 実行では、デフォルトで内部 HSQLDB データベースを使用することが提案されています。内部データベースは評価目的にのみ適しています。すぐに機能し、追加のセットアップは必要ありません。
ただし、実稼働環境では、外部データベースをバックエンドの TeamCity データベースとして使用することを強くお勧めします。外部データベースは通常、信頼性が高く、パフォーマンスも優れています。内部データベースはクラッシュしてすべてのデータが失われる可能性があります (たとえば、「ディスク領域不足」状態の場合)。内部データベースは、大規模なデータセット (200 MB を超えるデータベースストレージファイル) では極端に遅くなる可能性があります。内部データベースを使用している場合、パフォーマンスやデータベースデータ損失の問題はサポートの対象外となることに注意してください。外部データベースに移行するは、TeamCity サーバーに保存されているデータに依存し始めた瞬間から発生します。
外部データベースエンジンの選択
原則として、環境に最適で、組織内でより適切に維持 / 構成できるデータベースを使用する必要があります。サポートされているすべてのデータベースで TeamCity が同等に機能するように努めていますが、TeamCity によって生成された高い負荷がかかると、一部のデータベースで問題が発生する可能性があります。
必要なデータベース容量を見積もることもできます。
一般的な手順
TeamCity が使用するように外部データベースを構成します(下記のデータベース固有のセクションを参照)。
最初の TeamCity サーバーの起動時にフォームを介してデータベースへの接続を構成するか、データベース接続設定を手動で構成します。
TeamCity はデータベーススキーマの所有権を引き継ぐことに注意してください。データベース構造は最初の起動時に作成され、新しい TeamCity バージョンへのアップグレード中にアクティブに変更されます。TeamCity が正常に動作している場合、スキーマは変更されません。
TeamCity が使用するユーザーアカウントには、すべてのテーブルに対する通常の読み取り / 書き込み権限に加えて、スキーマ内の既存のテーブルを作成、変更、削除する権限が必要です。また、データベース用の JDBC ドライバーをダウンロードする必要がある場合もあります。ライセンス条件により、TeamCity には外部データベース用のドライバー
.jarファイルはバンドルされていません。Java JDBC ドライバーをダウンロードし、そこから適切な.jarファイル (以下のドライバー固有のセクションを参照) を<TeamCity Data Directory>/lib/jdbcディレクトリに配置する必要があります。
.jarファイルは、TeamCity を実行するために使用されたバージョンより後の Java バージョン用にコンパイルする必要があることに注意してください。そうしないと、データベースドライバークラスに関連する " サポートされていないメジャー . マイナーバージョン " エラーが発生する可能性があります。
データベース固有の手順
以下のセクションでは、データベースサーバーと TeamCity サーバーで必要な設定について説明します。
MySQL
MySQL サーバー側
推奨データベースサーバー設定:
InnoDB ストレージエンジンを使用します。
utf8mb4 文字セット(または MySQL バージョンが 5.5.2 以前の場合は utf8)を使用します。
大文字と小文字を区別する照合を使用します。
TeamCity を実行している JVM のタイムゾーンと MySQL インスタンスのタイムゾーンが同じであることを確認するには、
my.cnfファイルを使用するか、OS レベルでタイムゾーンを構成します。TeamCity は主キーのないテーブルを管理するため、サーバーの sql_require_primary_key(英語) システム変数を
OFFに設定する必要があります。
TeamCity によって使用される MySQL ユーザーアカウントには、TeamCity データベースに対するすべての権限が付与されている必要があります。これは MySQL コンソールから以下の SQL コマンドを実行できます。
TeamCity サーバー側 (MySQL)
JDBC ドライバのインストール
MySQL JDBC ドライバー(英語)をダウンロードします。必ずサーバーと互換性のあるバージョンを使用してください。
Windows の場合、インストーラーを「カスタム」モードで実行し、「MySQL コネクター | Connector/J」を選択してスタンドアロンコネクターをインストールします。
ダウンロードしたアーカイブ (Linux) またはインストールフォルダー (Windows) から
mysql-connector-j-<version>.jarを<TeamCity Data Directory>/lib/jdbcディレクトリにコピーします (既存のファイルがある場合は削除します)。TeamCity のセットアップを続行します。
PostgreSQL
PostgreSQL サーバー側
PostgreSQL で TeamCity 用の空のデータベースを作成します。
データベースが UTF8 を使用するように設定してください。
データベースを操作するために TeamCity によって使用されるユーザーアカウントにこのデータベースを変更するための権限を付与します。
TeamCity は、テーブルに使用されるスキーマを指定しません。デフォルトでは、PostgreSQL は public スキーマ(英語)にテーブルを作成します。TeamCity は、他の PostgreSQL スキーマでも機能します。別のスキーマに切り替えるには、ユーザー名とまったく同じ名前のスキーマを作成します。これは、pgAdmin ツールまたは次の SQL を使用して実行できます。
スキーマは空にする必要があります(テーブルを含めることはできません)。
TeamCity サーバー側 (PostgreSQL との連携)
必要な PostgreSQL JDBC42 ドライバ(英語)をダウンロードし、 <TeamCity Data Directory> /lib/jdbc ディレクトリに配置します (既存のファイルがある場合は削除します)。TeamCity のセットアップを続行します。
Oracle
Oracle サーバー側
TeamCity 用の Oracle ユーザーアカウント / スキーマを作成します。
データベースインスタンスの各国語キャラクタセットが UTF または Unicode であることを確認してください。
このデータベースを操作するために TeamCity がアカウントを使用するユーザーに
CREATE SESSIONおよびCREATE TABLE権限を付与します。
最初の接続で、TeamCity はユーザーのスキーマに必要なすべてのテーブルとインデックスを作成します。(注: TeamCity は、他のスキーマにアクセスできる場合でも、他のスキーマにアクセスしようとはしません。)
TeamCity ユーザーに表スペースにアクセスするためのクォータがあることを確認してください。
TeamCity サーバー側 (Oracle との)
Oracle JDBC ドライバーを入手します。サポートされているドライバーのバージョンは 11.1 以降です。Oracle JDBC ドライバーは、Oracle サーバーと互換性がある必要があります。
次のファイルを配置します。ojdbc8.jar(またはデータベースのバージョンに応じてojdbc6.jar、ojdbc7.jar)orai18n.jar(ドライバーバージョンにない場合は省略可能)
<TeamCity Data Directory>/lib/jdbcディレクトリに (存在する場合は既存のファイルを削除します)。
ドライバは Oracle サーバーインストール内に置くことを強くお勧めします。必要な場合は、DBA にファイルについて問い合わせてください。または、OracleWeb サイト(英語)から Oracle JDBC ドライバをダウンロードします。
TeamCity セットアップに進みます。
Microsoft SQL Server
詳細な手順については、専用ページを参照してください。現在のセクションでは、セットアップに必要な重要な詳細について説明します。
MS SQL Server 側
新しいデータベースを作成します。プライマリ照合として、ロケールに対応する大文字と小文字を区別する照合(
_CS_ASで終わる照合名)を使用してください。TeamCity ユーザーを作成し、このユーザーがデータベースの所有者であることを確認します(ユーザーに
dbo権限を付与します)。これにより、ユーザーはデータベーススキーマを変更できるようになります。SSL 接続の場合は、MSSQL サーバーのバージョンと Java の TeamCity バージョンに互換性があることを確認してください。最新バージョンの SQL サーバーを使用することをお勧めします。サーバーの使用頻度に応じて、十分なトランザクションログスペースを割り当てます。推奨されるセットアップは 1GB 以上です。
SQL Server ブラウザーが実行されていることを確認してください。
SQL Server インスタンスに対して TCP/IP プロトコルが有効になっていることを確認してください。
TeamCity サーバー側 (MS SQL)
マイクロソフトダウンロードセンターから Microsoft JDBC ドライバー v12.6+(
sqljdbc_12.6.xパッケージ)をダウンロードします。ダウンロードしたパッケージを一時ディレクトリに解凍します。ダウンロードしたパッケージの
mssql-jdbc-<version>.jre8.jarを<TeamCity Data Directory>/lib/jdbcディレクトリにコピーします (存在する場合は削除します)。MS SQL 統合セキュリティ (Windows 認証) では、手順に従ってドライバーパッケージからsqljdbc_auth.dllをインストールする必要があります。TeamCity セットアップに進みます。
jTDS ドライバー
Unicode 文字の使用に関する既知の問題があるため、jTDSJDBC ドライバーの使用はお勧めしません。
ドライバーを使用する場合(jtds テキストは database.properties の connectionUrl に表示されます)、ネイティブドライバーを切り替えることを強くお勧めします。
データベースを含むサーバーバックアップを作成します。
上記のセクションで説明したように、サーバーを停止し、ネイティブ MicrosoftJDBC ドライバーを使用するようにサーバーを構成します。
データベースをバックアップから新しい MSSQL データベースに復元します。
サーバーを実行します。
データベース接続の構成
プロパティファイル
データベース接続設定は、 <TeamCity Data Directory> /config/database.properties ファイルに保存されます。このファイルは Java プロパティファイル(英語)です。このファイルを変更して、データベース接続に必要なプロパティを指定できます。
サポートされているすべてのデータベースには、データベース固有のプロパティを持つテンプレートファイルが <TeamCity Data Directory> /config ディレクトリにあります。ファイルは database.<database_type>.properties.dist 命名形式になっており、必要な設定の参照として使用できます。
TeamCity はデータベース接続プールに Apache DBCP を使用します。設定プロパティの詳細については、Apache Commons のドキュメント(英語)を参照してください。
環境変数
メインのデータベース接続設定は、TeamCity サーバーの環境で環境変数を設定することによって定義できます。環境変数は、database.properties ファイルのプロパティの代わりに (またはプロパティに加えて) 使用できます。
環境変数を使用してデータベース接続を構成すると、次のシナリオで役立ちます。
database.propertiesファイルを定義せずに TeamCity サーバーを開始します。代わりに
TEAMCITY_DB_PASSWORD環境変数を設定することで、database.propertiesファイル内のデータベースパスワードの公開を回避します。
変数 | 説明 |
|---|---|
| データベースの JDBC 接続文字列。例:
|
| データベースに接続するためのユーザー名 |
| データベースに接続するためのパスワード |
環境変数は、database.properties ファイル内の対応するプロパティよりも優先されることに注意してください。
TEAMCITY_DB_URLはconnectionUrlをオーバーライドしますTEAMCITY_DB_USERはconnectionProperties.userをオーバーライドしますTEAMCITY_DB_PASSWORDはconnectionProperties.passwordをオーバーライドします
関連ページ:
外部データベースへの移行
この記事では、TeamCity データをある型のデータベースから別の型のデータベースに移行するために必要な手順について説明します。TeamCity の最初の起動からの外部データベースの使用の詳細、および一般的な外部データベース情報とデータベース固有の構成手順については、この記事を参照してください。移行の最も一般的なケースは、デフォルトの内部データベースを使用して TeamCity を評価し、本番環境で使用するために TeamCity インストールを準備するために外部データベースに切り替える必要が...
TeamCity サーバーを起動
サーバーの起動:TeamCity がまたはディストリビューションを使用してインストールされている場合、ディレクトリにあるスクリプトによって起動および停止できます。スクリプトは、(同じコンソールで実行)、(新しい分離プロセスを開始してスクリプトを終了)、およびコマンドを受け入れます。TeamCity を再起動するには、を送信し、停止したらを送信します。(評価のみ)TeamCity サーバーと 1 つのデフォルトエージェントを同時に起動 / 停止するには、スクリプトを使用、例: を使用して、サーバー...
TeamCity データディレクトリ
TeamCity データディレクトリは、TeamCity サーバーが構成、ビルド結果、現在の操作ファイルを保存するために使用するファイルシステム上のディレクトリです。このディレクトリは、すべての構成設定の 1 次ストレージであり、TeamCity のインストールに不可欠なデータを保持します。ビルド履歴、ユーザーとそのデータ、その他のデータはデータベースに保存されます。ディレクトリとデータベースに保存されるデータの説明については、バックアップに関する注意事項を参照してください。このドキュメントや他...
MS SQL Server による TeamCity の設定
この記事では、TeamCity を MS SQL Server と統合する手順を説明します。クイックリファレンスについては、このセクションを参照してください。前提条件:MS SQL サーバー、MS SQL Server Management Studio、TeamCity サーバーをインストール、SQL サーバーの TCP/IP プロトコルを有効にする:SQL Server 構成マネージャーを開き、以下を実行します。SQL Server ネットワーク構成を展開し、MS SQL のプロトコルを...