Upgrade fails at step: Drop Foreign Keys (ORA-06508)

book

Article ID: 169443

calendar_today

Updated On:

Products

Data Loss Prevention Enforce

Issue/Introduction

While upgrading the Enforce system of DLP from 14.0.x to 14.5, 14.6, 15.0, 15.1 the upgrader fails just after the pre-checks complete. The sql_error.txt log file indicates it failed at step: Drop Foreign Keys.

TASK_ID     : 3

TASK_NAME   : Drop Foreign Keys

BATCH_NUM   : 1

ERROR_TYPE  : FATAL

ERRANT_STMT :

ERROR       : ORA-06508: PL/SQL: could not find program unit being called

Additonally check %Oracle_Home%/diag/rdmbs/<instance>/trace/<instance>_ora_####.trc file for the following error

ORA-00600: internal error code, arguments: [KGL-heap-size-exceeded].  This should also exist in the oracle alert log.

 

Cause

PGA_AGGREGATE_LIMIT Should be set to either 0 or a limit set by an Oracle DBA. Setting this to 0 will allow Oracle to adjust this size automatically as needed, while we have Automatic Memory Management enabled.

 

Resolution

Before you perform any of the below activities on your DB, perform a backup of your DB (your DLP database install/upgrade guide will have specific backup instructions)

If you have any reservations or questions about this process, please contact your Symantec Technical Support team. 

 

To display the current value of the PGA_AG parameters, log into oracle as the protect user

Run the following command to show the parameters:

show parameter pga_ag

The output should look something like this:

NAME                 TYPE        VALUE
-------------------- ----------- -----
pga_aggregate_limit  big integer 3000M (This will only be present in Oracle 12c)
pga_aggregate_target big integer 768M  

Solution 1

PGA_AGGREGATE_TARGET is the parameter that can prevent the upgrade from completing.

Set the it to '0' or at a level deemed appropriate by the DBA, generall between 10B and 4G -1.

  1. Cancel and close out of the upgrader
  2. Ensure the DLP services are still stopped
  3. Shut down the oracle protect instance.
  4. Log into oracle as 'sys as sysdba'
  5. Run the following command

alter system set pga_aggregate_target=0 scope=both;

  1. Start the Oracle services.
  2. Re-attempt the upgrade.
  3. Upgrade should proceed.

If the DBA wishes to revert the pga_aggregate_target value to its previous values after the upgrade is complete, they can do so.  But please note these steps may need to be repeated if another upgrade is performed.

Solution 2

Set PGA_AGGREGATE_TARGET to '0' or at a level deemed appropriate by the DBA through the spfile.

  1. From Enforce, locally, connect to ORACLE using SQLPlus
    1.                 Sqlplus /nolog
    2.                 SQL> conn / as sysdba
  2. Create the Parameters file

SQL> CREATE PFILE=’D:\oracle\product\11.2.0.4\db_1\database\PFILEPROTECT.ORA’ FROM SPFILE;

  1. Edit the D:\oracle\product\11.2.0.4\db_1\database\PFILEPROTECT.ORA with notepad                                 
  2. Locate the setting *.pga_aggregate_target
  3. Change the value to 0
  4. Save the file
  5. Shutdown the database

SQL> SHUTDOWN IMMEDIATE

  1. Startup the database with the PFILE created in the previous step

SQL> STARTUP FORCE PFILE=’D:\oracle\product\11.2.0.4\db_1\database\PFILEPROTECT.ORA’

  1. Check PGA_AGGREGATE_TARGET value

SQL> SHOW PARAMETER PGA_AGGREGATE_TARGET

  1. Shutdown the database

SQL> SHUTDOWN IMMEDIATE

  1. Copy the original SPFile as a backup
  2. Create a new Server Parameter file

SQL> CREATE SPFILE=’D:\oracle\product\11.2.0.4\db_1\database\SPFILEPROTECT.ORA’ FROM PFILE=’D:\oracle\product\11.2.0.4\db_1\database\PFILEPROTECT.ORA’;

  1. Startup the database

SQL> STARTUP

  1. Check PGA_AGGREGATE_TARGET value

SQL> SHOW PARAMETER PGA_AGGREGATE_TARGET