|Oracle8i Server Installation and Database Administration Guide
Release 3 (8.1.7) for Fujitsu Siemens Computers BS2000/OSD
Part Number A95466-01
This chapter describes the basic structures of the Oracle Server system architecture, as far as they are BS2000 specific.
The topics described include:
In the Oracle Server generic documentation the term process is used for what in BS2000 terminology is defined as a task. Please bear this in mind if you need to consult the generic manuals to find additional information on the tasks described in this chapter.
The concepts of tasks (i.e. processes in Oracle terminology) and memory structures (areas) are not BS2000 specific.
See the chapter "Memory Structures and Processes" in the Oracle8i Concepts manual for detailed information.
One or more database files contain the data dictionary, the user data, and indexes. The recommended minimum size for a database file is 5000 PAM blocks.
The Oracle Server requires a minimum of two log files, which need not be the same size, although on BS2000/OSD, the recommended minimum is 5000 PAM blocks. Note that the size of a log file is set in BS2000 blocks and not Oracle Server blocks.
Both the BS2000/OSD operating system and the Oracle Server perform input and output efficiently in units called blocks. A block is simply the basic unit of data storage. An Oracle Server block can be either
The Oracle Server database and redo log files are BS2000 PAM files, and the Oracle Server database uses UPAM to access them. All read requests to the Oracle Server database file(s) are made by the kernel code running either in a user task (under the single-task operating environment), or in a server task (in the two-task operating environment). All write requests to the database, control and log files are performed by the Oracle Server background tasks.
There are other files used by the Oracle Server, which are not indicated in Figure 2-1. These files are described below.
The initialization file, INIT.ORA, contains a set of parameters which are read when an instance is started or stopped. See the Oracle8i Reference manual and the Oracle8i Server Administrator's Guide for more information on the initialization file.
Every Oracle Server utility and product uses the Oracle Server environment definition file which is referenced as ORAENV. This file contains the Oracle Server environment variables which are used to describe the operating environment for each Oracle Server task. The Database Administrator also uses the ORAENV file to define BS2000-specific parameters necessary for database configuration.
These files contain the information required by the Oracle Server to identify the instance and are specified in the initialization file.
Message texts are stored in table modules which are dynamically loaded from the ORAMESG library at execution time. The naming convention for these modules is Mppccll, where pp denotes the product (for example, PLfor PL/SQL), cc gives the component (for example, IP for IAP), and ll the language (for example, DK for Danish). Message modules are read-only, and can be placed in shared memory.
Users can access the Oracle Server in a single-task or two-task operating environment. The differences between the operating environments are only apparent at the internal processing level. You do not need to change user programs or user command procedures when switching between single-task and two-task modes.
In single-task mode, the user program, the Oracle Server kernel and the program interface all run as part of the same task. As a result, performance in single-task mode is slightly better than it is in two-task mode. The disadvantage, however, is that the user can access, and possibly damage, the SGA.
Oracle is diminishing the support of single-task mode. For more information refer to ch. 1, Known Problems, Restrictions.
Single task mode is restricted to programs running under the DBA userid.
In two-task mode, a user task connects to a server task which executes Oracle Server code on behalf of the user task. The user task does not have access to the SGA. Communication between a user task and a server task is via Net8.
The Oracle Server uses a number of data and code areas which must be at the same virtual addresses in all server and background tasks. Normally, the default values provided with the Oracle Server will be sufficient. Address space planning (explicit placement of the Oracle Server data areas) may be required in single-task mode, where user programs have address space layout requirements conflicting with the default Oracle Server values. Also, dynamic subsystems may occupy the default address ranges, which may require you to relocate the Oracle Server areas.
The following ORAENV variables control explicit placement of the Oracle Server data areas:
The order of the areas in the address space is not significant. The xxx_BASE variable is evaluated only during STARTUP processing.
Once the database is started, users attaching to it do not need to specify the values in their ORAENV files, as they are automatically supplied with the common values during connection. This means that the settings in the user's ORAENV file are ignored. Figure 2-1 gives an example of the placement of data areas.
The xxx_BASE values must be compatible with the BS2000/OSD value SYSBASE (defined by BS2000/OSD generation and delimiting the user´s adress space).
In general Oracle administrators should be aware of conflicts between Oracle pool placements and other pool placements in the system.
This section describes the ORAENV file, how it is used, and how you use the environment variables to specify the default database.
The ORAENV text file has the format of a BS2000 command procedure that issues a /SET-FILE-LINK ORAENV command to itself. Each line contains an Oracle Server environment variable and its assigned value. When reading this file, the Oracle Server ignores all lines which have a slash, "/" or an asterisk, "*" in column 1.
The INSTALL.P.DBA procedure automatically creates a copy of the ORAENV file. This file provides a default configuration for a single-task Oracle Server. You can edit this file to adapt it to local needs. Users can also generate an ORAENV file specific to their own environment. This is described in the chapter "Getting Started" in the Oracle8i for Fujitsu Siemens BS2000/OSD User's Guide.
The appendix "ORAENV Variables" contains a list of ORAENV variables that the Database Administrator can use. Most users will only need to set a few of these variables. Any "database administrator-only" variables that are placed in a user's ORAENV file are ignored.
To set environment variables, simply issue a CALL-PROCEDURE command on the ORAENV file containing the environment variables for the database you want to use. The name of the ORAENV file is sid.P.ORAENV (where sid is the database system identifier). For example, to set the environment variables for database DEMO using the example ORAENV file, enter:
You can also generate an ORAENV file and issue the /SET-FILE-LINK command before calling any Oracle Server program:
where filename is the name of a file having the same format as DEMO.P.ORAENV and which defines at least the ORASID environment variable.
Note the following:
You can run several Oracle Server databases simultaneously on your system; even within the same Database Administrator account. A unique system identifier provides a globally unique "name" for the database so that a user can select a particular database by setting the ORASID environment variable. The user does this by activating the ORAENV file sid.P.ORAENV.
The sid is also included as part of the filename for the Oracle Server procedures that are owned by the DBA account.
Whenever an Oracle Server product (for example, SQL*Plus) is started, it checks, if the linkname ORAENV is defined and reads the related file, storing the variable assignments for later use. If no linkname ORAENV is set (or the related file cannot be read), the sid remains undefined. Oracle Corporation recommends that a linkname ORAENV is always defined prior to a call to an Oracle Server program.
The ORALOAD library ($ORACL817.ORALOAD.LIB by default) is required to run any Oracle8i Release 3 program. The Oracle Server uses this library to load executables and subroutines dynamically when required. The linkname ORALOAD must identify the ORALOAD library before calling any Oracle Server program. If the linkname is missing, you get a BLS (BS2000/OSD loader) error message. Normally, this linkname is set when the ORAENV procedure is called.
The ORAMESG library ($ORACL817.ORAMESG.LIB by default) is required for dynamically loading tables (such as message files) by a Oracle task when required. The linkname ORAMESG must identify the ORAMESG library before calling any Oracle program. If the linkname is missing, you get a BLS (BS2000/OSD loader) error message. Normally, this linkname is set when the ORAENV procedure is called.
The installation userid (referred to as ORAUID) functions as the program and model data library userid. During Oracle Server installation, the installation tape is read into this userid, which should be empty. The ORAUID includes:
A separate ORAUID is required for each separate Oracle Server release. However, multiple databases using the same version can, and should, refer to the same installation userid.
This userid does not require any special BS2000 privileges.
The default name for the ORAUID is $ORACL817. If you select a different name during the installation of Oracle Server software, the procedure, INSTALL.P.ORACLE, which runs as part of the installation, makes the necessary changes to the installation files.
The DBA userid is a BS2000 userid that is used as the owner of one or more of the Oracle Server databases. The database, the control and the data files for a specific Oracle Server database are all owned by this userid (and are all prefixed by the Oracle Server sid).
All tasks making up the running database (background tasks, network master tasks), and server tasks started for two-task Oracle Server, execute under the DBA userid. These tasks refer to the executable programs and libraries which are available under the installation userid (ORAUID). These need not, and should not, be copied into the DBA userid. It is possible to use the installation userid (ORAUID) as a DBA userid. However, it is recommended that you use separate userids. The DBA userid can also be used as a normal userid.
If you run Server Manager on the local machine database STARTUP and SHUTDOWN is possible only under the DBA userid.
Multiple databases can be created under the same, or under different DBA userids. If installed under different BS2000 userids, the databases are separated and protected from each other, subject to the BS2000 protection mechanisms. In particular, a Database Administrator cannot administer a database running under a different BS2000 userid (there is no global DBA privilege in Oracle Server for BS2000/OSD).
The DBA userid needs the more extensive /JOIN privileges to run an Oracle Server database. These privileges include:
There is no default name for a DBA BS2000 userid.
An Oracle Server user accesses and uses the database via the Oracle Server user utilities such as SQL*Plus, and via the precompiler application programs. The user can connect to an Oracle Server database in single-task mode, or in two-task mode through the Net8 facilities.
Concurrent access to the same and to different Oracle Server databases originating from multiple tasks running under the same BS2000 userid, is supported without any specific restrictions.
In two-task mode concurrent access from multiple tasks running under different BS2000 userids is supported without restrictions.
The BS2000 userid can also be used as the Oracle Server connect userid by means of the "OPS$" generic facility.
These userids do not require any special BS2000 privileges.
A BS2000 system which does not run a local Oracle Server database, but only accesses remote databases, for example, a database on another BS2000 system or on a UNIX system, does not need a complete Oracle Server installation.
Oracle Server programs and libraries should still be installed under a separate installation userid (ORAUID).