1

RMAN を使用して、Oracle のバックアップと復元のスクリプトを作成しました。バックアップデータベースとアーカイブログを取得したことに注意してください

今、私はオラクルでいくつかのSQLステートメントを実行しましたが、トランザクションをコミットしていないため、REDOログのどこかにある可能性があります。

さて、上記の状況で、バックアップデータベースとアーカイブログを取得して復元しました。

コミットされていないデータが存在しませんでした。

このシナリオについて混乱しています。このシナリオは正しいですか、それともデータが欠落しているか、どこかで欠落しています。

4

1 に答える 1

2

これはまったく問題ありません。あなたの取引は実際にはやり直し中です。しかし、コミットしなかったため、redo ストリームの最後に commit ステートメントが見つからなかったため、recover プロセスは再適用後にロールバックしました。これは仕様によるものです。逆は問題です。ステートメントをコミットした場合、サーバーに何が起こっても (停電、クラッシュ)、サーバーを復元し、すべてのやり直し/アーカイブを適用した後にそれを見ることができるはずです。

その理由は、いったんコミットすると、トランザクションを再実行するためのすべての作業をディスク (REDO ログ ファイル) に保存する必要があるためです。この動作をバイパスする他のタイプのコミット (たとえば、COMMIT WRITE NOWAIT) があり、回避する必要があります。

お役に立てれば。

于 2016-02-12T05:41:43.627 に答える