Tuesday, September 2, 2014

adpreclone.pl dbTier - Can't locate strict.pm in @INC

On running adcfgclone.pl on 11.2.0.3 RDBMS ORACLE_HOME, it got errored out with the message below.

Issue:
$cd $ORACLE_HOME/appsutil/scripts/$CONTEXT_NAME

$ perl adcfgclone.pl dbTechStack
Can't locate strict.pm in @INC (@INC contains: /erpR1213/oracle/11.2.0/perl/lib/5.8.3 /erpR1213/oracle/11.2.0/perl/lib/site_perl/5.8.3 /erpR1213/oracle/11.2.0/appsutil/perl ../lib/5.10.0/sun4-solaris-thread-multi-64 ../lib/5.10.0 ../lib/site_perl/5.10.0/sun4-solaris-thread-multi-64 ../lib/site_perl/5.10.0 ../lib/5.10.0 ../lib/5.10.0/sun4-solaris-thread-multi-64 ../lib/site_perl .) at adcfgclone.pl line 27.
BEGIN failed--compilation aborted at adcfgclone.pl line 27.


Reason:
After upgrading you database from 10g to 11g , perl utility has been upgraded from 5.8.3 to 5.10.0.


Solution:
This is a known issue and now documented in My Oracle Support Article ADPreclone Fails When Can't Find Strict.PM Following Database Upgrade to 11gR2 [ID 1139403.1].

11.2.0.3 ships with perl 5.10.0. So you need to change the values of context variables pointing to PERL5LIB and ADPERLPRG inside the context file.

vi $CONTEXT_FILE
Global replace 5.8.3 with 5.10.0
Save
cd $ORACLE_HOME/appsutil/template
vi adxdbctx.tmp
Global replace 5.8.3 with 5.10.0

Run adcfgclone.pl, or adconfig or adpreclone.pl and it will work.

No comments:

Post a Comment