Database Configuration
and
I/O Issues
Objectives
|
|
|
|
After completing this lesson, you
should be able to |
|
do the following: |
|
Diagnose inappropriate use of SYSTEM,
RBS, TEMP, DATA, and INDEX tablespaces |
|
Use locally managed tablespaces to
avoid space management issues |
|
Detect I/O problems |
|
Ensure that files are distributed to
minimize I/O contention and use appropriate type of devices |
|
Use striping where appropriate |
|
Tune checkpoints |
|
Tune DBWn process I/O |
I/O Statistic for
Different
Oracle File Types
Tablespace Usage
|
|
|
|
Reserve the SYSTEM tablespace for data
dictionary objects |
|
Create locally managed tablespaces to
avoid space management issues |
|
Split tables and indexes into separate
tablespaces |
|
Create separate rollback tablespaces |
|
Store very large database objects in
their own tablespace |
|
Create one or more temporary
tablespaces |
Distributing Files Across
Devices
|
|
|
|
Separate data files and redo log files |
|
Stripe table data |
|
Reduce disk I/O |
|
Evaluate the use of raw devices |
Oracle File Striping
|
|
|
|
Operating system striping: |
|
Use operating system striping software
or RAID |
|
Decide on the right stripe size |
|
Manual striping: |
|
Use the CREATE TABLE or ALTER TABLE
ALLOCATE command |
|
Is worthwhile with parallel query usage |
Tuning Full Table Scan
Operations
|
|
|
|
|
Investigate the need for full table
scans |
|
Specify the initialization
parameter
DB_FILE_MULTIBLOCK_READ_COUNT: |
|
To determine the number of database
blocks the server reads at once |
|
To influence the execution plan of the
cost-based optimizer |
|
Monitor long-running full table scans
with V$SESSION_LONGOPS view |
Diagnostic Tools for
Checking I/O Statistics
I/O Statistics
Redo Log Groups and
Members
Online Redo Log File
Configuration
|
|
|
|
You can configure redo log files as
follows: |
|
Size redo log files to minimize
contention |
|
Have enough groups to prevent waiting |
|
Store redo log files on separate, fast
devices |
|
Query the dynamic performance views
V$LOGFILE and V$LOG |
Archive Log File
Configuration
|
|
|
|
Allow the LGWR to write to a different
disk from the one the ARCn process is reading |
|
Share the archiving work: |
|
|
|
|
|
Change archiving speed:
LOG_ARCHIVE_MAX_PROCESSES, LOG_ARCHIVE_DEST_n, (LOG_ARCHIVE_DUPLEX_DEST,
LOG_ARCHIVE_MIN_SUCCEED_DEST) |
Diagnostic Tools
Checkpoints
|
|
|
|
|
Checkpoints cause: |
|
DBWn to perform I/O |
|
CKPT to update the data file header and
control file |
|
Frequent checkpoints: |
|
Reduce instance recovery time |
|
Decrease run-time performance |
Guidelines
|
|
|
|
|
Size the online redo log files to cut
down the number of checkpoints. |
|
Add online redo log groups to increase
the time before LGWR starts to overwrite. |
|
Regulate checkpoints with the
initialization parameters: |
|
FAST_START_IO_TARGET |
|
LOG_CHECKPOINT_INTERVAL |
|
LOG_CHECKPOINT_TIMEOUT |
|
DB_BLOCK_MAX_DIRTY_TARGET |
Multiple I/O Slaves
|
|
|
|
Provide nonblocking asynchronous I/O
requests |
|
Are deployed by DBWn, LGWR, ARCn, and
backup processes |
|
Are typically not recommended if
asynchronous I/O is available |
|
Follow the naming convention ora_iNnn_SID |
Initialization Parameters
|
|
|
|
|
Deploy I/O slaves for DBWn, LGWR, ARCn,
and BACKUP processes with: |
|
DBWR_IO_SLAVES |
|
BACKUP_TAPE_IO_SLAVES |
|
Turn on or off the asynchronous I/O
with: |
|
DISK_ASYNCH_IO |
|
TAPE_ASYNCH_IO |
Multiple DBWn Processes
|
|
|
|
Deploy multiple DBWn processes with
DB_WRITER_PROCESSES (DBW0 to DBW9) |
|
Useful for SMP systems with large
numbers of CPUs |
|
Cannot concurrently be used with
multiple I/O slaves |
Tuning DBWn I/O
|
|
|
|
Influence the DBWn to write dirty
buffers more often with the parameter DB_BLOCK_MAX_DIRTY_TARGET. |
|
If the number of dirty buffers is under
the computed low limit, DBWn is not agressive for writing checkpoints
buffers. |
|
If the number is between the low and
high computed limits, DBWn writes from the checkpoint queue until the number
of checkpoint buffers drops under low. |
|
If the number is greater than the high
limit, DBWn writes out checkpoint buffers. |
|
The default value is (2*32) – 1. |
Summary
|
|
|
|
In this lesson, you should have learned
how to: |
|
Monitor I/O contention |
|
Stripe Oracle files |
|
Configure tablespaces, online redo log
files, and archived log files |
|
Configure checkpoint frequency |
|
Deploy I/O slaves |
|
Influence DBWn I/Os |