Oracleのデータ構造

実践オラクルデータベース構築・運用

オラクルデータベース構築オラクルデータベース運用SQL書式PL/SQL書式Oracle Master試験

TOP オラクルデータベース概要(豆知識)

Oracleのデータ構造


スポンサードリンク
スポンサードリンク



Oracleのデータ構造



1. Oracleデータ構造概要

Oracleデータベース管理者として必ず知っておかなければならないのが、「表領域」「セグメント」「エクステント」「ブロック」といった用語になります。

本項では、Oracleのデータ構造とともに上記の用語についても解説していきたいと思います。
Oracleのデータ構造には大きく分けて物理構造と論理構造の2種類があります。物理構造とはOS上から見える構造のことを言い、論理構造とはOSから識別できないOracle内部の構造を指します。



Oracleのデータ構造をミクロな構造から順に解説していきます。

@Oracleブロック
2KB、4KB、8KBといったサイズで区切られた領域です。ブロックは1つ以上の行から構成されています。
※ブロックのイメージ図はOracleのデータ管理を参照のこと。

またOracleブロックは、OSのブロックから構成されますが、通常はOracleブロックを最小単位と考えてかまいません。Oracleの行のアドレスはROWIDと呼ばれるもので管理されています。ROWIDはデータファイルの番号やデータファイル内のブロックの番号で構成されています。

Aエクステント
エクステントは連続したブロックのかたまりです。エクステントのおかげで各ブロックの場所ではなく、各エクステントの先頭の場所とそのブロック数のみでデータを管理できるようになり、管理情報を減らすことができます。

Bセグメント
セグメントはエクステントのかたまりです。

C表領域
表領域とは、セグメントをある特定のルールに基づいて分類して格納するための領域のことをいいます。表領域の集合と、REDOログファイル、制御ファイルがあるまると一つのデータベースとなります。

以下に通常存在する表領域を紹介します。


SQL > SELECT TABLESPACE_NAME FROM DBA_TABLESPACES;

TABLESPACE_NAME
--------------------------------------------
SYSTEM・・・・・・データベースを管理するセグメントのための表領域
SYSAUX・・・・・・データベースを管理するセグメントのための表領域
UNDOTBS1・・・UNDOセグメントのための表領域
TEMP・・・・・・・・ソートセグメントのための表領域
USERS・・・・・・・ユーザ用の表領域




2. 領域の割り当てと空き領域管理

ここでは、実際の業務とつけあわせて領域割り当てと空き領域管理について見ていきます。

@データベース作成
データベースを作成する際には、SYSTEM表領域をはじめとする各表領域と表領域を構成するデータファイル名やサイズを指定します。

A表の作成
表を作成する際に、空のエクステントも同時に作成されます。このあとデータ挿入されたときにエクステント内にブロックが作成されます。「PCTFREE」と呼ばれるしきい値に達するとブロックは空いていないと判断します。データの挿入が続いてエクステントがいっぱいになると表領域の空き領域から新規エクステントを表に割り当てます。またデータ削除により「PCTUSED」というしきい値を下回ると、再びブロックへの挿入が可能状態になります。表やインデックスがDROP(もしくはTRUNCATE)されるとエクステント内のデータも不要となるため表領域の空き領域の一部となります。

表領域の空き領域がなくなった場合は、エクステントの作成ができないためエラーとなってしまいます。そのため表領域の監視は運用において重要な作業といえます。表領域の空き領域が不足した際の対処としてデータファイルの追加が考えられます。ただし、OSでファイルサイズ上限値やブロック数の上限値などの制限があるかもしれないので注意が必要です。特にSYSTEM表領域の管理は重要です。SYSTEM表領域をいっぱいにしてしまうとデータベース自体に影響する可能性があります。



<オラクルデータベース概要(豆知識)>

 ・『OracleとディスクI/Oについて
 ・『Oracleの様々なプロセスについて
 ・『Oracleとキャッシュメモリについて
 ・『Oracleの起動と停止について
 ・『Oracleへのアプリケーション接続について
 ・『Oracleのデータ構造について
 ・『Oracleの待機とロック』について

 ・『REDOとUNDOについて
 ・『Oracleのバックアップ・リカバリについて
 ・『Oracleのデータ管理について
 ・『オプティマイザと共有プールについて
 ・『インスタンスとデータベース構成について
 ・『SQL*PlusとiSQL*Plus』について




スポンサードリンク

リンク集 / 免責事項サイトマップ問い合わせ
Copyright (C) 2012  実践オラクルデータベース構築・運用  All rights reserved