Transcript extent

Chapter 6
Basic Storage Concepts
and Settings
Oracle9i Database Administrator: Implementation and Administration
1
Objectives
 Differentiate between logical and
physical structures
 Create many types of tablespaces
 Configure and view storage for
tablespaces and datafiles
 Use undo data
Oracle9i Database Administrator: Implementation and Administration
2
Introduction to Storage Structures
Internal structures store:

The structure of every table, view,
and other objects you create

The data you load into your tables
and other objects

Information about the structure of
tables, views, etc. (metadata)
Oracle9i Database Administrator: Implementation and Administration
3
Introduction to Storage Structures
Physical
structures:
•Datafiles
•Operating system
blocks
•Redo log files
•Control files
Oracle9i Database Administrator: Implementation and Administration
4
Introduction to Storage Structures
Logical Structures:
•Data block
•Extent
•Segment
•Schema object
•Tablespace
Oracle9i Database Administrator: Implementation and Administration
5
Introduction to Storage Structures
Logical data
blocks map
directly to
contiguous
operating
system blocks
in datafiles
Oracle9i Database Administrator: Implementation and Administration
6
Tablespaces and Datafiles
CREATE TABLESPACE <tablespacename>
DATAFILE <filename> SIZE <nn> AUTOEXTEND ON|OFF
TEMPORARY|PERMANENT
EXTENT MANAGEMENT LOCAL|DICTIONARY
LOGGING|NOLOGGING
ONLINE|OFFLINE
SEGMENT SPACE MANAGEMENT MANUAL|AUTO
Add multiple files, separated by commas if
needed
Clause is required for user managed files
Clause is optional when using OMF
Can be used to specify SIZE of OMF file
Note: additional sub-clauses shown later
Oracle9i Database Administrator: Implementation and Administration
7
Tablespaces and Datafiles
CREATE TABLESPACE <tablespacename>
DATAFILE <filename> SIZE <nn> AUTOEXTEND ON|OFF
TEMPORARY|PERMANENT
EXTENT MANAGEMENT LOCAL|DICTIONARY
LOGGING|NOLOGGING
ONLINE|OFFLINE
SEGMENT SPACE MANAGEMENT MANUAL|AUTO
TEMPORARY: This option used only when
creating temporary tablespaces that are
dictionary-managed.
PERMANENT: Default option; stores permanent
objects such as tables and indexes
Oracle9i Database Administrator: Implementation and Administration
8
Tablespaces and Datafiles
CREATE TABLESPACE <tablespacename>
DATAFILE <filename> SIZE <nn> AUTOEXTEND ON|OFF
TEMPORARY|PERMANENT
EXTENT MANAGEMENT LOCAL|DICTIONARY
LOGGING|NOLOGGING
ONLINE|OFFLINE
SEGMENT SPACE MANAGEMENT MANUAL|AUTO
LOCAL: Default; tablespace manages extent
free space in a bitmap inside the tablespace
DICTIONARY: tablespace manages extent free
space in the data dictionary
Note: additional sub-clauses shown later
Oracle9i Database Administrator: Implementation and Administration
9
Tablespaces and Datafiles
CREATE TABLESPACE <tablespacename>
DATAFILE <filename> SIZE <nn> AUTOEXTEND ON|OFF
TEMPORARY|PERMANENT
EXTENT MANAGEMENT LOCAL|DICTIONARY
LOGGING|NOLOGGING
ONLINE|OFFLINE
SEGMENT SPACE MANAGEMENT MANUAL|AUTO
LOGGING: Default; all DML, DDL, and mass
INSERT commands recorded in redo log
NOLOGGING: only DML commands recorded in
redo log
Oracle9i Database Administrator: Implementation and Administration
10
Tablespaces and Datafiles
CREATE TABLESPACE <tablespacename>
DATAFILE <filename> SIZE <nn> AUTOEXTEND ON|OFF
TEMPORARY|PERMANENT
EXTENT MANAGEMENT LOCAL|DICTIONARY
LOGGING|NOLOGGING
ONLINE|OFFLINE
SEGMENT SPACE MANAGEMENT MANUAL|AUTO
ONLINE: Default; available for use
OFFLINE: not available for use
Oracle9i Database Administrator: Implementation and Administration
11
Tablespaces and Datafiles
CREATE TABLESPACE <tablespacename>
DATAFILE <filename> SIZE <nn> AUTOEXTEND ON|OFF
TEMPORARY|PERMANENT
EXTENT MANAGEMENT LOCAL|DICTIONARY
LOGGING|NOLOGGING
ONLINE|OFFLINE
SEGMENT SPACE MANAGEMENT MANUAL|AUTO
AUTO: Manages segment free space in a
bitmap in the tablespace
MANUAL: Manages segment free space in the
data dictionary
Oracle9i Database Administrator: Implementation and Administration
12
Implementing OMF With
Tablespaces
DB_CREATE_FILE_DEST must be set:

