Oracle 9iR2 Server on the Solaris platform

The following are notes on setting up the Oracle 9iR2 server software on the Solaris platform for use with LeasePak. Contact your NetSol representative for more information.

=========
Contents
=========
A. Terminology
B. Oracle software installation
C. Oracle Profile and Listener configuration
D. Oracle initialization parameters
E. Oracle database creation
F. Oracle Net Service Name configuration
G. Oracle tablespaces
H. Oracle database files
I. Oracle instance startup and shutdown
J. Oracle log files
K. Oracle optimizer statistics

Appendix 1 - DBCA instructions

===============
A. Terminology
===============
The terms 'Oracle database' and 'LeasePak database' are not synonymous.
Nor are the terms 'Oracle database' and 'Oracle instance'.

An Oracle database is a physical database.  It's a set of physical files (datafiles, control files, redo log files, etc)
which together constitute an Oracle database.

An Oracle schema is a collection of database objects, such as tables, views, indexes, and stored procedures.  An Oracle
database can contain multiple Oracle schemas.

A LeasePak database is a logical database.  It's a set of LeasePak tables, views, indexes, stored procedures, and other
objects.  A LeasePak database is implemented as an Oracle schema within an Oracle database.  An Oracle database can 
contain multiple LeasePak databases. An Oracle schema can contain a maximum of one LeasePak database.

Not every Oracle schema contains a LeasePak database.  If an Oracle schema contains a LeasePak database, the Oracle schema
name will be the same as the LeasePak database name.

Each LeasePak database has a Database Owner (DBO).  The DBO is the Oracle user who owns the Oracle schema that contains
the LeasePak database.  The DBO name is always the same as both the LeasePak database name and the Oracle schema name.

An Oracle instance is the set of operating system processes and shared memory segments that operate on an Oracle database. 
A new instance is created each time Oracle is started, and the instance is destroyed when Oracle is shutdown.

The Oracle database name and instance name are usually the same.

The term 'database name' in this document refers to the name of an Oracle physical database, not the name of a LeasePak
logical database.  The term 'LeasePak schema' is used when referring to a LeasePak logical database.

================================
B. Oracle software installation
================================
Install the Oracle software according to the following Oracle manuals:
    - Oracle9i Installation Guide Release 2 for UNIX Systems
    - Oracle9i Release Notes Release 2 for Sun Solaris (64-bit)

Below is a partial description of the Oracle software installation process.
For a full description, refer to the aforementioned Oracle documentation.

---------------------------------------------------------
Pre-installation tasks to perform as the 'root' unix user
---------------------------------------------------------
1. Login to unix as the 'root' user.

2. Install Solaris operating system patches and packages.

3. Configure the following Solaris kernel parameters in /etc/system

    set shmsys:shminfo_shmmax=4294967295
    set semsys:seminfo_semmns=4096
    set semsys:seminfo_semmsl=1024
    set semsys:seminfo_semmni=128

4. Create unix groups 'orainv', 'oradba', and 'oraoper'.

5. Create a unix account for the Oracle software owner.  Typically, the account name
   is 'oracle'.  Give the account a primary group of 'orainv' and a secondary group
   of 'oradba'.

-----------------------------------------------------------
Pre-installation tasks to perform as the 'oracle' unix user
-----------------------------------------------------------
1. Login to unix as the 'oracle' user.

