0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【簡単Oracle DBA】【初心者向け】Oracle 表空间(Tablespace)管理 完全ガイド

0
Posted at

🎯 対象読者

  • Oracle Database 初学者
  • 表空間(Tablespace)の概念を理解したい方
  • ユーザーと表空間の関係を知りたい方
  • ORA-01653 / ORA-01950 エラーを解決したい方

🧩 Tablespace とは

Tablespace は、Oracle Database における 論理的なストレージ単位 です。

構造:

Database
   │
   ├─ Tablespace (論理)
   │      │
   │      └─ Datafile (物理ファイル)
   │
   └─ Tablespace

つまり:

Tablespace = Datafile の論理グループ

📦 Tablespace の役割

Tablespace は以下を保存します:

  • テーブル
  • インデックス
  • ユーザーデータ
  • 一時データ
  • UNDO データ

🧱 主要な Tablespace 種類

Tablespace 用途
SYSTEM データベース管理情報
SYSAUX SYSTEM の補助
USERS 一般ユーザー用
TEMP 一時データ
UNDOTBS1 UNDO データ

確認:

SELECT tablespace_name FROM dba_tablespaces;

📁 Datafile とは

Tablespace は物理ファイル(Datafile)で構成されます。

確認:

SELECT file_name, tablespace_name
FROM dba_data_files;

例:

/u01/app/oracle/oradata/ORCL/users01.dbf

🚀 Tablespace 作成

基本構文:

CREATE TABLESPACE myspace
DATAFILE '/u01/app/oracle/oradata/ORCL/myspace01.dbf'
SIZE 100M;

📈 自動拡張(AUTOEXTEND)付き作成(推奨)

CREATE TABLESPACE myspace
DATAFILE '/u01/app/oracle/oradata/ORCL/myspace01.dbf'
SIZE 100M
AUTOEXTEND ON
NEXT 10M
MAXSIZE UNLIMITED;

意味:

パラメータ 説明
SIZE 初期サイズ
AUTOEXTEND ON 自動拡張
NEXT 拡張サイズ
MAXSIZE 最大サイズ

👤 ユーザーに Tablespace を割り当て

CREATE USER devuser
IDENTIFIED BY devpass
DEFAULT TABLESPACE myspace
TEMPORARY TABLESPACE temp;

🔐 QUOTA(容量制限)設定

ユーザーは QUOTA がないと表を作成できません。

ALTER USER devuser QUOTA UNLIMITED ON myspace;

または:

ALTER USER devuser QUOTA 500M ON myspace;

🧪 Tablespace 使用量確認

SELECT
 tablespace_name,
 SUM(bytes)/1024/1024 AS MB
FROM dba_data_files
GROUP BY tablespace_name;

📊 空き容量確認

SELECT
 tablespace_name,
 SUM(bytes)/1024/1024 AS FREE_MB
FROM dba_free_space
GROUP BY tablespace_name;

🔎 Tablespace 詳細確認

SELECT
 tablespace_name,
 status,
 contents
FROM dba_tablespaces;

➕ Datafile 追加

Tablespace がいっぱいになった場合:

ALTER TABLESPACE myspace
ADD DATAFILE '/u01/app/oracle/oradata/ORCL/myspace02.dbf'
SIZE 100M;

📈 Datafile 拡張

ALTER DATABASE
DATAFILE '/u01/app/oracle/oradata/ORCL/myspace01.dbf'
RESIZE 500M;

🧯 よくあるエラー


ORA-01653: unable to extend table

原因:

Tablespace 容量不足

解決:

ALTER TABLESPACE myspace
ADD DATAFILE '/u01/app/oracle/oradata/ORCL/myspace02.dbf'
SIZE 100M;

または:

ALTER DATABASE DATAFILE 'myspace01.dbf' RESIZE 500M;

ORA-01950: no privileges on tablespace

原因:

QUOTA 未設定

解決:

ALTER USER devuser QUOTA UNLIMITED ON myspace;

🧹 Tablespace 削除

DROP TABLESPACE myspace INCLUDING CONTENTS AND DATAFILES;

意味:

オプション 説明
INCLUDING CONTENTS オブジェクト削除
AND DATAFILES Datafile も削除

🏢 実務ベストプラクティス


✅ 推奨

CREATE TABLESPACE devspace
DATAFILE '/u01/app/oracle/oradata/ORCL/devspace01.dbf'
SIZE 100M
AUTOEXTEND ON
NEXT 50M
MAXSIZE UNLIMITED;

理由:

  • 容量不足防止
  • 運用安定

❌ 非推奨

SYSTEM Tablespace を使用

理由:

  • システム破損リスク

🧠 Tablespace とユーザー関係まとめ

Tablespace
   │
   ▼
User
   │
   ▼
Table
   │
   ▼
Datafile

🔎 管理用おすすめSQLまとめ

Tablespace 一覧:

SELECT tablespace_name FROM dba_tablespaces;

Datafile 一覧:

SELECT file_name FROM dba_data_files;

空き容量:

SELECT tablespace_name, SUM(bytes)/1024/1024 MB
FROM dba_free_space
GROUP BY tablespace_name;

✅ まとめ

よく使うコマンド:

Tablespace 作成:

CREATE TABLESPACE myspace
DATAFILE 'myspace01.dbf'
SIZE 100M
AUTOEXTEND ON;

QUOTA 設定:

ALTER USER devuser QUOTA UNLIMITED ON myspace;

容量拡張:

ALTER TABLESPACE myspace ADD DATAFILE 'myspace02.dbf' SIZE 100M;

削除:

DROP TABLESPACE myspace INCLUDING CONTENTS AND DATAFILES;

🎉 これでできること

  • Tablespace 作成
  • 容量管理
  • Datafile 管理
  • 容量不足エラー対応
  • 実務レベルのストレージ管理

📚 対象DB

本記事は Oracle Database 19c / 21c / 23c に対応しています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?