※本記事はMike Dietrichから許可をもらい彼の記事である、
(DB_LOST_WRITE_PROTECT default change in RU 19.26.0)を翻訳した内容となります。
元記事はこちらをご参照ください。
ORAdiffは素晴らしいツールで、私は少なくとも1日に1回は使っています。
19.26.0を適用する前や、19.25.0から19.27.0に移行するためにORAdiffを使っていた方は、この変更に気づいたかもしれません。
RU19.26.0ではDB_LOST_WRITE_PROTECTのデフォルトが変更されています。
(翻訳者追記:OnPのみ変更されています。OCI上のPaaS DBは元々デフォルト値がTYPICALに変更されています。)

DB_LOST_WRITE_PROTECTとは
このパラメータはData Guard 環境で非常に便利なパラメータです。
このパラメータによって、データブロックの書き込み保護を有効または無効にすることができます。
これは、I/Oサブシステムがブロック書き込みの完了を認識したにもかかわらず、実際には永続ストレージへの書き込みが行われていない場合に、データブロックの書き込み損失が発生するという状況を防ぐことを目的としています。
デフォルトはNONEですが、多くの顧客や環境ではこれがTYPICALまたはFULLに設定されていることがわかっています。
ただし、デフォルトを変更するとREDO生成量の増加により、全体的なスループットが低下するなどの影響が出る可能性があります。
この変更については、MOS Note 3073478.1 Database Generating Large Amount Of Redo After Applying Jan 2025 DBRU (37260974) にて背景が記載されており、この変更に関する機能強化へのリンクも掲載されています。
MOS Note 34670499.8 – Bug 34670499 – Enhancement on new default db_lost_write_protect=”auto” mode.
想定以上に多くのREDOが生成されている場合は、パラメータを明示的にNONEに設定する必要があります。
ALTER SYSTEM set DB_LOST_WRITE_PROTECT='NONE' scope=spfile;
このパラメータはシステム全体の設定であり、PDB単位で設定することはできないことに注意してください。
さらに詳しい背景情報については、コチラのAskTomのディスカッションを参照してください。
Oracle Database RU 19.26.0以降ではどう変わるか
デフォルトがNONEからAUTOに変更されます。AUTOは以前のリリースには存在しなかった新しい設定です。
RUを適用する前にORAdiffを定期的に利用している場合は、これに気づいているかもしれません。

- Auto
この設定は、Oracle Database 19cリリース・アップデート19.26以降で利用可能です。プライマリ・データベースでこのパラメータをAUTOに設定すると、インスタンスはスタンバイ・データベースの状態に応じて、バッファ・キャッシュの読み取りをREDOログに記録するかどうかを自動的に決定します。具体的には、リアルタイムREDO適用が可能なフィジカル・スタンバイ・データベースが存在する場合にのみ、プライマリ・データベースはバッファ・キャッシュの読み取りを記録します。
スタンバイ・データベースでこのパラメータを AUTOに設定されている場合、インスタンスは、適用が追いついているかどうかに応じて、欠落した書込みの検出を実行することで追加のパフォーマンス・オーバーヘッドが発生するかどうかを自動的に判断します。適用ラグが後述する合理的な閾値を超える場合、スタンバイ・データベースは、REDO適用がプライマリに再び追いつくまで、欠落した書込みの保護を一時的にスキップします。これにより、Data Guardのロール変換のタイミングが最短になります。
合理的な閾値は次のように決定されます。- Data Guard Broker を通じてFast Start Failover (FSFO) が構成されている場合、適用ラグ閾値に基づいて、閾値は 60 秒と FSFO 適用ラグ閾値の 3 分の 2 のいずれか小さい方になります。
- それ以外の場合、閾値は 60 秒です。
Oracle Database 23ai のデフォルト設定は?
すでにお察しかもしれませんが、これもAUTOです。Oracle Database 23aiのドキュメントをご覧ください。
リンクまとめ
- DB_LOST_WRITE_PROTECT – Oracle 19c ドキュメント
- DB_LOST_WRITE_PROTECT – Oracle 23ai ドキュメント
- MOS Note 3073478.1 Database Generating Large Amount Of Redo After Applying Jan 2025 DBRU (37260974)
- MOS Note 34670499.8 – Bug 34670499 – Enhancement on new default db_lost_write_protect=”auto” mode.
- AskTomでのディスカッション
- ORAdiff
コメントを残す