Redo logs are transaction journals. Each
transaction is recorded in the redo logs. Redo logs are used in a
serial fashion with each transaction queuing up in the redo log
buffers and being written one at a time into the redo logs. Redo logs
as a general rule should switch about every thirty minutes. However,
you may need to adjust the time up or down depending on the importance
of your data. The rule of thumb is to size the redo logs such that you
only loose the amount of data you can stand to loose should for some
reason the online redo log become corrupt. With modern Oracle redo log
mirroring and with disk array mirroring and various forms of online
disk repair and replacement the occurrence of redo log corruptions has
dropped to practically zero, so size based on the number of archive
logs you want to apply should the database fail just before your next
backup.
The LOG_BUFFER_SIZE and LOG_BUFFERS parameters
control the redo log buffers. The LOG_BUFFER_SIZE should be set to
reduce the number of writes required per redo log but not be so large
that it results in an excessive IO wait time. Some studies have shown
that sizing bigger than one megabyte rarely results in performance
gains. Generally I size the LOG_BUFFER_SIZE such that it is equal to
or results in an even divisor of the redo log size.
Monitor redo logs using the alert log,
V$LOGHIST, V$LOGFILE, V$RECOVERY_LOG and V$LOG DPTs.
Control files are created when the database is
created. Control file size is determined by a number of initialization
parameters and really shouldn’t concern you. However, if you are using
raw devices for control files make sure the raw partition is sized to
allow the control file to grow in Oracle8 and Oracle8i databases as
backup information is added. Each database instance must have at least
one control file of it will not start. Loss of all control files will
cause the database to crash. Have at least two copies on physically
separate disk arrays or devices.
I suggest maintaining a script to rebuild your
control files. The control file rebuild script should be recreated
after each physical change to the database. The command CREATE
CONTROLFILE is used to manually create a controlfile. However, the
ALTER DATABASE BACKUP CONTROL FILE TO TRACE command is the preferred
method to generate a script that can be used to rebuild the control
file if it becomes damaged.
Although not normally discussed as a database
file a database will not startup without a valid initialization
parameter file. The file is only read at startup and contains the
information required to set up the SGA, control file locations, trace
and dump file locations and setup parameters for multi-threaded
server, parallel query and Oracle Parallel Server. I suggest keeping a
copy in a secure place incase yours ever becomes corrupted, deleted or
damaged. The Oracle Reference, which is included in the Oracle8 and
Oracle8i documentation set, provides descriptions of all
initialization parameters. There are also undocumented initialization
parameters that allow specialized behaviors to be configured. Both the
documented and undocumented initialization parameters are covered in
my book “ORACLE8i Administration and Management” from Wiley and Sons.
It should be obvious that the most important
file regarding database setup and operation is probably the INIT<sid>.ORA,
or initialization file. This file contains the assignments for the
database initialization parameters.
For Oracle7, version 7.3, there are 154
initialization parameters, for Oracle8, version 8.0.5, there are 184.
In Oracle8i there are 194. Table 11 is a list of the Oracle8i INIT.ORA
parameters, their default values, and descriptions. Note that on your
platform there may be more or less than this number of parameters.
|
NAME |
VALUE |
DESCRIPTION |
|
O7_DICTIONARY_ACCESSIBILITY |
TRUE |
V7 Dictionary accessibility Support
(Migration only) |
|
ALWAYS_ANTI_JOIN |
NESTED_LOOPS |
Always use this anti-join when possible |
|
ALWAYS_SEMI_JOIN |
standard |
Always use this semi-join when possible
|
|
AQ_TM_PROCESSES |
0 |
Number of AQ Time Managers to start |
|
AUDIT_FILE_DEST |
(PD) |
Destination for audit files |
|
AUDIT_TRAIL |
NONE |
Enable system auditing |
|
BACKGROUND_CORE_DUMP |
PARTIAL |
Sets whether SGA is dumped with core file
dump, PARTIAL means don't dump SGA. |
|
BACKGROUND_DUMP_DEST |
(PD) |
Detached process dump directory |
|
BACKUP_TAPE_IO_SLAVES |
FALSE |
BACKUP Tape I/O slaves |
|
BITMAP_MERGE_AREA_SIZE |
1048576 |
Maximum memory allow for BITMAP MERGE |
|
BLANK_TRIMMING |
FALSE |
Blank trimming semantics parameter |
|
BUFFER_POOL_KEEP |
0 |
Number of database blocks/latches in KEEP
buffer pool |
|
BUFFER_POOL_RECYCLE |
0 |
Number of database blocks/latches in
recycle buffer pool |
|
COMMIT_POINT_STRENGTH |
1 |
Bias this node has toward not preparing in
a two-phase commit |
|
COMPATIBLE |
8.1.0 |
Database will be compatible with this
software version |
|
CONTROL_FILE_RECORD_KEEP_TIME |
7 |
Control file record keep time in days |
|
CONTROL_FILES |
(PD) |
Control file names list |
|
CORE_DUMP_DEST |
(PD) |
Destination for core dump files. |
|
CPU_COUNT |
(PD) |
Number of cpu's for this instance |
|
CREATE_BITMAP_AREA_SIZE |
8388608 |
Size of create bitmap buffer for bitmap
index |
|
CURSOR_SPACE_FOR_TIME |
FALSE |
Use more memory in order to get faster
execution |
|
DB_BLOCK_BUFFERS |
8000 |
Number of database blocks cached in
memory |
|
DB_BLOCK_CHECKING |
TRUE |
Data and index block checking overrides
events 10210 and 10211 |
|
DB_BLOCK_CHECKSUM |
FALSE |
Store checksum in db blocks and check
during reads |
|
DB_BLOCK_LRU_LATCHES |
1|CPU_COUNT/2 |
Number of lru latches |
|
DB_BLOCK_MAX_DIRTY_TARGET |
DB_BLOCK_BUFFERS |
Upper bound on modified buffers/recovery
reads |
|
DB_BLOCK_SIZE |
(PD) |
Size of database block in bytes |
|
DB_DOMAIN |
WORLD |
Directory part of global database name
stored with CREATE DATABASE |
|
DB_FILE_DIRECT_IO_COUNT |
64 |
Sequential I/O block count |
|
DB_FILE_MULTIBLOCK_READ_COUNT |
8 |
Db blocks read for each IO |
|
DB_FILE_NAME_CONVERT |
NULL |
Datafile name convert pattern and string
for standby/clone database |
|
DB_FILES |
MAXDATAFILES |
Max allowable # db files |
|
DB_NAME |
(PD) |
Database name specified in CREATE DATABASE |
|
DB_WRITER_PROCESSES |
1 |
Number of background database writer
processes to start |
|
DBLINK_ENCRYPT_LOGIN |
FALSE |
Enforce password for distributed login
always be encrypted |
|
DBWR_IO_SLAVES |
0 |
Number of DBWR I/O slaves |
|
DELAYED_LOGGING_BLOCK_CLEANOUTS |
TRUE |
Turns delayed block cleanout on or off |
|
DISK_ASYNCH_IO |
TRUE |
Use asynch I/O for random access devices |
|
DISTRIBUTED_TRANSACTIONS |
(PD) |
Max. number of concurrent distributed
transactions |
|
DML_LOCKS |
4*Trans. |
Dml locks - one for each table modified in
a transaction |
|
ENQUEUE_RESOURCES |
Derived |
Resources for enqueues |
|
EVENT |
NULL |
Debug event control |
|
FIXED_DATE |
NULL |
Fixed SYSDATE value |
|
FREEZE_DB_FOR_FAST_INSTANCE_RECOVERY |
FALSE |
Freeze database during instance recovery
(OPS) |
|
GC_DEFER_TIME |
10 |
How long to defer down converts for hot
buffers (DFS)(OPS) |
|
GC_FILES_TO_LOCKS |
NULL |
Mapping between file numbers and lock
buckets (DFS)(OPS) |
|
GC_RELEASABLE_LOCKS |
0 |
Number of releasable locks (DFS)(OPS) |
|
GC_ROLLBACK_LOCKS |
20 |
Locks for the rollback segments (DFS)(OPS) |
|
GLOBAL_NAMES |
TRUE |
Enforce that database links have same name
as remote database |
|
HASH_AREA_SIZE |
2*SORT |
Size of in-memory hash work area |
|
HASH_JOIN_ENABLED |
TRUE |
Enable/disable hash join |
|
HASH_MULTIBLOCK_IO_COUNT |
1 |
Number of blocks hash join will read/write
at once |
|
HI_SHARED_MEMORY_ADDRESS |
0 |
SGA starting address (high order 32-bits
on 64-bit platforms) |
|
HS_AUTOREGISTER |
TRUE |
Enable automatic server DD updates in HS
agent self-registration |
|
IFILE |
NULL |
Include file in init.ora |
|
INSTANCE_GROUPS |
NULL |
List of instance group names |
|
INSTANCE_NAME |
NULL |
Instance name supported by the instance |
|
|
|
|
|
INSTANCE_NUMBER |
0 |
Instance number |
|
JAVA_POOL_SIZE |
10000K |
Size in bytes of the Java pool |
|
JOB_QUEUE_INTERVAL |
60 |
Wakeup interval in seconds for job queue
processes |
|
JOB_QUEUE_KEEP_CONNECTIONS |
FALSE |
Keep network connections between execution
of jobs |
|
JOB_QUEUE_PROCESSES |
0 |
Number of job queue processes to start |
|
LARGE_POOL_SIZE |
0 |
Size in bytes of the large allocation pool
(auto set at 600k) |
|
LICENSE_MAX_SESSIONS |
0 |
Maximum number of non-system user sessions
allowed |
|
LICENSE_MAX_USERS |
0 |
Maximum number of named users that can be
created in the database |
|
LICENSE_SESSIONS_WARNING |
0 |
Warning level for number of non-system
user sessions |
|
LM_LOCKS |
12000 |
Number of locks configured for the lock
manager (OPS) |
|
LM_PROCS |
64 |
Number of client processes configured for
the lock manager (OPS) |
|
LM_RESS |
6000 |
Number of resources configured for the
lock manager (OPS) |
|
LOCAL_LISTENER |
NULL |
Local listener |
|
LOCK_NAME_SPACE |
NULL |
Lock name space used for generating lock
names for standby/clone database |
|
LOCK_SGA |
FALSE |
Lock entire SGA in physical memory |