2

以下のクワイアで異なる SCN 番号を取得する理由を知りたい

  1. SELECT TIMESTAMP_TO_SCN(SYSDATE) FROM DUAL - POINT IN TIME RECOVER FOR TABLESPACE にこれを使用します。

  2. V$DATABASE から CURRENT_SCN を選択します。- これをデータベースのリカバリ (RMAN) に使用します

2 つの異なる SCN が表示されるのはなぜですか?

SCN の基本は知っていますが、まだ混乱しています。誰でもクエリの正確な意味を明確にできますか

4

2 に答える 2

1

timestamp_to_scnおおよその結果が得られます。データベースは 1 秒間に数千の SCN を通過する可能性が高いため、正確な結果は得られません。また、システムがこれまでに遭遇したすべての SCN にタイムスタンプを関連付けるテーブルを維持するには、非常にコストがかかります。内部では、Oracle は現在の SCN を数秒ごとに格納するテーブルを維持し、そのデータを数日間保持します。最近のバージョンでは、そのテーブルの粒度は 3 秒ごとに 1 SCN ですが、時間の経過とともに変化する可能性があります。

したがって、を呼び出すとtimestamp_to_scn、関心のある日付から数秒以内に作成された SCN が取得されますが、それは決して正確ではなく、永久に機能するわけではありません。これは通常、ポイント イン タイム リカバリに十分近い時間です。2015 年 5 月 20 日の午前 12 時 05 分 00 秒に復元したいことはわかっていますが、1 秒か 2 秒前の状態に復元するかどうかはあまり気にしません。後で。システムを復元したい特定の不正なトランザクション (またはその直前) を特定している場合は、timestamp_to_scn.

于 2015-05-21T02:50:23.130 に答える