Oracle8i Administrator's Reference
Release 8.1.5 for Sun SPARC Solaris

A67456-01

Library

Product

Contents

Index

Prev Next

1
Administering Oracle8i

Setting the Environment

This section describes how to establish a common environment for your Oracle8i system.

Displaying Environment Variables

To display the current value of an environment variable, use the echo command. For example, to display the value of ORACLE_SID, enter:

$ echo $ORACLE_SID

Setting and Exporting the Value of a Variable in a Current Session

For the Bourne or Korn shell, enter:

$ ORACLE_SID=test
$ export ORACLE_SID

For the C shell, enter:

% setenv ORACLE_SID test

where test is the value of the variable ORACLE_SID.

Setting a Common Environment

Oracle8i allows a DBA to set a common environment for all users. A common environment makes it easier for system administrators and database administrators to make changes to the physical Oracle8i system.

The oraenv Command File

The oraenv (coraenv for the C shell) command file is created during installation. It contains values for Oracle environment variables and provides:

For example, you need to move the database from /usr/oracle to /usr1/oracle. Without a common environment-setting routine, you need to update user startup files individually. With oraenv, each user profile calls the oraenv command file.

Local bin Directory

Placing oraenv (or coraenv) and dbhome in a local bin directory, separate from the Oracle software home directory, ensures that these files are accessible to all users. It also ensures that oraenv (coraenv) continues to work even if you change the path to point to a different ORACLE_HOME. The local bin directory is specified by the root.sh script, which is run following installation. The default location for the local bin directory on Solaris is /usr/local/bin.

Moving Between Databases

To switch from one database or instance to another, call the oraenv routine, and reply to the prompt with the sid of the desired database. Always provide the full path of the oraenv command file. For example:

$ . /usr/local/bin/oraenv
ORACLE_SID= [default]? sid

Database Examples

In the following examples, it is assumed your local bin directory is called /usr/local/bin and your production database is called PROD. If you prefer not to be prompted for the ORACLE_SID at startup, set the ORAENV_ASK environment variable to no.

In the following examples, ORAENV_ASK is reset to the default, Yes, after oraenv is executed. This ensures that the system prompts you for a different ORACLE_SID the next time oraenv is executed.

Single Instance

For the Bourne or Korn shell, add or replace the following line in the.profile file:

. local_bin_directory/oraenv

with the following lines:

PATH=${PATH}:/usr/local/bin
ORACLE_SID=PROD
export PATH ORACLE_SID
ORAENV_ASK=NO
. oraenv
ORAENV_ASK=

For the C shell, add or replace the following line in the.cshrc file:

source local_bin_directory/coraenv

with the following lines:

setenv PATH ${PATH}:/usr/local/bin
setenv ORACLE_SID PROD
setenv ORAENV_ASK NO
source /usr/local/bin/coraenv
unset ORAENV_ASK

Multiple Instances

For multiple instances, define the sid at startup.

For the Bourne or Korn shell:

PATH=${PATH}:/usr/local/bin
ORACLE_SID=PROD
export PATH ORACLE_SID
SIDLIST= `awk -F: '/^[^#]/ {printf "%s ", $1}' /var/opt/oracle/oratab
echo "SIDS on this machine are $SIDLIST"
ORAENV_ASK=
./usr/local/bin/oraenv

For the C shell:

setenv PATH ${PATH}:/usr/local/bin
setenv ORACLE_SID PROD
setenv SIDLIST `awk -F: '/^[^#]/ {printf "%s ", $1}' /var/opt/oracle/oratab
echo "SIDS on this machine are $SIDLIST"
unset ORAENV_ASK
source /usr/local/bin/coraenv

Environment Variables for Oracle8i

This section describes the most commonly-used Oracle8i and UNIX environment variables.

Some of these variables must be defined before you install Oracle8i. They are listed in your Oracle8i Installation Guide.

Oracle Environment Variables on UNIX

Table 1-1 provides the syntax and examples for Oracle8i variables.

Table 1-1 Oracle8i Environment Variables on UNIX
Variable  Detail  Definition 

EPC_DISABLED 

Function 

Disables Oracle Trace 

 

Syntax 

true or false 

NLS_LANG 

Function 

Specifies the language and character set used for output. See the Oracle8i Installation Guide for Sun SPARC Solaris for a list of values.  

Syntax 

language_territory.characterset 

Example 

french_france.we8dec 

ORA_NLS33 

Function 

Points to the directory where languages and character sets are stored.  

Set to 

$ORACLE_HOME/ocommon/nls/admin/data 

ORACLE_BASE 

Function 

Specifies the base of the Oracle directory structure for OFA-compliant databases.  

Syntax 

directory_path 

Example 

/u01/app/oracle 

ORACLE_HOME 

