• ベストアンサー

バージョン違いのデータベースリンク、トリガーについて

Oracle9がインストールされた旧サーバーと Oracle10がインストールされた新サーバーがあるとします。 Oracle9の方でデータが更新された時に、Oracle10の同期を取る為に Oracle9に対して、データベースリンクとトリガーを 作成しようと思うのですが、 データベースリンクやトリガーって オラクルバージョン違いでも可能なのでしょうか?

  • Oracle
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.2

リアルタイムでの同期が必要なのでしょうか? データベースリンク経由のトリガーの場合、ネットワーク接続が障害になってトリガーが実行できない場合には、トリガーの起動元のトランザクションも失敗しますが、それでもいいのでしょうか? つまり、利用者はトリガーのことを知らないとして、裏にあるトリガーが原因でトランザクションがエラーになります。 リカバリなどが面倒なことになりますけど。 同期の遅れ許容時間がある程度あるなら、普通はマテリアライズドビューで複製を作成します。

evaag777
質問者

お礼

ご回答ありがとうございました。 尚、現在別の方法で検討中で、リンクやトリガーは利用しない 可能性が高いです。

その他の回答 (1)

回答No.1

問題になるのは接続互換性ですが、以前はオラクルのサイトでバージョン間の接続互換性を 紹介していたのですが、サイトのリニューアル以後、残念ながら見失いました。 9iと10gであれば、基本的に問題はないと思いますよ。

evaag777
質問者

お礼

ご回答ありがとうございました。