2. Modify the logon file(s) of the 'oracle' user:

    For the Bourne or Korn shell, add the following to $HOME/.profile:
        umask 022
        ORACLE_BASE=/opt/oracle; export ORACLE_BASE
        ORACLE_HOME=/opt/oracle/product/9.2; export ORACLE_HOME
        NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1; export NLS_LANG
        PATH=/usr/bin:/usr/ccs/bin:/usr/openwin/bin:/usr/local/bin:/etc:$ORACLE_HOME/bin:$PATH; export $PATH

    For the C shell, add the following to $HOME/.login:
        umask 022
        setenv ORACLE_BASE /opt/oracle
        setenv ORACLE_HOME /opt/oracle/product/9.2
        setenv NLS_LANG AMERICAN_AMERICA.WE8ISO8859P1
        setenv PATH /usr/bin:/usr/ccs/bin:/usr/openwin/bin:/usr/local/bin:/etc:$ORACLE_HOME/bin:$PATH

    The values listed above for PATH apply only to Solaris 64-bit.
    Other operating systems require different paths.

    NLS_LANG specifies the language, territory, and character set of the 'oracle' unix user's terminal or
    terminal emulator.  If it is not AMERICAN_AMERICA.WE8ISO8859P1, change the definition of NLS_LANG
    in the 'oracle' user's .login and .profile to the actual language, territory, and character set.

    Define the ORACLE_HOME path to reflect the maintenance release, not the patch release.
    For example, set ORACLE_HOME to /opt/oracle/product/9.2 rather than /opt/oracle/product/9.2.0.6.0.

3. Logout and log back into unix as the 'oracle' user, so that the above settings take effect.

-------------------------------------------------------
Installation tasks to perform as the 'oracle' unix user
-------------------------------------------------------
1. Login to unix as the 'oracle' user.

2. Run the Oracle Universal Installer to install version 9.2.0.1.0 of the Oracle software.
   The Oracle Universal Installer prompts and recommended responses are:

    Inventory Location base directory    : /opt/oracle/oraInventory
    UNIX Group Name                      : orainv
    File Location Source Path            : (source path of installation files)
    File Location Destination Name       : (blank)
    File Location Destination Path       : /opt/oracle/product/9.2
    Product to install                   : Oracle 9i Database 9.2.0.1.0
    Installation type                    : Enterprise Edition
    Database Configuration               : Software Only
    Database Administrator (OSDBA) Group : oradba
    Database Operator (OSOPER) Group     : oraoper

3. Upgrade the Oracle software from 9.2.0.1.0 to from 9.2.0.6.0, installing 9.2.0.6.0 into the same Oracle home
   directory (/opt/oracle/product/9.2) that was used for 9.2.0.1.0.

------------------------------------------------------------
Post-installation tasks to perform as the 'oracle' unix user
------------------------------------------------------------
1. Login to unix as the 'oracle' user.

2. Modify the logon file(s) of the 'oracle' user:

    For the Bourne or Korn shell, add the following to $HOME/.profile:
        LD_LIBRARY_PATH=$ORACLE_HOME/lib32:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH
        LD_LIBRARY_PATH_64=$ORACLE_HOME/lib:$LD_LIBRARY_PATH_64; export LD_LIBRARY_PATH_64

    For the C shell, add the following to $HOME/.login:
        setenv LD_LIBRARY_PATH $ORACLE_HOME/lib32:$LD_LIBRARY_PATH
        setenv LD_LIBRARY_PATH_64 $ORACLE_HOME/lib:$LD_LIBRARY_PATH_64

    The values listed above for LD_LIBRARY_PATH and LD_LIBRARY_PATH_64 apply only to Solaris 64-bit.
    Other operating systems require different library paths.

3. Logout and log back into unix as the 'oracle' user, so that the above settings take effect.

============================================
C. Oracle Profile and Listener configuration
============================================
--------------------
Profile (sqlnet.ora)
--------------------
1. Login to unix as the 'oracle' user.
2. Run the Oracle Net Manager GUI (netmgr from the command line).
3. Navigate to Oracle Net Configuration->Local->Profile->Naming->Methods.
4. Set the 'Selected Methods' to TNSNAMES.
5. From the menu, select File->Save Network Configuration.
6. Exit Oracle Net Manager.
7. Using a text editor, add the following parameter to the $ORACLE_HOME/network/admin/sqlnet.ora file:
    TCP.NODELAY=yes

