- ベストアンサー
Oracleのバックアップについて
Oracleのバックアップについてお教えください。 現在サーバとバックアップサーバを用意して、VBのアプリケーションがサーバのDBを更新したら、リアルタイムでバックアップサーバのDBを更新するという仕組みを作ろうと考えています。 もちろん、サーバとバックアップサーバには両方同じ環境を用意しようと思います。 環境は、サーバ、バックアップサーバとも、 Windows2000Server(sp2) Oracle8.1.7 です。 伺いたいのは以下の4点です。 1.リアルタイムにバックアップサーバのDBを更新することは可能でしょうか? 2.もしできるとするならば、それはOracleの設定でしょうか?それともサーバ(Windows2000)の設定でしょうか? 3.もしOracleの設定でしたら、それは標準のOracleWorkGroupServerで実現できるのでしょうか? 4.バックアップツールにARCserve2000を使用する予定です(Backup Agent for Oracle Japaneseは使用しない予定です)。もしかしてARCserveで実現できますか? すみません。サーバの管理は初めてなので。 Oracleのマニュアルのどこを見たらいいかも分からない状況です。 環境等補足するところがございましたらその旨をお書きください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No.1の返答についてのコメントです。 >どうもEnterpriseEditionは高価なので、WorkGrouopEditionでアプリケー >ション(VB)による対応を考えています。 WorkGroupを使用する場合、Oracleのトリガーでバックアップテーブルへの 書き込みを実行するやり方の方がメジャーのように思います。 その場合、OracleのPL/SQLでバックアップテーブルへの更新プログラムを記述 します。 最もプログラムを書くのは私ではなくMagoichiさんですので、PL/SQLを 採用するかどうかは、そちらで判断する事柄ですが...。 >VBからサーバにDBを更新する際、同時に、バックアップサーバへ更新すると >いう仕組みをVB内に作ってしまえば大丈夫のような気がするのですが。 >これだと厳密な意味でのレプリケーションとはなりませんが、常に同じ状態が >保たれると思います。 ロジック的にはそれでOKですが、VBプログラムの更新時の負荷が倍になりますよ。 Oracleのトリガーで処理をすれば、トリガーはOracleサーバ上で実行されるの で、VBプログラムの負荷はバックアップを取らない時と変わりません。 それでトリガーを推奨した次第です。
その他の回答 (2)
- xruz
- ベストアンサー率50% (72/143)
レプリケーションするときはレスポンスの低下とN/Wのトラフィック量増加に注意してください。 「Agent for Oracle」はOracleが稼動中でも整合性を保ってSaveしてくれますがリストアしないとアクセスできません。
お礼
xruzさん、ご回答どうもありがとうございます。 そうですね。只でさえDBの列数が多く、大量のトラフィックが流れるので、アプリケーション全体のレスポンスをチューニングする必要に迫られそうです。Oracleと、VB両方考えています。 ARCserveの方はとりあえず当初の予定通り、Agent for Oracleを購入しない予定で進みます。 またチューニング等で伺うこともあるかもしれませんが、その際もよろしくお願いいたします。 未だ質問は締め切らないで起きますので、何かお気づきの点がございましたらお知らせください。
- cse_ri
- ベストアンサー率29% (74/253)
Oracleでリアルタイムのバックアップサーバへのバックアップを実行したい場合、 レプリケーションの機能を使用します。 レプリケーションを用いる場合ですが、 1.リアルタイム更新のバックアップは可。 2.Oracleの設定 3.WorkGroup不可。Enterpriseで対応。 4.ARCserveは不要です。別の用途で使用してください。 という回答になります。 Oracleのレプリケーションの詳細については、「概要 Vol.2」マニュアルを 先ず読んでみてください。
お礼
cse_riさん、早速のご回答どうもありがとうございます。 非常に分かりやすかったです。 ただ今EnterpriseEditonがいくら位を調べています。 Webで価格を探そうとしてもなかなか見つからないものですね。 早速マニュアルの概要Vol.2を見てみます。 ・・・手元のPDFには「J00928_9_8i概要.pdf」しかなかったのですが、こちらにレプリケーションのことが書いてあったので基礎知識を仕入れておきます。 ありがとうございました。 もうちょっと伺いたいこととか、他の方法を試す可能性もございますので、未だ質問は締め切らないでおきます。何かお気づきの点がございましたらよろしくお願いいたします。
補足
どうもEnterpriseEditionは高価なので、WorkGrouopEditionでアプリケーション(VB)による対応を考えています。 VBからサーバにDBを更新する際、同時に、バックアップサーバへ更新するという仕組みをVB内に作ってしまえば大丈夫のような気がするのですが。 これだと厳密な意味でのレプリケーションとはなりませんが、常に同じ状態が保たれると思います。 具体的には、サーバ上のDBをCommitTransする際、バックアップサーバ上のDBをCommitTransする方法です。それぞれ別OraSessionを使用すればできそうです。 もちろん、DBサーバ、バックアップサーバ共にライセンスは購入する予定です。 技術的に、若しくはライセンス的に問題があるようでしたらご回答を頂きたいです。 よろしくお願いいたします。
お礼
cse_ridさん、重ねてのご回答本当にありがとうございます。 なるほど・・・。トリガーを使用してですね?ん?トリガーって別のサーバーの表に対して更新かけられたんでしたっけ?すみません。無知なもので・・・。 しかし、トリガーでできるならこれに越したことは無いですね。ご回答どうもありがとうございます!