2012-04-10 16 views
1

次のシナリオを想定します。 このデータベースには多数のデータを含むマスターデータベースがあります。私はDataOwnersを呼び出すためのキーテーブルを持っていますこの例では、DataOwnersテーブルには4つのレコードがあり、データベース内の他の各テーブルの各レコードは、DataOwnersのレコードに直接的または間接的に属し、所属することによって、外部キーでリンクされます。 私のマスタデータベースと全く同じ構造の他の2つのスレーブデータベースもありますが、マスタデータベースからのレプリケーションによってのみ更新されますが、SlaveDatabase1にはDataOwner 2のレコードしかなく、SlaveDatabase2にはDataOwners 1と3のレコードしかないDataOwner 1,2,3、および4のレコードを持っています。Oracleデータベースで選択的レコード複製を実行する最良の方法

この種の選択的レコード複製を行うためのツールはありますか? レプリケーション方法を改善する方法はありますか?これは:

  • 各テーブルにレコードの変更を挿入するトリガーを追加するレプリケーション・テーブルのグループに
  • 選択スレーブに複製テーブルのコマンドを実行

答えて

0

Oracle Golden Gateソフトウェアは、これらのすべてのタスクを実行できます。 Insert/Update/Deleteは、マスタdbと同じ順序であるため、外部キーやその他の制約の問題を回避できます。

MasterDatabase抽出物はトレイルファイルを生成し、その後、DB 1,2,3にデータを分割し、4

また、複数の方法の複製を行うことができ、すなわち、DB 1がバックマスタDBにデータを送信します。

ゴールデンゲートのほかに、トリガーがあなたの別のオプションかもしれません。しかし、それはいくつかのプログラミングが必要です。

2

最も簡単なオプションは次のようになりさまざまなスレーブ・データベースにマテリアライズド・ビューを定義して、必要なデータだけをレプリケートします。スレーブデータベース2は、ビュー

CREATE MATERIALIZED VIEW a 
    <<refresh criteria>> 
AS 
SELECT a.* 
    FROM [email protected]_master a, 
     [email protected]_master dm 
WHERE a.dataOwnerID = dm.dataOwnerID 
    AND dm.some_column = <<some criteria that selects DataOwner1 & 3>> 
を非常によく似たマテリアライズドいながらしたがって、たとえば、masterデータベース内のテーブル Aがある場合は、スレーブデータベース1に、あなたは、マテリアライズド・ビュー

CREATE MATERIALIZED VIEW a 
    <<refresh criteria>> 
AS 
SELECT a.* 
    FROM [email protected]_master a, 
     [email protected]_master dm 
WHERE a.dataOwnerID = dm.dataOwnerID 
    AND dm.some_column = <<some criteria that selects DataOwner2>> 

を作成したいです

もちろん、dataOwnerIDをハードコードすることができれば、単純化して参加を避けることができます。私は、DataOwnersテーブルには、特定の所有者をどのスレーブにレプリケートすべきかを識別する列があると推測しています。

増分変更のみをレプリケートすると仮定すると、マスター・データベースの基本表にいくつかのマテリアライズド・ビュー・ログを作成する必要があります。また、スレーブ・データベースにrefresh groupsを構成して、すべてのマテリアライズド・ビューが同時にリフレッシュされ、相互にトランザクション的に一貫するようにすることをお勧めします。

+1

+1これは基本的に私が書き上げようとしていた答えですが、最初にそこにいます:) – APC

+0

はいジャスティンにはスレーブテーブルとSlaves_DataOwnersテーブルがありますが、あまりにも悪いです。マテリアライズドビューを使用できませんあなたが言ったように。 –

+0

@Daniel - マテリアライズドビューを使用できないのはなぜですか?あなたが言及していない追加の制約がある場合、それはStreamsやGoldenGateのような他のアプローチを排除する可能性があるため、間違いなく参考になるでしょう。 –

関連する問題