2011-06-20 42 views
1

ORA-01555:スナップショットが古すぎます:名前のロールバック・セグメント番号「小さすぎる」ORA-01555:スナップショットが古すぎ:名前のロールバック・セグメント番号「」小さすぎる

私はその後プロシージャを呼び出すときに私が書いていますコミット。

実際には、データテーブルを一時テーブルにコピーしたいと考えています。 データは挿入されておらず、ORA-01555:スナップショットが古すぎます:名前が小さすぎるロールバック・セグメント番号エラー。

私に解決策を教えてください。

+0

なぜデータを一時テーブルにコピーしていますか?どれくらいのデータ?あなたは現在どのようにそれを正確にやっていますか? –

答えて

0

別のテーブルからデータをコピーする最も簡単な方法は、このような新しいテーブルを作成することです:

create table table2 as select * from table1; 
+0

私はエラーを解決したい、私に解決策を教えてください – user630152

0

Oracleエラーが発生したときにどのくらいの時間がポイントに運転開始から取るん?私がそれを見た状況では、時間は数時間で測定することができ、作業がすべての塊の後にコミットでまとめるべきであるという良い指標でした。その時間が短い場合は、ディスク領域が不足しているか、Oracleインスタンスが誤って構成されている可能性があります。

0

通常、SQLの実行時間が長すぎる場合は、「ORA-01555:スナップショットが古すぎます:名前付きロールバック・セグメント番号」が表示されます。これは、一貫性のある読み込みのためにリーダーが必要とするロールバックレコードが、他のライターによって上書きされるためです。コードスニペットを共有すると便利です。

0

ORA-01555:スナップショットが古すぎ:

ステップ:名前 "SYSSMU 9 *

ソリューションとロールバック・セグメント番号9。UNDO_RETENTIONパラメータの1)チェックサイズ それが900である場合。

NAME型の値

; SQL> SHOWパラメータUNDO_RETENTION:3

ステップ2ステップを実行して、3600に増加


UNDO_RETENTION整数900

ステップ3:SQL> ALTER SYSTEM SET UNDO_RETENTION = 3600。

システムが変更されました。

[元に戻す]テーブルスペースを[自動的に延長]に設定します。

もう一度お試しください。