Skip Headers

Oracle9i Release Notes
Release 2 (9.2.0.1.0) for Sun Solaris (64-bit)
Part No. A97347-05

Copyright © 2002, 2003 Oracle Corporation All rights reserved.

Oracle is a registered trademark, and Oracle7, Oracle8i, Oracle9i, OracleMetaLink, Oracle Names, Oracle Transparent Gateway, PL/SQL, Pro*COBOL, Pro*FORTRAN and SQL*Plus are trademarks or registered trademarks of Oracle Corporation. Other names may be trademarks of their respective owners.

Oracle9i

Release Notes

Release 2 (9.2.0.1.0) for Sun Solaris (64-bit)

May 2003

Part No. A97347-05

This document accompanies Oracle9i release 2 (9.2.0.1.0) for Sun Solaris (64-bit). Its contents supplement or supersede information in the installation guide for this release, or in the Oracle9i documentation library.

Topics:

1 System Requirements

Except as noted here, system requirements are in the installation guide for this release, and are current as of the release date.

1.1 Hard Disk Space Requirements

The space requirements listed on the Available Products window apply to installations that include a database. If you select the Software Only configuration type, then you will require 3 GB.

1.2 Updated Requirements

Oracle Corporation updates these release notes online at the following site:

http://otn.oracle.com/docs/products/oracle9i/content.html

Refer also to the Certify Web Pages on OracleMetaLink, which provide certified configuration information for Oracle and non-Oracle products. To access Certify:

  1. Register or log in to OracleMetaLink at the following Web address:

    http://metalink.oracle.com
    
    
  2. Select Product Lifecycle from the OracleMetalink navigation bar.

  3. Select Certifications in the Product Lifecycle window navigation bar.

1.3 Oracle Universal Installer Version Update

Oracle9i release 2 (9.2.0.1.0) uses Oracle Universal Installer 2.2.0.12.0. This version number supersedes the version listed in the installation guide.

2 Documentation

Additional product README files are in their respective product directories under the $ORACLE_HOME directory and in the $ORACLE_HOME/relnotes directory.

2.1 Documentation Errata

This section provides information on errors in the documentation for this release.

2.1.1 Post-installation

The following are documentation errors in the Post-installation section.

2.1.1.1 Automating Database Startup and Shutdown

In the Automating Database Startup and Shutdown for HP, Linux, and Solaris (Optional) section of the Oracle9i Installation Guide Release 2 (9.2.0.2.0) for UNIX Systems: AIX-Based Systems, Compaq Tru64 UNIX, HP 9000 Series HP-UX, Linux Intel, and Sun Solaris a code line in step 2 is incorrect.

Replace if [! -f $ORA_HOME/bin/dbstart] with
if [ ! -f $ORA_HOME/bin/dbstart ]
, adding a space after [ and before ].

2.1.2 PL/SQL Gateway

Appendix A, "Oracle9i Components," in Oracle9i Installation Guide Release 2 (9.2.0.1.0) for UNIX Systems, lists PL/SQL Gateway as a supported product. This release does not support it.

2.1.3 Oracle Messaging Gateway

The Oracle Messaging Gateway section of Chapter 4, Post-Installation, pages 4-24 to 4-26 in Oracle9i Installation Guide Release 2 (9.2.0.1.0) for UNIX Systems, has examples that are incorrect.

In this section, make the following corrections:

  • Remove all mentions of $ORACLE_HOME/mgw/lib and $ORACLE_HOME/mgw/lib32 in the examples.Replace all references to LD_LIBRARY_PATH_32 with LD_LIBRARY_PATH.Substitute all references to $ORACLE_HOME in the examples with the actual directory path.

2.1.4 Solaris OS Requirement

In the "Operating System Patches" table on pp. 2-4 and 2-5 in Oracle9i Installation Guide Release 2 (9.2.0.1.0) for UNIX Systems, the required Solaris8 (2.8) patch update for 64-bit operating systems is listed as "Update 5." The text should read "Update 5 or later."

Update 5 is a Solaris OS maintenance update patch. The maintenance updates to the OS in Update 5 are the minimal requirements for Oracle9i release 2 (9.2.0.1.0).

3 Installation Issues

This section provides information about the following topics:

3.1 Kernel Parameter Names

Oracle9i Installation Guide Release 2 (9.2.0.1.0) for UNIX Systems and other Oracle documentation abbreviate the Solaris parameter names. The following table lists kernel abbreviations and full names for Solaris kernels that you must tuned for Oracle9i installation.

Kernel Names Used in Oracle Documentation Kernel Names in /etc/system on Solaris
SHMMAX shmsys:shminfo_shmmax
SHMMIN shmsys:shminfo_shmmin
SHMMNI shmsys:shminfo_shmmni
SHMSEG shmsys:shminfo_shmseg
SEMMNI semsys:seminfo_semmni
SEMMSL semsys:seminfo_semmsl
SEMMNS semsys:seminfo_semmns

