When you step into the world of Oracle databases, one of the first key concepts to understand is “Tablespaces.” This beginner-friendly guide explains what tablespaces are, their roles, how to configure them, and best practices.
1. What Is a Tablespace?
A tablespace is a logical container within Oracle Database for managing physical data storage. Database objects—such as tables and indexes—are stored in tablespaces, which are mapped to one or more physical data files on disk. Tablespaces enable efficient management and organization of database data.
2. Roles of Tablespaces
Tablespaces serve several important functions:
- Data Storage: They hold tables, indexes, and other database objects.
- Logical Management: They abstract away physical file details for easier data organization.
- Performance Optimization: Distributing data across multiple tablespaces can improve I/O performance.
- Security/Protection: You can apply access or encryption settings per tablespace.
3. Pros & Cons of Splitting Tablespaces
Benefits
- Improved Performance
By placing different tablespaces on separate disks, you reduce I/O contention. For example, separating read-heavy from write-heavy data can reduce access conflicts. - Maintenance Flexibility
You can back up, restore, or move a single tablespace without impacting the entire database. - Optimized Storage
Place frequently accessed data on SSD and less-used data on cheaper HDD. - Security Control
Apply different access policies or encryption per tablespace for sensitive data. - Efficient Recovery
Recover just the affected tablespace instead of the entire database.
Drawbacks
- Management Overhead
Multiple tablespaces increase the complexity of file mapping, backups, and monitoring. - Resource Waste
Creating many tablespaces for small datasets can lead to wasted disk space. - Dependency Complexity
Cross-tablespace object dependencies can complicate maintenance or removal. - Performance Risks
Over-segmentation may actually degrade performance in some scenarios. - Backup/Recovery Complexity
Ensuring consistency across multiple tablespaces takes more effort.
4. Types of Tablespaces
Oracle typically uses three main tablespace types:
- SYSTEM: Created automatically at DB creation; holds system data.
- SYSAUX: Stores auxiliary components like AWR and EM repository data.
- User-defined tablespaces: Created by DBAs for application data (tables, indexes).
5. How to Create a Tablespace
You can create tablespaces via SQL*Plus or SQL Developer.
Example:
CREATE TABLESPACE users_data
DATAFILE '/u01/app/oracle/oradata/V19/users_data01.dbf'
SIZE 50M
AUTOEXTEND ON;
SIZE 50M: initial sizeAUTOEXTEND ON: allows the datafile to grow automatically- After execution, verify with:
SELECT file_name, tablespace_name, bytes, autoextensible
FROM dba_data_files
WHERE tablespace_name = 'USERS_DATA';
``` :contentReference[oaicite:40]{index=40}
---
### 6. Managing Tablespaces
Once created, use these commands for management:
- View status:
```sql
SELECT tablespace_name, status
FROM dba_tablespaces;
- Check datafiles:
SELECT file_name, tablespace_name, bytes, autoextensible
FROM dba_data_files;
- Resize datafiles:
ALTER DATABASE DATAFILE '/path/to/users_data01.dbf'
RESIZE 200M;
- Add datafiles:
ALTER TABLESPACE users_data
ADD DATAFILE '/path/to/users_data02.dbf'
SIZE 100M AUTOEXTEND ON;
- Shrink or remove datafiles (requires care):
ALTER DATABASE DATAFILE '/.../users_data02.dbf' RESIZE 50M;
- Drop a tablespace:
DROP TABLESPACE users_data INCLUDING CONTENTS AND DATAFILES;
This removes all data and files—backup and dependency checks are crucial.
7. Summary
Maintaining tablespaces is a key part of managing an Oracle database. In this guide, you learned how to:
- Add storage to a tablespace
- Resize and manage datafiles
- Remove tablespaces safely
With proper tablespace management, you ensure database performance, maintainability, and reliable operations.
[reference]
6.1.6 About Tablespaces

コメント