In init<sid>.ora

Or, during session
CREATE TABLESPACE command:

Omit DATAFILE clause in

Or, include DATAFILE clause but only include
SIZE clause (omit file name)
Oracle9i Database Administrator: Implementation and Administration
13
The DATAFILE Clause
DATAFILE '<datafilename>'
SIZE <nn>|REUSE
AUTOEXTEND ON|OFF
MAXSIZE <nn>|UNLIMITED
AUTOEXTEND ON: Allow file to expand when Oracle
determines more space is needed
 AUTOEXTEND OFF: Do not expand file
SIZE <nn>: Specify size in bytes, kilobytes, or megabytes
 REUSE: File already exists
Oracle9i Database Administrator: Implementation and Administration
14
The DATAFILE Clause
DATAFILE '<datafilename>'
SIZE <nn>|REUSE
AUTOEXTEND ON|OFF
MAXSIZE <nn>|UNLIMITED
Used with AUTOEXTEND ON:
MAXSIZE <nn>: Specify maximum file size in bytes,
kilobytes, or megabytes
 UNLIMITED: File can grow to limits of operating system
Oracle9i Database Administrator: Implementation and Administration
15
The EXTENT MANAGEMENT and
SEGMENT SPACE MANAGEMENT Clauses
Syntax for: EXTENT MANAGEMENT LOCAL:
EXTENT MANAGEMENT LOCAL|DICTIONARY
AUTOALLOCATE|UNIFORM SIZE <nn>
SEGMENT SPACE MANAGEMENT MANUAL|AUTO
MINIMUM
EXTENT
<nn>
AUTO: Manages
segment
free space in a bitmap in the tablespace
MANUAL: Manages segment free space in the data dictionary
DEFAULT STORAGE (INITIAL <nn> NEXT <nn>
PCTINCREASE <nn>
AUTOALLOCATE: Allow the system to manage extent size for all tables
MINEXTENTS
MAXEXTENTS <nn>)
and other objects
created in the<nn>
tablespace
UNIFORM SIZE <nn>: Require the specified extent size for all tables and
other objects created in the tablespace
Oracle9i Database Administrator: Implementation and Administration
16
The EXTENT MANAGEMENT and
SEGMENT SPACE MANAGEMENT Clauses
Syntax for dictionary-managed tablespace:
EXTENT MANAGEMENT LOCAL|DICTIONARY
SEGMENT SPACE MANAGEMENT MANUAL|AUTO
Minimum extent size allowed for any object created in the tablespace
AUTOALLOCATE|UNIFORM SIZE <nn>
MINIMUM EXTENT <nn>
DEFAULT STORAGE
(INITIAL <nn> NEXT <nn> PCTINCREASE <nn>
MINEXTENTS <nn> MAXEXTENTS <nn>)
Default storage settings for any object created in the
tablespace without a STORAGE clause of its own
Oracle9i Database Administrator: Implementation and Administration
17
The EXTENT MANAGEMENT Clause
Example of dictionary-managed datafile
Example: A new table
needing 6 M of space
skips over the
deallocated extents
Coalesce free space
periodically to
combine deallocated
extents
Oracle9i Database Administrator: Implementation and Administration
18
Creating a Dictionary-Managed
Tablespace