3.2 Operating System Package

Solaris8 requires that you install the Solaris package SUNWsprox before you install Oracle9i release 2 (9.2.0.1.0).

3.3 Multiple CD-ROM Installation

During installation of Oracle9i release 2 (9.2.0.1.0), the system will prompt you to insert additional CD-ROMs from the set that make up Oracle9i release 2 (9.2.0.1.0). After inserting the requested disk, change the path in the Disk Location text box to reflect the root directory of the newly mounted CD-ROM.

For example, when you insert Disk 3 with a directory path of /cdrom/orcl920_3, change the path in the Disk Location dialog to /cdrom/orcl920_3.

3.4 runInstaller Script

Because it is necessary to insert and eject more than one CD-ROM during installation, you must not launch Oracle Universal Installer by running the runInstaller script from a shell where the current working directory is the CD-ROM mount point, or by clicking on the script in the File Manager window. If you do this in an X Window environment, then the installation will fail because you cannot eject a software CD-ROM until you end the installation session.

3.5 Installing Databases with Database Configuration Assistant

Review the following information before running Database Configuration Assistant.

3.5.1 SYS and SYSTEM Password Change Requirement

If you use Database Configuration Assistant to create a database, you must change the SYS and SYSTEM passwords at the end of the configuration process. This is a new security procedure designed to protect access to your data.

3.6 Installing SUNWsprox

Oracle9i Release 2 (9.2.0.1.0) requires that you install SUNWsprox before you start installing Oracle9i. Otherwise, you will recieve the follwing error message and your installation will fail:

ld: fatal: dlopen() of support library (libmakestate.so.1) failed with error: 
ld.so.1: /usr/ccs/bin/sparcv9/ld: fatal: /usr/lib/libmakestate.so.1: wrong 
ELF class: ELFCLASS32

3.7 Database Migration

If you are upgrading from release 8.0.6 to release 2 (9.2.0.1.0) and you have Oracle interMedia installed on your system, then you cannot use Database Migration Assistant. You must migrate the database manually. For information on manual database migration, refer to Oracle9i Database Migration Release 2 (9.2).

3.8 Installation with Response Files

For installation with a response file, you must use the full path to the response file on the system. The Oracle Universal Installer does not handle relative paths properly.

3.9 Unzip Utility for Downloading and Installing Oracle Patches

Oracle9i release 2 (9.2.0.1.0) includes an unzip utility for uncompressing Oracle patches downloaded from OracleMetaLink. The utility is in the following directory:

$ORACLE_HOME/bin/

4 Product-Related Issues

This section provides information on the following topics:

4.1 Demo Schema

If you select a multibyte character set or UTF as the national character set in Oracle9i release 2 (9.2.0.1.0), then you must recreate the demo schema and the database installation.

For more information on creating schemas, schema dependencies and requirements, refer to the readme.txt file in the $ORACLE_HOME/demo/schema directory.

4.2 Character Sets

The following section provides information on restrictions and updates to character sets.

4.2.1 Oracle9i NCHAR Datatypes

Oracle9i release 2 (9.2.0.1.0) limits the SQL NCHAR datatypes to the Unicode character set encoding (UTF8 and AL16UTF16). It no longer supports alternative character sets such as the fixed-width Asian character set JA16SJISFIXED in Oracle8i.

To migrate existing NCHAR, NVARCHAR, and NCLOB columns, export and import NCHAR columns, complete the following steps:

  1. Export all SQL NCHAR columns from Oracle8i.

  2. Drop the SQL NCHAR columns.

  3. Migrate the database to Oracle9i.

  4. Import the SQL NCHAR columns in to Oracle9i.

4.2.2 AL24UTFFSS Character Set

Oracle9i release 2 (9.2.0.1.0) does not support the Unicode character set AL24UTFFSS introduced in Oracle7. This character set is based on the Unicode standard 1.1, which is now obsolete.

Oracle9i release 2 (9.2.0.1.0) supports the Unicode database character sets AL32UTF8 and UTF8. These database character sets include the Unicode enhancements based on the Unicode standard 3.0.

To migrate the existing AL24UTFFSS database, upgrade your database character set to UTF8 before upgrading to Oracle9i. Oracle Corporation recommends that you use the Character Set Scanner for data analysis before attempting to migrate your existing database character set.

4.2.3 Character Set Scanner

Set the LD_LIBRARY_PATH variable to include the $ORACLE_HOME/lib directory before running the Character Set Scanner (csscan) from the $ORACLE_HOME directory. If you do not correctly set the LD_LIBRARY_PATH variable, then the csscan utility will fail.

4.3 Oracle Internet Directory (OID)

