
Oracle Databaseは初の商用Relational Database Management Systemとして約40年前に誕生しました。以後、エンタープライズ用途の厳しい要件に応えるべく、進化を遂げてきました。Oracleは数値や文字のデータ型だけでなく、XML型やJSON型、空間位置情報型とその処理エンジン、機械学習エンジンを搭載しています。そして、マルチテナント機能でデータベースを統合し、Database In-Memory(DBIM)で極力データの移動を抑えてOLTP処理で発生したデータを分析までかけることが可能なアーキテクチャを持っています。また、データ保護についてはかなり慎重なアーキテクチャとなっており、データ破損に対する保護とセキュリティを重要視しています。クラウド・ファーストの考え方が浸透しサーバー資産を持たない時代になっても、DBMSのアーキテクチャを理解しておくことは依然重要です。本連載ではOracle Real Application Clustersのアーキテクチャに焦点を当てて解説していきます。第一回はおさらいをかねてシングル・インスタンスのOracle Databaseのアーキテクチャを解説します。
Oracle Databaseのアーキテクチャ
Oracle Databaseサーバーは大別すると2種類の構造から成り立っています。まず、データを格納するストレージ上のファイル群からなるデータベースと、サーバー上の共有メモリとバックグラウンド・プロセス群からなるOracleインスタンスです(図1)。

データベースのファイル群
Oracleのデータベースを構成するファイルにはさまざまな物がありますが、厳密には表や索引のデータを格納するデータファイル、更新履歴を記録するオンラインREDOログ・ファイル、データファイルの位置などを記録する制御ファイルの3種類を指します。
データファイルは表や索引を格納する論理的な領域である表領域を構成します。表領域は複数のデータファイルで構成することもできます。過去、OSのファイルシステムが扱える1つのファイル・サイズが小さかったころには、巨大な表を格納するための論理的な表領域のサイズを大きくするために、表領域が複数のファイルで構成できることに意味がありました。しかしOracle Database 10gで導入されたAutomatic Storage Management(ASM)では巨大かつ冗長性と拡張性を備えたストレージ・プールを形成することが可能になり、それに伴い1つの表領域を1つの巨大なファイルで構成するbigfile表領域が導入されました。ASMについては別途説明の回を設けます。
表領域はその用途によっていくつかに分類されます。データ・ディクショナリなどのデータベースのシステム情報が記録されているSYSTEM表領域、監査情報など肥大化しやすいデータが記録されるSYSAUX表領域、読み取り一貫性のための変更前データを記録するUNDO表領域、そしてアプリケーションの表や索引を格納するユーザー表領域です。ユーザー表領域は複数作成することができ、用途ごとに表領域を用意することも可能です。
更新履歴を記録するオンラインREDOログ・ファイルは特に重要で、更新をCOMMITしたことに永続性を持たせるのはこのREDOログ・ファイルに記録されたかどうかで決まります。Oracleインスタンスに障害が発生したり、データファイルに破損が発生してリストア/リカバリが必要になったとき、REDOログ・ファイルの内容を読み取ってデータベースへの更新を再現していきます。オンラインREDOログ・ファイルは固定長の固定数のファイルなので、循環されて使用されます。そのため、オンラインREDOログ・ファイルには上書きが発生します。変更の履歴を保存しておくため、上書きされる前にアーカイブREDOログ・ファイルとしてコピーされます(図2)。

制御ファイルにはデータファイルの位置などが記録されています。制御ファイルとオンラインREDOログ・ファイルは特に重要であるため、Oracleインスタンスの機能によって複数個所に複製を記録することができます。
この記事は参考になりましたか?
- イチから学ぶデータベース最新技術 - Oracle Real Application Clusters編連載記事一覧
- この記事の著者
-
日下部 明(クサカベ アキラ)
日本オラクル データベース担当。Oracle GRID Centerのラインマネージャとしてオラクルの持つ最新技術をパートナー各社と共同で検証し、多くのホワイトペーパーを執筆・レビュー。以後、その経験を元にミッションクリティカルな案件のソリューションデザインの提案などを担当。データベースセキュリティ...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア