1 of 48

Managing Tablespaces and Datafiles

8

Copyright © Oracle Corporation, 2001. All rights reserved.

2 of 48

Objectives

After completing this lesson, you should be able to do the following:

    • Define the purpose of tablespaces and datafiles
    • Create tablespaces
    • Manage tablespaces
    • Create and manage tablespaces using Oracle Managed Files (OMF)

8-2

Copyright © Oracle Corporation, 2001. All rights reserved.

3 of 48

Tablespaces and Datafiles

Oracle stores data logically in tablespaces and physically in datafiles.

    • Tablespaces:
      • Can belong to only one database at a time
      • Consist of one or more datafiles
      • Are further divided into logical units of storage
    • Datafiles:
      • Can belong to only one �tablespace and one database
      • Are a repository for schema �object data

Database

Tablespace

Datafiles

8-3

Copyright © Oracle Corporation, 2001. All rights reserved.

4 of 48

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, 2001. All rights reserved.

5 of 48

Creating Tablespaces

A tablespace is created using the command:

CREATE TABLESPACE

CREATE TABLESPACE userdata

DATAFILE '/u01/oradata/userdata01.dbf' SIZE 100M

AUTOEXTEND ON NEXT 5M MAXSIZE 200M;

8-5

Copyright © Oracle Corporation, 2001. All rights reserved.

6 of 48

8-6

Copyright © Oracle Corporation, 2001. All rights reserved.

7 of 48

8-7

Copyright © Oracle Corporation, 2001. All rights reserved.

8 of 48

8-8

Copyright © Oracle Corporation, 2001. All rights reserved.

9 of 48

Space Management in Tablespaces

    • Locally managed tablespace:
      • Free extents 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, 2001. All rights reserved.

10 of 48

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, 2001. All rights reserved.

11 of 48

8-11

Copyright © Oracle Corporation, 2001. All rights reserved.

12 of 48

Dictionary-Managed Tablespaces

    • Extents are managed in the data dictionary
    • Each segment stored in the tablespace can have a different storage clause
    • Coalescing 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, 2001. All rights reserved.

13 of 48

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-13

Copyright © Oracle Corporation, 2001. All rights reserved.

14 of 48

Temporary Tablespaces

    • Used for sort operations
    • Cannot contain any permanent objects
    • Locally managed extents recommended

CREATE TEMPORARY TABLESPACE temp

TEMPFILE '/u01/oradata/temp01.dbf' SIZE 500M

EXTENT MANAGEMENT LOCAL UNIFORM SIZE 4M;

8-14

Copyright © Oracle Corporation, 2001. All rights reserved.

15 of 48

8-15

Copyright © Oracle Corporation, 2001. All rights reserved.

16 of 48

8-16

Copyright © Oracle Corporation, 2001. All rights reserved.

17 of 48

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
        • Locally managed
      • ALTER DATABASE

ALTER DATABASE

DEFAULT TEMPORARY TABLESPACE temp;

8-17

Copyright © Oracle Corporation, 2001. All rights reserved.

18 of 48

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-18

Copyright © Oracle Corporation, 2001. All rights reserved.

19 of 48

Creating a Default Temporary Tablespace

    • After database creation:

    • To find the default temporary tablespace for the database query DATABASE_PROPERTIES

ALTER DATABASE

DEFAULT TEMPORARY TABLESPACE default_temp2;

SELECT * FROM DATABASE_PROPERTIES;

8-19

Copyright © Oracle Corporation, 2001. All rights reserved.

20 of 48

8-20

Copyright © Oracle Corporation, 2001. All rights reserved.

21 of 48

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-21

Copyright © Oracle Corporation, 2001. All rights reserved.

22 of 48

Read Only Tablespaces

    • Use the following command to place a tablespace in read only mode

      • Causes a checkpoint
      • Data available only for read operations
      • Objects can be dropped from tablespace

ALTER TABLESPACE userdata READ ONLY;

8-22

Copyright © Oracle Corporation, 2001. All rights reserved.

23 of 48

8-23

Copyright © Oracle Corporation, 2001. All rights reserved.

24 of 48

8-24

Copyright © Oracle Corporation, 2001. All rights reserved.

25 of 48

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:

    • To bring a tablespace online:

ALTER TABLESPACE userdata OFFLINE;

ALTER TABLESPACE userdata ONLINE;

8-25

Copyright © Oracle Corporation, 2001. All rights reserved.

26 of 48

8-26

Copyright © Oracle Corporation, 2001. All rights reserved.

27 of 48

8-27

Copyright © Oracle Corporation, 2001. All rights reserved.

28 of 48

Changing Storage Settings

    • Using ALTER TABLESPACE command to change storage settings:

    • Storage settings for locally managed tablespaces cannot be altered.

ALTER TABLESPACE userdata MINIMUM EXTENT 2M;

ALTER TABLESPACE userdata

DEFAULT STORAGE (INITIAL 2M NEXT 2M

MAXEXTENTS 999);

8-28

Copyright © Oracle Corporation, 2001. All rights reserved.

29 of 48

8-29

Copyright © Oracle Corporation, 2001. All rights reserved.

30 of 48

Resizing a Tablespace

A tablespace can be resized by:

    • Changing the size of a datafile:
      • Automatically using AUTOEXTEND
      • Manually using ALTER TABLESPACE
    • Adding a datafile using ALTER TABLESPACE

8-30

Copyright © Oracle Corporation, 2001. All rights reserved.

31 of 48

Enabling Automatic Extension �of Datafiles

    • Can be resized automatically with the following commands:
      • CREATE DATABASE
      • CREATE TABLESPACE
      • ALTER TABLESPACE … ADD DATAFILE
    • Example:

    • Query the DBA_DATA_FILES view to determine whether AUTOEXTEND is enabled.

CREATE TABLESPACE user_data

DATAFILE

'/u01/oradata/userdata01.dbf' SIZE 200M

AUTOEXTEND ON NEXT 10M MAXSIZE 500M;

8-31

Copyright © Oracle Corporation, 2001. All rights reserved.

32 of 48

8-32

Copyright © Oracle Corporation, 2001. All rights reserved.

33 of 48

8-33

Copyright © Oracle Corporation, 2001. All rights reserved.

34 of 48

Manually Resizing a Datafile�

    • Manually increase or decrease a datafile size using ALTER DATABASE
    • Resizing a datafile adds more space without adding more datafiles
    • Manual resizing of a datafile reclaims unused space in database
    • Example:

ALTER DATABASE

DATAFILE '/u03/oradata/userdata02.dbf'

RESIZE 200M;

8-34

Copyright © Oracle Corporation, 2001. All rights reserved.

35 of 48

Adding Datafiles to a Tablespace

    • Increases the space allocated to a tablespace by adding additional datafiles
    • ADD DATAFILE clause is used to add a datafile
    • Example:

ALTER TABLESPACE user_data

ADD DATAFILE '/u01/oradata/userdata03.dbf'

SIZE 200M;

8-35

Copyright © Oracle Corporation, 2001. All rights reserved.

36 of 48

8-36

Copyright © Oracle Corporation, 2001. All rights reserved.

37 of 48

Methods for Moving Datafiles�

    • ALTER TABLESPACE
      • Tablespace must be offline
      • Target datafiles must exist

    • Steps to rename a datafile:
      • Take the tablespace offline.
      • Use an OS command to move or copy the files.
      • Execute the ALTER TABLESPACE RENAME DATAFILE command.
      • Bring the tablespace online.
      • Use an OS command to delete the file if necessary.

ALTER TABLESPACE userdata RENAME

DATAFILE '/u01/oradata/userdata01.dbf'

TO '/u02/oradata/userdata01.dbf';

8-37

Copyright © Oracle Corporation, 2001. All rights reserved.

38 of 48

Methods for Moving Datafiles�

    • ALTER DATABASE
      • Database must be mounted
      • Target datafile must exist

ALTER DATABASE RENAME

FILE '/u01/oradata/system01.dbf'

TO '/u03/oradata/system01.dbf';

8-38

Copyright © Oracle Corporation, 2001. All rights reserved.

39 of 48

8-39

Copyright © Oracle Corporation, 2001. All rights reserved.

40 of 48

Dropping Tablespaces

    • Cannot drop a tablespace if it:
      • Is the SYSTEM tablespace
      • Has active segments
    • INCLUDING CONTENTS drops the segments
    • INCLUDING CONTENTS AND DATAFILES deletes datafiles
    • CASCADE CONSTRAINTS drops all referential integrity constraints

DROP TABLESPACE userdata

INCLUDING CONTENTS AND DATAFILES;

8-40

Copyright © Oracle Corporation, 2001. All rights reserved.

41 of 48

8-41

Copyright © Oracle Corporation, 2001. All rights reserved.

42 of 48

8-42

Copyright © Oracle Corporation, 2001. All rights reserved.

43 of 48

Managing Tablespaces Using OMF�

    • Define the DB_CREATE_FILE_DEST parameter in one of the following ways:
      • Initialization parameter file
      • Set dynamically using ALTER SYSTEM command

    • When creating the tablespace:
      • Datafile is automatically created and located in DB_CREATE_FILE_DEST
      • Default size is 100 MB
      • AUTOEXTEND is set to UNLIMITED

ALTER SYSTEM SET

db_create_file_dest = '/u01/oradata/dba01';

8-43

Copyright © Oracle Corporation, 2001. All rights reserved.

44 of 48

Managing Tablespaces with OMF

    • Creating an OMF tablespace:

    • Adding an OMF datafile to an existing tablespace:

    • Dynamically changing default file location:

    • Dropping a tablespace includes deleting OS files:

CREATE TABLESPACE text_data DATAFILE SIZE 20M;

ALTER TABLESPACE text_data ADD DATAFILE;

ALTER SYSTEM SET

db_create_file_dest = '/u01/oradata/dba01';

8-44

Copyright © Oracle Corporation, 2001. All rights reserved.

45 of 48

Obtaining Tablespace Information

Obtaining tablespace and datafile information can be obtained by querying the following:

    • Tablespaces:
      • DBA_TABLESPACES
      • V$TABLESPACE
    • Datafile information:
      • DBA_DATA_FILES
      • V$DATAFILE
    • Temp file information:
      • DBA_TEMP_FILES
      • V$TEMPFILE

8-45

Copyright © Oracle Corporation, 2001. All rights reserved.

46 of 48

Summary

In this lesson, you should have learned how to:

    • Use tablespaces to separate data
    • Create various types of tablespaces
    • Manage tablespaces
    • Manage tablespaces using OMF

8-46

Copyright © Oracle Corporation, 2001. All rights reserved.

47 of 48

Practice 8 Overview

This practice covers the following topics:

    • Creating tablespaces
    • Modifying tablespaces
    • Configuring for and creating a tablespace using OMF

8-47

Copyright © Oracle Corporation, 2001. All rights reserved.

48 of 48

8-48

Copyright © Oracle Corporation, 2001. All rights reserved.