C HA PTER 1 ■ INS TA LLIN G, UPGRADING, A ND MA NAGING CHANGE 11
that involve tables and views for which you have set the result_cache option. You can also cache
PL/SQL function results in addition to SQL query results. In addition to the result_cache_mode
option, there are several result cache–related initialization parameters, such as the result_
cache_max_result, result_cache_max_size, and result_cache_remote_expiration parameters.
You can also cache query results on the client side. When you use client-side query caching,
you can specify the new parameters client_result_cache_size and client_result_cache_lag.
We discuss all these new parameters as part of the result cache feature in Chapter 4.
■Note When you set the compatible parameter to 11.0.0 or greater, the server parameter file is written in
a new format to comply with Oracle’s HARD initiative, which helps prevent writing corrupted data to disk.
Parameter to Control DDL Lock Timeout
One of the important new features of the Oracle 11g database is the new DDL locking duration
control feature. The ddl_lock_timeout parameter lets you specify the length of time a DDL
statement will wait for a DML lock. This feature comes in handy when you want to perform
online reorganization, where a DML lock by a user may prevent a DDL operation from succeeding.
You can practically specify that a DDL statement wait forever by setting the parameter to the
maximum allowed value, which is 1,000,000 seconds. We discuss the ddl_lock_timeout parameter
in detail in Chapter 3.
SecureFiles-Related Parameter
The new Oracle SecureFiles feature is a major revamping of the implementation of Large Objects
(LOBs). By using the new initialization parameter db_securefile, you can specify whether to
treat a LOB file as a SecureFiles file. Please see Chapter 12 for a detailed discussion of SecureFiles.
■Note The job_queue_processes parameter has been moved to the basic initialization parameters list
in Oracle Database 11g. Although this is not a big deal on the face of it, the point is that Oracle is saying you
don’t have to worry about setting a value for the job_queue_processes parameter in most cases, since it’s
classified as a basic initialization parameter. The job_queue_processes parameter can take a value from
0 to 1000. If you set it to 0, you can run DBMS_SCHEDULER jobs, but not the DBMS_JOB-based jobs. If you set
the parameter to any value from 1 to 1000, both DBMS_JOB-based and DBMS_SCHEDULER-based jobs will run.
The db_ultra_safe Parameter
The new parameter db_ultra_safe sets default values for parameters, such as the db_block_
checking parameter, that control protection levels. To be precise, you can control three corruption-
checking parameters—db_block_checking, db_block_checksum, and db_lost_write_protect—by
specifying values for the db_ultra_safe parameter.
12 CH APT ER 1 ■ I NST ALLI NG, U PGRA D ING , AN D M ANA GI NG CH A NGE
The db_ultra_safe_parameter can take three values—off, data only, and data and index.
By default, the db_ultra_safe parameter is set to off, meaning that any values you set for any
of the three parameters won’t be overridden. If you set the db_ultra_safe parameter value to
data only, the following will be true:
• db_block_checking will be set to medium.
• db_lost_write_protect will be set to typical.
• db_block_checksum will be set to full.
If you set the db_ultra_safe parameter value to data and index, the following will be true:
• db_block_checking will be set to full.
• db_lost_write_protect will be set to typical.
• db_block_checksum will be set to full.
Security-Related Parameters
There are two important security-related initialization parameters that are new in Oracle
Database 11g. The first parameter, sec_case_sensitive_logon, lets you enable and disable
password case-sensitivity in the database. By default, password case-sensitivity is enabled in
Oracle Database 11g.
The other new security-related initialization parameter is the parameter sec_max_failed_
login_attempts, which specifies the maximum number of times a client can make a connec-
tion attempt to a server. The default value of this parameter is 10.
Please see Chapter 5 for more details about the new case-sensitive password feature as
well as the sec_max_failed_login_attempts parameter.
Optimizer-Related Parameters
There are several important new optimizer-related initialization parameters that are intended
to support powerful new features such as SQL Plan Management, private statistics, and invis-
ible indexes. We discuss all these features in subsequent chapters and merely introduce the
relevant new initialization parameters in this section.
Oracle Database 11g replaces the old plan stability feature with the new SQL Plan Manage-
ment feature. A change in the execution plan of an important SQL statement can potentially
degrade performance. To avoid this performance degradation, the database selects optimal
SQL plan baselines and prevents the optimizer from changing the execution plan of a state-
ment until the new plan is found to be definitely superior to the existing SQL baseline plan
(lower cost). You can enable automatic SQL plan capture so the database can capture and
maintain SQL plan history using information from the optimizer.
By default, automatic plan capture is disabled, and you can enable it by setting the
optimizer_capture_sql_plan_baselines parameter to true. Chapter 4 contains a detailed
discussion of the SQL Plan Management feature.
C HA PTER 1 ■ INS TA LLIN G, UPGRADING, A ND MA NAGING CHANGE 13
Use the new initialization parameter optimizer_use_sql_baselines to enable the use of SQL
plan baselines that are stored in what’s called the SQL management base. If you enable SQL plan
baselines, the cost optimizer will search in the SQL management base for a SQL plan baseline
for the SQL statement being currently compiled. If there is a SQL plan outline available, the
cost optimizer will select the baseline plan with the least cost.
A third new optimizer-related parameter, optimizer_private_statistics, allows you to
specify the use of private statistics during the compilation of SQL statements. Please refer to
Chapter 4 for details about the major optimizer-related new features.
Finally, the new parameter optimizer_use_invisible_indexes lets you enable and disable
the use of invisible indexes, a significant new feature that we’ll explain in Chapter 3.
DBCA Enhancements
The DBCA provides an alternative to the manual creation of a new Oracle database. In Oracle
Database 11g, you should be aware of a couple of changes when you’re creating a new database
with the help of the DBCA. These changes pertain to security settings and the choice of memory
allocation for the new database.
We summarize the changes in the DBCA by listing all the steps required to create a new
database with the DBCA. Most of the steps are identical to the steps you followed in the Oracle
Database 10g release, but there are two new steps and a couple of modified steps. Let’s review
the database creation steps when you use the DBCA to create a new Oracle 11g database:
1. On the DBCA Operations page, select the Create a Database option.
2. On the Database Templates page, select one of the following database types: Data
Warehouse, General Purpose, or Transaction Processing.
3. On the Database Identification page, select the database name and the system
identifier (SID).
4. On the Management Options page, select Database Control or Grid Control.
5. On the Database Credential page, specify passwords for accounts such as sys and system.
6. On the Security Settings page, choose the security settings for the new database (this is
new in Oracle Database 11g). DBCA provides secure database configuration features by
default. You can turn off security configuration in the new database if you want. Here
are the important features related to secure database configuration:
• Audit settings
• Password profiles
• Revoking grants to the public role
You’ll find more about secure database configuration in Chapter 6. Figure 1-2 shows the
new Security Settings page.
14 CH APT ER 1 ■ I NST ALLI NG, U PGRA D ING , AN D M ANA GI NG CH A NGE
Figure 1-2. DBCA’s new Security Settings page
7. On the Network Configuration page, select the listener(s) for which you plan to register
the new database. (This is new in Oracle Database 11g.) Figure 1-3 shows the new Network
Configuration page.
Figure 1-3. DBCA’s new Network Configuration page
8. On the Storage options page, select the type of storage mechanism.
9. On the Database File Locations page, specify the Oracle software home and the
directory for the database files, or select the Oracle-Managed Files (OMF) option
for database files.
C HA PTER 1 ■ INS TA LLIN G, UPGRADING, A ND MA NAGING CHANGE 15
10. On the Recovery Configuration page, specify the archivelog/noarchivelog choice and
the flash recovery area location.
11. On the Database Content page, specify the sample schemas and custom scripts to be
run after database creation.
12. On the Initialization Parameters page, alter the default settings for various initialization
parameters, such as memory, character sets, and so on. This screen lets you select among
the three types of memory allocation—automatic memory management, automatic
shared memory management, or manual shared memory management. (This option
has been modified in Oracle Database 11g.) Figure 1-4 shows this page.
Figure 1-4. The DBCA’s New Initialization Parameters page
13. On the Database Storage page, make changes in the storage structure of the database.
14. On the Database Creation Options page, choose from three options: Create Database,
Save As a Database Template, or Generate Database Creation Scripts.
In step 6, you can choose to use the new enhanced default security settings, or you can
disable the security controls if you want. The default security controls are part of the new
Secure Configuration option, which configures database auditing and password policy and
expiration settings. Thus, the default configuration includes the Secure Configuration option,
but you can check the Disable Security Settings box to disable the enhanced security controls.
The new database is then installed with the default security options for Oracle Database 10g
Release 2. You can configure the Secure Configuration option later by invoking the DBCA and
16 CH APT ER 1 ■ I NST ALLI NG, U PGRA D ING , AN D M ANA GI NG CH A NGE
altering the security settings of the database. Oracle strongly recommends you adopt the new
Secure Configuration option. Note that if you install Oracle Database Vault, you can’t change
the Secure Configuration option using the DBCA.
In step 12, you get a chance to modify the default initialization parameter settings. The
only real change in this section pertains to the allocation of Oracle memory. As in Oracle Data-
base 10g, you can choose between Typical, which requires little or no configuration on your
part, and Custom, which requires more configuration. If you choose the Typical method of
memory allocation, Oracle automatically tunes memory for the instance using automatic memory
management. The amount of memory Oracle allocates to the instance will be a percentage of
the overall physical memory on the server. If you choose the Custom method, you must specify
the memory you want to allocate to the Oracle instance, and you must also choose from one
of the following three types of memory allocation:
• Automatic memory management (new in Oracle Database 11g)
• Automatic shared memory management
• Manual shared memory management
You select automatic management by first selecting the Typical option on the Initializa-
tion Parameters page and then selecting the Use Automatic Memory Management option.
Automatic memory management, as explained earlier in this chapter, is new to Oracle Data-
base 11g, and you can enable it through the new unitization parameters memory_target and
memory_max_target. We explain automatic memory management in detail in Chapter 3.
New Oracle Background Processes
Some new Oracle background processes in Oracle Database 11g can help with some of the new
features introduced as part of this release. Here are the important new background processes
in Oracle Database 11g:
• FBDA: The flashback data archive process archives data from all tables that are enabled
for flashback archive. The process stores all pre-change images of the table rows in the
flashback archive following a DML operation such as an update or a deletion. Flashback
archiving is an important Oracle Database 11g new feature that we discuss in Chapter 3.
• SMCO: The space management coordinator process is in charge of coordinating the
work of space management–related tasks such as space reclamation, for example.
• RCBG: The result cache background process supports the new result cache feature.
You’ll get a chance to review the key new background processes in more detail when we
discuss the new features that use these background processes.
■Note On Windows servers, the Volume Shadow Copy Service infrastructure lets you make snapshots,
called shadow copies. When you install Oracle Database 11g, the Oracle Shadow Copy Service Writer is auto-
matically installed.
C HA PTER 1 ■ INS TA LLIN G, UPGRADING, A ND MA NAGING CHANGE 17
New Oracle-Supplied PL/SQL Packages
Several new Oracle-supplied PL/SQL packages provide support for various new features. We
describe the most important packages briefly here; you’ll find explanations regarding the use
of each of these packages in later chapters:
• DBMS_CONNECTION_POOL: Supports the new database resident connection pooling feature
(explained in Chapter 3)
• DBMS_SQLPA: Supports the new SQL Performance Analyzer feature, which we explain later
in this chapter
• DBMS_ADDM: Facilitates the management of the Automatic Database Diagnostic Monitor
• DBMS_SPM: Supports the new SQL plan management feature (explained in Chapter 4)
• DBMS_AUTO_TASK_ADMIN: Supports the automated maintenance task (explained in Chapter 3)
• DBMS_COMPARISION: Lets you compare the database objects in two different databases
(explained in Chapter 3)
• DBMS_SQLDIAG: Lets you manually invoke the new SQL Test Case Builder (explained in
Chapter 2)
• DBMS_HM: Supports the new database health management feature. The package helps you
run Health Monitor checks and retrieve the resulting reports. We discuss the Health
Monitor in Chapter 2.
• DBMS_RESULT_CACHE: Supports the new result cache feature (explained in Chapter 4)
• DBMS_WORKLOAD_CAPTURE and DBMS_WORKLOAD_REPLAY: Support the new Database Replay
feature, which we discuss later in this chapter
Of course, as with all new database releases, several of the older Oracle-supplied packages
have been updated. Please refer to the Oracle P/L SQL Packages manual for full details on all
Oracle packages that have been updated in Oracle Database 11g.
■Note In Oracle Database 10g, manual undo management using rollback segments was deprecated, but
the default value for the undo_management initialization parameter was still manual. In Oracle Database 11g, by
default the value of this parameter is set to auto. If you create a new database with the DBCA, Oracle auto-
matically creates the undo tablespace for you. You can still operate a database in the manual undo management
mode, but Oracle strongly recommends using automatic undo management owing to its benefits, and we concur.
Upgrading to Oracle Database 11g
Upgrading to the new Oracle Database 11g release is similar to the upgrade process in 10g, but
it contains more sophisticated pre-upgrade checks as well as simplified error management.
The changes in Oracle 11g simplify the database upgrade process while making it faster. Since
both the DBUA and the manual upgrade processes utilize the same scripts, such as the
18 CH APT ER 1 ■ I NST ALLI NG, U PGRA D ING , AN D M ANA GI NG CH A NGE
utlu111i.sql and utlu111s.sql scripts, the improvements are common to both methods. The
pre-upgrade and the post-upgrade scripts in Oracle 11g work the same way as they did in the
Oracle 10g version.
Upgrading and the Compatibility Factor
The default compatibility value for Oracle Database 11g version 11.1 is 11.1. However, you can
upgrade to Oracle Database 11g with a minimum compatibility value of 10.0.0. Before you
perform the database upgrade, you must set the compatibility level for your new database by
setting a value for the initialization parameter compatible. If you omit this parameter altogether
from the new initialization parameter file, it defaults to 11.1.0. Oracle recommends you use the
minimum value for the compatible parameter during the upgrade (10.0.0). This way, if your
upgrade doesn’t go well for some reason and you have to back out of the upgrade process, the
upgraded database won’t become incompatible with your previous (10g.x) release.
If you upgrade to 11.1 and keep the compatible parameter at 10.0.0.0, only a small portion
of the new features, limited to those that don’t make incompatible database structures on disk,
will be allowed. The vast majority of the 11g features will make these permanent changes, however,
so the lower compatibility level disables those new features. Once you confirm that the upgrade
did finish successfully, you can change the value of the compatible parameter to 11.1 or greater,
depending on the software release you installed. Just remember that once you do this and
restart the database, you can’t downgrade to the previous release.
Before you increase the setting of the compatible initialization parameter, back up the
database, and either edit the initialization parameter (compatible=11.1.0, for example) or, if
you’re using the server parameter file, use the following statement to make the change:
SQL> alter system set compatible ='11.1.0' scope=spfile;
Once you change the value of the compatible parameter, shut down the database
(shutdown immediate), and restart it with the startup command. To go back to the old compat-
ibility level after this if something doesn’t work right, you must return to the backup you made
of the pre-upgrade database.
Upgrade Path to Oracle 11g
Whether you can directly upgrade your current Oracle database to Oracle 11g or have to perform an
upgrade to an intermediate release first depends on your current Oracle database release. Oracle
supports a direct upgrade to Oracle Database 11g Release 1, if you’re migrating from a 9.2.04 or
newer release of the Oracle database software. If you want to upgrade to Oracle Clusterware 11g
release 1 (11.1), then you must upgrade from an Oracle Clusterware release 10.2.0.3 or newer.
Here’s a summary of the upgrade path to Oracle 11g for Oracle database releases older than 9.2.04.
• 7.3.3 (or lower) ➤ 7.3.4 ➤ 9.2.0.8 ➤ 11.1
• 8.0.5 (or lower) ➤ 8.0.6 ➤ 9.2.0.8 ➤ 11.1
• 8.1.7 (or lower) ➤ 8.1.7.4 ➤ 9.2.0.8 ➤ 11.1
• 9.0.1.3 (or lower) ➤ 9.0.1.4 ➤ 9.2.0.8 ➤ 11.1
• 9.2.0.3 (or lower) ➤ 9.2.0.8 ➤ 11.1
C HA PTER 1 ■ INS TA LLIN G, UPGRADING, A ND MA NAGING CHANGE 19
■Note In general, Oracle’s logic is that, for a direct upgrade, Oracle will support whatever version of the
database software is supported at the time of general availability of the new product. This also includes
compatibility information regarding database links and communications between the versions of Oracle.
As you can see, some of the older versions have to be migrated to multiple intermediate
releases before you can upgrade to Oracle Database Release 1 (11.1). As in the Oracle Database 10g
release, you can upgrade with the help of Oracle-provided scripts or use the DBUA to simplify
matters. For certain databases, you can also consider using the Data Pump Export and Import
utilities as well as the create table as select (CTAS) statement to copy all or part of a database
into a new database created with the Oracle Database 11g server software.
You can upgrade an Oracle 8i, Oracle 9i, or Oracle Database 10g client to the Oracle 11.1
release. You can use the Oracle 11.1 client to access any Oracle 8i, Oracle 9i, Oracle Database
10g, and Oracle Database 11g (11.1) databases.
In the following sections, we’ll review the changes in the manual upgrade first and then
look at upgrading with the DBUA.
A Manual Upgrade Example
A manual upgrade of an Oracle database involves executing a set of Oracle-provided SQL scripts
that are stored in the $ORACLE_HOME/rdbms/admin directory. The first script you run before starting
the upgrade process is the utlu111i.sql script, also called the Pre-Upgrade Information Tool.
In Oracle Database 11g, this utility provides more information than before to help you during
the upgrade process.
If you’re upgrading from Oracle Database 10g to Oracle Database 11g, you must copy three
scripts (utlu11i.sql, utilu111s.sql, and utlu111x.sql) from the 11g database’s file system
($ORACLE_HOME/rdbms/admin/) to a staging directory on the 10g database’s file system.
Before you can actually run the upgrade script provided by Oracle, you must gather infor-
mation regarding the upgrade requirements by running the Pre-Upgrade Information Tool
(invoked by the utlu111i.sql script). Once you make sure you’ve taken care of all the warnings
and recommendations made by the Pre-Upgrade Information Tool, you can upgrade databases
to the Oracle Database 11g release using the same type of scripts as in the previous releases. In
this case, the database upgrade scripts are named in the following way:
• utlu111i.sql: This is the previously described pre-upgrade script.
• catupgrd.sql: This is the actual upgrade script and is similar to the script in previous
releases. The major change now is that it has been restructured to support parallel
upgrades of the database.
• utlu111s.sql: This is the upgrade status utility script, which you invoke after completing
the database upgrade.
Here’s a brief summary of the manual direct upgrade process from a 10.2 Oracle release
database to the Oracle 11.1 release. Remember that Oracle supports a direct upgrade to the
Oracle Database 11g release from a 9.2.0.4, 10.1, or 10.2 release database. You must log in as the
owner of the Oracle 11.1 release Oracle home directory.
20 CH APT ER 1 ■ I NST ALLI NG, U PGRA D ING , AN D M ANA GI NG CH A NGE
■Note Your database upgrade may take a long time since the database will collect optimizer statistics
for any dictionary tables that are missing statistics or whose statistics were significantly changed during
the upgrade. You can speed up the upgrade process by gathering statistics for these tables by using the
DBMS_STATS.GATHER_DICTIONARY_STATS procedure before starting the upgrade.
1. Log in as the owner of the Oracle 11.1 release Oracle home directory, and copy the
utlu111.i sql file from the $ORACLE_HOME/rdbms/admin directory to another directory
such as /tmp.
2. Log in as the owner of the Oracle home directory of the database you want to upgrade,
and run the utlu111.i sql script (from the /tmp directory, where you copied it to) to get
the pre-upgrade information such as the necessary initialization parameter changes,
tablespace space requirements, and so on. Spool the results of the script execution so
you can review the output later. For example, the following is a run of the utlu111i.sql
script on one of our own systems:
SQL> spool upgrade.log
SQL> @utlu111i.sql
Oracle Database 11.1 Upgrade Information Utility 03-23-2007 13:36:14
.
**********************************************************************
Database:
**********************************************************************
--> name: ORCL
--> version: 10.2.0.1.0
--> compatible: 10.2.0.1.0
--> blocksize: 8192
.
**********************************************************************
Tablespaces: [make adjustments in the current environment]
**********************************************************************
--> SYSTEM tablespace is adequate for the upgrade.
.... minimum required size: 593 MB
.... AUTOEXTEND additional space required: 123 MB
--> UNDOTBS1 tablespace is adequate for the upgrade.
.... minimum required size: 454 MB
.... AUTOEXTEND additional space required: 429 MB
--> SYSAUX tablespace is adequate for the upgrade.
.... minimum required size: 306 MB
.... AUTOEXTEND additional space required: 66 MB
--> TEMP tablespace is adequate for the upgrade.
.... minimum required size: 61 MB
.... AUTOEXTEND additional space required: 41 MB
.
**********************************************************************