技術ブログ
今週の特濃JPOUG | Japan Oracle User Groupに関連したお話です。
上記のエントリに記載した論理破損の厄介さを踏まえ、では「この厄介な論理破損をどうやって検知すればいいのだろうか?」という点を考えます。
原理的には、論理発生の発生原因はいろいろありますが、実際的な発生傾向を踏まえるとLost Writeに限定して議論しても問題ないはずです。Lost Writeは、データファイルに存在するブロックのうち、一部のブロックが古いままになっている状態と言えます。当然ですが、データファイルはRDBMSから見るとデータの格納場所として位置づけられるため、データファイルが想定どおり更新されていないと、正しいデータが得られるはずがないのは当然のことです。開発の現場に例えて言うなら、「設計書が間違っていたなら、成果物も間違うのは当たり前でしょ?」みたいな話です。
でも、設計書の変更履歴のところに設計書の記載内容に反した内容が書かれてれば、間違いに気づく可能性があるかもしれません。「あれ?変更履歴には列XXXX削除って書いてあるのに、何故本文には列XXXXが残っているんだ?ミスじゃない?」みたいに。
同じことはRDBMSにも言えます。RDBMSにおいて変更履歴に相当するのは、オンラインREDOログファイル(WALファイル、ログファイル、トランザクションログなど、製品によって呼び方は様々ですが)になります。オンラインREDOログファイルを用いてリカバリを実行すれば、データファイルのLost Writeに気づくことができる可能性があります。
上記の考え方を実装するに当たり、考慮すべき点は以下になるでしょう。
これらの考慮点をふまえて、論理破損の早期検出のためにOracle Database 11gから組み込まれた機能が、Data Guard環境における DB_LOST_WRITE_PROTECT です。
関連記事はありません
プロフィール
渡部 亮太
・Oracle ACE
・AWS Certified Solutions Architect - Associate
・ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数
カテゴリー
アーカイブ
2024年
2023年
2022年
2021年
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2000年