Function 

Specifies the directory containing the Oracle software. 

Syntax 

directory_path 

Example 

$ORACLE_BASE/product/8.1.5 

ORACLE_PATH 

Function 

Specifies the search pathname for files used by Oracle applications, such as SQL*Plus. If not specified, the application reads from and writes to the current directory. 

Syntax 

colon-separated list of directories directory:directory:directory 

Example 

/u01/oracle/adhoc/8.1.5/bin:.


Note: The period adds the current working directory to the search path. 

ORACLE_SID 

Function 

Specifies the Oracle System Identifier. 

Syntax 

The string of numbers and characters that must begin with a letter. A maximum of eight characters is recommended. For more information, see the Oracle8i Installation Guide for Sun SPARC Solaris.  

Example 

SAL1 

ORACLE_TRACE 

Function 

Turns on tracing of Bourne shell scripts during install. If set to T, many Oracle shell scripts run with set -x flag on.  

Range of Values 

T or anything else. 

ORAENV_ASK 

Function 

Controls whether (c)oraenv prompts for ORACLE_SID or ORACLE_HOME. If set to NO (c)oraenv does not prompt and, if set to anything else, it does.  

Syntax 

string 

Range of Values 

NO or anything else. 

TNS_ADMIN 

Function 

Sets the directory containing the Net8 configuration files.  

Syntax 

directory_path 

Range of Values 

Any directory; for more information, see the Oracle8i Installation Guide for Sun SPARC Solaris. 

Example 

$ORACLE_HOME/network/admin 

TWO_TASK 

Function 

Sets the default Net8 connect string descriptor alias defined in the tnsnames.ora file.  

Syntax 

Available network alias. 

Range of Values 

Any valid Net8 alias defined in the tnsnames.ora file. 

Example 

PRODDB_TCP 


Note:

Do not define environment variables with values that are identical to names of Oracle Server processes; for example: arch, pmon, and dbwr


Abbreviations for ORACLE_HOME and ORACLE_SID

In Oracle8i files and programs, a question mark (?) represents the value of ORACLE_HOME. For example, Oracle8i expands the question mark in the following SQL statement to the full pathname of ORACLE_HOME:

alter tablespace TEMP add datafile '?/dbs/dbs2.dbf' size 2M

The @ sign represents $ORACLE_SID. For example, to indicate a file belonging to the current instance, enter:

alter tablespace tablespace_name add datafile 'dbsfile@.dbf'

UNIX Environment Variables Used with Oracle8i

Table 1-2 provides the syntax and examples for UNIX environment variables used with Oracle8i.

Table 1-2 UNIX Environment Variables Used with Oracle8i
Variable  Detail  Definition 

ADA_PATH 

Function 

Specifies the directory containing the Ada compiler.  

DISPLAY 

Function 

Used by X-based tools. Specifies the display device used for input and output. See vendor's X Windows documentation for details.  

Syntax 

hostname:display
The hostname is your machine name (either IP address or alias); display is the monitor number - if you have single monitor, the number is 0. 

Example 

135.287.222.12:0
bambi:0 

HOME 

Function 

The user's home directory.  

LANG or LANGUAGE 

Function 

Specifies the language and character set used by the operating system for messages and other output. See the operating system documentation and your Oracle8i Installation Guide for Sun SPARC Solaris.  

LD_OPTIONS 

Function 

Specifies the default linker options on Solaris. See man pages on ld for details. 

LPDEST 

Function 

Specifies the user's default printer for Solaris systems.  

Syntax 

printer_name 

Example 

docqms 

LDPATH 

Function 

Default directories used by the linker to find shared object libraries. See man pages on ld for details.  

LD_LIBRARY_PATH 

Function 

Used by the shared library loader (ld.so.1) at runtime to find shared object libraries. See man pages on ld.so.1 for details.  

Syntax 

Colon-separated list of directories directory:directory:directory 

Example 

/usr/dt/lib:$ORACLE_HOME/lib 

PATH 

Function 

Used by the shell to locate executable programs; must include $ORACLE_HOME/bin.  

 

Syntax 

Colon-separated list of directories directory:directory:directory 

 

Example 

/bin:/usr/bin:/usr/local/bin:
/usr/bin/X11:$ORACLE_HOME/bin:$HOME/bin:.
Note: The period adds the current working directory to the search path 

PRINTER 

Function 

Selects the default printer for Solaris systems. 

 

Syntax 

printer_name 

 

Example 

docqms 

SHELL  

Function 

Specifies the command interpreter used during a host command. 

 

Syntax 

Shell pathname. 

 

Range of Values 

/bin/sh or /bin/csh or /bin/ksh or any other command interpreter supplied with Sun SPARC Solaris 

 

Example 

/bin/sh 

TERM 