Review the following information if you intend to install Oracle Internet Directory (OID).

4.3.1 Starting Up OID Server

By default, the OID server is started on port 389. If this port is unavailable, then OID server is started on a different port, which is logged in the following file:

$ORACLE_HOME/ldap/install/oidca.out

4.3.2 Custom Installation and Global Database Name

When performing a custom Oracle Internet Directory installation, do not change the global database name or the Oracle SID.

4.3.3 Upgrade from Enterprise Edition Oracle9i or Oracle8i

If you installed in the same ORACLE_HOME either Oracle Internet Directory release 3.0.1.x and the complete release of Oracle9i (9.0.1) Enterprise Edition, or Oracle Internet Directory 2.1.1.x and the complete release of Oracle8i (8.1.7) Enterprise Edition, then you must first upgrade Oracle Internet Directory to the release 9.2.0.x.x version, and then upgrade as a separate step either Oracle9i Enterprise Edition release 2 (9.2.0.1.0) or Oracle8i release 3 (8.1.7) to Oracle9i Enterprise Edition release 2 (9.2.0.x.x).


See Also:

Oracle Internet Directory README for more information on Oracle Internet Directory utilities, and necessary pre-upgrade and post-upgrade tasks.

4.4 Oracle Real Application Clusters

Review the following section if you plan to install Oracle Real Application Clusters.

4.4.1 Restrictions for Installing Real Application Clusters

The following restrictions apply to this release:

  • The Cluster Manager implementation might not be able to handle 32-bit and 64-bit clients concurrently. This will prevent 32-bit and 64-bit Oracle Real Application Clusters executables from being used at the same time within the same cluster domain.

    If a database is not set up with the Oracle Real Application Clusters option, then this restriction does not apply to the Oracle executables.

  • If you are installing Oracle9i release 2 (9.2.0.1.0) Real Applications Clusters on a cluster that already contains an ORACLE_HOME for a previous release of Real Application Clusters, then you must run the Oracle Universal Installer from the cluster node with the oraInventory installation registry. Doing this ensures that product installation inventories are synchronized on the nodes with information about existing ORACLE_HOME directories.

4.4.2 Real Application Clusters Pre-Installation Tasks

The following pre-installation instruction supplements the Solaris pre-installation procedure described under "Oracle Real Application Clusters" in Chapter 2, Pre-Installation, Oracle9i Installation Guide Release 2 (9.2.0.1.0) for UNIX Systems.

Install the Oracle 9.2.0.1.0 UDLM patch for Sun clusters, which is located on the first Oracle9i release 2 (9.2.0.1.0) CD Pack. You must install the on all nodes of the cluster on which you plan to run an Oracle9i release 2 (9.2.0.1.0) cluster database instance, even if you previously installed the Oracle9i release 1 (9.0.1) UDLM patch on these nodes.

For instructions on installing the UDLM patch, refer to the README.udlm file, which is in the /cdrom_path/racpatch directory.

4.4.3 Real Application Clusters Custom Installation Requirement

If you plan to create an Oracle Enterprise Manager repository in an existing database, and you plan to use the DRSYS tablespace for the repository, then ensure that the DRSYS tablespace raw device data file has an additional 50 MB of free space. This is in addition to the 250 MB size documented for this raw device.

4.4.4 Real Application Clusters and Database Upgrade Assistant

If you use Database Upgrade Assistant to upgrade an earlier Oracle database version (the "source" database) to Oracle9i release 2 (9.2.0.1.0) (the "target" database), then the upgraded database will always use the server parameter file SPFILE by default to store initialization file (initsid.ora) parameters. If the source database also uses SPFILE (either a cluster filesystem file or a shared raw device), then the upgraded target database also uses the same SPFILE.

If the source database does not use an SPFILE, then the target database uses a default server parameter file, spfile.ora, which is located in the $ORACLE_HOME/dbs/ directory.

If your platform does not support a cluster file system, then you must move the SPFILE to a shared raw device, using the following procedure:

  1. Create an SPFILE with the following commands:

    $ sqlplus "/ as sysdba"
    SQL> create pfile='?/dbs/initdbname.ora' from spfile='?/dbs/spfile.ora';
    SQL> create spfile='/dev/vx/rdsk/oracle_dg/dbname_spfile' frompfile='?/dbs/initdbname.ora';
    SQL> exit;
    
    

    where dbname is the system identifier (sid), or name of your cluster database.

  2. Go to the $ORACLE_HOME/dbs directory using the following command:

    $ cd $ORACLE_HOME/dbs
    
    
  3. Create an $ORACLE_HOME/dbs/initsid.ora file, where sid is the system identifier of the instance on the node. The initsid.ora file must contain the following line:

    SPFILE='/dev/vx/rdsk/oracle_dg/dbname_spfile'
    
    
  4. Copy the initsid.ora file to the remote nodes on which the cluster database has an instance with the following commands:

    $ rcp initsid.ora nodex:$ORACLE_HOME/dbs/initsidx.ora
    
    

    where sidx is the system identifier of the instance on node x. Repeat the preceding rcp command for each member node of the cluster database.

  5. Restart the cluster database with the following command syntax:

    $ srvctl stop database -d dbname
    $ srvctl start database -d dbname
    
    