-----------------------
Listener (listener.ora)
-----------------------
 1. Login to unix as the 'oracle' user.
 2. Run the Oracle Net Manager GUI (netmgr from the command line).
 3. Navigate to Oracle Net Configuration->Local->Listeners.
 4. From the menu, select Edit->Create.
 5. Enter LISTENER as the listener name.
 6. Navigate to Oracle Net Configuration->Local->Listeners->LISTENER->Listening Locations.
 7. Press the Add Address button.
 8. Enter the following network address:

    Protocol  : TCP/IP
    Host      : (hostname)
    Port      : 1521
    
    For (hostname), enter one of: the host name, the host domain name, or the host IP address.
    Do not specify 'localhost' as the (hostname).

 9. From the menu, select File->Save Network Configuration.
10. Exit Oracle Net Manager.
11. Login to unix as the 'root' user.
12. Using a text editor, add the following line to the /etc/services file:
    oracle_listener     1521/tcp     # Oracle Net listener

===================================
D. Oracle initialization parameters
===================================
For most initialization parameters, take the Oracle default.  Below is a list of
initialization parameters for which the Oracle default should not be taken.
Set them to the values specified in this section.

1. Initialization parameters required by LeasePak

    DB_BLOCK_SIZE            = 8192
    OPEN_CURSORS             = 1500
    SESSION_CACHED_CURSORS   = 200
    OPTIMIZER_INDEX_CACHING  = 90
    OPTIMIZER_INDEX_COST_ADJ = 25
    COMPATIBLE               = (your current oracle release, for example: 9.2.0.6.0)
    REMOTE_LOGIN_PASSWORDFILE= EXCLUSIVE

2. Memory and process initialization parameters

    Size these parameters according to the available memory and expected workload on your system.
    Undersizing or oversizing these parameters could decrease performance.

    PROCESSES            = (maximum number of Oracle operating system processes)
    DB_CACHE_SIZE            = (size of buffer cache)
    SHARED_POOL_SIZE         = (size of shared pool)
    PGA_AGGREGATE_TARGET     = (size of PGA aggregate target)
    LARGE_POOL_SIZE          = (size of large pool)

    Guidelines:
        The PROCESSES parameter includes processes for Oracle connections as well as Oracle background
        processes.  Set PROCESSES to the maximum number of concurrent Oracle connections plus the
        number of Oracle background processes.

        Specify DB_CACHE_SIZE, SHARED_POOL_SIZE, LARGE_POOL_SIZE, and PGA_AGGREGATE_TARGET
        using #M format.  For example, 200M indicates 200 megabytes.

        Regarding performance, there is a point of diminishing returns with the DB_CACHE_SIZE parameter,
        so don't make it arbitrarily large.
        
        Set the SHARED_POOL_SIZE to approximately 150M.

        When setting the PGA_AGGREGATE_TARGET, allocate 1.5 to 2 megabytes per process.
        For example, if PROCESSES = 300, set PGA_AGGREGATE_TARGET to about 500M.

        Refer to the Oracle documentation for information regarding the LARGE_POOL_SIZE.

3. Miscellaneous initialization parameters

    UNDO_MANAGEMENT       = AUTO
    UNDO_TABLESPACE       = undo-tablespace-name
    INSTANCE_NAME         = database-name
    DB_NAME               = database-name
    DB_DOMAIN             = database-domain
    CONTROL_FILES         = control-file-paths
    BACKGROUND_DUMP_DEST  = /opt/oracle/admin/database-name/bdump
    CORE_DUMP_DEST        = /opt/oracle/admin/database-name/cdump
    USER_DUMP_DEST        = /opt/oracle/admin/database-name/udump

4. Archivelog mode initialization parameters

    To prevent data loss from media-failure, production systems must be run in archivelog mode.
    Archivelog mode is not required for test or development systems.  There are several initialization
    parameters used to configure archivelog mode.  Refer to the 'Managing Achived Redo Logs' chapter
    in the Oracle Administrator's Guide for more information.

===========================
E. Oracle database creation
===========================
The Oracle Database Configuration Assistant (DBCA) is used to create an Oracle database.
Before creating a database with DBCA, design your physical database --
filesystems and mount points, sizes and distribution of datafiles,
raid architecture, multiplexing of control and redo files, etc.
Sections E, G, and H of this document discuss some aspects of physical database design.

