Today I received the news a new demo has been made available on OTN for Data Guard protection from lost-write corruption. Since this is a typical MAA solution and a very nice demo I decided to mention this great feature also in this blog even while it's a recommended best practice for some time.
When lost writes occur an I/O subsystem acknowledges the completion of the block write even though the write I/O did not occur in the persistent storage. On a subsequent block read on the primary database, the I/O subsystem returns the stale version of the data block, which might be used to update other blocks of the database, thereby corrupting it. Lost writes can occur after an OS or storage device driver failure, faulty host bus adapters, disk controller failures and volume manager errors.
In the demo a data block lost write occurs when an I/O subsystem acknowledges
the completion of the block write, while in fact the write did not occur
in the persistent storage. When a primary database lost write
corruption is detected by a Data Guard physical standby database, Redo
Apply (MRP) will stop and the standby will signal an ORA-752 error to
explicitly indicate a primary lost write has occurred (preventing
corruption from spreading to the standby database).