4.4.5 Real Application Clusters and Database Configuration Assistant

The following section provides information on using Database Configuration Assistant (DBCA) to create a Real Application Clusters database.

4.4.6 Placing Datafiles On a Shared Non-OFA Cluster Configuration

If your ORACLE_HOME directory is not on a shared cluster file system partition, but you want to place datafiles, controlfiles, redo log files, or other database files on a shared cluster files system partition, then invoke DBCA using the following syntax to create the cluster database:

$ dbca -datafileDestination pathname

where pathname is the location where you want files to be placed.

For example, to place datafiles in the path, /ora/oradata, give the following command:

$ dbca -datafileDestination /ora/oradata

Note:

For optimal performance and data security, Oracle Corporation recommends that you configure your database in accordance with the Optimal Flexible Architecture (OFA) standard. For more information on OFA, refer to Oracle9i Administrator’s Reference Release 2 (9.2.0.1.0) for UNIX Systems.

4.4.7 Real Application Clusters Instance Management

After you create a cluster database using DBCA, the process revokes SYSDBA privileges for all users. As SYSDBA, you must grant SYSDBA privileges explicitly to the database user account that you plan to use for adding or deleting an instance to or from the cluster database.

For example, to grant SYSDBA privileges to the administrative user SYS, issue the following commands:

$ sqlplus "/ as sysdba"
SQL> grant sysdba to sys;
SQL> exit;

4.5 PL/SQL Native Compilation

This section provides additional information to assist in setting up and configuring native C code compilation of PL/SQL statements.

If you are a first-time user of native PL/SQL compilation, then Oracle Corporation recommends that you configure a test database first before proceeding to a production environment.

Back up your database before configuring the database for PL/SQL native compilation.

4.5.1 Determining Whether to Use PL/SQL Native Compilation

You must first determine if you will increase performance by enabling PL/SQL native compilation.

For each program unit, interpreted PL/SQL is compiled into machine-readable m-code, which is stored in the database, and interpreted at runtime.

For PL/SQL statements using PL/SQL native compilation, Oracle9i takes PL/SQL statements and generates corresponding C-code. Oracle9i then uses the makefile $ORACLE_HOME/plsql/spnc_makefile.mk, and the supported operating system C compiler, linker, and make utilities, to compile and link the resulting C-code into shared libraries, which are stored externally from the database. These shared library files are then loaded and run when the corresponding PL/SQL statement is invoked at runtime. In accordance with OFA recommendations, the shared libraries should be stored near the data files.

C-code runs faster than PL/SQL, but it takes longer to compile than m-code.

PL/SQL native compilation provides the greatest performance gains for computation-intensive procedural operations. Examples of such operations are data warehouse applications, and applications with extensive server-side transformations of data for display. In such cases, expect speed increases of up to 30%.

For PL/SQL program units that merely invoke SQL statements, and do not implement significant procedural logic, the performance benefits of native compilation will be small. However, natively compiled PL/SQL will always be at least as fast as the corresponding interpreted code.

When you determine that you will significantly increase performance in database operations using PL/SQL native compilation, Oracle Corporation recommends that you compile the whole database as NATIVE.

4.5.2 Required Parameters for PL/SQL Native Compilation

In all circumstances, whether you intend to compile a database as NATIVE, or you intend to compile individual PL/SQL units at the session level, you must set all required parameters.


Note:

The examples in this section for setting system parameters for PL/SQL native compilation assume a system using a server parameter file (SPFILE).

If you use a text initialization parameter file (PFILE, or initsid.ora), then make sure that you change parameters in your initialization parameter file, as indicated in the following table.


4.5.2.1 System Parameters

The following table lists the mandatory PL/SQL native compilation initialization parameters. You can only set them at the system level.

Parameter Characteristics
PLSQL_NATIVE_MAKE_UTILITY The full path to the make utility on your operating system. On Sun Solaris (64-bit), the path is /usr/ccs/bin/make.
PLSQL_NATIVE_MAKE_FILE_NAME The full path to the makefile used to create the shared libraries that contain natively compiled PL/SQL code.
PLSQL_NATIVE_LIBRARY_DIR The full path and directory name used to store the shared libraries that contain natively compiled PL/SQL code.

In accordance with optimal flexible architecture (OFA) rules, Oracle Corporation recommends that you create the shared library directory as a subdirectory where the data files are located.