In general, do not create more than one Oracle database on a single computer,
especially for production systems.  Multiple Oracle databases on a computer
would decrease the performance of LeasePak due to an increase in competition
for system resources.

---------------------------------------
File sizing and distribution guidelines
---------------------------------------
When creating an Oracle database, you specify the size of the system, undo, and temporary tablespaces,
and the number and size of the redo log files.  Below are general guidelines for sizing these files.
Your particular system may vary from these estimates, or you could start with these sizes and
increase them in the future as needed.

    system tablespace    : 2000 MB datafile, no autoextend
    undo tablespace       : 2000 MB datafile, no autoextend
    temp tablespace       : 2000 MB datafile, no autoextend
    online redo log files : 4 redo log groups, 500 MB per online redo log file

If online redo log file switches occur more than once every 30 minutes during periods of heavy activity
(such as End of Period), increase the size of the online redo log files.

If the online redo log files and control files are not mirrored with hardware or os mirroring,
mirror them with oracle multiplexing.

NetSol recommends that autoextend not be used for any of the datafiles.  With autoextend, a runaway process
could mistakenly increase the size of files.  Also, autoextend makes it more difficult to measure the
actual amount of free space in a filesystem.

The online redo log files are critical to both performance and media-failure protection.
Configure your disks accordingly (for example, use dedicated disks for the online redo log files).

Configure the online redo log files and archived redo log files such that
when LGWR is writing to a disk, ARCH is not reading that disk.

--------------------------------------
Run DBCA to create the Oracle database
--------------------------------------
To run DBCA, login to unix as the 'oracle' user and enter dbca on the command line.
Refer to Appendix 1 for instructions on how to use DBCA.

---------------
Post-DBCA tasks
---------------
1. Review the database creation log files in directory /opt/oracle/admin/database-name/create
2. Review the Oracle alert log at /opt/oracle/admin/database-name/bdump/alert_database-name.log
3. Modify the logon file(s) of the 'oracle' user:
    For the Bourne or Korn shell, add to $HOME/.profile:
        ORACLE_SID=instance-name; export ORACLE_SID
    For the C shell, add to $HOME/.login:
        setenv ORACLE_SID instance-name

========================================
F. Oracle Net Service Name configuration
========================================
DBCA automatically adds the database name as a Net Service Name to tnsnames.ora.
It is not necessary to change the Net Service Name.  To change the Net Service Name:

1. Login to unix as the 'oracle' user.
2. Run the Oracle Net Manager GUI (netmgr from the command line).
3. Navigate to Oracle Net Configuration->Local->Service Naming->database-name.
4. From the menu, select Edit->Rename.
5. Enter the new name for the Net Service Name.
6. From the menu, select File->Save Network Configuration.
7. Exit Oracle Net Manager.

=====================
G. Oracle tablespaces
=====================
An Oracle tablespace is a set of Oracle datafiles.
A tablespace can be created either by running a NetSol script (recommended) or manually.

-------------------------------
Tablespace creation - by script
-------------------------------
To create a tablespace for end user data, run the NetSol script 'db_create_tablespace'.
The db_create_tablespace script creates a tablespace with one datafile and with the
tablespace attributes required by LeasePak.

After creating a tablespace with db_create_tablespace, additional datafiles can be added to
the tablespace by running NetSol script 'db_add_datafile'.  The db_add_datafile script creates
a new datafile and adds it to the specified tablespace.

The datafiles created by the db_create_tablespace and db_add_datafile scripts
do not have the autoextend attribute enabled.

The recommended minimum size for datafiles is 2000 megabytes.  If there are a large number of
datafiles in the oracle database, a file size larger than 2000 megabytes could be used to
decrease the overall number of datafiles.

