Professional Documents
Culture Documents
Upgrade
Upgrade
References
APPLIES TO:
PURPOSE
This document is created for use as a guideline and checklist when manually upgrading from Oracle
10gR2 (10.2) , Oracle 11gR1 (11.1) or Oracle 11gR2 (11.2) to Oracle 12c Release 1 (12.1)
Step 1: Upgrade Path for Oracle Database to Oracle 12c Release 1 (12.1)
Minimum version of the database that can be directly upgraded to Oracle 12c Release 1 (12.1)
For example:
If you are upgrading from 11.2.0.1 or 11.1.0.6, then you must first upgrade to Oracle Database 11g
Release 2 (11.2.0.2).
If you are upgrading from 10.2.0.2, 10.2.0.3, 10.2.0.4, or 10.1.0.5, then you must first upgrade to
10.2.0.5 or later.
For release 9.2.0.8, you must first upgrade to an intermediate Oracle Database release, as follows:
9.2.0.8 -> 11.2.0.2 or 11.2.0.3 -> 12.1
Reminder:
To locate the patchid of a patchset refer to:
Either take a cold or hot backup of the source database (advisable to have cold backup).
Connect to RMAN:
RUN
{
ALLOCATE CHANNEL chan_name TYPE DISK;
BACKUP DATABASE FORMAT '<db_backup_directory>%U' TAG before_upgrade;
BACKUP CURRENT CONTROLFILE TO '<controlfile_backup_directory>';
}
Ensure that all database components/objects provided by Oracle are VALID in the source database prior
to starting the upgrade.
Ensure that you do not have duplicate objects in the SYS and SYSTEM schema.
The following duplicate objects are permissible duplicate objects:
OBJECT_NAME OBJECT_TYPE
--------------------------- -------------------
AQ$_SCHEDULES TABLE
AQ$_SCHEDULES_PRIMARY INDEX
DBMS_REPCAT_AUTH PACKAGE
DBMS_REPCAT_AUTH PACKAGE BODY
Disable any custom triggers that would fire before/after DDL and enable them after the upgrade is
complete.
In 11g, Creation of ACLs with timestamp with timezone datatype does not fail but migrating the same in
12c it fails with "ORA-01830: date format picture ends before converting entire input string" error
Please refer Note 1958876.1 Upgrade to 12.1 fails with ORA-01830 date format picture ends before
converting entire input string ORA-06512: at "SYS.XS_OBJECT_MIGRATION"
Patch requirements BEFORE upgrade ,to avoid the ORA-7455 error while running the datapump after
the upgrade . Please see Note 2017572.1 ORA-7445 [qcsIsColInFro] Querying After Upgrade to 12c
Before starting the manual upgrade it is required change the preference for 'concurrent statistics
gathering' on the current release if the current setting is not set to 'FALSE'
First, while still on the 11.2. release, obtain the current setting:
When 'concurrent statistics gathering' is not set to 'FALSE', change the value to ‘FALSE’ before the
upgrade.
BEGIN
DBMS_STATS.SET_GLOBAL_PREFS('CONCURRENT','FALSE');
END;
/
In both 11.2 asin 12.1 concurrency is disabled by default for both manual and automatic statistics
gathering. If the database requires changing this value back to the original setting, do this after the
upgrade.
Check for the integrity of the source database prior to starting the upgrade by downloading and running
the dbupgdiag.sql script from the My Oracle Support article below:
$ cd $ORACLE_HOME/rdbms/admin
$ sqlplus "/ as sysdba"
SQL> @utlrp.sql
If the Oracle owned objects cannot be validated then it is suggested to post a community thread or open
an SR to investigate why the object/objects cannot be validated.
After validating the invalid objects, re-run dbupgdiag.sql in the database once again and make sure that
everything is fine.
It is advisable to do a Health Check using "hcheck.sql" script .Please refer following article to download
the script.
Note 136697.1 hcheck.sql" script to check for known problems in Oracle8i, Oracle9i, Oracle10g and
Oracle 11g
Run the Pre-Upgrade Information Tool from the environment of the database that will be upgraded.
You must analyze your database before upgrading it to the new release.
Note that the database must be running in normal mode in the old release.
In case of the INDIRECT upgrade download and use the latest Pre-Upgrade Information Tool see the
following:
Note 884522.1 How to Download and Run Oracle's Database Pre-Upgrade Utility
or
Step 1:
* Log into the system as the owner of the Oracle Database 12c Release 1 (12.1) Oracle Home
directory.
* Copy the Pre-Upgrade Information Tool script preupgrd.sql and utluppkg.sql from the Oracle
Database 12c Release 1 (12.1) $ORACLE_HOME/rdbms/admin directory to the
$ORACLE_HOME/rdbms/admin directory of the source Oracle Home.
Step 2:
* Run the new Pre-Upgrade Information Tool. For example, if you copied preupgrd.sql to the /admin
directory of the source Oracle Home:
SQL> @$ORACLE_HOME/rdbms/admin/preupgrd.sql
After upgrading to Oracle Database 12c Release 1 (12.1) from INDIRECT database upgrade release like
Oracle Database9i Release 2 (9.2) or Oracle Database 10g Release 1 (10.1), the CONNECT role has only
the CREATE SESSION privilege; the other privileges granted to the CONNECT role in earlier releases are
revoked during the upgrade. To identify which users and roles in your database are granted the
CONNECT role, use the following query:
If users or roles require privileges other than CREATE SESSION, then grant the specific required privileges
prior to upgrade. The upgrade scripts adjust the privileges for the Oracle-supplied users.
In Oracle 9.2.x and 10.1.x CONNECT role includes the following privileges:
GRANTEE PRIVILEGE
------- ----------------------
CONNECT CREATE VIEW
CONNECT CREATE TABLE
CONNECT ALTER SESSION
CONNECT CREATE CLUSTER
CONNECT CREATE SESSION
CONNECT CREATE SYNONYM
CONNECT CREATE SEQUENCE
CONNECT CREATE DATABASE LINK
From Oracle 10.2, 'CONNECT' role only includes 'CREATE SESSION' privilege.
4.2 Update Access Control Lists and Network Utility Packages
Starting with Oracle Database 12c, the access control of the UTL packages (UTL_TCP, UTL_SMTP,
UTL_MAIL, UTL_HTTP, and UTL_INADDR) is implemented using Oracle Database Real Application
Security and does not require Oracle XML DB.
Actions are discussed in Post Upgrade tasks (Step 7.12), as the DBMS_NETWORK_ACL_ADMIN package is
introduced after upgrading the database and not available in prior releases.
Create a script for DBLINKs (in case the database has to be downgraded again).
During the upgrade to Oracle Database 12c any passwords in database links are encrypted.
To downgrade to the original release, all of the database links with encrypted passwords must be
dropped prior to the downgrade.
Consequently, the database links do not exist in the downgraded database.
If you anticipate a requirement to be able to downgrade to your original release, then save the
information about affected database links from the SYS.LINK$ table, so that you can re-create the
database links after the downgrade.
The default time zone file shipped with the Oracle 12c Release 1 is version 18.
To see if there is any need for the DST update during the upgrade please check the following reference
one:
Note 1665676.1 Actions for DST Updates When Upgrading To Or Applying The 12.1.0.2 Patchset
or
Note 1522719.1 Actions for DST Updates When Upgrading To 12.1.0.1 Base Release
Oracle recommends collecting statistics the night before starting the upgrade to decrease the amount of
downtime
To decrease the amount of downtime incurred when collecting statistics, Oracle recommends to collect
statistics prior to performing the actual database upgrade.
As of Oracle Database 10g Release 1 (10.1), Oracle recommends that you use the
DBMS_STATS.GATHER_DICTIONARY_STATS procedure to gather these statistics. For example, you can
enter the following:
4.7 Save Database Control Files and Data with the emdwgrd Utility
After upgrading to Oracle Database 12c, if you want to downgrade Oracle Enterprise Manager Database
Control you must save your Database Control files and data before upgrading your database.
The emdwgrd utility can be used to keep a copy of your database control files and data before
upgrading your database.
The emdwgrd utility resides in the ORACLE_HOME/bin directory in the Oracle Database 12c home.
where old_SID is the SID of the database being upgraded and save_directory is the path to the storage
place you have chosen for your Database Control files and data.
b. For RAC database, remote copy is required across the cluster nodes. Define an environment variable
to indicate which remote copy is configured. For example: setenv EM_REMCP /usr/bin/scp
Note: If 10g Oracle Home is on a shared device, add -shared to the previous command line.
The above command(s) may core dump on the HP-UX Itanium platform, which is a known issue. For
more information, refer to following article:
Before upgrading Oracle Database, you must wait until all materialized views have completed
refreshing.
Run the following query to determine if there are any materialized view refreshes still in progress:
SQL> select
s.obj#,o.obj#,s.containerobj#,lastrefreshdate,pflags,xpflags,o.name,o.owner#,
bitand(s.mflags, 8) from obj$ o, sum$ s
where o.obj# = s.obj# and o.type# = 42 AND bitand(s.mflags, 8) = 8;
If the above query returns any row, then use Note 1442457.1 : During 11g Upgrade, Mview refresh
warning
Make ensure that there are no files requiring media recovery by executing the following query.
Execute the following query to verify that No Files in backup mode when upgrading Oracle Database
2. If the query in the previous step returns any rows, then issue the following statements:
NOTE: The database recycle bin must be empty during the upgrade process to avoid possible ORA-00600
errors and to minimize the upgrade time.
4.13 Synchronize the Standby Database with the Primary Database When
Upgrading
2. If the query in the previous step returns a row, then synchronize the standby database with the
primary database.
Make sure all the logs are transported to the standby server after a final log switch in the primary.
Start the recovery of the standby database with the NODELAY option.
For jobs initiated by Oracle then packages DBMS_JOB, DBMS_SCHEDULER can be used.
For cron jobs (external jobs controlled at the OS level) then this is a task for your Unix administrator.
See also:
Note 404238.1 : How to Disable an Entry from DBMS_SCHEDULER
Note 1335741.1 : How To Stop A Running Job Using DBMS_JOB
Note 67695.1 : PROCEDURE DBMS_JOB.BROKEN Specification
Ensure the users SYS and SYSTEM have 'SYSTEM' as their default tablespace.
You must have sufficient space in the 'SYSTEM' tablespace or set extents to unlimited.
If DEFAULT_TABLESPACE is anything other than SYSTEM tablespace, modify the default tablespace for
user SYS and SYSTEM to SYSTEM by using the command below:
4.16 Check whether database has any externally authenticated SSL users
If any SSL users are found then Step 33 has to be followed after the upgrade.
4.17 Location of datafiles, redo logs and control files
Note the location of datafiles, redo logs and control files. Also take a backup of all configuration files like
listener.ora, tnsnames.ora, etc. from $ORACLE_HOME.
Enterprise Manager Database Control is superseded in 12c by Oracle Enterprise Manager Express .
Therefore no repository is needed anymore.
Remove Enterprise Manager Database Control repository MANUALLY using the following command
Note: You will get the emremove.sql script in the Oracle 12c home.
Copy the emremove.sql script from the 12c $ORACLE_HOME/rdbms/admin to the source
$ORACLE_HOME/rdbms/admin and then execute on the source database prior to upgrade.
SQL> @ ?/rdbms/admin/emremove.sql
If the EM repository is not removed up front, it will be automatically removed during the catuppst.sql
post-upgrade phase.
Also refer: Is it Possible to Validate Invalid Objects related to DBControl Configuration in a Database
Upgraded to 12c? (Doc ID 2118740.1)
If OLS (Lable Security) and/or DV ( Database Vault) was already in the database prior to the upgrade
then execute the following steps on Source database prior to upgrade
Note : You will get the olspreupgrade.sql script in the Oracle 12c home .
Copy the olspreupgrde.sql script from the 12c $ORACLE_HOME/rdbms/admin to the source
$ORACLE_HOME/rdbms/admin and then execute on the source database prior to upgrade.
SQL> @ ?/rdbms/admin/olspreupgrade.sql
- It prepares the move of AUD$ table from SYSTEM to SYS.
- It processes the audit records to minimize downtime.
- It moves records to an Interim temporary table.
See Requirements for Upgrading Databases That Use Oracle Label Security and Oracle Database Vault
for complete information
4.20 Drop Oracle 12c Release 1 supplied users and roles ,if exist in the source
database
There are new Oracle users and roles in Oracle 12.1. If they exist in the source database users or roles
with the same names, then they must be dropped before upgrading the database.
Run the preupgrade tool to check for the existence of any users or roles in the source database that use
the same names.
Note: If there is a pre-existing user in the database with same name as the 12.1 oracle-supplied users or
roles, then move the data of that user to a different schema before dropping the pre-existing user.
Make sure to drop these pre-existing users and/or roles before doing the upgrade. Else, the upgrade
will terminate will with "ORA-01722: invalid number" error.
Please review and remove any unnecessary hidden/ underscore parameters prior to upgrading. It is
strongly recommended that these be removed before upgrade
Unless your application vendors and/or Oracle Support state differently.Changes will need to be made in
the init.ora or spfile.
To view existing hidden parameters execute the following command while connected AS SYSDBA:
SQL> SELECT name, value from SYS.V$PARAMETER WHERE name LIKE '\_%' ESCAPE '\'
order by name;
4.22 Check the XDB ACLs has start_date and end_date ACE attributes
Before upgrading the database to 12c, please run the below query as SYS:
SQL> select aclid, start_date, end_date from xds_ace where start_date is not null;
If the query returns any row, then please follow Note 1958876.1 Upgrade to 12.1 fails with ORA-01830
date format picture ends before converting entire input string ORA-06512: at
"SYS.XS_OBJECT_MIGRATION" to avoid failure in XDB's upgrade.
4.23 Check the Mitigation patch has been applied on the source Oracle home,
it disables the Java development in the Database which cause error during
upgrade
NOTE: This step is ONLY applicable if you have applied Mitigation Patch on the source database
Please "enable" the Java development in source database .
Please refer Note 1985725.1 Database Upgrade failed with Errors “ORA-02290: check constraint
(SYS.JAVA_DEV_DISABLED) violated” & “ORA-04045: SYS.DBMS_ISCHED”
In Oracle Database 12c with multitenant architecture, all pluggable databases (PDBs) in a container
database (CDB) must have:
The same Database character set (NLS_CHARACTERSET) or the NLS_CHARACTERSET need to be a (Plug-
in compatible) binary subset of the CDB NLS_CHARACTERSET
The same National character set (NLS_NCHAR_CHARACTERSET) as the CDB's root container
If you have PDBs with Unicode character set, its recommended to create the CDB with character set as
AL32UTF8. Please note we cannot migrate the CDB's character set using DMU.
Please see:
Note 1968706.1 12c Multitenant Container Databases (CDB) and Pluggable Databases (PDB) Character
set restrictions / ORA-65116/65119: incompatible database/national character set (Character set
mismatch: PDB character set CDB character set)
Note ID 225912.1 [Section E] Changing Or Choosing the Database Character Set ( NLS_CHARACTERSET )
DBMS_STATS.GET_PARAM('METHOD_OPT')
-------------------------------------------------------------
FOR COLUMNS ID SIZE 1
If it reports "FOR COLUMNS ID SIZE 1", it might create issues during upgrade. Hence as a workaround
execute
Refer: Unpublished BUG 22454765 - CARRYING METHOD_OPT = "FOR COLUMNS ID SIZE 1" FROM 10G
WILL BREAK UPGRADE
Check the certification of Oracle 12cR1 with your Platform/Operating system before
downloading and installing Oracle 12cR1.Please check Certification information on My Oracle
Support (MOS) Certify.
Download and Install Oracle 12c Release 1 in a new Oracle Home and make sure there are no
relinking errors.
Install the latest available Patchset from My Oracle Support (if available).
Install the latest opatch available for your platform and database version (if available).
Install the latest available Critical Patch Update (if available).
Copy following configuration files from the $ORACLE_HOME of the database being upgraded to
the new Oracle Home for Oracle Database 12c
o Parameter file (spfile or pfile)
o Password file (orapwsid)
Remove or comment out obsolete and deprecated initialization parameters.
Comment out obsoleted parameters and change all deprecated parameters (Appendix A).
The SEC_CASE_SENSITIVE_LOGON parameter is deprecated in 12.1, Please refer the behavior
Change for complete information
Refer to the below article for understanding directory structure in 11g and DIAGNOSTIC_DEST.
Note 454442.1 11g Install: Understanding about Oracle Base, Oracle Home and Oracle Inventory
locations
If you are using a cluster database, set the parameter CLUSTER_DATABASE=FALSE during the
upgrade and set it back to true after the upgrade.
If you are upgrading a cluster database, then modify the init<SID>.ora file in the same way that
you modified the parameter file.
Make sure all path names in the parameter file are fully specified.
You should not have relative path names in the parameter file.
Stop the listener for the database.
$ lsnrctl stop
Create a new listener for Oracle Database 12c Release 1 (12.1) database
Previous versions of the listener are not supported for use with an Oracle Database 12c Release 1 (12.1)
database.
However, it is possible to use the new version of the listener with previous versions of Oracle Databases.
If you are upgrading from 10.2.0.5 or upgrading manually without using DBUA, run Oracle Net
Configuration Assistant before upgrading the Oracle RAC database.
Then you must run Oracle Net Configuration Assistant again from the new Oracle Database 12c Release
1 (12.1) Home to create a new listener.
o Invoke the Netca
o Choose the configuration you want to do ==> Choose Listener Configuration
o Select what you want to do ==> Add
o Provide the detail that is required to configure the listener.
You must remove the old listener before creating a new one.
If you attempt to create a new listener from the new Oracle Home first, and use the same name and
port as the old listener, then Oracle Net Configuration Assistant returns an error.
Note: This is your only option if you want to upgrade your Oracle RAC database manually.
Stop the OracleServiceSID Oracle service of the database you are upgrading, where SID is the
instance name. For example, if your SID is ORCL, then enter the following at a command prompt:
b) Delete Oracle service using ORADIM binary from which the database is upgraded to 12.1.
c) Create the Oracle Database 12c Release 1 (12.1) service at a command prompt using the
ORADIM command of the new Oracle Database release:
C:\> ORADIM -NEW -SID SID -INTPWD PASSWORD -STARTMODE AUTO -PFILE
%ORACLE_HOME%\DATABASE\INIT<SID>.ORA
For Instance,
C:\> ORADIM -NEW -SID ORCL -INTPWD <PASSWORD> -STARTMODE AUTO -PFILE
%ORACLE_HOME%\DATABASE\INIT<SID>.ORA
Make sure the following environment variables point to the Oracle 12c Release 1 (12.1) directories
- ORACLE_BASE
- ORACLE_HOME
- PATH, LD_LIBRARY_PATH and SHLIB_PATH
Note: If ORACLE_BASE is not known after setting PATH to 12cR1 Oracle Home, execute 'orabase'
which will point the location of the base.
$ orabase
/uo1/app/oracle
Update the oratab entry to set the new ORACLE_HOME pointing to ORCL and disable automatic
startup.
#orcl:/opt/oracle/product/11.2/db_1:N
orcl:/opt/oracle/product/12.2/db_1:N
Note: After /etc/oratab is updated to have SID and Oracle Home (12.1), you can execute oraenv
(/usr/local/bin/oraenv) and set the environment.
The input has to be the SID which is entered in /etc/oratab against the 12cR1 home.
For example:
$ cd $ORACLE_HOME/rdbms/admin
$ sqlplus "/ as sysdba"
SQL> startup UPGRADE
SQL> exit
cd $ORACLE_HOME/rdbms/admin
$ORACLE_HOME/perl/bin/perl catctl.pl -n 6 -l $ORACLE_HOME/diagnostics
catupgrd.sql
cd %ORACLE_HOME%\rdbms\admin
%ORACLE_HOME%\perl\bin\perl catctl.pl -n 6 -l
%ORACLE_HOME%\diagnostics catupgrd.sql
Please refer Oracle Database 12c Release 1 (12.1) Upgrade New Features Note 1515747.1 for more
information of catctl.pl options
SQL> @catuppst.sql
SQL> @utlrp.sql
Check for the integrity of the upgraded database by running dbupgdiag.sql script from the below article:
After validating the invalid objects, re-run dbupgdiag.sql in the upgraded database once again and make
sure that everything is fine.
Exit SQL*Plus.
If you are upgrading a cluster database from releases 10.2, 11.1, or 11.2, then upgrade the database
configuration in Oracle Clusterware using the following command:
Where db-unique-name is the database name assigned to it (not the instance name), and oraclehome is
the Oracle home location in which the database is being upgraded.
Step 7: Post Upgrade Steps
Make sure the following environment variables point to the Oracle 12c Release 1 (12.1) directories
- ORACLE_BASE
- ORACLE_HOME
- PATH, LD_LIBRARY_PATH and SHLIB_PATH
Ensure that your oratab file and any client scripts that set the value of ORACLE_HOME point to the new
Oracle home that is created for the new Oracle Database 12c release,
Edit init.ora
If you changed the CLUSTER_DATABASE parameter prior the upgrade set it back to TRUE
Migrate your initialization parameter file to a server parameter file.
Create a server parameter file with an initialization parameter file.
The COMPATIBLE initialization parameter controls the compatibility level of your database.
When you are certain that you no longer need the ability to downgrade your database to its original
release
Perform a backup of your database before you raise the COMPATIBLE initialization parameter (optional).
If you are using a server parameter file, then complete the following steps:
a. Update the server parameter file to set or change the value of the COMPATIBLE initialization
parameter.
For example, to set the COMPATIBLE initialization parameter to 12.0.0, enter the following
statement:
If you are using an initialization parameter file, then complete the following steps:
a. Shut down the instance if it is running:
Depending on the release from which you upgraded, there might be new Oracle-supplied accounts.
Oracle recommends that you lock all Oracle supplied accounts except for SYS and SYSTEM, and expire
their passwords, thus requiring new passwords to be specified when the accounts are unlocked.
You can view the status of all accounts by issuing the following SQL statement:
You can upgrade the Recovery catalog by executing the UPGRADE CATALOG command
Please refer Upgrading the Recovery Catalog for complete information and steps
7.7 Upgrade the Time Zone File Version after Upgrading Oracle Database
If the Pre-Upgrade Information Tool instructed you to upgrade the time zone files after completing the
database upgrade, then use the DBMS_DST PL/SQL package to update the RDBMS DST (timezone)
version.
(Note 1585343.1: Scripts to automatically update the RDBMS DST (timezone) version in an 11gR2 or
12cR1 database. )
ATTENTION: Once you have updated the DST version you may still see the following warning returned by
script postupgrade_fixups.sql :
*************************************************************************************
*****
Check Tag: OLD_TIME_ZONES_EXIST
Check Summary: Check for use of older timezone data file
Fix Summary: Update the timezone using the DBMS_DST package after upgrade is complete.
*************************************************************************************
******
Just ignore this warning, it is due to published Bug 17303129 : UPGRADE DATABASE FROM 11.1.0.7 TO
12.1.0.1, "OLDER TIMEZONE IN USE" OCCURRED
if not DStv18 then Oracle suggests to upgrade DST, if DSTv18 then it is Bug 17303129 and it can be
safely ignored .
7.8 Upgrade Statistics Tables Created by the DBMS_STATS Package
If you created statistics tables using the DBMS_STATS.CREATE_STAT_TABLE procedure, then upgrade
these tables by executing the following procedure:
EXECUTE DBMS_STATS.UPGRADE_STAT_TABLE('SYS','dictstattab');
In the example, 'SYS' is the owner of the statistics table and 'dictstattab' is the name of the statistics
table.
Execute this procedure for each statistics table.
If you have upgraded from Oracle 9.2.0.x or 10.1.0.x, and you are using externally authenticated SSL
users, then you must run the following command to upgrade those users:
ORACLE_HOME/rdbms/bin/extusrupgrade --dbconnectstring
<hostname:port_no:sid> --dbuser <db admin> --dbuserpassword
<password> -a
If you are upgrading from 10.2.0.x (or higher), then you are not required to run this command.
7.10 Install Oracle Text Supplied Knowledge Bases After Upgrading Oracle
Database
The Oracle Text-supplied knowledge bases are part of the companion products for Oracle Database 12c
and are not immediately available after an upgrade to Oracle Database 12c.
Any Oracle Text features dependent on the supplied knowledge bases which were available before the
upgrade do not function after the upgrade.
To re-enable such features, you must install the Oracle Text supplied knowledge bases from the
installation media.
After an upgrade, all user extensions to the Oracle Text supplied knowledge bases must be regenerated.
These changes affect all databases installed in the given Oracle home
If source database originally included Application Express Version 3.2 or higher, then NO additional
configuration necessary .
If source database contained an earlier version of Application Express (HTML DB), then the latest version
is automatically installed during the upgrade.
You must complete a series of post installation steps to configure Application Express for use with the
new Oracle Database 12c.
To avoid "ORA-24247: network access denied by access control list (ACL)" when executing UTL packages
(Network related packages), access has to be granted to user using these packages.
The following example first looks for any ACL currently assigned to host_name.
If one is found, then the example grants user_name the CONNECT privilege in the ACL only if that user
does not already have it.
If no ACL exists for host_name, then the example creates a new ACL called ACL_name, grants the
CONNECT privilege to user_name, and assigns the ACL to host_name.
DECLARE
acl_path VARCHAR2(4000);
BEGIN
SELECT acl INTO acl_path FROM dba_network_acls
WHERE host = 'host_name' AND lower_port IS NULL AND upper_port IS NULL;
IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(acl_path,'principal','privilege') IS NULL THEN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(acl_path,'principal', is_grant, 'privilege');
END IF;
EXCEPTION
WHEN no_data_found THEN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('ACL_name.xml','ACL description', 'principal', is_grant,
'privilege');
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('ACL_name.xml','host_name');
END;
COMMIT;
acl_name.xml => Enter a name for the access control list XML file.
ACL description => 'file description',
principal => 'user_or_role',
is_grant => TRUE|FALSE,
privilege => 'connect|resolve',
host_name => host name
Refer to the below note on how to use DBMS_NETWORK_ACL_ADMIN package and also to avoid ORA-
24247 : network access denied by access control list (ACL).
Note 453786.1 ORA-24247 When Executing UTL_HTTP UTL_INADDR Packages
Before the upgrade, the list of invalid SYS/SYSTEM objects is written to registry$sys_inv_objs and non-
SYS/SYSTEM objects was written to registry$nonsys_inv_objs by the Pre-Upgrade Information Tool
After the upgrade, run utluiobj.sql from $ORACLE_HOME/rdbms/admin/ to identify/compare any new
invalid objects due to the upgrade.
7.15 Enable all batch and cron jobs diable at step 4.14