株式会社コーソル

コーソルDatabaseエンジニアのブログ

技術ブログ

物理破損とチェックサム

引き続き、今週の特濃JPOUG | Japan Oracle User Groupの準備をしつつ、いろいろ検証しております。物理破損と論理破損の違いについて理解しておくと、セッションの内容がより理解できるかもしれません。物理破損の特徴を示す典型的な観点にフォーカスして、説明します。

Oracle Databaseは、データをデータファイルに格納します。皆さんがなじみにあるテキストファイル、CSVファイルやXMLファイルなどとと大きく異なるのは、データをファイルの先頭から順次書き込むのでのではなく、データファイルをデータブロックと呼ばれる固定サイズで区切り、そのデータブロックの中にデータを書き込む構造になっていることです。データブロックのフォーマットは以下の通りです。

131115_CorruptionAndRevive.jpg

行データ格納用領域に、ブロックの末尾からデータ(行)を格納してゆきますが、 制御、管理用の領域としてブロックの先頭部分にヘッダ、末尾部分にトレイラがあります。 このヘッダにチェックサム格納する領域(図ではChkValと表記)があります。

チェックサムという考え方は、データブロック固有のものではなく、IT一般のモノです。

データ格納時に計算したチェックサムの値と、データの読み取り時に計算したチェックサムの値を 比較することで、データが格納時から読み取り時までの間に修正されていないないか、すなわち、破損していないかをチェックすることができます。

110422_BlockCorrupt.jpg

※:昔のセミナーのスライドを流用、乱筆ご容赦ください

チェックサムを例にとりましたが、物理破損というのは、チェックサム値の正当性などの ブロックの基本構造に問題があるレベルの破損と位置づけられます。一方、論理破損とは、 ブロックの基本構造に問題がないが、意味的に問題がある(古い、整合性がない)レベルの破損です。

一般に、物理破損は検出が比較的容易ですが、論理破損の検出は困難です。

プロフィール

On7tWW6m1Ul4

渡部 亮太

・Oracle ACE
・AWS Certified Solutions Architect - Associate
・ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数

カテゴリー

アーカイブ