web-dev-qa-db-ja.com

TSPITRに補助インスタンスが必要な理由

助けが必要!

Database Backup and Recoveryユーザーズガイド11gを読みましたが、tspitrを実行するために補助インスタンスが必要な理由がわかりません。同じインスタンス内でテーブルスペースの完全なリカバリを実行できますが、tspitrではなぜ不可能なのですか?

ここ Hemant K Chitaleのコメント: "データベースの他の部分よりも低いSCNに表領域をリカバリすることはできません。 "。誰かが私が理由を理解するのを手伝ってくれる?

このメッセージでは テーブルスペースをオフラインにすると、しばらくするとそのSCNが他のテーブルスペースのSCNよりも低くなり、オンラインにすると " REDOを適用しないと、現在のSCN "が採用されます。

では、データファイルがSCNを現在に採用するまで、データベースを開いて回復できないのはなぜですか?それは、OracleDBの技術的側面によるものですか、それとも別の理由がありますか?

1
K.Esaulov

TL; DR現在の取り消し全体を上書きせずにデータ+取り消しを復元できるようにします。

RMANオンラインバックアップを実行すると、一部のトランザクションは処理の途中で、何かを変更しましたが、まだCOMMITを実行していません。作業のトランザクションモデル(「アトミック性」)では、リカバリ時にこれらのトランザクションをロールバック(完全に元に戻す)する必要があります。 Oracleエンジンはこれを自動的に行います。 Oracle Engineは、これが実行できない場合、一貫性のない可能性のあるデータがユーザーに表示されないように、テーブルスペースのオンライン化を許可しません。では、トランザクションは、変更する前に「一貫性のある」データを何らかの方法で保存しますか?はい、UNDO表領域(または「ロールバックセグメント」)にあります。これが、表領域をリカバリするときに、元に戻したものを「忘れる」ことができない理由です。同じ時点(同じSCN)から元に戻すをリカバリする必要があります。

要約すると、Oracleエンジンには元に戻すデータが必要です と同期 メインデータと同じ時点から。

元に戻すは、通常、多くの異なるデータテーブルスペースからの「一貫性のある」情報が混在しているにもかかわらず、単一のテーブルスペースに配置されます。これが、補助インスタンスにTSPITRを実行する理由です。これにより、現在の取り消し全体を上書きせずに、データと取り消しを復元できます。

補助がオンラインになると、補助のデータの整合性が保たれ、補助の元に戻す必要がなくなります。

1
kubanczyk