To run the db_create_tablespace script:
  1. Login to unix as msidba.
  2. Use the syntax described below to run the script.

  db_create_tablespace tablespace-name datafile-directory datafile-size-in-MB [srvadm-password]

      Arguments:
    tablespace-name        : The name of the tablespace to create.
    datafile-directory     : The unix directory in which to create the datafile.
    datafile-size-in-MB    : The size of the datafile in megabytes.
                    Example: for 2000 megabytes, specify 2000
    srvadm-password        : [optional] The password of the DBMS server administrator (srvadm) user.

      The path of the datafile created by db_create_tablespace is:
    datafile-directory/tablespace-name01.dbf

To run the db_add_datafile script:
  1. Login to unix as msidba.
  2. Use the syntax described below to run the script.

  db_add_datafile tablespace-name datafile-directory datafile-size-in-MB datafile-sequence-number [srvadm-password]
      Arguments:
    tablespace-name         : The tablespace to which the datafile will be added.
    datafile-directory      : The unix directory in which to create the datafile.
    datafile-size-in-MB     : The size of the datafile in megabytes.
                    Example : for 2000 megabytes, specify 2000
    datafile-sequence-number: A two or three digit number (02 to 99 or 100 to 999) to include in the
                   datafile name to make it unique.
    srvadm-password         : [optional] The password of the DBMS server administrator (srvadm) user.

      The path of the datafile created by db_add_datafile is:
    datafile-directory/tablespace-namedatafile-sequence-number.dbf

----------------------------
Tablespace creation - manual
----------------------------
If you create a tablespace manually, a LeasePak requirement is to explicitly specify
the SEGMENT SPACE MANAGEMENT AUTO attribute in the CREATE TABLESPACE command.
Refer to the Oracle documentation for the syntax of the CREATE TABLESPACE command.

----------------
Tablespace names
----------------
Recommended naming conventions for tablespaces:
    Undo tablespace        : undotbs
    Temporary tablespace   : temp
    Production data        : lpt*
    Test data (large)      : lpt*
    Test data (small)      : lpcommon
where * is the suffix of the corresponding lpr* LeasePak schema name.

Each lpt* tablespace should be dedicated to a single LeasePak schema.
The lpcommon tablespace can be shared by multiple LeasePak test schemas.

========================
H. Oracle database files
=========================
An Oracle database is composed of several types of database files:
    - control files
    - user datafiles
    - undo datafiles
    - tempfiles
    - online redo log files
    - archived redo log files

-------------------------------------------------
Recommended naming conventions for database files
-------------------------------------------------
control files          : controlnn.ctl
datafiles              : tablespace-namenn.dbf
tempfiles              : temporary-tablespace-namenn.dbf
online redo log files  : redonn.log

where  is a two-digit counter starting at 01.

------------------------------
Directories for database files
------------------------------
The recommended directory structure for Oracle database files is:

    /opt/oradata/database-namenn

where nn is a two-digit counter starting at 01.
Each /opt/oradata/database-namenn directory is a mount point for a separate filesystem.

Create the directories with the following ownership and permissions:

Directory                               Owner     Group owner    Permissions
--------------------------------        ------    -----------    -----------
/opt/oradata                            oracle    orainv         0755
/opt/oradata/database-namenn            oracle    orainv         0755

Permissions do not have to be manually set for files created by Oracle in those directories.

----------
Direct i/o
----------
If filesystems are used instead of raw for the Oracle database files, the filesystems should be
mounted to use direct i/o.  Direct i/o prevents double-buffering and yields better performance.
To use direct i/o on a Solaris UFS filesystem, mount the filesystem with the forcedirectio option.

Note that files which don't require direct i/o should not be stored in the direct i/o filesystems.
For example, the filesystem containing the oracle software (typically /opt/oracle) should not use
direct i/o, whereas most of the filesystems under /opt/oradata should use direct i/o.

--------------------------------
Filesystems and read/write locks
--------------------------------
Oracle database files can be stored on either raw disks or filesystems.  An issue with storing database files
in some filesystems is the contention caused by filesystem read/write locks (i.e. inode locks).  The performance
degradation of read/write locks can be significant.  Direct i/o on Solaris UFS does not use read/write locks,
and thus does not incur the performance penalty.  However, direct i/o on most other filesystems does use read/write
locks.  If you plan on storing database files in a filesystem other than Solaris UFS, make sure that direct i/o
on the filesystem does not use read/write locks.