Function 

Used by Oracle Toolkit II character mode tools and other UNIX tools to determine terminal types.  

 

Example 

vt100 

TMPDIR 

Function 

Specifies the default directory for temporary disk files; if set, tools that create a temporary files do so in this directory. 

 

Syntax 

directory_path 

 

Example 

/u02/oracle/tmp 

XENVIRONMENT 

Function 

Specifies a file containing X Windows system resource definitions. See your X Windows documentation for more information.  

Setting the System Time

The TZ variable sets your time zone. Check your Sun SPARC Solaris documentation to see if your operating system uses this environment variable.

It allows you to adjust the clock for daylight saving time changes or different time zones. The adjusted time is used to time-stamp files, produce the output of the date command, and obtain the current SYSDATE.


WARNING:

You are discouraged from changing your personal TZ value. Using different values of TZ such as GMT+24 may change the day a transaction is recorded. This affects Oracle applications that use SYSDATE, such as Oracle Financials. Use sequence numbers to order a table instead of date columns to avoid this problem. 


Initialization Parameters

Initialization parameters allow you to configure and tune your system. This section describes:

There are many optional initialization parameters described in the generic Oracle8i documentation.

See Also:

Oracle8i Administrator's Guide and Oracle8i Tuning

Customizing the initsid.ora File

This section documents the default initsid.ora file provided with the Oracle8i software. The Oracle Universal Installer (OUI) creates it in the
$ORACLE_BASE/admin/sid/pfile directory. You can modify it to customize your Oracle8i installation.