For security reasons, only the users oracle and root should have write privileges for this directory.

PLSQL_NATIVE_LIBRARY_SUBDIR_COUNT The number of subdirectories in the directory specified by the parameter PLSQL_NATIVE_LIBRARY_DIR.

This is optional. Use this if the number of natively compiled C program units exceed 15000. If you need to set this option, refer to the section "Setting Up PL/SQL Native Library Subdirectories".

PLSQL_NATIVE_C_COMPILER Do not set this parameter.
PLSQL_NATIVE_LINKER Do not set this parameter.

4.5.2.2 Session Level Initialization Parameter

The parameter PLSQL_COMPILER_FLAGS determines whether PL/SQL code is natively compiled or interpreted, and determines whether debug information is included. The default setting is INTERPRETED,NON_DEBUG. To enable PL/SQL native compilation, you must set the value of PLSQL_COMPILER_FLAGS to NATIVE.

If you compile the whole database as NATIVE, then Oracle Corporation recommends that you set PLSQL_COMPILER_FLAGS at the system level.

Use the following syntax to set this parameter:

SQL> alter dynamic set plsql_compiler_flags='FLAG_A, FLAG_B'

where:

  • The variable dynamic is either session or system.

  • The variable FLAG_A is the code method you select.

    The following are possible values for the variable FLAG_A:

    • INTERPRETED: compile in interpreted mode.

    • NATIVE: compile in native mode.

  • The variable FLAG_B is the debug option you select. For this release, you cannot select NATIVE,DEBUG.

    The following are possible values for the variable FLAG_B

    • DEBUG: PL/SQL modules are compiled with PROBE debug symbols.

    • NON_DEBUG: PL/SQL modules are compiled without PROBE debug symbols.

4.5.3 Setting up Databases for PL/SQL Native Compilation

Use the procedures in this section to set up databases for PL/SQL native compilation.

4.5.3.1 Creating a New Database for PL/SQL Native Compilation

If you use Database Configuration Assistant, then use its features to set the initialization parameters required for PL/SQL native compilation, as described in the preceding section, "Required Parameters for PL/SQL Native Compilation".

Refer to Table 2-2, "Precompilers and Tools Restrictions and Requirements" in Oracle9i Installation Guide Release 2 (9.2.0.1.0) for UNIX Systems to find the supported C compiler on your Sun Solaris 64-bit operating system, and determine from your system administrator where it is located on your system. You will need to provide the path during installation.

The PL/SQL native compilation makefile, spnc_makefile.mk, already has the path of the link editor utility on the Sun Solaris (64-bit) operating system.

Determine if you need to set the initialization parameter PLSQL_NATIVE_DIR_SUBDIR_COUNT, and create PL/SQL native library subdirectories if necessary.

By default, PL/SQL program units are kept in one directory. However, if the number of program units exceeds 15000, then the operating system begins to impose performance limits. To work around this problem, Oracle Corporation recommends that you spread the PL/SQL program units in subdirectories.

If you have set up a test database, then use the following SQL query to determine how many PL/SQL program units you are using:

select count (*) from DBA_OBJECTS 
  where object_type in ( 
    select distinct object_type from dba_stored_settings 
      where object_type not like '%BODY%' );

If the application object count returned by this query is greater than 15,000, then complete the procedure described in the section "Setting Up PL/SQL Native Library Subdirectories".

4.5.3.2 Modifying an Existing Database for PL/SQL Native Compilation

