【Oracle Cloud Free & DB】第5回:作成直後の「表領域」はどうなっている?PaaSのストレージ状態をSQLで確認する
前回、私たちがブラウザから触っているデータベースが、クラウド全体の巨大なコンテナ(CDB)の中に切り出された「316番目の個室(PDB)」であることを突き止めました。今回は、その個室の中に視点を移してみましょう。データベースが作成された直後の初期状態において、内部にはどのような「表領域(Tablespace)」が確保されているのでしょうか?システム管理者(ADMIN)の視点から、データ・ディクショナリ・ビューを叩いてその中身を暴いてみます。
1. 初期状態の表領域を一覧確認するSQL
Oracleにおいて、データベース全体の表領域の全容を掴むための大本命ビューといえば、やはり DBA_TABLESPACES です。Autonomous Database(PaaS)でも、ADMIN権限でログインしていればオンプレミスと同様にこの管理者用ビューにアクセスできます。さっそく、表領域名とそのステータス、物理的な特性を一覧で取得してみましょう。
SELECT tablespace_name, block_size, status, contents, bigfile FROM dba_tablespaces;【実行結果(クラウド実機での測定値)】
"TABLESPACE_NAME","BLOCK_SIZE","STATUS","CONTENTS","BIGFILE"
"SYSTEM",8192,"ONLINE","PERMANENT","YES"
"SYSAUX",8192,"ONLINE","PERMANENT","YES"
"UNDOTBS1",8192,"ONLINE","UNDO","YES"
"DATA",8192,"ONLINE","PERMANENT","YES"
"DBFS_DATA",8192,"ONLINE","PERMANENT","YES"
"TEMP",8192,"ONLINE","TEMPORARY","YES"
"SAMPLESCHEMA",8192,"READ ONLY","PERMANENT","YES"
"UNDO_8",8192,"ONLINE","UNDO","YES"
経過時間: 00:00:00.005
8行が選択されました。
2. 実行結果から読み解くクラウド(PaaS)の4つの特徴
この生々しい8行の結果には、オンプレミスのOracleを長年触ってきたインフラエンジニアほど「おや?」と膝を打つ、クラウド特へ特有の設計思想が隠されています。
① すべてが「BIGFILE」=「1表領域=1ファイル」の極太設計
注目すべきは、右端の BIGFILE のステータスが全て「YES」になっている点です。
従来のOracle(Smallfile)のように「容量が足りなくなったら、2号ファイル、3号ファイルを追加していく」という泥臭いファイル単位の運用はここにはありません。BIGFILE表領域は「1つの表領域=1つの超巨大なデータファイル(ブロックサイズ8KBなら最大32テラバイト!)」として管理する仕様です。最初からこの設定に統一することで、ファイル追加の手間を排除し、クラウド側で容量を全自動拡張(オートスケール)させるためのスマートなインフラ設計が行われている証拠です。
② アプリケーション用データはすべて「DATA」に一元集約
オンプレミスであれば、設計時にユーザーデータ用(USERS)、インデックス用(INDX)などと物理的な表領域を細かく分けるのが定石でした。しかし、ここには伝統の「USERS」ら存在せず、あるのは「DATA」表領域だけです。インフラ内部(Exadata基盤)が自動でストレージを最適化・ストライピングしてくれるため、人間がディスクの配置設計に頭を悩ませる必要がなくなっています。
③ クラウド(PaaS)特有の隠れキャラクターたち
基本5セット以外に見つかった3つの領域が、いかにもクラウド環境らしくて面白いポイントです。
- DBFS_DATA:データベースをOSのファイルシステムのように見せる機能(Database File System)のための領域。クラウドの内部連携などで使われます。
- SAMPLESCHEMA:Oracleお馴染みのサンプルデータ(SHスキーマなど)が最初から入っている領域。容量を食わないように親切にも「READ ONLY(読取専用)」に固定されています。
- UNDO_8:デフォルトの「UNDOTBS1」とは別にある謎のUNDO(変更履歴)領域。Autonomous Databaseはバックグラウンドで複数のサービスやインスタンスが協調して動いているため、システムが自動で切り出した追加のUNDO領域と推測できます。
3. 各表領域の役割まとめ
今回あぶり出した全8つの表領域の役割を、管理者の視点で整理しておきます。
| 表領域名 | STATUS / CONTENTS | 役割とPaaSでの見所 |
|---|---|---|
| SYSTEM | ONLINE / PERMANENT | データベースの心臓部。データ・ディクショナリ(メタ情報)が格納される領域。 |
| SYSAUX | ONLINE / PERMANENT | SYSTEMの補助領域。AWR(パフォーマンス統計)などが自動格納される。 |
| DATA | ONLINE / PERMANENT | ★ 本番データ領域。私たちが作るテーブルやインデックスはすべてここに集約される。 |
| DBFS_DATA | ONLINE / PERMANENT | DBFS(Database File System)用。クラウドのシステム管理用領域。 |
| SAMPLESCHEMA | READ ONLY / PERMANENT | 学習用のサンプルスキーマ用領域。書き換えられないよう読取専用状態。 |
| TEMP | ONLINE / TEMPORARY | 一時領域。大規模なソートやハッシュ結合でメモリが足りない時に使われる。 |
| UNDOTBS1 | ONLINE / UNDO | 読取り一貫性やロールバックのための主要な変更履歴(UNDO)領域。 |
| UNDO_8 | ONLINE / UNDO | システムによって自動追加されたマルチインスタンス用の予備UNDO領域。 |
4. まとめ:運用フリーの思想が表領域にも現れている
サーバーパラメータの制限に続き、表領域の構成を見ても「データベース管理者の面倒な作業(データファイルの容量追加や、断片化を防ぐための配置設計)を1つでも減らす」というAutonomous(自律型)の強い思想が感じられる結果となりました。
1. 管理者権限(ADMIN)から全体の表領域を俯瞰するには「DBA_TABLESPACES」を使う。
2. 面倒なファイル追加・監視を排除するため、全表領域が最大32TBまでいける「BIGFILE」構成。
3. ユーザーデータは細かく分けない。クラウドの最適化を信じて「DATA」表領域に一元集約するのがPaaSの作法。
ストレージの内部構造までバッチリ把握できました。これで現在の環境(26ai)の仕様理解は完璧です!次回第6回は、このクラウド完全管理型(PaaS)の環境と比較するために、「もう一つの無料枠(Compute VM)」を立ち上げて、あえて自分ですべてを管理する「IaaS型の19c Express Edition」の自作構築に挑戦します。PaaSとIaaSでどれだけ世界が変わるのか?インフラエンジニア必見の回となります。どうぞお楽しみに!