TimesTenデータベースのデフラグ
表がALTER TABLE ADD
SQL文で変更されてから、2番目の表パーティションが作成されます。デフラグメンテーションにより、2番目の表パーティションを削除し、すべての表の列を含む1つの表パーティションを作成できます。2番目の表パーティションが作成された場合、領域の利用およびパフォーマンスを向上するために、データベースを定期的にデフラグすることをお薦めします。
次のプロシージャは、様々なタイプのデータベース断片化に対応します。
TimesTen Scaleoutデータベースのオフライン・デフラグメンテーション
TimesTen Scaleoutデータベースは、エクスポート処理およびインポート処理の一部としてデフラグされます。
そのため、TimesTen Scaleoutデータベースをデフラグするには、ttGridAdmin
dbExport
コマンドおよびdbImport
コマンドを使用します。『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』のデータベースのエクスポートとインポートを参照してください。
TimesTen Classicデータベースのオフライン・デフラグメンテーション
TimesTen Classicデータベースをデフラグするには、ttMigrate
ユーティリティを使用します。
このとき:
-
すべてのユーザー、キャッシュ・グループおよびアクティブ・スタンバイ・ペアは
ttdb
にリストアされています。 -
キャッシュ・グループは、
AUTOREFRESH STATE = OFF
状態にあります。 -
キャッシュ・エージェントおよびレプリケーション・エージェントは実行されていません。
ALTER TABLE ADD
SQL文を使用して表に列を追加するときに表パーティションを追加できます。Oracle TimesTen In-Memory Database SQLリファレンスのALTER TABLEのノートを参照してください。パフォーマンス上の考慮事項については、ALTER TABLEの回避を参照してください。
Oracle TimesTen In-Memory DatabaseリファレンスのttMigrateを参照してください。
アクティブ・スタンバイ・ペアのレプリケーション・スキーム内のTimesTen Classicデータベースのオンライン・デフラグメンテーション
(最小の総サービス・ダウンタイムで) TimesTen Classicデータベースをデフラグするには、ttMigrate -relaxedUpgrade
およびttRepAdmin -duplicate
ユーティリティを組み合せて使用します。これらのデータベースは、TABLE DEFINITION CHECKING
がRELAXED
に設定されているレプリケーション・スキームに関係しています。また、ttMigrate -relaxedUpgrade
オプションによってパーティションを圧縮します。
ノート:
TimesTen Classicデータベースでアクティブ・スタンバイ・ペアのレプリケーション・スキームが使用されている場合に、アクティブ・スタンバイ・ペアのレプリケーション・スキームにいずれのキャッシュ・グループも含まれていないか、またはREADONLY
キャッシュ・グループのみが含まれている場合は、これらのデータベースのみをデフラグできます。
次の項では、アクティブ・スタンバイ・ペアのレプリケーション・スキームに関係しているTimesTen Classicデータベースをデフラグする方法について説明します。
この項の例では、アクティブ・データベースがttdb1
でスタンバイ・データベースがttdb2
のアクティブ・スタンバイ・ペア・レプリケーション・スキームによるオンライン・デフラグメンテーションの実行方法を示しています。
ノート:
各項で示す例は、ユーザーがレプリケーション・スキームの構成および管理に精通していることを前提としています。『Oracle TimesTen In-Memory Databaseレプリケーション・ガイド』のはじめにを参照してください。
スタンバイ・データベースの移行および再構築
この項では、スタンバイTimesTenデータベースに対するレプリケーションを停止しそのスタンバイ・データベースのコピーを保存してからそのスタンバイ・データベースをデフラグする方法を示します。
ノート:
スタンバイ・データベースをデフラグしている間、アプリケーション処理をアクティブ・データベースで続行できます。
スタンバイ・データベースのコピーを保存するには、次の手順を実行します。
スタンバイ・データベース(ttdb2
)はデフラグされ、アクティブ・データベースとスタンバイ・データベースの両方は機能しています。
アクティブ・ロールとスタンバイ・ロールの入替え
アクティブ・データベースにデータベース・デフラグメンテーションを実行するには、アクティブ・データベースとスタンバイ・データベースのロールを入れ替えます。
アクティブ(ttdb1
)はスタンバイ・データベースになります。元のスタンバイ(ttdb2
)はアクティブ・データベースになります。
このデータベースがアクティブ・スタンバイ・ペアのスタンバイ・データベースとして機能するようになります。
アクティブ・スタンバイ・ペアではないレプリケーション・スキーム内のTimesTen Classicデータベースのオンライン・デフラグメンテーション
(最小の総サービス・ダウンタイムで) TimesTen Classicデータベースをデフラグするには、ttMigrate -relaxedUpgrade
およびttRepAdmin -duplicate
ユーティリティを組み合せて使用します。これらのデータベースは、TABLE DEFINITION CHECKING
がRELAXED
に設定されているレプリケーション・スキームに関係しています。また、ttMigrate -relaxedUpgrade
オプションによってパーティションを圧縮します。
ノート:
各項で示す例は、ユーザーがレプリケーション・スキームの構成および管理に精通していることを前提としています。詳細は、『Oracle TimesTen In-Memory Databaseレプリケーション・ガイド』のはじめにを参照してください。
次の項では、アクティブ・スタンバイ・ペアではないレプリケーション・スキームに関係しているTimesTen Classicデータベースをデフラグする方法について説明します。
ノート:
次の項では、双方向レプリケーション・スキームに関係しているデータベースをデフラグする方法について説明します。双方向レプリケーション・スキームでは、各データベースはマスターおよびサブスクライバの両方になります。
この項の例では、2つのTimesTenデータベース(それぞれttdb1
およびttdb2
という名前)で双方向および一方向レプリケーションによるオンライン・デフラグメンテーションを実行する方法を示します。一方向レプリケーションの例では、ttdb1
はマスターを表し、ttdb2
はサブスクライバを表します。
データベースの移行および再構築
この手順の第1ステップは、TimesTen Classicデータベースの1つでレプリケーションを停止し、このデータベースをデフラグすることです。
ノート:
データベースの1つをデフラグしている間、他のデータベースではアプリケーション処理を続行できます。
データベースのコピーを保存するには、次の手順を実行します。
ttdb2
TimesTenデータベースがデフラグされました。
レプリケーション・スキームの変更
ttdb1
データベースにデータベース・デフラグメンテーションを実行するには、次の操作を実行します。
一方向レプリケーション・スキームを変更する場合、ttdb2
データベースは一方向スキームでマスター・データベースとして稼働しており、ttdb1
データベースは一方向レプリケーション・スキームでサブスクライバ・データベースとして稼働しています。