TimesTenの記憶域のプロビジョニング
記憶域のプロビジョニングとは、サーバーの記憶域領域を割り当てるプロセスです。
-
TimesTenインストールの記憶域の割当て: TimesTenインストールには、すべてのソフトウェアが含まれています。
各TimesTenインストールに1.5 GB以上を割り当てることを計画します。同じシステムで複数のインスタンスを実行する場合、これらすべてで1つのTimesTenインストールを共有できます。ソフトウェア・バージョンのアップグレードを組み込むには、その領域の量と追加の領域をプロビジョニングする必要があります。
-
TimesTenインスタンスの記憶域の割当て: 各TimesTenインスタンスは、独自のデーモン・プロセスのセット(および関連するデーモン・ログ・ファイル)を実行します。
各TimesTenインスタンスに256 MB以上を割り当てることを計画します。
-
チェックポイント・ファイル: 各TimesTenデータベースには、2つのチェックポイント・ファイル用のディスク領域が必要です。各ファイルは
DataStore
属性で指定されたディレクトリに格納されます。各チェックポイント・ファイルはファイル・システム上で大きくなるので、サイズが小さくなることはありません。そのため、各チェックポイント・ファイルのサイズは、データベースが永続メモリー領域でアクセスしたことのあるデータベースの最大サイズに等しくなることがあります。そのため、各チェックポイント・ファイルが永続メモリーに定義された領域の量(PermSize
接続属性で定義)とほぼ同じになると仮定して計画する必要があります。データベースの永続領域の合計を2倍して30%を加えた領域を割り当てることを計画します。
ノート:
TimesTen Classicでは、
Preallocate
接続属性を1
に設定すると、TimesTenはチェックポイント・ファイルへの接続時にファイル・システム領域を保持できます。これは大規模なデータベースで役立ちます。これにより、データがデータベースに追加されるときに、ファイル・システムに常にチェックポイント・ファイル用の領域が確保されます。詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のPreallocateを参照してください。 -
トランザクション・ログ・ファイル: トランザクション・ログ・ファイルは、見積もることが最も難しい領域要件です。トランザクション・ログ・ファイルの領域のプロビジョニングを計画する方法については、「トランザクション・ログ・ファイルの記憶域のプロビジョニング」を参照してください。
-
TimesTen Scaleoutのリポジトリのバックアップ・ファイルまたはエクスポート・ファイルに対応するローカル領域。
SCPがアタッチされたリポジトリを使用する場合、すべての操作は、最初にターゲット・インスタンスによってローカルに保存されてから、リポジトリにコピーされます。ターゲット・データ・インスタンスにより、最初にバックアップ(またはエクスポート)ファイルが$
timesten_home
/grid/admin/temp
ディレクトリに格納されます。最終的にリポジトリに格納されるバックアップ・ファイルまたはエクスポート・ファイルの最大サイズに対応できるように、このディレクトリに十分な記憶域をプロビジョニングする必要があります。PermSize
にレプリカ・セットの数を乗算した領域を割り当てることを計画します。 -
TimesTen Scaleoutでのリポジトリの記憶域のプロビジョニング。
1つのバックアップ・ファイルには、各レプリカ・セットの1つの要素が含まれます。そのため、データベース内の表のすべての行を含めるために必要なバックアップ・ファイルの数は、データベース内のレプリカ・セットの数に対応します。
ノート:
ハッシュ分散表の場合、各バックアップ・ファイルには表の行の一部のみが含まれます。ハッシュ分散表の行は、レプリカ・セットの数に分散されます。
複製された表の場合、各バックアップ・ファイルには各表のすべての行が含まれます。
PermSize
にレプリカ・セットの数を乗算した領域を割り当てることを計画します。
トランザクション・ログ・ファイルの記憶域のプロビジョニング
トランザクション・ログ・ファイルに必要なファイル・システム領域の割当てを見積もるプロセスについて説明します
ノート:
テスト環境内では、より正確なトランザクション・ログのボリュームの見積りを生成できます。
トランザクション・ログ・ファイルに必要なファイル・システム領域の割当てを見積もる場合は、次のことを考慮してください。
-
TimesTenでは、いずれかのチェックポイント・ファイルからのリカバリをサポートするのに十分なトランザクション・ログ・ファイルが保持されます。トランザクション・ログ・ファイルが蓄積されるかどうかは、バックグラウンドのチェックポイント処理の設定(
CkptLogVolume
およびCkptFrequency
初期接続属性で定義)によって決まります。さらに、TimesTenでは、3つの追加のトランザクション・ログ・ファイルの領域を事前に割り当てます。 -
TimesTenではバックグラウンド処理にファジー・チェックポイント処理が使用されます。トランザクション・ログ・ファイルは、ファジー・チェックポイント処理中に蓄積される可能性があります。チェックポイントの作成にかかる時間は、
PermSize
接続属性に割り当てられた値を使用して計算されます。 -
トランザクション・ログ・ファイルは、増分バックアップで蓄積されることがあります。
-
TimesTen Scaleoutでは、各レプリカ・セット内の要素ごとに、それ固有のトランザクション・ログ・ファイルがあり、それにトランザクション・ログ・レコードが格納されます。トランザクションによってレプリカ・セット内のデータが変更された場合、通常はレプリカ・セットの両方の要素に変更が記録されます。ただし、レプリカ・セット内のいずれかの要素が停止している場合、アクティブな要素のトランザクション・ログ・ファイルにのみ変更が記録されます。レプリカ・セット内の1つの要素が非常に長い時間停止している場合、トランザクション・ログ・ファイルが蓄積される可能性があります。
-
TimesTen Classicでは、トランザクション・ログ・ファイルは、一時的なレプリケーション停止の間に、またはサブスクライバが停止している場合に、マスター上に蓄積されることがあります。
ノート:
CREATE REPLICATION
文およびALTER REPLICATION
文のFAILTHRESHOLD
句を使用して、保持するトランザクション・ログ・ファイルの数を制限できます。
これらの接続属性の詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のCkptLogVolume、CkptFrequencyおよびPermSizeを参照してください。これらのSQL文の詳細は、『Oracle TimesTen In-Memory Database SQLリファレンス』のCREATE REPLICATIONおよびALTER REPLICATIONを参照してください。
トランザクション・ログのボリュームの見積りは、ピーク更新トランザクション率、およびデータベースを変更する各トランザクションの平均複雑度によって異なります。
次の点を考慮してください。
-
Bは、トランザクション当たりのトランザクション・ログのボリュームをバイト単位で表します。
-
Cは、更新される列の数を表します。最小トランザクション更新(1つの数値列の更新)では、400バイトのトランザクション・ログ・データが生成されます。追加の数値列を更新するたびに、さらに250バイトが生成されます。
-
Vは、書込みトランザクションごとに、挿入または更新される大きいデータの平均サイズを表します(
CHAR
、VARCHAR2
、BINARY
、VARBINARY
またはLOB
の型の列)。
各トランザクションのトランザクション・ログのボリュームを見積もるには、次の式を使用します。
B = 400 + ((C-1) * 250) + V
次のように、最初の列は後続のすべての列より150バイトのみ大きいことに注意してください。
B = (C * 250) + (400-250) + V
これを簡単にすると次のようになります。
B =(C * 250) + 150 + V
トランザクション・ログの推定ボリューム(B)に予想されるピーク・トランザクション率を乗算して、予想されるピーク・トランザクション・ログ率を計算します。
説明:
-
L = トランザクション・ログ・ファイルにプロビジョニングする合計記憶域領域(バイト単位)。
-
C = 書込みトランザクションごとに挿入または更新される列の平均数。
-
V = 書込みトランザクションごとに挿入または更新される大きいデータの平均バイト(
CHAR
、VARCHAR2
、BINARY
またはVARBINARY
の列)。 -
S = 必要なトランザクション・ログの保存時間(秒)。
-
T = S秒間隔の、平均の1秒当たりのピーク・トランザクション率。
-
f = 挿入、更新または削除処理を含むトランザクションの割合。
-
最後に、不測の事態に備えて、推定ファイル・システム領域をさらに30%増やします。
これらのすべての係数を考慮し、次の式に従って、プロビジョニングされるトランザクション・ログ・ファイル領域をバイト単位で見積もります。
L = ((C * 250) + 150 + V) * S * T * f * 1.3
たとえば、ワークロードは35%の更新トランザクションで構成されています。各トランザクションは4つの列を更新します。これには2つの文字列が含まれ、それぞれ平均30バイトが更新されます。ワークロードは1秒当たり100万トランザクションで実行され、1時間分のトランザクションを格納するのに十分なトランザクション・ログ領域が必要です。
-
C = 4列
-
V = 30
-
S = 3600
-
T = 1,000,000
-
f = 35% = 0.35
したがって、記憶域のプロビジョニングのワークロードには次が必要であると見積もられます。
L = ((4 * 250) + 150 + 30) * 3,600 * 1,000,000 * 0.35 * 1.3 = 1.9 TB
したがって、トランザクション・ログ・ファイルのファイル・システム領域として1.9 TBをプロビジョニングします。