sql >> データベース >  >> RDS >> Oracle

Oracle:ユーザーがデータ項目を変更するように指示したときに、元に戻るブロックへの変更を説明するREDO変更ベクトルをOracleが作成する理由

    未完了の(コミットされていない)トランザクションがあるとします。オラクルは、あなたが質問で言ったことをすべて行いました。

    これで、マシンがクラッシュします。

    DBAは、マシンのリカバリ後(または新しいマシンでは:))、最後のバックアップを復元し、すべてのREDOログを適用します 新しいインスタンスで。 REDOには、ステップ1で実行された作業も含まれます。ただし、その作業はコミットされていないため、エンジンはそれをロールバックする必要があります。このためには、ロールバックセグメントが必要です。ただし、手順3でログに記録しなかった場合、ロールバックセグメントは表示されません。

    私はあなたが今尋ねることを知っています:なぜそれがコミットされていない仕事にログを適用するのですか?それについて読んだときも、それが私の質問でした。よくわかりませんが、もっと簡単かもしれません。コミットされたトランザクションの一部であるログのすべてのエントリをチェックするのは難しいかもしれません。ただし、これがOracleの仕組みです。すべてのREDOログを適用してから、コミットされていないトランザクションをロールバックします。




    1. PostgreSQLでのクエリ最適化。 EXPLAINの基本–パート1

    2. 一貫性のない転置

    3. ora-06575の原因となるエラーを見つける方法は?

    4. MySQL-フィールドの最大値を持つ行を選択する方法