Example:
CREATE TABLESPACE USER_TEST
DATAFILE 'D:\oracle\data\user_test01.dbf' SIZE 250M
AUTOEXTEND ON
EXTENT MANAGEMENT DICTIONARY
MINIMUM EXTENT 15M
DEFAULT STORAGE (INITIAL 90M NEXT 15M PCTINCREASE 0
MINEXTENTS 1 MAXEXTENTS 50);
Oracle9i Database Administrator: Implementation and Administration
19
Creating a Locally Managed
Tablespace
Example of locally managed datafile
All new tables must
use extents of the
same size or
multiples of the size
Example: A new table
needing a 10M extent
would use the free
space from two 5 M
deallocated extents
Deallocated extents
are automatically
coalesced
Oracle9i Database Administrator: Implementation and Administration
20
Creating a Locally Managed
Tablespace

Example:
CREATE TABLESPACE USER_AUTO
DATAFILE '<C:oracle\oradata\user_auto01.dbf'
SIZE 20M AUTOEXTEND OFF
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
SEGMENT SPACE MANAGEMENT AUTO;
Oracle9i Database Administrator: Implementation and Administration
21
Segment Types and Their Uses





Data segment: for tables, object tables,
triggers
Index segment: for indexes
Temporary segment: for sorting
operations and temporary tables
Rollback segment: for undo data
LOB segment: for LOB data stored
separately from the rest of the table’s
data
Oracle9i Database Administrator: Implementation and Administration
22
Temporary Tablespaces

Oracle recommends creating locally
managed temporary tablespaces

Used for temporary segments

Command syntax:
CREATE TEMPORARY TABLESPACE <tablespacename>
TEMPFILE <filename> SIZE <nn> AUTOEXTEND ON|OFF
EXTENT MANAGEMENT LOCAL UNIFORM SIZE <nn>
Oracle9i Database Administrator: Implementation and Administration
23
Tablespaces With Nonstandard
Data Block Size

Can be 2 K, 4 K, 8 K, 16 K, or 32 K

Requires a special memory cache that
matches the block size

Create cache by setting the appropriate
initialization parameter:

DB_2K_CACHE_SIZE

DB_4K_CACHE_SIZE

DB_8K_CACHE_SIZE

DB_16K_CACHE_SIZE

DB_32K_CACHE_SIZE
Oracle9i Database Administrator: Implementation and Administration
24
Tablespaces With Nonstandard
Data Block Size
Example:
CREATE TABLESPACE TBS_2K
DATAFILE '<C:\oracle\oradata\tbs_2k.dbf'
SIZE 4M BLOCKSIZE 2K;
Oracle9i Database Administrator: Implementation and Administration
25
Configuring and Viewing Storage
Changes you can make to a tablespace:


LOGGING/NOLOGGING

PERMANENT/TEMPORARY

READ ONLY/READ WRITE

Coalesce contiguous storage space

Add new datafile

Rename a datafile

Change size of a datafile
Oracle9i Database Administrator: Implementation and Administration
26
Configuring and Viewing Storage
Syntax:
ALTER TABLESPACE <tablespacename>
ADD|RENAME DATAFILE <filename>
SIZE <nn> AUTOEXTEND ON|OFF REUSE
DEFAULT STORAGE (INITIAL <nn> NEXT <nn>
PCTINCREASE <nn>
MINEXTENTS <nn> MAXEXTENTS <nn>)
MINIMUM EXTENT <nn>
COALESCE
Oracle9i Database Administrator: Implementation and Administration
27
Configuring and Viewing Storage
Taking a tablespace offline:

Stops it from being accessed by users
Methods for taking a tablespace offline:

NORMAL: default

TEMPORARY: for damaged datafiles

IMMEDIATE: for damaged disk (media)
Oracle9i Database Administrator: Implementation and Administration
28
Read-only Tablespaces

Can only be queried

No inserts, updates, or deletes

Example:
ALTER TABLESPACE ACCOUNTING READ ONLY;
Oracle9i Database Administrator: Implementation and Administration
29
Dropping Tablespaces

Syntax:
DROP TABLESPACE <tablespacename>
INCLUDING CONTENTS
AND DATAFILES
CASCADE CONSTRAINTS;
Use when there are constraints outside the
tablespace that reference this tablespace
Use when there is
data in the tablespace
Oracle9i Database Administrator: Implementation and Administration
30
Querying the Data Dictionary For
Storage Data
Oracle9i Database Administrator: Implementation and Administration
31
Querying the Data Dictionary For
Storage Data
Example:
Find adjacent free extents that should be
coalesced
SELECT BLOCK_ID, BLOCK_ID+BLOCKS
NEXT_BLOCK_ID, BLOCKS
FROM DBA_FREE_SPACE
WHERE TABLESPACE_NAME = 'USERS'
ORDER BY BLOCK_ID;
Oracle9i Database Administrator: Implementation and Administration
32
Querying the Data Dictionary For
Storage Data
Identifying
adjacent free
sets of blocks
Oracle9i Database Administrator: Implementation and Administration
33
Overview of Undo Data

Undo data is made of undo blocks

Contain before images of data blocks

Assist in read-consistency

Two methods for managing:

Manual: the old way (with manually created redo
segments)

Automatic: the new way (with undo tablespace)
Oracle9i Database Administrator: Implementation and Administration
34
Implementing Automatic Undo
Management
Requirements:
Set initialization parameters:


UNDO_MANAGEMENT=AUTO

UNDO_TABLESPACE=<tablespacename>
Create UNDO tablespace:


While creating the database

Later with CREATE UNDO TABLESPACE command
Oracle9i Database Administrator: Implementation and Administration
35
Implementing Automatic Undo
Management
Optional initialization parameters:

UNDO_RETENTION: time in seconds that undo
data is saved after commit (default is 900 seconds)

UNDO_SURPRESS_ERRORS: defines error
handling when transitioning from manual to
automatic undo management
Oracle9i Database Administrator: Implementation and Administration
36
Chapter Summary

Database structures are divided into logical
and physical groups

Physical structures include datafiles, control
files, and redo log files

Logical structures include tablespaces,
extents, and data blocks

A tablespace always has at least one datafile
where its data is stored

Locally managed tablespaces use a bitmap to
track extent free space
Oracle9i Database Administrator: Implementation and Administration
37
Chapter Summary

When using OMF, omit the DATAFILE clause
in the CREATE TABLESPACE command

AUTOEXTEND ON allows a datafile to grow
as needed

Dictionary-managed tablespaces:


Use the data dictionary to track extent free space

Don’t automatically coalesce free space
Locally managed tablespaces:

Automatically coalesce free space

Keep all extents the same size or a variable systemcontrolled size
Oracle9i Database Administrator: Implementation and Administration
38
Chapter Summary

Types of segments: data, index, temporary,
and rollback

Temporary tablespaces store data while
sorting, and temporary tables

Tablespaces can be ONLINE or OFFLINE

A READ ONLY tablespace is not included in
regular backups or recoveries
Oracle9i Database Administrator: Implementation and Administration
39
Chapter Summary

Dropping a tablespace with INCLUDING
CONTENTS destroys all its data

Data dictionary views for tablespaces
include DBA_TABLESPACES and
DBA_FREE_EXTENTS

Undo data gives users read consistency

Automatic undo management uses an
UNDO tablespace
Oracle9i Database Administrator: Implementation and Administration
40