Visit Counter

Saturday, January 16, 2021

Preupgrade command Fails with:"ERROR - Unable to run sqlplus due to:" (Doc ID 2246672.1)



 

[oracle@oraerptest19c bin]$ pwd

/u02/app/oracle/product/11.2.0/dbhome_1/jdk/bin

[oracle@oraerptest19c bin]$ /u02/app/oracle/product/11.2.0/dbhome_1/jdk/bin/java -jar /u02/softw-ora19c/rdbms/admin/preupgrade.jar FILE DIR /u02/preupgrade/

ERROR - Unable to run preupgrade due to: 

ERROR - the following error has been found: java.io.IOException: sqlplus: not found


Solution:

======


[oracle@oraerptest19c bin]$ export PATH=.:$ORACLE_HOME/bin:$PATH

[oracle@oraerptest19c bin]$ /u02/app/oracle/product/11.2.0/dbhome_1/jdk/bin/java -jar /u02/softw-ora19c/rdbms/admin/preupgrade.jar FILE DIR /u02/preupgrade/

==================

PREUPGRADE SUMMARY

==================

  /u02/preupgrade/preupgrade.log

  /u02/preupgrade/preupgrade_fixups.sql

  /u02/preupgrade/postupgrade_fixups.sql


Execute fixup scripts as indicated below:


Before upgrade:


Log into the database and execute the preupgrade fixups

@/u02/preupgrade/preupgrade_fixups.sql


After the upgrade:


Log into the database and execute the postupgrade fixups

@/u02/preupgrade/postupgrade_fixups.sql


Preupgrade complete: 2021-01-16T13:24:52

[oracle@oraerptest19c bin]$ 




ORA-01547 warning: RECOVER succeeded but OPEN RESETLOGS would get error below (Doc ID 1684437.1)


While Oracle DB recover getting below error.


RMAN> recover database;

Starting recover at  01-JAN-19

using channel ORA_DISK_1

using channel ORA_DISK_2

using channel ORA_DISK_3

using channel ORA_DISK_4

using channel ORA_DISK_5

using channel ORA_DISK_6

using channel ORA_DISK_7

using channel ORA_DISK_8

starting media recovery

Oracle Error: 

ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below

ORA-01194: file 1 needs more recovery to be consistent

ORA-01110: data file 1: '/u02/oradb/proddata/system01.dbf'


RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of recover command at 01/01/2019 05:09:54

RMAN-06053: unable to perform media recovery because of missing log

RMAN-06025: no backup of archived log for thread 1 with sequence 91550 and starting SCN of 149247095 found to restore

RMAN-06025: no backup of archived log for thread 1 with sequence 91549 and starting SCN of 149235668 found to restore


I just move some missing archive log files to destination server.


RMAN> crosscheck archivelog all;


released channel: ORA_DISK_1

released channel: ORA_DISK_2

released channel: ORA_DISK_3

released channel: ORA_DISK_4

released channel: ORA_DISK_5

released channel: ORA_DISK_6

released channel: ORA_DISK_7

released channel: ORA_DISK_8

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=19 device type=DISK

allocated channel: ORA_DISK_2

channel ORA_DISK_2: SID=20 device type=DISK

allocated channel: ORA_DISK_3

channel ORA_DISK_3: SID=21 device type=DISK

allocated channel: ORA_DISK_4

channel ORA_DISK_4: SID=22 device type=DISK

allocated channel: ORA_DISK_5

channel ORA_DISK_5: SID=23 device type=DISK

allocated channel: ORA_DISK_6

channel ORA_DISK_6: SID=24 device type=DISK

allocated channel: ORA_DISK_7

channel ORA_DISK_7: SID=25 device type=DISK

allocated channel: ORA_DISK_8

channel ORA_DISK_8: SID=26 device type=DISK

validation succeeded for archived log

