2012-01-11 33 views
1

同じ2つのスキーマを持つOracleデータベースがあります。 1つは本質的に「オン」スキーマであり、もう1つは「オフ」スキーマです。オフスキーマのデータを更新してから、運用サーバーが使用するエイリアスの背後にあるスキーマを切り替えます。すばらしい解決策ではありませんが、それは私が仕事をしてくれたものです。同じ2つのデータベーススキーマを同時に更新する

私の問題は、現在、エイリアスを更新しているデータベースにデータをストリーミングする(別に私に渡す)別のアプリケーションがあることです。時間。つまり、スキーマが切り替わると、この別のアプリケーションからのすべてのデータが本番から消えます(スキーマは現在「オフ」スキーマです)。

このアプリケーションでは、データベースを更新するためにHibernate 3.3.2を使用しています。ミックスにはSpring 3.0.6もありますが、データベースの更新はありません。最後に、Java 1.6を実行しています。

誰もが両方の二つの別々の接続プールをロードするために春のJDBCを使用して全体のDAO層を書き換える必要としない、同時に及び「オフ」のスキーマ「上の」更新の方向に私を指すことができますか?私はこれを行うために休止状態になることについて何かを見つけることができませんでした。前もって感謝します!

+0

お待ちください、あなたはデータベース間で喧嘩していますか?どうして?そして、どのくらいの頻度で?これは他の何よりも問題のあるものとして私を襲う... –

+0

これは私が正確に手渡された時の私の質問だった。データロードは膨大で、複数の時間を要し、本番環境に公開する前にテストする必要があります。したがって、「オフ」スキーマ(約4-8時間)に負荷をかけてテストし、データベース接続エイリアスを「オフ」スキーマを「オン」スキーマにしてプロダクションに生き生きとさせる。このストリーミングデータは、 "大負荷"モデルに取って代わるものです。 – ogradyjd

+0

はい、非常に問題があります。私を信頼してください - あなたは分かりません。しかし、あなたはあなたが持っているものを使って作業します(上位の人にそれを変更するためにお金を払うことを納得させるまで)。 – ogradyjd

答えて

0

次の2つの別々のデータベースこうして、ビューのアプリケーションのポイントから特にを更新するべきではありません。知っておくべきことは、データがあるかどうかであり、個の別々のデータベースを混乱させる必要はありません。

率直に言って、これはあなたがETLツールを購入する必要があるかもしれないように聞こえます。あなたが得ることができない場合でも、それが「オフ」1(十分速く実用的であるために)、あなたはそう(同期」からミラーの変更を2を維持するためにそれを使用することができるようになりますから、スキーマ「on」に更新します「オン」から「オフ」)。

+0

同じページにいることを確認するために、データは第三者からのもので、オフスキーマに読み込まれます。 offスキーマでテストされたら、それを "on"に切り替えてから、新しく "off"スキーマに同じロードを実行します。次に、新しいデータを「オフ」スキーマにロードし始めます。洗浄、リンス、繰り返し。新しいアーキテクチャツールを使用することは、時間と現金の制約のために、この場合私を助けることはありません。私は、新しいフィードの両方のスキーマに、好ましくはHibernateの両方のスキーマに挿入をコピーするための簡単な方法が必要です。これは、渡されたコードで使用されているものです。 – ogradyjd

0

HA-JDBCたちはしばらくの間調査複製JDBCドライバです。自動的にすべての挿入と更新を複製し、すべての選択を配布します。他のデータベース固有のマスター/スレーブソリューションもあります。一方

、私は4-8時間の手続きのためにこれをやってお勧めしません。前にデータベースをロックし、1つのデータベースを更新してからコピーをバックアップ復元してから、再度ロックを解除してください。

関連する問題