8
Managing Tablespaces and Data Files
Copyright © Oracle Corporation, 2002. All rights reserved.
Objectives
After completing this lesson, you should be able to do
the following:
• Define the purpose of tablespaces and data files
• Create tablespaces
• Manage tablespaces
• Create and manage tablespaces using Oracle
Managed Files (OMF)
• Obtain tablespace information
8-2
Copyright © Oracle Corporation, 2002. All rights reserved.
Tablespaces and Data Files
Oracle stores data logically in tablespaces and
physically in data files.
• Tablespaces:
– Can belong to only one database at a time
– Consist of one or more data files
– Are further divided into logical units of storage
• Data files:
– Can belong to only one
tablespace and one database
– Are a repository for schema
object data
8-3
Database
Tablespace
Data files
Copyright © Oracle Corporation, 2002. All rights reserved.
Types of Tablespaces
• SYSTEM tablespace
– Created with the database
– Contains the data dictionary
– Contains the SYSTEM undo segment
• Non-SYSTEM tablespace
– Separate segments
– Eases space administration
– Controls amount of space allocated to a user
8-4
Copyright © Oracle Corporation, 2002. All rights reserved.
Creating Tablespaces
A tablespace is created using the command:
CREATE TABLESPACE
CREATE TABLESPACE userdata
DATAFILE '/u01/oradata/userdata01.dbf' SIZE 5M;
8-5
Copyright © Oracle Corporation, 2002. All rights reserved.
Space Management in Tablespaces
• Locally managed tablespace:
–
–
–
–
Free extents are managed in the tablespace.
Bitmap is used to record free extents.
Each bit corresponds to a block or group of blocks.
Bit value indicates free or used.
• Dictionary-managed tablespace:
– Free extents are managed by the data dictionary.
– Appropriate tables are updated when extents are
allocated or deallocated.
8-9
Copyright © Oracle Corporation, 2002. All rights reserved.
Locally Managed Tablespaces
• Reduced contention on data dictionary tables
• No undo generated when space allocation or
deallocation occurs
• No coalescing required
CREATE TABLESPACE userdata
DATAFILE '/u01/oradata/userdata01.dbf' SIZE 500M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;
8-10
Copyright © Oracle Corporation, 2002. All rights reserved.
Dictionary-Managed Tablespaces
• Extents are managed in the data dictionary.
• Each segment stored in the tablespace can have a
different storage clause.
• Coalescing is required.
CREATE TABLESPACE userdata
DATAFILE '/u01/oradata/userdata01.dbf'
SIZE 500M EXTENT MANAGEMENT DICTIONARY
DEFAULT STORAGE
(initial 1M NEXT 1M PCTINCREASE 0);
8-12
Copyright © Oracle Corporation, 2002. All rights reserved.
Migrating a Dictionary-Managed
SYSTEM Tablespace
Migrate a dictionary managed SYSTEM tablespace to
locally managed:
DBMS_SPACE_ADMIN.
TABLESPACE_MIGRATE_TO_LOCAL('SYSTEM');
8-13
Copyright © Oracle Corporation, 2002. All rights reserved.
Undo Tablespace
•
•
•
•
Used to store undo segments
Cannot contain any other objects
Extents are locally managed
Can only use the DATAFILE and EXTENT
MANAGEMENT clauses
CREATE UNDO TABLESPACE undo1
DATAFILE '/u01/oradata/undo01.dbf' SIZE 40M;
8-14
Copyright © Oracle Corporation, 2002. All rights reserved.
Temporary Tablespaces
•
•
•
•
Used for sort operations
Can be shared by multiple users
Cannot contain any permanent objects
Locally managed extents recommended
CREATE TEMPORARY TABLESPACE temp
TEMPFILE '/u01/oradata/temp01.dbf' SIZE 20M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 4M;
8-15
Copyright © Oracle Corporation, 2002. All rights reserved.
Default Temporary Tablespace
• Specifies a database-wide default temporary
tablespace
• Eliminates using SYSTEM tablespace for storing
temporary data
• Can be created by using:
– CREATE DATABASE
– ALTER DATABASE
8-18
Copyright © Oracle Corporation, 2002. All rights reserved.
Creating a Default Temporary Tablespace
• During database creation:
CREATE DATABASE DBA01
LOGFILE
GROUP 1 ('/$HOME/ORADATA/u01/redo01.log') SIZE 100M,
GROUP 2 ('/$HOME/ORADATA/u02/redo02.log') SIZE 100M,
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
DATAFILE '/$HOME/ORADATA/u01/system01.dbf' SIZE 325M
UNDO
– TABLESPACE undotbs
DATAFILE '/$HOME/ORADATA/u02/undotbs01.dbf' SIZE 200
DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE '/$HOME/ORADATA/u03/temp01.dbf' SIZE 4M
CHARACTER SET US7ASCII
8-19
Copyright © Oracle Corporation, 2002. All rights reserved.
Creating a Default Temporary Tablespace
• After database creation:
ALTER DATABASE
DEFAULT TEMPORARY TABLESPACE default_temp2;
• To find the default temporary tablespace for the
database query DATABASE_PROPERTIES:
SELECT * FROM DATABASE_PROPERTIES;
8-20
Copyright © Oracle Corporation, 2002. All rights reserved.
Restrictions on Default
Temporary Tablespace
Default temporary tablespaces cannot be:
• Dropped until after a new default is made available
• Taken offline
• Altered to a permanent tablespace
8-22
Copyright © Oracle Corporation, 2002. All rights reserved.
Read-Only Tablespaces
• Use the following command to place a tablespace in
read-only mode:
ALTER TABLESPACE userdata READ ONLY;
– Causes a checkpoint
– Data available only for read operations
– Objects can be dropped from tablespace
8-23
Copyright © Oracle Corporation, 2002. All rights reserved.
Taking a Tablespace Offline
• Not available for data access
• Tablespaces that cannot be taken offline:
– SYSTEM tablespace
– Tablespaces with active undo segments
– Default temporary tablespace
• To take a tablespace offline:
ALTER TABLESPACE userdata OFFLINE;
• To bring a tablespace online:
ALTER TABLESPACE userdata ONLINE;
8-26
Copyright © Oracle Corporation, 2002. All rights reserved.
Changing Storage Settings
• Using ALTER TABLESPACE command to change
storage settings:
ALTER TABLESPACE userdata MINIMUM EXTENT 2M;
ALTER TABLESPACE userdata
DEFAULT STORAGE (INITIAL 2M NEXT 2M
MAXEXTENTS 999);
• Storage settings for locally managed tablespaces
cannot be altered.
8-29
Copyright © Oracle Corporation, 2002. All rights reserved.
Resizing a Tablespace
A tablespace can be resized by:
• Changing the size of a data file:
– Automatically using AUTOEXTEND
– Manually using ALTER DATABASE
• Adding a data file using ALTER TABLESPACE
8-31
Copyright © Oracle Corporation, 2002. All rights reserved.
Enabling Automatic Extension
of Data Files
• Can be resized automatically with the following
commands:
– CREATE DATABASE
– CREATE TABLESPACE
– ALTER TABLESPACE … ADD DATAFILE
• Example:
CREATE TABLESPACE user_data
DATAFILE
'/u01/oradata/userdata01.dbf' SIZE 200M
AUTOEXTEND ON NEXT 10M MAXSIZE 500M;
• Query the DBA_DATA_FILES view to determine
whether AUTOEXTEND is enabled.
8-33
Copyright © Oracle Corporation, 2002. All rights reserved.
Manually Resizing a Data File
• Manually increase or decrease a data file size using
ALTER DATABASE.
• Resizing a data file adds more space without adding
more data files.
• Manual resizing of a data file reclaims unused space
in database.
• Example:
ALTER DATABASE
DATAFILE '/u03/oradata/userdata02.dbf'
RESIZE 200M;
8-36
Copyright © Oracle Corporation, 2002. All rights reserved.
Adding Data Files to a Tablespace
• Increases the space allocated to a tablespace by
adding additional data files
• ADD DATAFILE clause is used to add a data file
• Example:
ALTER TABLESPACE user_data
ADD DATAFILE '/u01/oradata/userdata03.dbf'
SIZE 200M;
8-37
Copyright © Oracle Corporation, 2002. All rights reserved.
Methods for Moving Data Files
• ALTER TABLESPACE
– Tablespace must be offline.
– Target data files must exist.
ALTER TABLESPACE userdata RENAME
DATAFILE '/u01/oradata/userdata01.dbf'
TO '/u02/oradata/userdata01.dbf';
8-39
Copyright © Oracle Corporation, 2002. All rights reserved.
Methods for Moving Data Files
• ALTER DATABASE
– Database must be mounted.
– Target data file must exist.
ALTER DATABASE RENAME
FILE '/u01/oradata/system01.dbf'
TO '/u03/oradata/system01.dbf';
8-40
Copyright © Oracle Corporation, 2002. All rights reserved.
Dropping Tablespaces
• You cannot drop a tablespace if it:
– Is the SYSTEM tablespace
– Has active segments
• INCLUDING CONTENTS drops the segments.
• INCLUDING CONTENTS AND DATAFILES deletes
data files.
• CASCADE CONSTRAINTS drops all referential
integrity constraints.
DROP TABLESPACE userdata
INCLUDING CONTENTS AND DATAFILES;
8-42
Copyright © Oracle Corporation, 2002. All rights reserved.