• 締切済み

オラクルエラー

ORA-01555 スナップショットが古すぎます というエラーがでるのですがどう対処していいのか わかりません、、、。 スナップショット?? ロールバック・セグメント?? って感じです。 宜しくお願いします。

みんなの回答

  • jkz
  • ベストアンサー率25% (20/79)
回答No.5

> ・ロールバックセグメントを増やす > ・ロールバックセグメントサイズを大きくする の他の対処として以下があります。 1.読込み処理のクエリが短時間でおわるようにする。 ロジックを見直すとか読み込み範囲を減らして 複数回に分けて処理するなど。 2.読込み処理中に大量データの更新処理がある場合は 同時間帯に動かないように運用する。

すると、全ての回答が全文表示されます。
  • bourbon
  • ベストアンサー率46% (18/39)
回答No.4

こんばんは。 まず、前提として ・ロールバックセグメント これは変更処理時の変更前情報が取ってある表(セグメント)のことです。ロールバックできるのはこれがあるからです。 ・読み取り一貫性について オラクルはSQL発行時にDBに確定されているデータだけを返します。他のユーザが変更中のデータは見ません。 オラクルはSELECTを行った時にDBに確定(COMMIT)されているものだけを読み取るようにできています。 SELECTが長い場合はSELECTの始点から終点までの間にSELECT対象データが他セッションによって変更されると見れないですね。 そんな時は変更前情報が格納されているロールバックセグメントを見ます。 でもロールバックセグメントの情報はCOMMITされると消える可能性があるのです(ロールバックされないことが保証されるから)。 そしてその情報は上書きされます。これが、SELECTの始点から終点の間にされてしまうと、以下のような状態に陥ります。 SELECTする→変更データがある→読み取り一貫性によってロールバックセグメント情報を見る→でも既に情報が上書きされている→対象データはどこにも無い→ORA-1555発生 このエラーの対処法は ・ロールバックセグメントを増やす ・ロールバックセグメントサイズを大きくする です。

すると、全ての回答が全文表示されます。
noname#4564
noname#4564
回答No.3

  補足ですが、No.2さんが書いておられるエラーコード検索の対象となるのはOracle 9i以降です。 ただし、このエラー(ORA-01555)は旧バージョンでも、原因、対処法はたぶん変わらないはずですので、9iの情報でも適用(応用)可能だと思います。 (8iの時代に研修でこのエラーについての解説を聞いた記憶があります。肝心の内容は憶えてませんが・・・)

すると、全ての回答が全文表示されます。
  • MrKT
  • ベストアンサー率71% (15/21)
回答No.2

こんにちは。 お使いのオラクルのバージョンとOSはなんでしょうか? ↓が参考になるかと思います。 OTNサイトで、エラー番号から簡単な対処法を 検索する事ができます。(無料のユーザ登録が必要) (上部メニューから、お客様情報>新規登録) まぁ、ほんとに簡単な説明しかでませんが・・・。 基本的な対処方法としては、 ・RBSを大きくする ・RBSの数を増やす 方法で回避できます。 もし、サポート契約をしているのでしたら、 サポートに問合せたほうが良いかと思いますよ。

参考URL:
http://otn.oracle.co.jp/document/msg/index.html
すると、全ての回答が全文表示されます。
  • PAPA0427
  • ベストアンサー率22% (559/2488)
回答No.1

はじめまして。 オラクルのバージョンはいくつでしょうか? どういった形態で、ご使用をされているのでしょうか?VB?PL/SQL?Aceess? どういった処理を行った場合に、その様なエラーが発生するのでしょうか? 出来れば、エラーメッセージも全てご記述願います。 またまた、思い込みで回答いたします。(→これが、はずすんだよなぁ(^^;) >スナップショット?? >ロールバック・セグメント?? このケースは、ロールバックセグメントが足らなくなった場合に発生します。簡単にいいますとロールバックセグメントとは、Winアプリでいうアンドゥ処理を行うために必要なセグメントです。 データの更新を行って、更新を確定させるのに「COMMIT」を使用します。更新の取消なら「ROLLBACK」を使用します。 大量のデータ(数万件以上)を何回も、コピーしたり更新をかけていると、上記理由でロールバックセグメントが足らなくなり。ご質問のエラーとなっていると思います。 スナップショットうんぬんは、おまけのように出てきます。 回避方法は、2つです。どちらかやれる方法でお試しください。 1:物理的にロールバックセグメントを増やす事。→オラクル自体の再セットアップしないと出来ません。 2:処理の途中に「COMMIT」を入れる。→処理速度は遅くなる。 2がお勧めです。「COMMIT」の度に、ロールバックセグメントが開放されますので、ご質問のエラーはでなくなると思います。

すると、全ての回答が全文表示されます。

関連するQ&A