---------------
Raid guidelines
---------------
1. Raid 5 should not be used for any of the Oracle database files (redo log files, control files, tempfiles,
   undo datafiles, user datafiles, etc.) 
2. For large performance-critical databases, External Hardware Raid 10 (mirroring + striping) provides a
   balanced mix of fault tolerance and performance. Tune the raid striping by setting the stripe width
   (# of disks in the stripe) and stripe size (# of bytes per chunk) appropriately.
3. For smaller databases, where the choice is often between Software Raid 1 (mirroring) and Internal Hardware Raid,
   Software Raid 1 is recommended.

----------------
Sparse tempfiles
----------------
Note that Oracle creates tempfiles as sparse files.  Sparse files are not fully allocated when they are created,
and the unix df (disk free) command does not show their full size.  This can lead to overcommitting the resources
of a filesystem, unless the full size of sparse files is manually accounted for when measuring the amount of
free space in a filesystem.

=======================================
I. Oracle instance startup and shutdown
=======================================
To automate instance startup and shutdown when the operating system is booted, add the instance name to
the MSI_INSTANCES variable in the /etc/mccue_oracle_instances file.

===================
J. Oracle log files
===================
--------------------------------------
alert file (alert_database-name.log)
--------------------------------------
The Oracle alert file is a chronological log of messages and errors pertaining to an oracle database.
Oracle uses the alert file to keep a record of significant database events.

The name of the alert file is alert_database-name.log.  The directory of the alert file is specified
by the initialization parameter BACKGROUND_DUMP_DEST.

Since the alert file will grow in size over time, it should be occassionally deleted.
The alert file can safely be deleted while the instance is running.
Optionally save a copy of the alert file before deleting it.

---------------------------
Listener log (listener.log)
---------------------------
Oracle connection requests are logged by the Listener to the listener.log file.
The default location of the listener.log file is $ORACLE_HOME/network/log/listener.log.
Since the listener.log file grows quickly in size and may eventually consume the free space
in the filesystem, it must be manually truncated periodically.

To manually truncate the listener.log file:
1. Login to unix as the 'oracle' user.
2. cat /dev/null > $ORACLE_HOME/network/log/listener.log

The listener.log file can safely be truncated while the Listener is running, provided that
the above command is used.  Optionally save a copy of the listener.log file before truncating it.

==============================
K. Oracle optimizer statistics
==============================
Periodically run the NetSol 'db_update_statistics' script to gather fresh Oracle optimizer statistics
for LeasePak databases.

==============================
Appendix 1 - DBCA instructions
==============================
The Oracle Database Configuration Assistant (DBCA) is used to create an Oracle database.
To run DBCA, login to unix as the 'oracle' user and enter dbca on the command line.
Below are instructions for the nine DBCA screens and the tabs on each screen.

1. Operations screen
    Select 'Create a database'

2. Database Templates screen
    If you have not yet created a template, select 'New Database'.
    If you have already created a template, select the template.

3. Database Identification screen
    Global Database Name           : (sid.machine.company.com)
    SID (Oracle System Identifier) : (sid)

4. Database Features screen
    Database Features tab
        (a) Spatial, Ultra Search, Data Mining, and OLAP are optional features.
            Check only the ones you are going to use.  When unchecking a feature,
            also delete the corresponding tablespace if prompted.
        (b) Check Example Schemas and all of the enabled schemas, which will at least include
            the Human Resources and Sales History schemas.
        (c) Press the Standard Database Features button and check JVM, Intermedia, Text, and XML DB.

    Custom Scripts tab
        Select 'No scripts to run'

5. Database Connection Options screen
    Select 'Dedicated Server Mode'

6. Initialization Parameters screen
    Memory tab:
        Select 'Custom' and enter memory sizes.
          Shared Pool   : (shared pool size)
          Buffer Cache  : (buffer cache size)
          Java Pool     : (java pool size)
          Large Pool    : (large pool size)
          PGA           : (PGA size)

    Character Sets tab:
        Database Character Set    : select 'Use the default' (typically WE8ISO8859P1)
        National Character Set    : select AL16UTF16

    DB Sizing tab:
        Block Size     : 8K
        Sort Area Size : 512K

    File Locations tab:
        Initialization Parameters Filename             : {ORACLE_BASE}/admin/{DB_NAME}/pfile/init.ora
        Create server parameter file (spfile)          : check
        Server Parameters Filename                     : {ORACLE_HOME}/dbs/spfile{SID}.ora
        Trace File Directory for User Processes        : {ORACLE_BASE}/admin/{DB_NAME}/udump
        Trace File Directory for Background Processes  : {ORACLE_BASE}/admin/{DB_NAME}/bdump
        Trace File Directory for Core Dumps            : {ORACLE_BASE}/admin/{DB_NAME}/cdump

    Archive tab:
        For test databases, generally do not check 'Archive Log Mode'.
        For productions databases, check 'Archive Log Mode' and 'Automatic archival',
        and enter the Log Archive Filename Format and Archive Log Destinations.

    Press the 'All Initialization Parameters' button:
        For initialization parameters listed in the SAG in Section D,
        check the 'Included (Y/N)' box and enter the value.

        For initialization parameters not listed in the SAG in Section D,
        uncheck the 'Included (Y/N)' box, unless it is a parameter you are explicitly setting. 

7. Database Storage screen
    Controlfile
        General tab
            File Name         : control01.ctl
            File Directory    : /opt/oradata/{DB_NAME}nn
            If you are multiplexing the Control File, add another File Name(s), such as control02.ctl.

        Options tab
            Maximum number of datafiles        : 100
            Maximum number of redo log files   : 5
            Maximum number of log members      : 3

    Tablespaces
        (a) SYSTEM tablespace
            General tab
                Name                     : SYSTEM
                File Name                : system01.dbf
                File Directory           : /opt/oradata/{DB_NAME}nn
                Size                     : 2000 MB
                Status                   : Online
                Type                     : Permanent
            Storage tab
                Extent Management        : Locally managed
                Allocation               : Automatic Allocation
                Segment Space Management : Automatic
                Enable logging           : Yes
                Block Size               : Default

        (b) UNDOTBS1 tablespace
            General tab
                Name             : UNDOTBS (rename the tablespace from UNDOTBS1 to UNDOTBS)
                File Name        : undotbs01.dbf
                File Directory   : /opt/oradata/{DB_NAME}nn
                Size             : 2000 MB
                Status           : Online
                Type             : Undo
            Storage tab
                Block Size       : Default

        (c) TEMP tablespace
            General tab
                Name              : TEMP
                File Name         : temp01.dbf
                File Directory    : /opt/oradata/{DB_NAME}nn
                Size              : 2000 MB
                Type              : Temporary (check 'Set as Default Temporary Tablespace')
            Storage tab
                Extent Management : Locally managed
                Allocation        : Uniform Allocation
                Size              : (blank)
                Block Size        : Default

        (d) USERS tablespace
            General tab
                Name              : USERS
                File Name         : users01.dbf
                File Directory    : /opt/oradata/{DB_NAME}nn
                Size              : 25 MB
                Status            : Online
                Type              : Permanent
            Storage tab
                Extent Management        : Locally managed
                Allocation               : Automatic Allocation
                Segment Space Management : Automatic
                Enable logging           : Yes
                Block Size               : Default

        (e) DRSYS tablespace
            General tab
                Name             : DRSYS
                File Name        : drsys01.dbf
                File Directory   : /opt/oradata/{DB_NAME}nn
                Size             : 20 MB
                Status           : Online
                Type             : Permanent
            Storage tab
                Extent Management        : Locally managed
                Allocation               : Automatic Allocation
                Segment Space Management : Automatic
                Enable logging           : Yes
                Block Size               : Default

        (f) EXAMPLE tablespace
            General tab
                Name             : EXAMPLE
                File Name        : example01.dbf
                File Directory   : /opt/oradata/{DB_NAME}nn
                Size             : 200 MB
                Status           : Online
                Type             : Permanent
            Storage tab
                Extent Management        : Locally managed
                Allocation               : Automatic Allocation
                Segment Space Management : Automatic
                Enable logging           : Yes
                Block Size               : Default

        (g) XDB tablespace
            General tab
                Name             : XDB
                File Name        : xdb01.dbf
                File Directory   : /opt/oradata/{DB_NAME}nn
                Size             : 100 MB
                Status           : Online
                Type             : Permanent
            Storage tab
                Extent Management        : Locally managed
                Allocation               : Automatic Allocation
                Segment Space Management : Automatic
                Enable logging           : Yes
                Block Size               : Default

        (h) Remove the INDX tablespace

        (i) Remove the TOOLS tablespace

    Datafiles
        (a) system01.dbf datafile
            General tab
                Name                : /opt/oradata/{DB_NAME}nn/system01.dbf
                Tablespace          : SYSTEM
                Status              : Online
                File Size           : 2000 MB
                Reuse Existing File : No
            Storage tab
                Autoextend           : No

        (b) undotbs01.dbf datafile
            General tab
                Name                : /opt/oradata/{DB_NAME}nn/undotbs01.dbf
                Tablespace          : UNDOTBS
                Status              : Online
                File Size           : 2000 MB
                Reuse Existing File : No
            Storage tab
                Autoextend          : No

        (c) temp01.dbf datafile
            General tab
                Name                : /opt/oradata/{DB_NAME}nn/temp01.dbf
                Tablespace          : TEMP
                Status              : Online
                File Size           : 2000 MB
                Reuse Existing File : No
            Storage tab
                Autoextend          : No

        (d) users01.dbf datafile
            General tab
                Name                : /opt/oradata/{DB_NAME}nn/users01.dbf
                Tablespace          : USERS
                Status              : Online
                File Size           : 25 MB
                Reuse Existing File : No
            Storage tab
                Autoextend          : No

        (e) drsys01.dbf datafile
            General tab
                Name                : /opt/oradata/{DB_NAME}nn/drsys01.dbf
                Tablespace          : DRSYS
                Status              : Online
                File Size           : 20 MB
                Reuse Existing File : No
            Storage tab
                Autoextend          : No

        (f) example01.dbf datafile
            General tab
                Name                : /opt/oradata/{DB_NAME}nn/example01.dbf
                Tablespace          : EXAMPLE
                Status              : Online
                File Size           : 200 MB
                Reuse Existing File : No
            Storage tab
                Autoextend          : No

        (g) xdb01.dbf datafile
            General tab
                Name                : /opt/oradata/{DB_NAME}nn/xdb01.dbf
                Tablespace          : XDB
                Status              : Online
                File Size           : 100 MB
                Reuse Existing File : No
            Storage tab
                Autoextend        : No

    Redo Log Groups
        Add 4 groups.  For each group, enter at least one member:
            File Size        : 500 MB
            File Name        : redo0#.log
            File Directory   : /opt/oradata/{DB_NAME}nn
        If you are multiplexing the Redo Log, add another member(s).

8. Creation Options screen
    To generate a Database Template without creating the database:
        (a) Uncheck 'Create Database'.
        (b) Check 'Save as a Database Template' and enter the template Name and Description.
        (d) Uncheck 'Generate Database Creation Scripts'.
        (e) Press the Finish button.

    To create the database:
        (a) Check 'Create Database'.
        (b) If the template has changed, check 'Save as a Database Template'.
        (d) Uncheck 'Generate Database Creation Scripts'
        (e) Press the Finish button.
        (f) During the database creation, make note of any error messages displayed by oracle.

9. Password screen
    (a) Enter the SYS and SYSTEM passwords.
    (b) Press the 'Password Management' button.
        Enter a new password for the DBSNMP account.
        By default, only the SYS, SYSTEM, and DBSNMP accounts are unlocked.
        If you unlock an account, also change its password.