Oracleデータベースのインスタンスとは
今Oracle DBのお勉強をしているのですが、イメージと用語がなかなか結びつかず苦戦しています。
PGA、SGA、セグメントとエクステント…横文字ばっかり!
上記の言葉も自分の理解のためにまとめていこうと思いますが、まずは「インスタンス」という言葉についてまとめてみたいと思います。
現時点での私の理解ですので、もし間違いがございましたら指摘していただけると嬉しいです。
Oracleデータベースシステムにおけるインスタンスとは、PCのメモリ上のコンポーネント(構成要素)の集まりのこと。
目に見えるファイルたち(表側)ではなく、データベース処理の裏側でせっせと働いてくれているやつらや、処理を少しでも高速化するために確保している専用のメモリ領域を合わせたもののことを指します。
インスタンスがあって、それに紐づくデータベースファイルと言われるファイル群(ディスク上のコンポーネント)があって、それらが両輪となって色々なテーブルを管理しているのですね。
初めてOracleに触ったときは1つのテーブルが1つのインスタンスなのかと勘違いしていました。Oracleの「テーブル」とは、皆さんがデータベースと聞いて想像するような、次のようなデータの集まりのことです。
ID | 氏名 | 入社年月 | 所属部署 |
0001 | ぱるこ | 201504 | 商品 |
0002 | ぱるお | 201610 | 人事 |
… | … | … | … |
このテーブルの集まりが「データベース」なんですね。そしてインスタンスとは、この「データベース」に紐づく概念ということです。このような「テーブル」と「データベース」のように、用語から連想するものと実際の定義と微妙にずれがあることが、Oracle DBへの理解を難しくしている一因なのではないかと思います。
このブログでナレッジを蓄積していきたいと思いますので、「これが知りたい!」「これ違うんじゃない?」などあればご協力御願いします。