PR

【超初心者向け】Oracle 用語を簡単に説明してみる

スポンサーリンク
ORACLE

Oracle DBA として10年以上経ったので、Oracleの基本的な用語をできるだけ簡単に噛み砕いて説明ようと思います。

乱雑に書いてしまっているところもあるので、流し読みして頂ければ幸いです。

基本のオラクル

インスタンス

ざっくり言うとOracleのプログラムのこと。

「インスタンス停止しまーす」と言うと、Oracleを停止するって意味。

当然、Oracleのプログラムが確保するメモリ領域もあるので、インスタンスは「バックグラウンドプロセス群(オラクルのプログラム達)と確保メモリ」と説明されることが多い。

ユーザー(開発者や運用者)がOracleを操作する際は、必ずインスタンスに接続している。

細かいことを言うと「現場でDBに接続する」って言ってるのは正しくなくて、Oracle内部ではインスタンスに接続しているのであるが、こんな細かい事を言う人は嫌われる。

データベース(DB)

データを保存しておくところ。

HDDとかSSDとかストレージを指す。

インスタンスがデータベースに書き込んでいるので、ユーザーが直接触ることはできない。

インスタンスが一つだと「インスタンス=データベース」と呼んでいるところもあるが、本当は正しくない。

そしてこんな細かい事を言う人は嫌われる。(2回目)

レコード

テーブルの中の行。

データブロック

Oracleが管理する最小単位。

2K, 4K, 8K, 16K, 32K を決められる。

このブロックの中に、レコードが詰まってる。

エクステント

データブロックの固まり。

セグメント

エクステントの固まり。

1テーブル=1セグメント

1インデックス=1セグメント

こんな感じになる。

テーブルスペース(表領域)

セグメント達を入れておくところ。

UNDO表領域

COMMITする前の更新前データを保存しておくところ。

ユーザがSQLでAの値を1→2に変えると、1の値がUNDO表領域に残る。

「やっぱCOMMITやめてROLLBACKしよっと!」ってなると、Aの値を1に戻さなきゃいけなくなり、この時にUNDOからデータを持ってくる。

データファイル

そのまんま。データベースの中身が入ったファイル。

REDOログ

INSERT・UPDATE・DELETEなど、ユーザが発行したSQLの処理履歴を持っているファイル。

ある時点で取得したバックアップを戻した後に、REDOログを適用すればバックアップ時点から障害が起こる直前までの状態に戻せる。

REDOアーカイブ

REDOログをまとめたもの。

REDOログは循環的に使用されるので、REDOアーカイブとしてまとめて取っておく。

これがないと、バックアップ時点から障害が起こる直前までの状態に戻せなくなる。

control file(制御ファイル)

データファイルとかREDOログの場所を記録しているファイル。その他にもデータベースに必要な情報が入っている。

これが破損するとオラクルは訳わからなくなり停止してしまうので、2重化(もしくは3重化)しておくのがセオリー。

SGA

System Global Area の略。

オラクルが確保して使うメモリ領域のこと。

ストレージ(速度遅い)から取ってきたDBデータをこのSGA(速度速い)に乗せておいて、検索を早くしている。

なので、メモリは大きめに取る。

PGA

Program Global Area の略。

ユーザーとオラクルの通信用に使うメモリ。

なので、メモリは小さめでOK。

ストレージ

ASM

Automatic Storage Management の略。

何本かのディスクをASMに与えてあげると、冗長化とか負荷分散をいい感じにやってくれる。

RAIDみたいなもの。

なので、ストレージをRAIDで冗長化してASMでも冗長化するなんてのは無駄無駄無駄。

ネットワーク

リスナー

クライアントからの接続を受け付けて、インスタンスへ渡してくれる奴。

なので、こいつがいないとネットワーク越しからのDB接続は出来ない。

デフォルトのポートは1521で待ち受けている。

性能系

STATS PACK

Oracleの性能についてレポートしてくれるツール。無料で利用可能。

AWR

STATS PACKを豪華にしたもの。より詳細な性能レポートを出すことができる。こちらはDiagnostic Packという有料ライセンスが必要。

高可用性

RAC

Real Application Clusters の略。

2つ以上のインスタンスから、1つのデータベースに書き込む。

これによってつの1インスタンスが落ちても、他のインスタンスで稼動を続けることができる。

24時間365日稼動が必要なシステムに使われる事が多い。

インターコネクトネットワーク

ネットワーク関連のとこに書くか迷いましたがRAC関連なのでここに書きます。

RACで複数のインスタンスを構成する時に、このネットワークを使ってそれぞれのインスタンスが通信する。

これはインスタンス間通信のネットワークなので、アプリケーションからの接続やDB管理者が使用するネットワークは分割するように。

全てのネットワークを1つのスイッチで賄うと、アプリケーションのネットワークが詰まった時にインスタンス同士の同期に時間がかかり、レスポンスが激遅になります。

キャッシュフュージョン

RACで複数のインスタンスを構成すると、それぞれのインスタンス達がインターコネクトネットワークを使ってメモリ上のデータを同期する。

これによって、どこのインスタンスに接続してもデータの不整合が起きない。

「キャッシュフュージョン」なかなかカッコイイ名前。

バックアップ

RMAN

Recovery Manager の略。

Oracleのバックアップ専用ツール。

これを使うと簡単にOracleデータベースをバックアップ出来る。

もしもの時のバックアップは重要。

リストア

バックアップファイルから戻すこと。

リカバリ

リストアした後にREDOを適用し、障害直前(もしくは指定した時点)にデータを戻すこと。

災害対策

Data Guard

2つのデータベースを同期できる機能。

例えばの構成として、東京にあるデータベースサーバーをプライマリとし、大阪にあるデータベースをスタンバイにする。

そうすると、東京にあるデータベースに書き込めば、ネットワークを通じて大阪にあるデータベースに同期される。

東京で大きな地震があって、データベースサーバーが復旧できない場合は大阪のデータベースに切り替えることができる。

これは高可用性としての機能でもあるが、データ保護の観点でも意味がある。

エディション

SE2

Standard Edition2 の略。

標準的なOracleの機能を使えるエディションで、RACも使える。

11gまではStandard Editionが2種類あったが、12cからSE2としてひとつになった。

普通にRDBMSを使うならこのエディションで十分。

EE

Enterprise Edition の略。

大規模システム向けで、Oralceの全ての機能が使える。

その分ライセンスは高い。

おすすめのOracle学習本

Oracleの本に関しては10冊以上読みましたが、一番わかりやすかった本は以下の”絵で見てわかるシステム構築のためのOracle設定”です。

Oracleのアーキテクチャが丁寧に絵で書かれているので、難しいと言われているOracleを初めて触れる方には入りやすいと思います。