To natively compile an existing Oracle9i database, complete the following procedure:

  1. Download scripts and follow the instructions at the following Web site:

    http://otn.oracle.com//tech/pl_sql/htdocs/README_2188517.htm
    
    
  2. Contact your system administrator to ensure that you have the required C compiler on your Sun Solaris 64-bit operating system, and obtain the path for its location. Use a text editor such as vi to open the file, spnc_makefile.mk, and set the value of the variable CC to that path.

    Also verify that the make and link editor utilities are in the default locations on the Sun Solaris 64-bit operating system.

  3. Set the value for the initialization parameter PLSQL_NATIVE_MAKE_FILE to the full path of the directory where the makefile shipped with Oracle9i for native PL/SQL compilation is installed. The filename is spnc_makefile.mk, and it is located in the directory plsql under $ORACLE_HOME, whose path you defined during installation.

    To confirm that the path is entered correctly, enter the following:

    select value from v$parameter where name = 'plsql_native_make_file_name'; 
    
    

    This statement should return a response similar to the following:

    VALUE 
    --------------------------------------------------------------
    /oracle/product/9.2.0/plsql/spnc_makefile.mk
    
    

    Note:

    You must use the full path of the ORACLE_HOME directory. You must not use an environmental variable such as $ORACLE_HOME in place of the full path.

  4. As the oracle user, create the PL/SQL native library directory for each Oracle database.


    Note:

    You must set up PL/SQL libraries for each Oracle database. Shared object (.so) files are logically connected to the database, as they are C-code counterparts to the m-code of interpreted statements that are stored in the database. You cannot share them between databases. If you set up sharing of the PL/SQL libraries, then it will corrupt the databases.

    Create a directory in a secure place, in accordance with OFA rules, to prevent .so files from unauthorized access.

    As .so files logically are a part of the database, ensure that they are backed up with the database.

    In addition, ensure that the OS utilities used for PL/SQL native compilation are writable only by a properly secured user.


  5. Using SQL, set the initialization parameter PLSQL_NATIVE_LIBRARY_DIR to the full path to the PL/SQL native library.

    For example, if the path to the PL/SQL native library directory is /oracle/oradata/mydb/natlib, then enter the following:

    SQL> alter system set plsql_native_libary_dir='/oracle/oradata/mydb/natlib'
    
    
  6. Determine if you need to set the initialization parameter PLSQL_NATIVE_DIR_SUBDIR_COUNT, and create PL/SQL native library subdirectories if necessary.

    By default, PL/SQL program units are kept in one directory. However, if the number of program units exceeds 15000, then the operating system begins to impose performance limits. To work around this problem, Oracle Corporation recommends that you spread the PL/SQL program units in subdirectories.

    If you have an existing database that you want to migrate to the new installation, or if you set up a test database, then use the following SQL query to determine how many PL/SQL program units you are using:

    select count (*) from DBA_OBJECTS 
      where object_type in ( 
        select distinct object_type from dba_stored_settings 
          where object_type not like '%BODY%' );
    
    

    If the application object count returned by this query is greater than 15,000, then complete the procedure described in the following section, "Setting Up PL/SQL Native Library Subdirectories".

  7. Set the remaining required initialization parameters as listed in the table in the preceding section "System Parameters".

  8. Create the following SQL program to confirm that PL/SQL native compilation is enabled:

    SQL> create procedure Hello is
    begin
       DBMS_Output.Put_line ( 'Hello NATIVE' );
    end Hello;
    
    
  9. Run the test SQL program Hello:

    SQL> execute Hello;
    
    

    If the program does not return the output "Hello NATIVE," then contact Oracle Support for assistance.

4.5.3.3 Setting Up PL/SQL Native Library Subdirectories

If you need to set up PL/SQL native library subdirectories, then use the following procedure:

  1. Create subdirectories sequentially in the form of d0, d1, d2, d3...dx, where x is the total number of directories. Oracle Corporation recommends that you use a script such as the following for this task:

    begin
    for j in 0..999
    loop
    Dbms_output.Put_Line ( ’mkdir d’ || To_Char(j) );
    end loop;
    end;
    
    
  2. To set the initialization parameter PLSQL_NATIVE_DIR_COUNT to enable access to the subdirectories, start SQL*Plus, and enter a SQL statement using the following syntax:

    SQL> alter system set plsql_native_library_subdir_count=number
    
    

    where the variable number represents the number of subdirectories that you create. For example, if you create 1000 subdirectories, then you would enter the following SQL statement:

    SQL> alter system set plsql_native_library_subdir_count=1000
    
    

4.5.4 Real Application Clusters and PL/SQL Native Compilation

To use PLSQL Native Compilation in a Real Application Clusters environment, you need to set the PLSQL_NATIVE_LIBRARY_DIR initialization parameter to a directory on a genuine shared file system. You cannot use PLSQL Native Compilation in a Real Application Clusters environment on Sun Solaris (64-bit).

4.5.5 Dependencies, Invalidation and Revalidation

This release handles dependencies between database objects in the same manner as in previous Oracle RDBMS versions. If an object on which a natively compiled PL/SQL program unit depends changes, then the PL/SQL module is invalidated. The next time the same program unit is executed, the RDBMS attempts to revalidate the module. When a module is recompiled as part of revalidation, it is compiled using its stored setting (the setting in place the last time the module compiled and appeared in the USER/ALL/DBA_STORED_SETTINGS data dictionary views.).

The stored settings are only used when recompiling as part of revalidation. If a PL/SQL module is explicitly compiled through the SQL commands "create or replace" or "alter...compile", then the current session setting is used.

Natively compiled PL/SQL program units are dependent on their implementation shared libraries. The RDBMS is unable to track deletions or location changes of these library dependencies, as the shared libraries are on the OS file system, external from the database.

If if you remove or delete a shared library, then you will see an ORA-06549 error. The program unit is not marked invalid, as the removal of a library is undetectable to the Oracle RDBMS until the module is executed. To recreate the missing library, you must explicitly recompile it, or recreate it from the source.