Some initsid.ora parameter settings are generic to any size installation. For those parameter settings requiring different values for different size installations, three scenarios are provided: small, medium, and large. In the sample initsid.ora file, parameters dependent on installation size are shown for each setting. You can comment out settings that do not apply to your installation by inserting a number sign (#) at the beginning of a line.

Table 1-3 suggests the approximate SGA sizes corresponding to the three scenarios provided in the initsid.ora file.

Table 1-3 Block and SGA Sizes for Sample initsid.ora File
Installation/Database Size 
Block Size  Small  Medium  Large 

2 KB 

4500 KB 

6800 KB 

17000 KB 

4 KB 

5500 KB 

8800 KB 

21000 KB 

Sample initsid.ora File

This file is provided by Oracle Corporation to assist in customizing your Oracle8i installation.

# replace DEFAULT with your database name
db_name=DEFAULT

db_files = 80                                                         # SMALL  
# db_files = 400                                                      # MEDIUM 
# db_files = 1500                                                     # LARGE  

db_file_multiblock_read_count = 8                                     # SMALL  
# db_file_multiblock_read_count = 16                                  # MEDIUM 
# db_file_multiblock_read_count = 32                                  # LARGE  

db_block_buffers = 100                                                # SMALL  
# db_block_buffers = 550                                              # MEDIUM 
# db_block_buffers = 3200                                             # LARGE  

shared_pool_size = 3500000                                            # SMALL
# shared_pool_size = 5000000                                          # MEDIUM
# shared_pool_size = 9000000                                          # LARGE

log_checkpoint_interval = 10000

processes = 50                                                        # SMALL  
# processes = 100                                                     # MEDIUM 
# processes = 200                                                     # LARGE  

parallel_max_servers = 5                                              # SMALL
# parallel_max_servers = 4 x (number of CPUs)                         # MEDIUM
# parallel_max_servers = 4 x (number of CPUs)                         # LARGE

log_buffer = 32768                                                    # SMALL
# log_buffer = 32768                                                  # MEDIUM
# log_buffer = 163840                                                 # LARGE

# audit_trail = true            # if you want auditing
# timed_statistics = true       # if you want timed statistics
max_dump_file_size = 10240      # limit trace file size to 5 Meg each

# Uncommenting the lines below will cause automatic archiving if archiving has
# been enabled using ALTER DATABASE ARCHIVELOG.
# log_archive_start = true      
# log_archive_dest = disk$rdbms:[oracle.archive]
# log_archive_format = "T%TS%S.ARC"

# If using private rollback segments, place lines of the following
# form in each of your instance-specific init.ora files:
# rollback_segments = (name1, name2)   

# If using public rollback segments, define how many
# rollback segments each instance will pick up, using the formula
#   # of rollback segments = transactions / transactions_per_rollback_segment
# In this example each instance will grab 40/5 = 4:
# transactions = 40 
# transactions_per_rollback_segment = 5 

# Global Naming -- enforce that a dblink has same name as the db it 
# connects to:
# global_names = TRUE

# Edit and uncomment the following line to provide the suffix that will be
# appended to the db_name parameter (separated with a dot) and stored as the
# global database name when a database is created.  If your site uses 
# Internet Domain names for e-mail, then the part of your e-mail address after
# the '@' is a good candidate for this parameter value.

# db_domain = us.acme.com 	
# global database name is db_name.db_domain

#_db_block_cache_protect = true                       # memory protect buffers
# event = "10210 trace name context forever, level 2" # data block checking
# event = "10211 trace name context forever, level 2" # index block checking
# event = "10235 trace name context forever, level 1" # memory heap checking
# event = "10049 trace name context forever, level 2" # memory protect cursors

# define parallel server (multi-instance) parameters
# ifile = ora_system:initps.ora

# define two control files by default
control_files = (ora_control1, ora_control2)

# Uncomment the following line if you wish to enable the Oracle Trace product
# to trace server activity.  This enables scheduling of server collections
# from the Oracle Enterprise Manager Console.  
# Also, if the oracle_trace_collection_name parameter is non-null, 
# every session will write to the named collection, as well as enabling you 
# to schedule future collections from the console.

# oracle_trace_enable = TRUE

# Uncomment the following line if you want to use some of the new 8.1
# features. Please remember that using them may require some downgrade 
# actions if you later decide to move back to 8.0.

# compatible = 8.1.0

Default Initialization Parameter Values

Table 1-4 lists default initialization parameter values on Solaris. All Oracle8i instances assume these values if you do not specify different values for them in the initsid.ora file. Oracle Corporation recommends that you include in the initsid.ora file only those parameters that differ from the default initialization parameter values.

To display the current values of these parameters on the system, use SQL*Plus to execute the statement SHOW PARAMETERS.

See Also:

Oracle8i Server Reference

Table 1-4 Default Initialization Parameters
Parameter  Default Value 

BACKGROUND_DUMP_DEST 

$ORACLE_BASE/admin/sid/bdump 

BITMAP_MERGE_AREA_SIZE 

1048576 

COMMIT_POINT_STRENGTH 

CONTROL_FILES 

$ORACLE_HOME/oracle_sid/control.ctl 

CREATE_BITMAP_AREA_SIZE 

8388608 

DB_BLOCK_BUFFERS 

200 

DB_BLOCK_SIZE 

2048 

DB_FILES 

80 (maximum of 2000000) 

DB_FILE_DIRECT_IO_COUNT 

64 (maximum of 1048576) 

DB_FILE_MULTIBLOCK_READ_COUNT 

8 (range of 1-128, but should not exceed one quarter of DB_BLOCK_BUFFERS) 

DISTRIBUTED_TRANSACTIONS 

16 

HASH_AREA_SIZE 

HASH_MULTIBLOCK_IO_COUNT 

LOCK_SGA 

FALSE 

LOCK_SGA_AREAS 

LOG_ARCHIVE_BUFFER_SIZE 

64 

LOG_ARCHIVE_BUFFERS 

4 (maximum of 128) 

LOG_ARCHIVE_DEST 

$ORACLE_HOME/dbs/arch/ 

LOG_ARCHIVE_FORMAT 

"%t_%s.dbf" 

LOG_BUFFER 

8192  

LOG_CHECKPOINT_INTERVAL 

10000 

LOG_SMALL_ENTRY_MAX_SIZE 

80 

MTS_MAX_DISPATCHERS 

MTS_MAX_SERVERS 

20 

MTS_SERVERS 

MTS_LISTENER_ADDRESS 

ADDRESS=address  

NLS_LANGUAGE 

AMERICAN 

NLS_TERRITORY 

AMERICA 

OBJECT_CACHE_MAX_SIZE_PERCENT 

10 

OBJECT_CACHE_OPTIMAL_SIZE 

102400 

OPEN_CURSORS 

50 

OS_AUTHENT_PREFIX 

ops$ 

PROCESSES 

50 

SHARED_POOL_SIZE 

3500000  

SORT_AREA_SIZE 

65536 

SORT_READ_FAC 

SORT_SPACEMAP_SIZE 

512 

Database Limits

Table 1-5 lists the maximum and default values for parameters in a CREATE DATABASE or CREATE CONTROL FILE statement.


Note:

Interdependencies among these parameters may affect allowable values. 


Table 1-5 Create Control File Parameters
Parameter  Default Value  Maximum Value 

MAXDATAFILES 

30 

65534 

MAXINSTANCES 

63 

MAXLOGFILES 

16 

255 

MAXLOGMEMBERS 

MAXLOGHISTORY 

100 

65534 

Managing Special Accounts and Groups

The DBA should be familiar with special accounts required by the Oracle server and should make sure these accounts belong to the appropriate groups. UNIX accounts are described in Table 1-6; Oracle server accounts are described in Table 1-7. Special group accounts are described in Table 1-8.

Table 1-6 UNIX Accounts

oracle 

The oracle software owner represents the account that owns the Oracle8i software. This maintenance account requires DBA privileges in order to CREATE, STARTUP, SHUTDOWN, and CONNECT as INTERNAL to the database. The oracle software owner must never be the superuser. 

root 

The root user is a special UNIX account with maximum privileges (called superuser privileges). This account is used to configure the UNIX kernel, configure and install networking software, and create user accounts and groups. 

Table 1-7 Oracle Server Accounts

SYS 

This is a standard Oracle8i account with DBA privileges automatically created during installation. The SYS account owns all the base tables for the data dictionary. This account is used by the DBA. 

SYSTEM 

This account is also a standard Oracle8i account, with DBA privileges automatically created during installation. Additional tables or views can be created by the SYSTEM user. DBAs may log in as SYSTEM to monitor or maintain databases. 

Table 1-8 Special Group Accounts

dba group 

The oracle software owner is the only required member of the dba group. You can add the root user, or any other UNIX user, to the dba group. Members of this group have access to SQL*Plus specially privileged functions. If your account is not a member of the dba group, you must enter a password in order to connect as INTERNAL or gain access to the other administrative functions of SQL*Plus. The default group ID is dba

oinstall group 

All users installing Oracle in any ORACLE_HOME must belong to the same UNIX group. The OUI inventory is shared by all ORACLE_HOMEs on a machine, and is group writable. Oracle recommends installing with oinstall as the current primary group. 

oper group 

This is an optional UNIX group you can create. Members have database OPERATOR privileges. OPERATOR privileges are a restricted set of dba privileges.  

root group 

Only the root user should be a member of the root group. 

Managing Security

Oracle8i uses several features of the UNIX operating system to provide a secure environment for users. These features include file ownership, group accounts, and the ability of a program to change its user ID upon execution.

The two-task architecture of Oracle8i improves security by dividing work (and address space) between the user program and the oracle program. All database access is achieved through the shadow process and special authorizations on the oracle program.

See Also:

Security issues are dealt with extensively in the Oracle 8i Administrator's Reference, "The Oracle Database Administrator" chapter. 

Groups and Security

To ensure greater security for an Oracle8i database, create user groups at the operating system level. Groups are controlled by the UNIX file /etc/group. Oracle programs are divided into two sets for security purposes: those executable by all (other, in UNIX terms), and those executable by DBAs only. A recommended approach to security is:

Although you can assign any name to the database administrators' group, dba is the default group name and the convention used in this document. If you have multiple databases with the same ORACLE_HOME (a configuration which Oracle Corporation strongly discourages), they should have the same database administrators' group.


Note:

Even though both the oracle software owner and root user should belong to the dba group, the oracle software owner should not be a member of the root group. The root user should be the only member of the root group.  


Security for Server Manager Commands

If you do not have SQL*Plus, you can use Server Manager to make SQL queries. However, be careful how you assign access to Server Manager. The following system-privileged statements should not be accessible to anyone but the oracle software owner and the dba group users, as they grant special operating system privileges:


WARNING:

System-privileged statements can damage your database if used incorrectly. Note that non-dba group users can connect as internal if they have the necessary password. 


Security for Database Files

The user ID used to install Oracle8i should own the database files. The default user ID is the oracle software owner. Set the authorizations on these files to 0600: read/write (rw) by owner only, with no write authorizations for group or other users.

The oracle software owner should own the directories containing the database files. For added security, revoke read permission from group and other users.

To access the protected database files, the oracle program must have its set user ID (setuid) bit on.

The Oracle Universal Installer automatically sets the user ID of the oracle executable to:

-rwsr-s--x 1 oracle dba  443578 Mar 10 23:03 oracle

The s in the user execute field means when you execute the oracle program, it has an effective user ID of oracle, regardless of the actual user ID of the person invoking it.

If you need to set this manually, enter:

$ chmod 6751 $ORACLE_HOME/bin/oracle

Security and Remote Passwords

You can administer a database from a remote machine, such as a personal computer, without operating system accounts. User validation is accomplished by using an Oracle8i password file, created and managed by the orapwd utility. You can also use password file validation on systems that support operating system accounts.

Local password files are in the $ORACLE_HOME/dbs directory and contain the username and password information for a single database. If there are multiple $ORACLE_HOME directories on a machine, each has a separate password file.

Running orapwd

The orapwd utility exists in $ORACLE_HOME/bin and is run by the oracle software owner. Invoke orapwd by entering:

$ orapwd file=filename password=password entries=max_users

This syntax is described in Table 1-9:

Table 1-9 Syntax for Executing orapwd

filename 

is the name of the file where password information is written. The name of the file must be orapwsid, and you must supply the full pathname. Its contents are encrypted and not user-readable. This parameter is mandatory. 

password 

is the initial password you selected for INTERNAL and SYS. You can change this password after you create the database using an ALTER USER statement. This parameter is mandatory. 

max_users 

is the maximum number of users allowed to connect to the database as SYSDBA or SYSOPER. This parameter is mandatory only if you want this password file to be EXCLUSIVE. 


Note:

You must create a new password file if you ever need to increase the maximum number of users. Therefore, set max_users to a higher number than you expect to require. 


orapwd Example

$ orapwd file=/u01/app/oracle/product/8.1.5/dbs/orapwV815 \
password=rsdb3t4 entries=30

See Also:

Oracle8i Administrator's Guide

Access to a Database from a Remote PC

When there is an Oracle8i password file, networked PC users with DBA privileges can access this database as INTERNAL. Privileged users who want to perform DBA functions on the database can enter the appropriate SQL*Plus command from their PC, adding the dba user password. For example:

SQL> connect internal/dba_password@alias as {sysdba|sysoper}

Remote Authentication

The following initsid.ora parameters, shown in Table 1-10, control the behavior of remote connections through non-secure protocols:

Table 1-10 Parameters for Controlling Remote Connections

REMOTE_OS_AUTHENT 

enables or disables ops$ connection 

OS_AUTHENT_PREFIX 

used by ops$ accounts 

REMOTE_OS_ROLES 

enables or disables roles through remote connections 

Administering Login Home Directories

To add or move login home directories without modifying programs that refer to them, you must:

It is not necessary to record a pathname except in a central reference file, because a user's home directory can be derived in either of the following ways:

Similarly, group memberships are computed from /etc/group. See the sample grpx script later in this section.


Note:

Local general-purpose utilities such as these should be stored in the /local/bin directory.  


Sample lhd Script

#!/bin/sh
#
# lhd - print login home directory name for a given user
#
# SYNTAX
# lhd [login]
#
prog=`basename $0`
if [ $# -eq 0 ] ; then
    login=`whoami`

elif [ $# -eq 1 ] ; then
    login=$1
else
    echo "Usage: $prog login" >&2

    exit 2
fi
awk -F: '$1==login {print $6}' login=$login /etc/passwd

Sample grpx Script

#!/bin/sh
# grpx - print the list of users belonging to a given group
#
prog=`basename $0`
if [ $# -ne 1 ] ; then
    echo "Usage: $prog group" >&2
    exit 2
fi
g=$1
# calculate group id of g
gid=`awk -F: '$1==g {print $3}' g=$g /etc/group`
# list users whose default group id is gid
u1=`awk -F: '$4==gid {print $1}' gid=$gid /etc/passwd`
# list users who are recorded members of g
u2=`awk -F: '$1==g {gsub(/,/," "); print $4}' g=$g /etc/group`
# remove duplicates from the union of the two lists
echo $u1 $u2 | tr " " "\012" | sort | uniq | tr "\012" " "
echo

Example 1-1 Using lhd and grpx Scripts

This example shows how the administrator can propagate a skeleton.profile file to the home directory for each member of a group. If the membership list of the clerk group changes, the code does not require modification.

$ for u in `grpx clerk` ; do
> cp /etc/skel/.profile `lhd $u`
> done

Estimating Oracle8i Memory Usage

You need to know Oracle8i's memory usage before starting. Knowing the memory usage requirements helps you determine the number of users you can have on your system, and helps you determine your physical memory and swap space requirement. To calculate the memory requirements, use the following formula:

<size of the oracle executable text>
+ <size of the SGA>
+ n * ( <size of tool executables private data section>
+ <size of oracle executables uninitialized data section>
+ <8192 bytes for the stack>
+ <2048 bytes for the processes user area>)

To determine the SGA size, see "Calculating the Size of the SGA".

For each client-server connection, use the following formula to estimate virtual memory requirements:

<size of oracle executable data section>
+ <size of oracle executables uninitialized data section>
+ <8192 bytes for the stack>
+ <2048 bytes for processes user area>
+ <cursor area needed for the application>

Use the size command to estimate an executable's text size, private data section size, and uninitialized data section size (or bss). Program text is only counted once, no matter how many times the program is invoked, because all Oracle executable text is always shared.

To compute actual Oracle physical memory usage while the database is up and users are connecting to it, use the ps -elf command. Look for all the front end, server, and background Oracle process entries. For each entry, total the "SZ" columns.

See Also:

Refer to your Sun SPARC Solaris man pages or documentation for a list of available switches for the ps command. 

The ps command returns process size in pages; your system page size is architecture-dependent. Use the pagesize command to determine whether the size is 4096 or 8192 bytes. For each process, multiply the SZ value by the page size.

Finally, add the text size for the Oracle executable and every other Oracle tool executable running on the system to that subtotal. Remember to count executable sizes only once, regardless of how many times the executable was invoked.

Server Resource Limits

Solaris inherits resource limits from the parent process (see getrlimit(2) in your operating system documentation). These limits apply to the Oracle8i shadow process that executes for user processes. The Solaris default resource limits are high enough for any Oracle8i shadow or background process. However, if these limits are lowered, the Oracle8i system could be affected. Discuss this with your Solaris system manager.

Disk quotas established for the oracle user ID may hinder the operation of the Oracle8i system. Confer with your Oracle8i database administrator and the Solaris system manager before establishing disk quotas.

Controlling the System Global Area

The System Global Area (SGA) is the Oracle structure that resides in shared memory. It contains static data structures, locks, and data buffers. Sufficient shared memory must be available to each oracle process to address the entire SGA.

Size Limits of the SGA

The maximum size of a single shared memory segment is specified by the Solaris parameter SHMMAX. For example, if SHMMAX is 512 KB and the SGA is 2048 KB, the SGA requires four segments.

If the size of the SGA exceeds the maximum size of a shared memory segment (SHMMAX), Oracle8i attempts to attach more contiguous segments to fulfill the requested SGA size. SHMSEG is the maximum number of segments that can be attached by a process. To attach the segments at contiguous addresses, SHMMAX must be set to its maximum value on systems where its size is limited.


Note:

Intimate Shared Memory (ISM) may cause problems when SHMMAX is smaller than the database SGA size. 


The following initsid.ora parameters control the size of the SGA:

Use caution when setting values for these parameters. When values are set too high, too much of the machine's physical memory is devoted to shared memory resulting in poor performance.

Calculating the Size of the SGA

You can determine the SGA size in one of these ways:

Relocating the SGA

The address at which the SGA is attached affects the amount of virtual address space available for such things as database buffers in the SGA and cursors in the user's application data area.

  1. Determine the valid virtual address range for attaching shared memory segments. Use the tstshm executable included in this release of Oracle8i:

    $ tstshm
    


Note:

The system may experience problems when executing tstshm while using Intimate Shared Memory (ISM). To turn ISM off, add the following line to the initsid.ora file and restart the instance:

use_ism = false 


In the output from tstshm, the lines "Lowest shared memory address" and "Highest shared memory address" indicate the valid address range.

  • Check the "Segment boundaries" output of tstshm to determine the valid virtual address boundaries at which a shared memory segment can be attached.

  • Move to the $ORACLE_HOME/rdbms/lib directory, and run genksms to generate the file ksms.s:

    $ cd $ORACLE_HOME/rdbms/lib
    $ $ORACLE_HOME/bin/genksms -b sgabeg > ksms.s

    where sgabeg is the starting address of the SGA (which defaults to 0x80000000) and should fall within the range determined in step 2.

  • Shut down the existing Oracle database.

  • Rebuild the oracle executable in the $ORACLE_HOME/rdbms/lib directory:

    $ make -f ins_rdbms.mk ksms.o
    $ make -f ins_rdbms.mk ioracle

    Using ioracle:

    The result is a new Oracle kernel that loads the SGA at the address specified by sgabeg.

    See Also:

    For more information about how the use of Java in the database affects SGA calculations, see the README file in $ORACLE_HOME/javavm

    Building and Running Demonstrations

    SQL*Loader Demonstrations

    SQL*Loader demonstrations require that:

    To create and run a demonstration:

    1. Run the ulcasen.sql script corresponding to the demonstration you want to run. As scott/tiger, invoke SQL*Plus from the command line:

      $ sqlplus scott/tiger ulcasen.sql  
      
      
    2. As scott/tiger, invoke the demonstration from the command line:

      $ sqlldr scott/tiger ulcasen.ctl  
      
      

    As scott/tiger, run the SQL*Loader demonstrations in the following order:

    Administering SQL*Loader

    Oracle8i incorporates SQL*Loader functionality. Demonstration and message files are in the rdbms directory.

    File Processing Option

    The SQL*Loader control file includes the following additional file processing option strings, the default being str, which takes no argument:

    [ "str" | "fix n" | "var n" ]
    
    Table 1-11 File Processing Option

    str 

    (the default). Specifies a stream of records, each terminated by a newline character, which are read in one record at a time. 

    fix 

    Indicates that the file consists of fixed-length records, each of which is n bytes long, where n is an integer value.

     

    var 

    Indicates that the file consists of variable-length records, each of which is n bytes long, where n is an integer value specified in the first five characters of the record.

     

    If the file processing options are not selected, the information is processed by default as a stream of records (str). You might find that fix mode yields faster performance than the default str mode because it does not need to scan for record terminators.

    Newlines in Fixed Length Records

    When using the fix option to read a file containing fixed-length records, where each record is terminated by a newline, include the length of the newline (one character) when specifying the record length to SQL *Loader.

    For example, to read the following file:

    AAA newline
    BBB newline
    CCC newline
    
    

    specify fix 4 instead of fix 3 to account for the additional newline character.

    If you do not terminate the last record in a file of fixed records with a newline character, do not terminate the other records with a newline character either. Similarly, if you terminate the last record with a newline, terminate all records with a newline.


    WARNING:

    Certain text editors, such as vi, automatically terminate the last record of a file with a newline character. This leads to inconsistencies if the other records in the file are not terminated with newline characters.  


    Removing Newlines

    Use the position(x:y) function in the control file to discard the newlines from fixed length records rather than loading them. To do this, enter the following in your control file:

    load data
    infile xyz.dat "fix 4"
    into table abc
    ( dept position(01:03) char )
    
    

    When this is done, newlines are discarded because they are in the fourth position in each fixed-length record.

    Loading PL/SQL Demonstrations

    PL/SQL includes a number of sample programs you can load. Demonstration and message files are in the rdbms directory. Perform these steps with the Oracle8i database open and mounted:

    1. Invoke SQL*Plus and connect with the user/password scott/tiger:

      $ cd $ORACLE_HOME/plsql/demo
      $ sqlplus scott/tiger
      
      
    2. To load the demonstrations, invoke exampbld.sql from SQL*Plus:

      SQL > @exampbld
      


    Note:

    Build the demonstrations under any Oracle account with sufficient permissions. Run the demonstrations under the same account you used to build them. 


    Running PL/SQL Demonstrations

    Table 1-12 lists the kernel demonstrations.

    Table 1-12 Kernel Demonstrations

    examp1.sql 

    examp5.sql 

    examp11.sql 

    sample1.sql 

    examp2.sql 

    examp6.sql 

    examp12.sql 

    sample2.sql 

    examp3.sql 

    examp7.sql 

    examp13.sql 

    sample3.sql 

    examp4.sql 

    examp8.sql 

    examp14.sql 

    sample4.sql 

    extproc.sql 

     

     

     

    Table 1-13 lists the precompiler demonstrations.

    Table 1-13 Precompiler Demonstrations

    examp9.pc 

    examp10.pc 

    sample5.pc 

    sample6.pc 

    To run the PL/SQL demonstrations, invoke SQL*Plus to connect to the database, using the same user/password you used to create the demonstrations. Start the demonstration by typing an "at" sign (@) or the word start before the demonstration name. For example, to start the examp1 demonstration, enter:

    $ sqlplus scott/tiger
    SQL > @examp1

    To build the precompiler PL/SQL demonstrations, enter:

    $ cd $ORACLE_HOME/plsql/demo
    $ make  -f demo_plsql.mk demos
    
    

    If you want to build a single demonstration, enter its name as the argument in the make command. For example, to make the examp9.pc executable, enter:

    $ make  -f demo_plsql.mk examp9

    To start the examp9 demonstration from your current shell, enter:

    $ ./examp9
    
    

    To run the extproc demo, first add the following line to the file, tnsnames.ora:

    (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=plsff))(CONNECT_DATA=(SID=extproc)))
    
    
    
    

    and the following line to the file, listener.ora:

    SC=(SID_NAME=extproc)(ORACLE_HOME=/u01/app/oracle/8.1.5)(PROGRAM=extproc))
    
    
    
    

    then from your SQL*Plus session, enter:

    SQL> connect system/manager
    Connected.
    SQL> grant create library to scott;
    Statement processed.
    SQL> connect scott/tiger
    Connected.
    SQL> create library demolib as
    '$ORACLE_HOME/plsql/demo/extproc.so';
    Statement processed.
    
    

    Finally, to run the tests:

    SQL> connect scott/tiger
    Connected.
    SQL> @extproc
    

    Relinking Network Executables

    You can manually relink your network executables with a relink shell script. Relinking is necessary after an operating system upgrade, or when the error message "relink network executables" is displayed.

    The relink script performs manual relinking of Oracle product executables based on what has been installed in the ORACLE_HOME.

    To relink, enter the following:

    $ relink parameter

    Table 1-14 Relink Script Parameters
    Parameter  Value 

    all 

    everything which has been installed 

    oracle 

    Oracle database executable only 

    network 

    net_client, net_server, nau, cman, cnames 

    client 

    net_client, otrace, plsql, client_sharedlib 

    interMedia 

    ctx, ordimg, ordaud, ordvir, md 

    precomp 

    all precompilers which have been installed 

    utilities 

    utilities 

    oemagent 

    oemagent, odg 


  • Prev Next
    Oracle
    Copyright © 1999 Oracle Corporation.

    All Rights Reserved.

    Library

    Product

    Contents

    Index