関連するQ&A

  • データベースの移行方法

    質問させていただきます。 サーバの変更に伴い、データベースをサーバ(A)からサーバ(B)に移行し、サーバ(A)とサーバ(B)を全く同じして、クライアントがこれまで通りデータベースを利用できるようにしたいと考えています。 新たに購入したサーバ(B)に社内にあったマニュアルを元にしてOracle9iをインストールし、DBの作成したところまで進めているのですが、その後のデータの移行がよく分かりません。expやimpコマンドを使って行うとできるらしいのですが、よく分かっていません。 社内のマニュアルには新たにDBを作成する方法は書いてあるのですが、データの移行については書いておらず、困っています。 私が全くOracleについて知らないので、質問内容が分かりずらいとおもいますが、回答いただけるとありがたいです。 ●環境 サーバ(A)   OS:windows server 2000 oracleのバージョン:oracle9i Database (9.2.0.1.0) サーバ(B)   OS:windows server 2003 oracleのバージョン:oracle9i Database (9.2.0.1.0) OSの違い以外は社内マニュアルを元にして同じ設定にしてあります。 よろしくお願いします。

  • Oracleのトリガーについて

    Oracleのトリガーについて質問です。 旧システムから新システムへデータ移行を行おうとしているのですが、 新システムではNEWテーブル(仮名)が新規で追加されています。 データ移行の方法として、旧システムのダンプファイルをエクスポートし、 新ステムにユーザを再作成後インポートしました。 その後、あらかじめ新システムでNEWテーブルのみテーブル指定のエク スポートを行っていたダンプファイルより、追加でインポートを行いました。 これでデータ移行完了と思っていたのですが、NEWテーブルのデータはトリガー により生成されるらしいのですが、どのタイミングで生成されるのでしょうか? データ移行完了時はデータ0件です。 NEWテーブルをインポートする順番が逆なのでしょうか? それともインポートではトリガーは起動しないのでしょうか? または、トリガーの仕組みが消えている(?)のでしょうか? (納入先に行かないと確認できない状態なので実際のデータベースが確認できません…) Oracleはあまり詳しくないため、わかりづらい質問かもしれませんが よろしくおねがいします。 【環境】 Oracle11g R2 Windows2008Server

  • データベースリンク

    RedHatLinux Oracle9i Windows2000 Oracle8.0.6 という二つのDBがいます。 Oracle9iからCREATE DATABASE LINKをつかって、 Oracle8を参照します。 CREATE DATABASE LINK XXXX_DBLINK CONNECT TO aaaaa IDENTIFIED BY bbbbb USING 'XXXX' として、データベースリンクは作成することができました。 しかし、 select * from test@XXXX_DBLINK とすると、 ORA-12154: TNS: サービス名を解決できませんでした。と なってしまいます。 なにがわるいのでしょうか? よろしくお願いいたします。

  • Oracleへのリンクサーバー設定について

    お世話になります。 下記環境におきまして、SQL ServerよりOracleへリンクサーバーを作成しようとしたところ、 「リンクサーバー"XXX"のOLE DB プロバイダ"MSDAORA"のデータソースオブジェクトを初期化できません。 リンクサーバー"XXX"のOLE DB プロバイダ"MSDAORA"から、メッセージ"Oracle"クライアントと ネットワークコンポーネントが見つかりません。これらのコンポーネントはOracle Corporationから提供され、 Oracle Version 7.3.3(またはそれ以降)のクライアント ソフトウェアの一部としてインストールされます。 プロバイダは、これらのコンポーネントがインストールされるまで機能しません。"が返されました。 (Microsoft SQL Server,エラー:7303)」 となり、作成に失敗してしまいます。 SQL Serverには10gのOracleクライアントをインストールしてあるのですが、原因がわかりません。 どなたか、同じ原因を経験され、解決された方はいらっしゃいますか。 もし、お分かりでしたら、ご教授頂きたいのですが。 よろしくお願いいたします。 尚、SQL Serverは運用の関係上、Oracleクライアントインストール後、再起動は行っておりません。 環境 OS:Windows2003 DB:SQL Server 2005 Oracle:10g

  • データベースリンクについて

    Oracle8.1.7のデータベースリンクについて質問があります。 Createしたデータベースリンクを、DBA Studioでテストすると、「データベースリンクはアクティブではありません。」と言われます。 Create後に何かアクティブにするコマンド等があるのでしょうか? 下記に、Createしたコマンドを記述します。 CREATE DATABASE LINK データベースリンク名 CONNECT TO 指定ユーザ IDENTIFIED BY パスワード USING '参照サーバ';

  • AccessでOracleのテーブルをリンクし、Access側では読み取り専用にしたい

    社内にOracleデータベースでのシステムが立ち上がっているのですが、管理帳票の出力用に、OracleのデータをAccessで読み込みたいと思っています。 テーブルのリンクそのものは知っており、成功しているのですが、Oracleデータベースのデータを壊さないようにするため、このリンクテーブルを読み取り専用にしたいと思っています。どのようにすれば良いでしょうか。 なお、Oracle側で読み取り専用ユーザを作成して、そのユーザでリンクすれば良いことは理解していますが、それは最後の手段にしたいと思っています。別の方法でうまくできないでしょうか。

  • Oracle10gのデータベースの移行について

    Oracle10gのデータベースの移行について質問です。 Oracle10g が稼動しているサーバ機があります。 老朽化の為、新しいハードウェアへ入れ替える事になりました。 OSは、入れ替え前も入れ替え後もWindows Server 2003です。  DB: Oracle10g → Oracle10g  OS: Windows Server 2003 → Windows Server 2003 現行のサーバ上では4つのインスタンスが稼動しています。 新しいサーバ上に、同じ構成でそのまま移行する方法を検討していますが、下記のような方法で大丈夫なものでしょうか? (1)新しいサーバ上にOracle10gを初期データベースなしでインストールする (2)新しいサーバ上で新規のOracleインスタンスを4つ作成する (ORADIMツールを使用) (3)現行のサーバ上の各インスタンス・Oracle関連サービスを停止し、オフラインでデータベース関連のファイルのバックアップを取得する (4)現行のサーバから、新しいサーバへ、オフラインで取得したバックアップファイルを転送する (5)新しいサーバ上の各インスタンス・Oracle関連サービスを停止する (6)新しいサーバ上から、(3)で取得したファイルと同じファイルを削除する (7)新しいサーバ上で、バックアップしたファイルを現行のサーバと同じ位置に配置する (8)新しいサーバ上のOracle関連サービスと各インスタンスを起動し、動作を確認する どなたか、回答宜しくお願い致します。

  • データベースの作成

    Oracleを勉強し始めました。 今まではWebアプリにAccessを使っていて、Oracleに移行したいと思います。 とりあえず、データベースを作成するのだと思ったのですが、 インストールを終えた状態で、orclというデータベースがすでに出来ていました。(インストールは、マシンを設置した部署の方がしました。) 今後は他の部署もこのOracleにデータを保存するという予定らしいです。Oracleのインストールしたサーバーには、リモート接続が可能で、 管理者権限のパスワードも教えてもらっています。 もし、私がアクセスの住所録というデータベースファイル(jyuushoroku.mdb)を移行したいとすると、jyuushoroku というデータベースを新たに作成するのですよね? データベースは複数にあっても構わないのですか?アクセスと違い、データベースを作成する時にとても大掛かりなのでとまどってしまいました。 インストール時に作成したorclというデータベースには、パスワードが 設定されていて、接続ができません。自分の作成したデータベースには、独自のパスワードを設定して、それを使って接続すればいいのですか?ほんとに初歩的な概念がわからずに申し訳ないです。 よろしくお願いします。

  • データベースの起動について

    現在、サーバーAの1台が起動しoracleのデータベースを 運用しています  そこに、サーバーBを起動し、oracleのデータベースの 試験運用を実施したいです 質問(1)  各サーバーが下記設定の場合、 サーバーBを起動することにより、サーバーAにて起動して いる本来のデータベースに問題が発生するでしょうか? 質問(2)  発生する場合、どのように回避すればいいので しょうか? ご存知の方、ご教示の程宜しくお願いします サーバーA(本運用)  OS:windowsNT4.0  Oracle:Oracle8i(8.1.7)  グローバルデータベース名:seisandb  SID:seisandb  接続文字列:seisandb  コンピュータ名:test01  IPaddress:192.168.1.10 サーバーB(試験運用)  OS:windowsNT4.0  Oracle:Oracle8i(8.1.7)  グローバルデータベース名:seisandb  SID:seisandb  接続文字列:seisandb  コンピュータ名:test02       ←Aとの違い  IPaddress:192.168.1.11    ←Aとの違い

  • データーベースリンク

    以前にも、データベースリンクについての質問をさせていただきました。さらに問題が発生し、困っております。 【環境】 RedHatLinux Oracle9i Windows2000 Oracle8.0.6 という二つのDBがいます。 Oracle9iからCREATE DATABASE LINKをつかって、 Oracle8を参照します。 【データベースリンク作成】 CREATE DATABASE LINK XXXX_DBLINK CONNECT TO aaaaa IDENTIFIED BY bbbbb USING 'XXXX' でDBLINKを作成し、 select * from test@XXXX_DBLINKとして、 結果を受けることはできました。 そこで、以下のSQLを実行したときに、SQLエラーが発生してしまいました。 【問題のSQL】 select * from test@XXXX_DBLINK where COLUMN1=:hensu1 and COLUMN2=:hensu2 【実行結果】 SQL実行中に以下のエラーが発生しました。 ORA-01026: バインド・リストにサイズが4000を超える複数バッファが存在しています。 ORA-02063: 先行のエラー・メッセージを参照してくださいline(TRINITY_DBLINK) と2つのメッセージからなっています。 【※】 ・変数パラメータとしては、1つの場合、SQLエラーは発生しません。 ・変数パラメータが2つ以上の場合発生します。 ・変数の部分を固定で、条件を指定すれば、正常にSQLが実行されます。 質問は、この問題を解消するためにどのような対処方法がありますでしょうか? CREATE DATABASE LINK時にオプションを設定することや、 Oracle8もしくは、Oracle9iを構築する際に設定する数値など ありましたら、お教えください。