For example, if the shared library in which the test program "Hello" is deleted or moved, use the following procedure to correct the problem:

$ sqlplus scott/tiger

SQL> alter session set plsql_compiler_flags='NATIVE'

Session altered

SQL> alter procedure Hello compile;

Procedure altered.

SQL> exit

$ ls /usr/app/oracle/product 9.2.0.1.0/plsql_libs

HELLO__SCOTT__0.so

If you delete a PL/SQL program unit on the Oracle RDBMS, the shared libraries on the OS file system remain; you must delete these files manually when they are no longer necessary.


See Also:

Oracle9i Database Reference, PL/SQL User’s Guide and Reference, and Note 151224.1 on OracleMetalink.

5 Platform-Specific Product Support Update

The following product information in this section supersedes the information in the installation guide for Oracle9i release 2 (9.2.0.1.0) on Sun Solaris.

6 Post-Installation Issues

This section presents issues that can occur during post-installation.

6.1 Control File Size Limits

In addition to the database, a number of other Oracle features use control files to record metadata. The minimum data block size that your operating system permits limits the maximum size of control files. On Sun Solaris, the minimum data block size is 2048 bytes, and the maximum size of control files is 20000 database blocks.

6.2 How to Determine Whether Segments or Tablespaces are Using Compression

The following section provides additional information about database management.

6.2.1 Segments and Compression Settings

To find out which database segments are using compression, log in to the database as the user, SYS, and create the view all_segs with the following create or replace view statement:

SQL> create or replace view all_segs
     (owner, segment_name,
       partition_name, spare1
as
select u.name, o.name, o.subname, s.spare1
from sys.user$ u, sys.obj$ o, sys.ts$ ts, sys.sys_objects so,
     sys.seg$ s, sys.file$ f
where s.file# = so.header_file
   and s.block# = so.header_block
   and s.ts# = so.ts_number
   and s.ts# = ts.ts#
   and s.ts# = so.object_id
   and o.owner# = u.user#
   and s.type# = so.object_type_id
   and s.ts# = f.ts#
   and s.file# = f.relfile#
union all
select u.name, un.name, NULLL, NULL
from sys.user$ u, sys.ts$ ts, sys.undo $ un, sys.seg$ s,
     sys.file$ f
where s.file# = un.file#
   and s.block# = un.block
   and s.ts# = un.ts#
   and s.ts# = ts.ts#
   and s.user# = u.user#
   and s.type# in (1, 10)
   and un.status$ != 1
   and un.ts# = f.ts#
   and un.file# = f.relfile#
union all
select u.name, to_char(f.file#)|| '.' || to_char(s.block#), NULL, NULL
from sys.user$ u, sys.ts$ ts, sys.seg$ s, sys.file$ f
where s.ts# = ts.ts#
   and s.user# = u.user#
   and s.type# not in (1, 5, 6, 8, 10)
   and s.ts# = f.ts#
   and s.file# = f.relfile#
/

After creating this view, you can issue queries against the view to find out whether a segment currently is compressed, as illustrated in the following examples:

  • To determine if a segment is currently compressed, apply the following predicate in a query to the column spare1:

    bitand(spare1, 2048) > 0
    
    

    For example, to see if segments currently are compressed, issue a statement similar to the following:

    SQL> select * from all_segs where bitand(spare1,2048) > 0;
    
    
  • To determine if a segment contains any compressed blocks, apply the following predicate in a query:

    bitand(spare1, 4096) > 0
    
    

    For example, to see which segments contain any compressed blocks, issue a statement similar to the following:

    SQL> select * from all_segs where bitand(spare1, 4096) > 0;
    

6.2.2 Tablespaces and Compression Settings

When you want to determine compression settings on a table space, log in as SYS, and create the view compression_ts with the following create or replace view statement:

SQL> create or replace view compression_ts (tablespace_name, flags) as select ts.name, ts.flags from
sys.ts$ ts where ts.online$ !=3;

After creating this view, you can issue queries against it to find out the compression state of tablespaces, such as determining if a tablespace is currently set as DEFAULT COMPRESS, or DEFAULT NOCOMPRESS, as illustrated in the following examples:

  • To determine if a tablespace is currently set as DEFAULT COMPRESS, use the following predicate:

    bitand(flags, 64) > 0
    
    

    For example, to see which tablespaces are currently DEFAULT COMPRESS, issue a statement similar to the following:

    SQL> select * from compression_ts where bitand(flags, 64) > 0
    
    
  • To determine if a tablespace is currently set as DEFAULT NOCOMPRESS, use the following predicate:

    bitand(flags, 64) == 0
    
    

    For example, to see which tablespaces are currently DEFAULT NOCOMPRESS, issue a statement similar to the following:

    select * from compression_ts where bitand(flags, 64) == 0;
    

7 Alerts

The following section provides information about forthcoming product changes.

7.1 Using SYS.DUAL for Updates

Starting with the Oracle10i release, using the table SYS.DUAL for updates will be prohibited. If you need to update SYS.DUAL to enforce concurrency control of your application, then Oracle Corporation recommends that you use dbmslock.sql as a viable alternative. SYS.DUAL will still be available for selections.

8 Known Bugs

The following is a list of known bugs that affect Oracle9i release 2 (9.2.0.1.0):

8.1 Error Messages Display Incorrectly in Japanese

Due to a problem in Java (Sun Microsystems bug identification number 4258198), Java cannot correctly display some error messages returned from UNIX operating systems. Oracle Corporation assigned Oracle Bug identification number 2156506 to track this problem.

8.2 Thai Characters Display Incorrectly

Due to a problem in Java (Sun Microsystems bug identification number 4674864), Java cannot correctly display Thai characters. Oracle Corporation assigned bug identification number 2342889 to track this problem.

To work around this problem, unset the LANG and LC_ALL environment variables.

8.3 Asynchronous I/O with Databases on Raw Devices

Oracle9i release 2 (9.2.0.1.0) installations with databases on raw devices may experience a rare issue with asynchronous I/O that happens under certain conditions in the operating system kernel. Oracle Corporation assigned Oracle bug identification number 2371040 to track this problem. If this problem occurs, contact Sun Microsystems to obtain patch 112852-01.

8.4 Error in JSP/Servlet Script

There is a path error in the $ORACLE_HOME/bin/ojspc script. This path error causes the script to fail. To correct this error:

  1. Open the script

  2. Find $ORACLE_HOME/jsp/lib/servlet.jar

  3. Correct it to read $ORACLE_HOME/lib/servlet.jar

  4. Save the script

8.5 Error Installing OLAP CWMLITE Tablespace

During installation, if you select Online Analytic Processing (OLAP) services, perform multiple installations on the same system, and create new databases during these installations, then CWMLite may have an invalid OLAP CWMLITE tablespace registry. Oracle Corporation assigned bug identification number 2359208 to track this problem.

To work around this problem, use the following procedure after you complete installation:

  1. Verify that the database and the listener are running.

  2. Using the following command, start SQL*Plus as the administrative user SYS:

    sqlplus "/ as sysdba"
    
    
  3. Using the following command, enable the display of text within the PL/SQL block:

    SQL> set serveroutput on;
    
    
  4. Using the following command, verify whether the OLAP CWMLITE tablespace is valid:

    SQL> execute dbms_output.put_line(sys.dbms_registry.is_valid(’AMD’));
    
    

    If the preceding command returns 0, then the OLAP CWMLITE tablespace is invalid. Go to step 5.

    If the preceding command returns 1, then the OLAP CWMLITE tablespace is valid, and no further testing needs to be done.

  5. If the OLAP CWMLITE tablespace is invalid, turn on echoing with the following command:

    SQL> execute cwm2_olap_manager.Set_Echo_on;
    
    
  6. Validate the OLAP CWMLITE tablespace with the following command:

    SQL> execute cwm2_olap_installer.Validate_CWM2_Install;
    
    

    After entering the preceding command, the OLAP CWMLITE registry is validated. During this process, screen messages list database objects such as Dimension, Dimension Attribute, and Level, and where these objects are created.

  7. When the output stops, enter the following command to verify that the OLAP CWMLITE registry is now valid:

    SQL> execute dbms_output.put_line(sys.dbms_registry.is_valid('AMD'));
    
    

    If the preceding command returns 0, then the OLAP CWMLITE registry is still invalid. Review your installation logs for other errors.

    If the preceding command returns 1, then the OLAP CWMLITE tablespace is valid, and no further testing needs to be done.

9 Documentation Accessibility

Our goal is to make Oracle products, services, and supporting documentation accessible, with good usability, to the disabled community. To that end, our documentation includes features that make information available to users of assistive technology. This documentation is available in HTML format, and contains markup to facilitate access by the disabled community. Standards will continue to evolve over time, and Oracle Corporation is actively engaged with other market-leading technology vendors to address technical obstacles so that our documentation can be accessible to all of our customers. For additional information, visit the Oracle Accessibility Program Web site at: http://www.oracle.com/accessibility/

Accessibility of Code Examples in Documentation

JAWS, a Windows screen reader, may not always correctly read the code examples in this document. The conventions for writing code require that closing braces should appear on an otherwise empty line; however, JAWS may not always read a line of text that consists solely of a bracket or brace.

Accessibility of Links to External Web Sites in Documentation

This documentation may contain links to Web sites of other companies or organizations that Oracle Corporation does not own or control. Oracle Corporation neither evaluates nor makes any representations regarding the accessibility of these Web sites.