Subscribe to Posts by Email

Subscriber Count

    701

Disclaimer

All information is offered in good faith and in the hope that it may be of use for educational purpose and for Database community purpose, but is not guaranteed to be correct, up to date or suitable for any particular purpose. db.geeksinsight.com accepts no liability in respect of this information or its use. This site is independent of and does not represent Oracle Corporation in any way. Oracle does not officially sponsor, approve, or endorse this site or its content and if notify any such I am happy to remove. Product and company names mentioned in this website may be the trademarks of their respective owners and published here for informational purpose only. This is my personal blog. The views expressed on these pages are mine and learnt from other blogs and bloggers and to enhance and support the DBA community and this web blog does not represent the thoughts, intentions, plans or strategies of my current employer nor the Oracle and its affiliates or any other companies. And this website does not offer or take profit for providing these content and this is purely non-profit and for educational purpose only. If you see any issues with Content and copy write issues, I am happy to remove if you notify me. Contact Geek DBA Team, via geeksinsights@gmail.com

Pages

18c Database: Shadow Lost write protection

From 18c Onwards, we can enable Lost write protection for data blocks which occurs when an I/O subsystem acknowledges the completion of the block write even though the write did not occur or when a former image of the block overwrites the current image.

We can enable the Shadow Lost Write protection at Database, Tablespace, DataFile level for which a shadow tablespace is required. As per documentation,

When a tracked data block is read from disk, shadow lost write protection can detect a lost write by comparing the SCN for the block in the shadow tablespace with the SCN of the most recent write in the block being read. If the shadow entry has an SCN greater than the data block being read, then a lost write has occurred. When a lost write is detected, an error is returned.

First create a tablespace to track the data blocks reads.

CREATE BIGFILE TABLESPACE SHDW_LP  DATAFILE 'shadow_protection.dbf'  SIZE 10M LOST WRITE PROTECTION;

Enable Lost Protection at database level

ALTER DATABASE ENABLE LOST WRITE PROTECTION;

Enable Lost Protection for pluggable database Level

ALTER PLUGGABLE DATABASE ENABLE LOST WRITE PROTECTION;

Enable Lost Protection at tablespace level

ALTER TABLESPACE tbsu1 ENABLE LOST WRITE PROTECTION;

Enable Lost Protection at Datafile Level

ALTER DATABASE DATAFILE 'dfile1.df' ENABLE LOST WRITE PROTECTION;

Enable Lost protection at specific pluggable database datafile level

ALTER PLUGGABLE DATABASE DATAFILE 'dfile2.df' ENABLE LOST WRITE PROTECTION;

As such the SCN are compared and when you have load intensive databases running, anticipate some overhead with this. I really did not tested this one.

Thanks

Suresh

Comments are closed.