2

過去のデータのクエリがどのように機能するかを正確に知っていましたか?

オラクルのバージョンは10Gです

このクエリを使用すると、一部のデータを回復できますが、このクエリを使用することもあります

 select * 
  from table as of timestamp systimestamp - 1 

エラーを取得します(スナップショットが古すぎます)。この作業の時間を増やして、約24時間データを取得することは可能ですか?ありがとう!

4

2 に答える 2

3

エラーの意味は、通常、クエリに時間がかかりすぎたために、ロールバックセグメントが無効になったということです。他にも原因があります。ロールバックセグメントのサイズ設定と同様です。

テーブルには何行ありますか?-このselectnum_rowsfromall_tablesからアイデアを得ることができます。ここでtable_name='MYTABLE_NAME_GOES_HERE';

行がたくさんある場合は、クエリをサポートするために何らかのインデックスを追加することを検討する必要があるかもしれません。全表スキャンに時間がかかりすぎるためです。そうでない場合は、DBAの問題です。たぶん、インデックスを追加することはあなたの店でもDBAの問題です。

これが数日前にうまく機能し、最近発生し始めた場合は、ロールバックのしきい値を超えた可能性があります。

于 2012-11-30T15:09:29.563 に答える
3

ここでの重要な問題は、取り消しセグメントのサイズ設定、および取り消しの保持と保証です。

その長所と短所は、フラッシュバックする最大期間内に行うことができるすべての変更を保持できるサイズのUNDO表領域が必要であり、UNDO保持パラメーターをその値に設定することです。UNDOを保持することがアプリケーションにとって非常に重要な場合は、UNDO表領域にUNDO保証を設定します。

便利なドキュメント:http ://docs.oracle.com/cd/B12037_01/server.101/b10739/undo.htm#i1008577

必要なUNDOブロックをテーブルスペースで見つける必要があるため、バルクデータのフラッシュバックのパフォーマンスはかなり劣ることに注意してください。11gには、高性能フラッシュバック用のより優れたオプションがあります。

于 2012-11-30T17:17:15.997 に答える