• ベストアンサー

別サーバーへのデータの同期更新方法

k_o_r_o_c_h_a_nの回答

  • ベストアンサー
回答No.2

以下、判り難いので、プログラムが更新するサーバをa、追従したいサーバをbとして書きます。 手っ取り早いのは、以下のような更新トリガを使った方法じゃないかな。 (1)aに対し、bへのデータベースリンクを張る。 (2)aの各表に対し、更新トリガ(DBリンク上の表に対する更新を行うプロシジャ)を作る。 注意としては、サーバaの更新が起こると、更新トリガ分の負荷がかかることと、 トリガ内で行うサーバbへの更新でエラーが起こると、サーバaへの更新もエラーとなる。

evaag777
質問者

お礼

ご回答どうもありがとうございました。 参考にします。

関連するQ&A

  • データの更新方法について

    データを更新するときSQLで DeleteしてInsertする更新方法と Updateを行う更新方法とがあると思うのですが この使い分け、切り分けはどういう視点になるのでしょうか 私はDeleteしてInsertする方が簡単なので Delete + Insertをよく使っています。

  • 大量にデータを更新するテーブルの統計情報について

    大量にデータを更新するテーブルの統計情報の取得タイミングについてついて質問があります。 該当のテーブルはワークテーブルでテーブルの1/3程の大量データを毎回delete,insert,selectの順番で処理をおこなっています。 大量のデータを毎回更新しているのでselect文の際に統計情報が古いため実行計画が正しくなく処理が遅くなる可能性があるのでは無いかと心配しております。 統計情報は、取るべきでしょうか?取る場合は何時のタイミングで取るべきでしょうか? Oracle 9iを使用しています。 宜しくお願い致します。

  • 別のデータベースのデータを利用する方法

    Access2002を利用しています。 オラクルですでにできあがっているデータベースの、あるテーブルを利用したいのですが、日々データが更新されるので、インポートして使うのでは、間に合いません。といって、ど素人なので、難しいプログラムは組めません。 元のデータベースのデータには影響を与えないように、なおかつ更新されたデータを常に利用できるようにAccessにテーブルを引っ張ってくる、ど素人でも何とかなるうまい方法がないでしょうか? どうか教えてください。よろしくお願いいたします。

  • oracle接続(別サーバー)

    どなたか教えて下さい。 ASPで登録や更新系のプログラムをSQLServer(サーバー内)へ 行っています(ODBC)。 そこで、ある検索を他サーバーのoracleへ行いたいのですが、 どのようにしたらよいでしょうか? oracleのクライアントをサーバーにインストールして、 ODBC登録で接続?で大丈夫でしょうか??

  • ストアド。存在チェックをしてから登録したい。

    SQLServer2005環境です。 同じ構造のテーブルA、Bがあり、AのデータをBにコピーしたいと思っています。 Aのデータは最新のデータ、Bの中にあるのは古いデータなので、もしキーが かぶるレコードがあれば、Updateをかけ、なければInsertをするような仕組みに したいと思っています。 更に可能であれば、Aに存在しないデータがBにあった場合は、Deleteしたいです。 一度BをDeleteしてInsertすれば話が早いのですが、そうもいかず、UpdateとInsertを 交え、小出しに更新するような形にしたいのです。 2008であれば、Merge文という便利なものがあるのですが、2005では上のような 動作をストアドで実現するのは難しいでしょうか。 サンプルコードですとか、解説しているサイトなどがありましたら、教えていただけますと 大変助かります。 宜しくお願いします。

  • SQL Serverでのデータロードについて質問

    SQL Server初心者です。 CSVファイルのデータをテーブルにロードするにあたり、以下のような事をするにはどんな方法があるのでしょうか?  ケース1:CSVファイルのデータでテーブルを上書き  ケース2:主キーが一致するレコードがテーブル内に存在する       データはUPDATE,なければINSERT ケース1,2それぞれDB2でいうところのImportコマンドを使用した時のREPLACEモード及びINSERT_UPDATEモードのイメージです。 DB2のように簡単にはいかないものでしょうか。 よろしくお願いします。

  • SQL SERVER で大量データの削除

    delete from table1 where id = 1; delete from table1 where id = 2; delete from table1 where id = 3; もしくは、 delete from table1 where (id = 1) or (id = 2) or (id = 1) という具合のSQLを実行します。 条件は大体20万件程度です。 こちらを実行するとかなり遅いので、 なんとか一括で早く実行する方法はないものでしょうか? 今のところ、プログラムの都合上、プロシージャの中で行なってます。 PROCEDURE UPDATE(@DELSQL nvarchar(max)) EXEC (@DELSQL) @DELSQLに上記SQLが入ります。 大量のINSERTの時は、BULK INSERTのようなやり方があり、 回避できたのですが、困ってます。 どうかよろしくお願いします。

  • コミット前の更新データをチェックするには?

    UPDATE若しくはINSERTした結果のデータをチェックしてから、コミットするかロールバックするかを判断したいのですが、どうすればよいのでしょうか? Oracleを使用していてsqlplus上で実行してみるとうまくいくのですが、Javaで実行すると更新前のデータが取れます。 助けてください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • 別々のサーバ

    VB6.0で ORACLE9iでoo4oで接続しています。 サーバが2台あります。 SERVER1とSERVER2です。 SERVER1は保存するサーバ SERVER2はマスタが入っているサーバ CSVから取り込んだデータをSERVER2のテーブルに保存して、そのテーブルの3項目(フィールド)だけSERVER1の変換マスタを参照してSERVER2の変換する3項目(フィールド)をUPDATEするんですけど、一つのSQL文でSERVER1とSERVER2のテーブルを使ってかけるのでしょうか?

  • 複数条件でoracleデータ更新

    office2016 Oracle12C excelの A1にTEST C1にSERIAL01 F1にKOTEI1 のデータが入っていて、oracleのテーブルデータをexcelマクロで更新させようとしています。 oracle接続等のコマンドは省略してポイント部分のマクロだけ記載します。 (1) With cmd .CommandText = "UPDATE TABLE1  set KOMOKU1 = '" & ActiveSheet.Cells(1, 1) & "' WHERE KOMOKU3 = '" & ActiveSheet.Cells(1, 3) & "' " End With 上記(1)を実行すると、oracleのTABLE1のデータはSERIAL01に関して KOMOKU1の列がTESTに更新されます。 (2) With cmd .CommandText = "UPDATE TABLE1  set KOMOKU1 = '" & ActiveSheet.Cells(1, 1) & "' WHERE KOMOKU6 = '" & ActiveSheet.Cells(1, 6) & "'" End With 上記(2)を実行すると、oracleのTABLE1のデータはKOTEI1に関して KOMOKU1の列がTESTに更新されます。 (3) やりたい内容は、 KOMOKU3がSERIAL01 KOMOKU6がKOTEI1 のAND条件だった場合に、KOMOKU1を更新させたいので、 With cmd .CommandText = "UPDATE TABLE1  set KOMOKU1 = '" & ActiveSheet.Cells(1, 1) & "' WHERE KOMOKU3 = '" & ActiveSheet.Cells(1, 3) & "' AND KOMOKU6 = '" & ActiveSheet.Cells(1, 6) & "'" End With の様なマクロを実行するのですが、対象のKOMOKU1がデータ更新されません。 何が悪いのか修正いただきたく。