Oracle B2Bでは、CPST_INST_CREATED_TIME
列に基づいて、Oracle B2Bインスタンス表をパーティション化できます。
パーティション化できる表を次に示します。
B2B_APP_MESSAGE
B2B_BUSINESS_MESSAGE
B2B_DATA_STORAGE
B2B_EXT_BUSINESS_MESSAGE
B2B_WIRE_MESSAGE
この項では、Oracle B2B表を正常にパーティション化するために必要な要件を示します。
レンジ・パーティションまたは時間隔パーティションを使用して表をパーティション化します。
Oracle B2Bのすべての表で同じ日付範囲が指定されていることを保証します。これは、パージが正しく機能するための前提条件です。
レンジ・パーティションを使用する場合、実行時エラーが発生しないように、デフォルト・パーティションを使用することをお薦めします。
表の再作成:
Oracle B2Bシステム・マテリアライズド・ビューにはOracle B2Bインスタンス表(B2B_BUSINESS_MESSAGE
、B2B_EXT_BUSINESS_MESSAGE
)に対する依存性があり、これらの表に対してマテリアライズド・ビュー・ログが作成されます。パーティションの作成中に、これらのマテリアライズド・ビュー・ログの再作成およびシステム・マテリアライズド・ビューの完全リフレッシュを実行する必要があります。
データベース表パーティション化の後、マテリアライズド・ビューB2B_SYSTEM_MV
はSTALEです。この状況は、マテリアライズド・ビューの依存性の1つに対する任意のDDL操作(DROP、ALTER...)によってマテリアライズド・ビューが無効化されるため、DBをパーティショニングした後に発生します。対応するマスター表(B2B_BUSINESS_MESSAGE, B2B_EXT_BUSINESS_MESSAGE
)がパーティショニングした後にFRESHであっても、このビューを更新する必要があります。
データベース表のパーティション化後、B2B索引を再作成する必要があります。再作成しないと、システムのスループットは大幅に悪化します。
アップグレード時:
パーティション化は、アプリケーション・インスタンスをOracle SOA Suiteの必要なバージョンにアップグレードした後にのみ実行することをお薦めします。これは、パーティション化の前に、Oracle SOA Suiteスキーマのアップグレードが完了済である必要があるからです。これにより、古いバージョンのランタイムからデータベースのCPST_INST_CREATED_TIME
列にNULL値が格納されることを回避します。
これらの表に既存データがあり、CPST_INST_CREATED_TIME
列にNULL値が格納されている場合、適切なパーティション化を実行するには、レコードを更新して非NULL値にする必要があります。
パーティション化に基づくパージをサポートするには、B2Bのインスタンス表をパーティション化する必要があります。
次の表をパーティション化する必要があります。
B2B_APP_MESSAGE
B2B_BUSINESS_MESSAGE
B2B_WIRE_MESSAGE
B2B_EXT_BUSINESS_MESSAGE
B2B_DATA_STORAGE
デフォルトでは、これらの表は参照制約を使用してスキーマで設定されます。DBAは、パーティションを設定する必要がある環境で、制約を無効にする必要があります。
これらの表は、表内のCPST_INST_CREATED_TIME列に基づいてパーティション化する必要があります。
DBAはレンジ・パーティションまたは時間隔パーティションを使用してパーティションを設定できます。
パーティションのレンジは、すべてのB2Bインスタンス表で同じです。
現在のパージでは、パーティション・ベースのパージが有効になるためには、すべてのB2B表がパーティション化されることが想定される、すべてまたはなし形式のパーティション・メカニズムがサポートされます。
既存の表からパーティション化された表へのデータの移行では、移行する必要があるデータ量に基づいて、適切な戦略を選択できます。採用される一般的な戦略は、次のとおりです。
Create Table As Select (CTAS)
CTAS文を使用して、必要なデータを既存の表からコピーすることによって、パーティション化された新しい表を作成します。
表を作成すると、DBAは新しい表の索引を作成し、その名前を元の表名に変更できます。
パーティションの交換
パーティションの交換により、既存の表とパーティション化された表の間でデータ・セグメントが交換され、データの移動が行われます。
注意:
以前のバージョンのB2Bメッセージでは(11.1.1.7リリース以前)、CPST_INST_CREATED_TIME
フィールドがnullの場合がありました(再発行が原因)。
これらのフィールドにB2B_BUSINESS_MESSAGE
表のCREATED_TIME
列の値を移入することによって、これらをクリーンアップできます。