archived log file name=/u02/oradb/product/11.2.0/dbhome_1/dbs/arch1_91549_940168479.dbf RECID=90596 STAMP=1061762468

validation succeeded for archived log

archived log file name=/u02/oradb/product/11.2.0/dbhome_1/dbs/arch1_91550_940168479.dbf RECID=90597 STAMP=1061762775

Crosschecked 2 objects


RMAN> recover database;


Starting recover at 16-JAN-21

using channel ORA_DISK_1

using channel ORA_DISK_2

using channel ORA_DISK_3

using channel ORA_DISK_4

using channel ORA_DISK_5

using channel ORA_DISK_6

using channel ORA_DISK_7

using channel ORA_DISK_8


starting media recovery


unable to find archived log

archived log thread=1 sequence=91551

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of recover command at 01/16/2021 05:17:16

RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 91551 and starting SCN of 149248093


RMAN> alter database open resetlogs;


database opened


RMAN> 


Refer: Oracle (Doc ID 1684437.1)


SOLUTION

The ORA-01547 before database open indicates that Oracle sees the datafiles as inconsistent.  This is resolved by applying more recovery, to make the datafiles consistent.  


1. Check the current status of the datafiles:

set numwidth 30;

set pagesize 50000;

alter session set nls_date_format = 'DD-MON-RRRR HH24:MI:SS';

select status,checkpoint_change#,checkpoint_time, resetlogs_change#, resetlogs_time, count(*), fuzzy from v$datafile_header group by status,checkpoint_change#,checkpoint_time, resetlogs_change#, resetlogs_time, fuzzy;

The goal is to have the above query return 1 row and fuzzy column value as NO.


NOTE:  if checkpoint_change# in query returns 0, this indicates that Oracle cannot read the file header.  This is possibly because the location and name of the datafile within the controlfile is not the one on disk.  

2. Check the archivelog sequence numbers needed to recover the files.  Execute:

select min(fhrba_Seq), max(fhrba_Seq) from X$KCVFH;

This query will show the smallest and largest sequence needed by the datafiles.    To make the datafiles consistent, you must apply all archivelog files within the above range of sequence numbers.  This can be one or many archivelog files.  


NOTE:  This query will not be valid in a RAC environment.  In RAC, find the necessary sequences from all threads using the smallest (and largest) checkpoint_change# returned by the query in #1 and execute:


select thread#, first_change#, next_change# from v$archived_log where <smallest/largest checkpoint_change#> between first_change# and next_change#;


once the above is executed with the smallest and largest checkpoint_change#, you have the sequence range needed to be applied from all threads of the RAC database.  See Note 243760.1 'RMAN: RAC Backup and Recovery using RMAN' for more details.  


3. Once further recovery is applied, confirm the datafiles are consistent with query in #1, above, until the goal is accomplished.  

4. Once all datafiles are consistent and fuzzy=NO, the database can be opened and the ORA-01547 should no longer be returned.  



Error in invoking target 'agent nmhs' of make file ins_emagent.mk while installing Oracle 11.2.0.4 on Linux 7.6

While installation Oracle 11g database getting below 

"error in invoking target 'agent nmhs' of make file ins_emagent.mk while installing Oracle 11.2.0.4 on Linux 7.6"


collect2: error: ld returned 1 exit status

/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk:176: recipe for target '/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/emdctl' failed

make[1]: Leaving directory '/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib'

/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk:52: recipe for target 'emdctl' failed

make[1]: *** [/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/emdctl] Error 1

make: *** [emdctl] Error 2





CHANGE

 This is a new oracle 11.2.0.4 installation on LinuxGES


CAUSE

Link error on "ins_emagent.mk".


SOLUTION

Edit $ORACLE_HOME/sysman/lib/ins_emagent.mk, search for the line


$(MK_EMAGENT_NMECTL)

Then replace the line with


$(MK_EMAGENT_NMECTL) -lnnz11

Then click “Retry” button to continue.