Thursday, May 31, 2012

ORA-01045:user name lacks CREATE SESSION privilege; logon denied

The Solution For this Error Is Simple :

sqlplus / as sysdba
grant create session to "USER-NAME";

Done


Thank you
Osama Mustafa

Clean Concurrent Manager Tables


The Below Script "CMCLEAN.SQL" For Cleaning ConCurrent Manager In Oracle EBS VERSION :  -10.7
-11.0
-11.5
-12.1.3

REM
REM FILENAME
REM cmclean.sql
REM DESCRIPTION
REM Clean out the concurrent manager tables
REM NOTES
REM Usage: sqlplus @cmclean
REM
REM
REM $Id: cmclean.sql,v 1.4 2001/04/07 15:55:07 pferguso Exp $
REM
REM
REM +======================================================================+


set verify off;
set head off;
set timing off
set pagesize 1000

column manager format a20 heading 'Manager short name'
column pid heading 'Process id'
column pscode format a12 heading 'Status code'
column ccode format a12 heading 'Control code'
column request heading 'Request ID'
column pcode format a6 heading 'Phase'
column scode format a6 heading 'Status'


WHENEVER SQLERROR EXIT ROLLBACK;

DOCUMENT

WARNING : Do not run this script without explicit instructions
from Oracle Support


*** Make sure that the managers are shut down ***
*** before running this script ***

*** If the concurrent managers are NOT shut down, ***
*** exit this script now !! ***

#

accept answer prompt 'If you wish to continue type the word ''dual'': '

set feed off
select null from &answer;
set feed on


REM Update process status codes to TERMINATED

prompt
prompt ------------------------------------------------------------------------

prompt -- Updating invalid process status codes in FND_CONCURRENT_PROCESSES
set feedback off
set head on
break on manager

SELECT concurrent_queue_name manager,
concurrent_process_id pid,
process_status_code pscode
FROM fnd_concurrent_queues fcq, fnd_concurrent_processes fcp
WHERE process_status_code not in ('K', 'S')
AND fcq.concurrent_queue_id = fcp.concurrent_queue_id
AND fcq.application_id = fcp.queue_application_id;

set head off
set feedback on
UPDATE fnd_concurrent_processes
SET process_status_code = 'K'
WHERE process_status_code not in ('K', 'S');



REM Set all managers to 0 processes

prompt
prompt ------------------------------------------------------------------------

prompt -- Updating running processes in FND_CONCURRENT_QUEUES
prompt -- Setting running_processes = 0 and max_processes = 0 for all managers

UPDATE fnd_concurrent_queues
SET running_processes = 0, max_processes = 0;




REM Reset control codes

prompt
prompt ------------------------------------------------------------------------

prompt -- Updating invalid control_codes in FND_CONCURRENT_QUEUES
set feedback off
set head on
SELECT concurrent_queue_name manager,
control_code ccode
FROM fnd_concurrent_queues
WHERE control_code not in ('E', 'R', 'X')
AND control_code IS NOT NULL;

set feedback on
set head off
UPDATE fnd_concurrent_queues
SET control_code = NULL
WHERE control_code not in ('E', 'R', 'X')
AND control_code IS NOT NULL;

REM Also null out target_node for all managers
UPDATE fnd_concurrent_queues
SET target_node = null;


REM Set all 'Terminating' requests to Completed/Error
REM Also set Running requests to completed, since the managers are down

prompt
prompt ------------------------------------------------------------------------

prompt -- Updating any Running or Terminating requests to Completed/Error
set feedback off
set head on
SELECT request_id request,
phase_code pcode,
status_code scode
FROM fnd_concurrent_requests
WHERE status_code = 'T' OR phase_code = 'R'
ORDER BY request_id;

set feedback on
set head off
UPDATE fnd_concurrent_requests
SET phase_code = 'C', status_code = 'E'
WHERE status_code ='T' OR phase_code = 'R';





REM Set all Runalone flags to 'N'
REM This has to be done differently for Release 10

prompt
prompt ------------------------------------------------------------------------

prompt -- Updating any Runalone flags to 'N'
prompt
set serveroutput on
set feedback off
declare
c pls_integer := dbms_sql.open_cursor;
upd_rows pls_integer;
vers varchar2(50);
tbl varchar2(50);
col varchar2(50);
statement varchar2(255);
begin

select substr(release_name, 1, 2)
into vers
from fnd_product_groups;

if vers >= 11 then
tbl := 'fnd_conflicts_domain';
col := 'runalone_flag';
else
tbl := 'fnd_concurrent_conflict_sets';
col := 'run_alone_flag';
end if;


statement := 'update ' || tbl || ' set ' || col || '=''N'' where ' || col || ' = ''Y''';
dbms_sql.parse(c, statement, dbms_sql.native);
upd_rows := dbms_sql.execute(c);
dbms_sql.close_cursor(c);
dbms_output.put_line('Updated ' || upd_rows || ' rows of ' || col || ' in ' || tbl || ' to ''N''');
end;
/



prompt

prompt ------------------------------------------------------------------------

prompt Updates complete.
prompt Type commit now to commit these updates, or rollback to cancel.
prompt ------------------------------------------------------------------------

prompt

set feedback on

REM <= Last REM statment -----------------------------------------------------

Disclaimer
EXCEPT WHERE EXPRESSLY PROVIDED OTHERWISE, THE INFORMATION, SOFTWARE,
PROVIDED ON AN "AS IS" AND "AS AVAILABLE" BASIS. ORACLE EXPRESSLY DISCLAIMS
ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NON-INFRINGEMENT. ORACLE MAKES NO WARRANTY THAT: (A) THE RESULTS
THAT MAY BE OBTAINED FROM THE USE OF THE SOFTWARE WILL BE ACCURATE OR
RELIABLE; OR (B) THE INFORMATION, OR OTHER MATERIAL OBTAINED WILL MEET YOUR
EXPECTATIONS. ANY CONTENT, MATERIALS, INFORMATION OR SOFTWARE DOWNLOADED OR
OTHERWISE OBTAINED IS DONE AT YOUR OWN DISCRETION AND RISK. ORACLE SHALL HAVE
NO RESPONSIBILITY FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR LOSS OF DATA THAT
RESULTS FROM THE DOWNLOAD OF ANY CONTENT, MATERIALS, INFORMATION OR SOFTWARE.

ORACLE RESERVES THE RIGHT TO MAKE CHANGES OR UPDATES TO THE SOFTWARE AT ANY
TIME WITHOUT NOTICE.
Limitation of Liability
IN NO EVENT SHALL ORACLE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL OR CONSEQUENTIAL DAMAGES, OR DAMAGES FOR LOSS OF PROFITS, REVENUE,
DATA OR USE, INCURRED BY YOU OR ANY THIRD PARTY, WHETHER IN AN ACTION IN
CONTRACT OR TORT, ARISING FROM YOUR ACCESS TO, OR USE OF, THE SOFTWARE.

SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY.
ACCORDINGLY, SOME OF THE ABOVE LIMITATIONS MAY NOT APPLY TO YOU.


Oracle Document ID : [ID 134007.1]

Thank you
Osama Mustafa

Monday, May 28, 2012

PRVF-5436 PRVF-9652 Cluster Time Synchronization Services check failed


$GRID_HOME/bin/cluvfy comp clocksync
Cause of the Problem
The problem happened because the time service (such as NTP) is not running or doesn't have slew option set.

Solution of the Problem
The problem happened because time service NTP is not running or doesn't have slew option set.
So, ensure that NTP service is up and running.
Based on the operating system solutions are given below.


1) Linux:

To verify service as root user issue,
# /sbin/service ntpd status
ntpd (pid 4423) is running...

Check process is running or not by.
# ps -ef|grep ntp
ntp 4209 1 0 Mar10 ? 00:00:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid -x

# grep OPTIONS /etc/sysconfig/ntpd
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -x"

If NTP service is not started then to start the service issue,
To start the service issue,

# /sbin/service ntpd start

2) Solaris:

To verify the service issue,

# /usr/bin/svcs ntp
STATE STIME FMRI
online 3:29:11 svc:/network/ntp:default

# ps -ef|grep ntp
root 21223 1 0 Mar 10 ? 0:21 /usr/lib/inet/xntpd

# grep slewalways /etc/inet/ntp.conf
slewalways yes

To start the NTP service issue,

# /usr/sbin/svcadm enable ntp

3) HP-UX:

To verify the service issue,

# ps -ef|grep ntp
root 6022 1 0 14:23:42 ? 0:01 /usr/sbin/xntpd -x

# grep XNTPD_ARGS /etc/rc.config.d/netdaemons
export XNTPD_ARGS="-x"

To start the service issue,
# /sbin/init.d/xntpd start

4) AIX:

To verify the service issue,

# /usr/bin/lssrc -ls xntpd
xntpd tcpip 368754 active

# ps -ef|grep ntp
root 786614 151686 0 08:02:32 - 0:00 /usr/sbin/xntpd -x

# grep xntpd /etc/rc.tcpip
start /usr/sbin/xntpd "$src_running" -a "-x"

To start the service issue,

# /usr/bin/startsrc -s xntpd -a "-x"

Thank you
Osama mustafa

Sunday, May 27, 2012

Article About Data Recovery Method

1-  If you lost all data files

SQL> startup mount;
RMAN> restore database;
RMAN> recover database;
SQL> alter database open;
2- If you lost a tablespace

SQL> alter tablespace users offline;
RMAN> restore tablespace users;
RMAN> recover tablespace users;
SQL> alter tablespace users online;
 if you can not offline tablespace;

$ sqlplus “/ as sysdba”
SQL> shutdown abort;
SQL> startup mount;
$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN> restore tablespace users;
RMAN> recover tablespace users;
SQL> alter database open;

3- if you lost a datafile

SQL> alter database datafile '/oracle/oradata/users.dbf' offline;
RMAN> restore datafile '/oracle/oradata/users.dbf'
RMAN> recover datafile '/oracle/oradata/users.dbf'
SQL> alter database datafile '/oracle/oradata/users.dbf' online;
 
if you cannot offline datafile;


$ sqlplus “/ as sysdba”
SQL> shutdown abort;
SQL> startup mount;
$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN> restore datafile '/oracle/oradata/users.dbf';
RMAN> recover datafile '/oracle/oradata/users.dbf';
SQL> alter database open;
 

4-  if you lost your controlfiles

$ sqlplus “/ as sysdba”
SQL> shutdown abort;
SQL> startup nomount;
$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN> set dbid = 3970640872;
RMAN> restore controlfile;
SQL> alter database mount;
SQL> alter database open;
you will receive an error ORA-01589 when you open database
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

SQL> shutdown abort;
SQL> startup mount;
$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN> recover database;
SQL> alter database open resetlogs;
RMAN> reset database;
if you open database with resetlogs, SCN number will be zero. In this situation
all previous backups will be invalid. You must full backup.


5- May be a special situation. You need to incomplete recovery

A. Time-Based incomplete recovery

$ sqlplus "/ as sysdba"
SQL> shutdown abort;
SQL> startup mount;
$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN> restore database until time "to_date('06/05/11 12:0:00','DD/MM/YY HH24:MI:SS')";
RMAN> recover database until time "to_date('06/05/11 12:0:00','DD/MM/YY HH24:MI:SS')";
SQL> alter database open resetlogs;
 
 
B. SCN-Based incomplete recovery

$ sqlplus "/ as sysdba"
SQL> shutdown abort;
SQL> startup mount;
$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN> restore database until scn 1000;
RMAN> recover database until scn 1000;
SQL> alter database open resetlogs;
C. Archive log sequence based incomplete recovery

$ sqlplus "/ as sysdba"
SQL> shutdown abort;
SQL> startup mount;
$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN> restore database until sequence 9923;
RMAN> recover database until sequence 9923;
SQL> alter database open resetlogs;

6-  if you need some archive logs in your backup

$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN> restore ARCHIVELOG FROM TIME 'SYSDATE-1' UNTIL TIME 'SYSDATE';
 
OR

RMAN> restore ARCHIVELOG FROM TIME "to_date('07/11/05 00:00:01','MM/DD/YY HH24:MI:SS')
UNTIL TIME 'SYSDATE';
 
7- if your data block is corrupted you will receive an error below.

Error:
ORA-01578: ORACLE data block corrupted (file # 8, block # 13)
ORA-01110: data file 8: ‘/oracle/oradata/users.dbf’

for recover data block;

$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN>blockrecover datafile 8 block 13;
 
For Block-Level Media Recovery – Concept & Example (Doc ID 144911.1)

To recover, we can give a specific backup set;

# recovery from backupset
RMAN> BLOCKRECOVER DATAFILE 8 BLOCK 13 DATAFILE 2 BLOCK 19 FROM BACKUPSET;
# recovery from image copy
RMAN> BLOCKRECOVER DATAFILE 8 BLOCK 13 DATAFILE 2 BLOCK 19
      FROM DATAFILECOPY;
# recovery from backupset which have "FULL" tag
RMAN> BLOCKRECOVER DATAFILE 8 BLOCK 13 DATAFILE 2 BLOCK 199
       FROM TAG = FULL;
During backup or “Validate Backup” command, RMAN finds corrupted blocks and writes to V$DATABASE_BLOCK_CORRUPTION view. When the RMAN recover the corrupt block then automatically updates this view. List of all the corruption of the past, can be viewed over V$BACKUP_CORRUPTION and V$COPY_CORRUPTION views.  If you run the following command,  RMAN will recover all the corrupted blocks in view V$DATABASE_BLOCK_CORRUPTION.

  RMAN>BLOCKRECOVER CORRUPTION LIST RESTORE UNTIL TIME 'SYSDATE-10';
8- if you have a image copy backup and your datafile number 2 has problems then you
can switch datafile number2 to image copy.

RMAN>sql ‘alter database datafile 2 offline’;
RMAN>switch datafile 2 to copy;
RMAN>recover datafile 2;
RMAN>sql ‘alter database datafile 2 online’;


Orginial Article
 Thank You
 Osama Mustafa




ORA-01110 When trying to Open Database

ALTER DATABASE OPEN
*
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 5: ' /u01/test/users02.dbf'

This Error Maybe Appear On Different Database Files Because DBF Not Exists .

Solution
1-Restore From Rman if its Not Found .

Or

SQL> select file#,name, status from v$datafile where file#=5;
FILE# NAME STATUS
———- ————————————————- ———–
5 /u01/test/users02.dbf ONLINE

SQL>
SQL> alter database datafile ‘/u01/test/users02.dbf’ offline drop;
Database altered.

SQL> alter database open;
Database altered.
SQL>

Thank you
Osama Mustafa

Saturday, May 26, 2012

Using FAN callouts (relocate a service back)

In Oracle 10g RAC, every time a node/instance/service goes up/down, that event can be trapped and used to make user defined callouts. So every time a state change occurs, a FAN event is posted to ONS immediately. When a node receives an event through ONS, it will asynchronously execute all executables in the server side callouts directory.

There could be lot of applications to using this feature of callouts. For example, when an instance goes down, we all know that services running on that instance are relocated to other available instances. But when that instance comes back up, those relocated services need to be manually put back to their preferred instance. By using FAN callouts, we can automate this task.

1. Go to $ORA_CRS_HOME/racg and create usrco directory on all the nodes. So the server side callout directory would look something like this:
/oracle/product/crs/racg/usrco

2. Place your callout scripts under this dir. This will be called on every state change. You could use any executable like shell script or a perl script.
I have tested this on a 2-node Oracle RAC database version 10.2.0.2 on x64 RHEL4U7.
Save the below sample script as /oracle/product/crs/racg/usrco/instup_relocate.pl
This one traps the INSTANCE UP event and calls another script to relocate the services
#!/usr/local/bin/perl
# instup_relocate.pl
# This is a callout program that will, on an INSTANCE UP event relocate services back
# This script is supposed to reside in $CRS_HOME/racg/usrco as an executable on all the nodes. "usrco" directory needs to be created for callouts.
use strict;

# Define Oracle and Crs Home
my $CRS_HOME="/oracle/product/crs";
my $ORACLE_HOME="/oracle/product/10.2";

# TMP refers to the log location only
my $TMP = "/tmp";

# Enable logging
my $LOGFILE = "$TMP/SRV_co.log";

# Define variables that would be captured by callout event
my $instance;
my $database;
my $host;
my $service;
my $reason;
my $card;
my $status;
my ($key,$value) = "";

# Open logfile
local *LOG_FILE;
open (LOG_FILE, ">>$LOGFILE") or do
{
   print "Cannot open $LOGFILE\n";
   exit(1);
};

# Uncomment these lines if only interested in specific events

if ($ARGV[0] ne "INSTANCE") { exit(0); };
#if ($ARGV[0] ne "SERVICEMEMBER") { exit(0); };
#if ($ARGV[0] ne "SERVICE") { exit(0); };
#if ($ARGV[0] ne "NODE") { exit(0); };

for (my $i=0; $i <= $#ARGV; $i++)
{
    print LOG_FILE "For Loop $i $ARGV[$i]\n";
    if ($ARGV[$i] =~ m#=#)
    {
        ($key,$value) = (split /=/, $ARGV[$i]);
        #print "Key = $key  Value = $value\n";
        if ($key eq "service")
        {
            $service = $value;
        } elsif ($key eq "instance")
        {
            $instance = $value;
            $ENV{ORACLE_SID} = $value;
        } elsif ($key eq "database")
        {
            $database = $value;
        } elsif ($key eq "host")
        {
            $host = $value;
        } elsif ($key eq "card")
        {
            $card = $value;
        } elsif ($key eq "status")
        {
            $status = $value;
        } elsif ($key eq "reason")
        {
            $reason = $value;
        }
    }
}
print LOG_FILE "Arg=$ARGV[0]\n";
print LOG_FILE "DB=$database\n";
print LOG_FILE "Host = $host DB = $database Inst = $instance Service = $service Status = $status Reason = $reason\n";
# Call relocate service after instance up event is trapped.
#
if ($status eq "up" && $ARGV[0] eq "INSTANCE")
{
    print LOG_FILE "Instance up found. Calling relocate services for $database\n";
    # Call Service relocate
    sleep(30);
    system("/usr/local/bin/perl /oracle/scripts/relocate_service.pl $database");
    print LOG_FILE "Success!!!\n";
}
else
{
    print LOG_FILE "Failed: Instance up check failed\n";
}

Save the below sample script as /oracle/scripts/relocate_service.pl

#!/usr/local/bin/perl
# relocate_service.pl
# This script does a comparison between srvctl config and srvctl status and accordingly relocates the service back based on the config.

my $ret;
my $host1;
# Get dbname passed as an argument from command line
my $dbname;
$argc=scalar @ARGV;
$dbname = $ARGV[0];
chop($host1= `/bin/hostname`);
$ret = system("srvctl config service -d $dbname|sed 's/PREF: //'|sed 's/AVAIL:.*\$//' >/tmp/config_service.log");
$ret = system("srvctl status service -d $dbname | sed 's/\,\ /\,/g'|cut -f2,7 -d ' ' | tr -s ',' ' '>/tmp/status_service.log");

open(READ_CONFIG, "/tmp/config_service.log");
open(READ_STATUS, "/tmp/status_service.log");

my ($rl_from, $rl_to, $no_relocs,$conf_inst_i,$status_inst_i);
# Due to HTML issues, please replace "<" by "<" and ">" by ">"
while ($config_line = <READ_CONFIG>)
{
   chomp($config_line);
   chop($config_line);
# Due to HTML issues, please replace "<" by "<" and ">" by ">"
   $status_line = <READ_STATUS>;
   chomp($status_line);
   if ($config_line eq  $status_line)
   {
      print  "$config_line OK\n";
   }
   else
   {
     # Array to store relocate to/from instance names for each service
     my @relocate_from;
     my @relocate_to;

     ($conf_serv,@conf_inst) = split / /,$config_line;
     ($status_serv,@status_inst) = split / /,$status_line;

     # Relocate to which node
     my $i=0;
     my $found;

     for (@conf_inst)
     {
         $conf_inst_i = $_;
         $found=0;

         for (@status_inst)
         {
           $status_inst_j = $_;
           if ($conf_inst_i eq $status_inst_j) { $found=1; last;}

         }

         $relocate_to[$i++] = $conf_inst_i if (! $found);
     }

     # Relocate from which node
     my $j=0;
     for (@status_inst)
     {
         $status_inst_i = $_;
         $found=0;
         for (@conf_inst)
         {
           $conf_inst_j = $_;
           if ($status_inst_i eq $conf_inst_j) { $found=1; last;}
         }

         $relocate_from[$j++] = $status_inst_i if (! $found);
     }
     $rl_from= scalar @relocate_from;
     $rl_to=scalar @relocate_to;

     # How many relocations need to be done
     $no_relocs=$rl_from;
     if ($rl_from > $rl_to)
     {
        $no_relocs=$rl_to;
     }

     # Relocate for all possible instances
     if ($no_relocs > 0)
     {
        for ($i=0; $i<$no_relocs; $i++)
        {
             $relocate_cmd = "srvctl relocate service -d $dbname -s \"$conf_serv\" -i $relocate_from[$i] -t $relocate_to[$i]";
             $ret = `$relocate_cmd 2>&1`;
             print  "RELOCATED: $relocate_cmd\n";
        }
     }

     # Start services on the remaining preferred instanecs
     if ($rl_to > $rl_from)
     {
         for ($i=$no_relocs; $i<$rl_to; $i++)
         {
             $start_serv_cmd="srvctl start service -d $dbname -s \"$conf_serv\" -i $relocate_to[$i]";
             $ret = system("$start_serv_cmd");
             print  "STARTED: $start_serv_cmd\n";
         }
      }
   }
}#End of while

if ($no_relocs > 0)
{
  $ret = system("srvctl status service -d $dbname | sed 's/\,\ /\,/g'|cut -f2,7 -d ' ' | tr -s ',' ' '>/tmp/status_service_new.log");
}

Here are the test results. We can see that after an instance is brought back up, the service srv_inst1 is relocated back to it's preferred instance by the callout script without any manual intervention.

% srvctl config service -d testdb
srv_inst1 PREF: testdb1 AVAIL: testdb2
srv_inst2 PREF: testdb2 AVAIL: testdb1

% srvctl status service -d testdb
Service srv_inst1 is running on instance(s) testdb1Service srv_inst2 is running on instance(s) testdb2

% srvctl stop instance -d testdb -i testdb1

% srvctl status service -d testdb
Service srv_inst1 is running on instance(s) testdb2Service srv_inst2 is running on instance(s) testdb2

% srvctl start instance -d testdb -i testdb1

% srvctl status service -d testdb
Service srv_inst1 is running on instance(s) testdb1Service srv_inst2 is running on instance(s) testdb2

I would thank ritzy .

Thank you
Osama mustafa 

Thursday, May 24, 2012

CRS-4640 Error on Starting 11gR2 clusterware

ERROR :  
 
[root@RAC01 cssd]# /oragrid/product/11.2/bin/crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4535: Cannot communicate with Cluster Ready Services
CRS-4530: Communications failure contacting Cluster Synchronization Services daemon
CRS-4534: Cannot communicate with Event Manager
 
When Trying To start Oracle Cluster with following Command :
 
[root@RAC01 cssd]# /oragrid/product/11.2/bin/crsctl start crs
CRS-4640: Oracle High Availability Services is already active
CRS-4000: Command Start failed, or completed with errors. 

When Trying To Stop Oracle Cluster With Following Command : 

crsctl stop crs command failed

[root@RAC01 cssd]# /oragrid/product/11.2/bin/crsctl stop crs
CRS-2796: The command may not proceed when Cluster Ready Services is not running
CRS-4687: Shutdown command has completed with errors.
CRS-4000: Command Stop failed, or completed with errors.


Solution is Simple :
 
Just Run 
 
[root@RAC01 cssd]# /oragrid/product/11.2/bin/crsctl start cluster 

[root@RAC01 ~]# /oragrid/product/11.2/bin/crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online


Thank you
Osama mustafa

Wednesday, May 23, 2012

Repair Database Corrpution Using 11g New Tools

As Database Administrator you Face Some Issue About The Database Corruption  But In 11g You have Some New Tool Called "data recovery advisor" .


With DRA you check the block corruptions and loss of data files and control files. The GUI feature also available from Enterprise manager.


Lets Start Using This Tool :


RMAN> BACKUP VALIDATE

Starting backup at 01-FEB-12

21 FAILED 0 169474 2048000 1046708826
File Name: /dbs1/orcl/system01.dbf
Block Type Blocks Failing Blocks Processed
 To Use This Tool Follow The Below Step :


RMAN> LIST FAILURE
List of Database Failures
=========================
Failure ID Priority Status Time Detected Summary
---------- -------- --------- ------------- -------
1041 HIGH OPEN 01-FEB-12 Datafile 21: '/dbs1/orcl/system.dbf ' contains one or more corrupt blocks

RMAN> ADVISE FAILURE;
List of Database Failures
=========================
Failure ID Priority Status Time Detected Summary
---------- -------- --------- ------------- -------
1041 HIGH OPEN01-FEB-12 Datafile 21:''/dbs1/orcl/system.dbf ' contains one or more corrupt blocks

analyzing automatic repair options; this may take some time
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=319 device type=DISK
analyzing automatic repair options complete


RMAN> Repair failure preview;
RMAN> REPAIR FAILURE;
RMAN> REPAIR FAILURE NO PROMPT;

Thank you
Osama Mustafa 

Monday, May 21, 2012

Change to Archive Log Mode In Oracle Rac

1. Disable clustering putting cluster_database parameter FALSE.

$export ORACLE_SID=ORCL1
$sqlplus "/ as sysdba"

Check the status of archive mode of the database:

SQL>archive log list

Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     407
Current log sequence           408


SQL> alter system set cluster_database=false scope=spfile sid='ORCL1';

2. Shutdown all instances using srvctl utilty

$ srvctl stop database -d cobra

3. Mount tha database using one of the instance:

$ sqlplus "/ as sysdba"


SQL> startup mount

4. Enable archivelog using following command:

SQL> alter database archivelog;


5. Re-enable clustering putting instance parameter cluster_database to TRUE from the current instance:


SQL> alter system set cluster_database=true scope=spfile sid='ORCL1';


6. Shutdown the local instance:


SQL> shutdown immediate


7. Startup all instances using srvctl utility:


#srvctl start database -d orcl


8. If any service is not up then get up those using srvctl utility:


#srvctl start service -dorcl


9. And now check archivelog mode is enabled or not using following:


$sqlplus "/ as sysdba"


SQL> archive log list

Database log mode            Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     407
Current log sequence           408

Thank you
Osama mustafa

Sunday, May 20, 2012

Steps To Clone Oracle EBS R12

There's Two major Parts In This Topics :
1- Pre Clone Steps .
2 - Post Clone Steps.

LETS START :

1- Pre Clone Steps : 

On Application Tier : 

1-    Execute Apps environment file
2-    cd $ADMIN_SCRIPTS_HOME
3-    ./adautocfg.sh
4-    Perl adpreclone.pl appsTier

Database Tier : 

1-    Execute Database environment ( under ORACLE_HOME)
2-    cd $ORACLE_HOME/appsutil/scripts/(CONTEXT_NAME)
3-    ./adautocfg.sh
4-    perl adpreclone.pl dbTier

shutdown application and database Copy your virtual nodes on new servers .

Post clone Steps:

Database Server

1-    cd $ORACLE_HOME/appsutil/clone/bin
2-    perl adcfgclone.pl dbTier

Application Server:

1-    cd $COMMON_TOP/clone/bin
2-    perl adcfgclone.pl appsTier

Notes:
$COMMON_TOP: APPLICATION_BASE/apps/apps_st/comn
CONTEXT_NAME: SERVICE_NAME_HOSTNAME

Thank you
Osama mustafa

Friday, May 18, 2012

ORA-00020: maximum number of processes (%s) exceeded

SQL> show parameter processes

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
processes                            integer     150

SQL> select count(*) from v$process;

  COUNT(*)
----------
       149

SQL> alter system set processes=300 scope=spfile;

System altered.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup
ORACLE instance started.

SQL> show parameter processes

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
processes                            integer     300


Thank you
Osama mustafa

Thursday, May 17, 2012

ORA-16038 ORA-19504

Archiver Hung in Oracle database 



Summary
1. check how much space is used by archiver
2. check the last good backup of the database
3. delete archive log files older than last good backup
4. crosscheck archive log
1. check how much space is used by archiver
  Sql>  select count(*),sum(blocks*block_size) from v$archived_log where    backup_count=0 and      deleted='NO';
   Sql> select * from v$flash_recovery_area_usage;
2. check the last good backup of the database
  set pages 999 lines 120
   col STATUS format a9
   col hrs format 999.99
   col start_time format a15
   col end_time format a15
   col dev format a5
   col inbytes format a10
   col outbytes format a10
   select
       INPUT_TYPE, STATUS,
       to_char(START_TIME,'mm/dd/yy hh24:mi') start_time,
       to_char(END_TIME,'mm/dd/yy hh24:mi')   end_time,
       elapsed_seconds/3600                   hrs,
       output_device_type dev,
       input_bytes_display inbytes,
       output_bytes_display outbytes
    from V$RMAN_BACKUP_JOB_DETAILS
   order by session_key;

   3. delete archive log files older than last good backup
rman target / nocatalog
 allocate channel for maintenance device type disk;
 crosscheck archivelog all;
 delete noprompt archivelog until time 'sysdate - 1';
 delete noprompt expired archivelog all;
 delete noprompt obsolete device type disk;   

4. crosscheck archive log
crosscheck archivelog all;
 release channel;
 exit;  

Thank you 
Osama mustafa

ORA-19566: exceeded limit of 0 corrupt blocks for file

I already Talk about this Error but this Topics Share Another Solution For it :


RMAN> backup database;
 
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================

RMAN-03009: failure of backup command on ORA_DISK_1 channel at 12/22/2011 11:45:40
ORA-19566: exceeded limit of 0 corrupt blocks for file /oracle/oradata/orcl/system01.dbf
 


SQL> select * from V$DATABASE_BLOCK_CORRUPTION;
 
     FILE#     BLOCK#   BLOCKS CORRUPTION_CHANGE# CORRUPTIO
---------- ---------- ---------- ------------------ ---------
  5  2684        1    0 CHECKSUM

RMAN> blockrecover datafile 5 block 2684;


Thank you
Osama mustafa

Wednesday, May 16, 2012

ORA-06512: at "SYS.DBMS_SNAPSHOT_UTL", line 960

This Error Appear when you try to create MATERIALIZED VIEW On remote View 


First you have to know it

 Bug 5583712  ORA-942 on create materialized view on remote view


Product (Component)Oracle Server (Rdbms)
Range of versions believed to be affectedVersions < 11
Versions confirmed as being affected
Platforms affectedGeneric (all / most platforms affected

 You can check Metalink Doc : 5583712.8 


But I would Share this solution All you Have to do is follow the below steps :


CREATE   MATERIALIZED VIEW RHC
  BUILD IMMEDIATE
  USING INDEX
  REFRESH COMPLETE ON DEMAND START WITH SYSDATE+1 NEXT SYSDATE + 8/24
  AS SELECT * FROM vw_RHC@remotedb;
 

ORA-00942: TABLE OR VIEW does NOT exist
ORA-06512: AT "SYS.DBMS_SNAPSHOT_UTL", line 960
ORA-06512: AT line 1


The Solution is :

CREATE   MATERIALIZED VIEW RHC
  BUILD IMMEDIATE
  USING INDEX
  REFRESH COMPLETE ON DEMAND START WITH SYSDATE+1  NEXT   SYSDATE + 8/24
  AS   AS SELECT * FROM (SELECT * FROM vw_employees@remotedb);

Materialized VIEW created.


Thank you
Osama mustafa

Monday, May 14, 2012

OAS process type = OC4J:Home unable to start

After Trying All The Solutions , Metalink note nothing Works But Never Give up I provide Solution For The
below Error :


Error
--> Process (pid=8337)
time out while waiting for a managed process to start
Log:
/oraas/ias10g/MID/opmn/logs/OC4J~home~default_island~1

Note : Try This Solution After Have been Increase timeout On Opmn.xml


Solution :


1- Create New OC4J instance By

createinstance -instanceName OC4J_instanceName

Enter Password That you want .

2- Check /etc/hosts On you server, Its must Contain
 127.0.0.1 localhost.localdomain localhost
3-group must be change from default_group to your new Group (that you Create it in Step 1 ) .

cd $ORACLE_HOME/opmn/conf/
vi opmn.xml

Search For Default_group (its Default Group in Installation) and Change it to New One
For Example :

You New OC4J_instance_name : test
Default group Should be : test_group
 Search For Default_group and Change it with test_group. 

4-aftre the above steps :

opmnctl stopall
opmnctl startall


Thank you
Osama Mustafa
 

ORA-01034: ORACLE not available When Create DBCONSOLE

ORA-01034: ORACLE not available When Create DBCONSOLE / DBCONTROL


If you are using the following Command :

    $ emca -deconfig dbcontrol db -repos drop

    $ emca -config dbcontrol db -repos create

Try Use


emca -config dbcontrol db -repos recreate -ORACLE_HOSTNAME "Hostname"
  -SID "SID" -PORT "PortNumber" -ORACLE_HOME $ORACLE_HOME -DBDNMP_PWD  "Password"


It Should be Work


Thank you
Osama mustafa

Friday, May 11, 2012

ORA-19566 exceeded limit of %s corrupt blocks for file %s

Cause: The user specified limit of allowable corrupt blocks was exceeded 
 while reading the specified datafile for a datafile copy or backup. 
Action: None. The copy or backup operation fails. The session trace file 
 contains detailed information about which blocks were corrupt.
 
 
But The Below is Work around : 
 
  
 1)Run DBVerify utility. Have a look at Verify Physical Data Structure



For example,
 
 
 $ dbv file=/oradata2/data1/dbase1/system01.dbf 
 
 Also run this operation for against the all datafiles you suspect which has corrupt block.



2)While taking backup within RUN block specify SET MAXCORRUPT in order 
to say how many corruption it can handle. I ran dbverify utility and I 
saw 1 block corrupt each in SYSTEM(1) and SYSAUX(3) datafile.



3)Now backup database with SET MAXCORRUPT option.

 
Syntax : 

 
SET MAXCORRUPT FOR DATAFILE File_id For DatabaseFiles to ;
 

SET MAXCORRUPT FOR DATAFILE  to ;
 

RMAN> RUN{

2> SET MAXCORRUPT FOR DATAFILE 1,3 to 1;

3> BACKUP DATABASE;

4> }



For datafile 1 and 3 maximum 1 block corruption can be tolerated.
 

 
Thank you 
Osama Mustafa 
 

Thursday, May 10, 2012

Check RMAN Backup Status

The Below Scripts To Check Backup Status Via Sqlplus , Maybe you will find Same Or Another Scripts In the Same way : 

Sqlplus / as sysdba

This script will report on all backups – full, incremental and archivelog backups -

col STATUS format a9
col hrs format 999.99
select
SESSION_KEY, INPUT_TYPE, STATUS,
to_char(START_TIME,'mm/dd/yy hh24:mi') start_time,
to_char(END_TIME,'mm/dd/yy hh24:mi')   end_time,
elapsed_seconds/3600                   hrs
from V$RMAN_BACKUP_JOB_DETAILS
order by session_key;
 
This script will report all on full and incremental backups, not archivelog backups -

col STATUS format a9
col hrs format 999.99
select
SESSION_KEY, INPUT_TYPE, STATUS,
to_char(START_TIME,'mm/dd/yy hh24:mi') start_time,
to_char(END_TIME,'mm/dd/yy hh24:mi')   end_time,
elapsed_seconds/3600                   hrs
from V$RMAN_BACKUP_JOB_DETAILS
where input_type='DB INCR'
order by session_key;


I would Love to Thank gavin soorma - OCM For His Amazing Effort . Share it For Knowledge .

Thank you
Osama Mustafa

Working with RMAN Stored Scripts

Creating Stored Scripts: CREATE SCRIPT

 

Make sure RMAN is connected to the right target database and the recovery catalog. Then run the CREATE SCRIPT command, as shown in this example:
 
 
CREATE SCRIPT full_backup 
{     
  BACKUP DATABASE PLUS ARCHIVELOG;
  DELETE OBSOLETE;
} 
 
 

 you can also provide a COMMENT with descriptive information:

CREATE GLOBAL SCRIPT global_full_backup 
COMMENT 'use only with ARCHIVELOG mode databases'
{     
  BACKUP DATABASE PLUS ARCHIVELOG;
  DELETE OBSOLETE;
}

Running Stored Scripts: EXECUTE SCRIPT

 

RUN { EXECUTE SCRIPT full_backup; }

Displaying a Stored Script: PRINT SCRIPT

PRINT SCRIPT full_backup;
PRINT SCRIPT full_backup TO FILE 'my_backup.txt'; 

Listing Stored Scripts: LIST SCRIPT NAMES

LIST SCRIPT NAMES;

LIST ALL SCRIPT NAMES;

Updating Stored Scripts: REPLACE SCRIPT

REPLACE SCRIPT full_backup 
{
  BACKUP DATABASE PLUS ARCHIVELOG;
}

Deleting Stored Scripts: DELETE SCRIPT

 
DELETE SCRIPT 'full_backup';
DELETE GLOBAL SCRIPT 'global_full_backup'; 

 

 

 

 Thank you 

Osama mustafa



 


 


 

DBCONSOLE For Real Application Cluster

Drop DBCONSOLE FOR RAC (Uninstall) : 


we will user the following command :
emca -deconfig dbcontrol db -repos drop -cluster

Make sure you have the below information :

  • Database unique name
  • Listener port number
  • Password for SYS user
  • Password for SYSMAN user

Create DBCONSOLE FOR RAC ( Install) : 

In this case you have more than one choice you can use what you want depend on your requirements :

1-
emca -config dbcontrol db -repos create -cluster

2-

 emca -reconfig dbcontrol –cluster –EM_NODE node1 -EM_NODE_LIST node2,node3,node4

emca -reconfig dbcontrol –cluster –EM_NODE node5 -EM_NODE_LIST node6,node7,node8

 The below Information for installing DBCONSOLE :

  • The Database unique name
  • The Listener port number
  • The Cluster name
  • The Password for SYS user
  • The Password for DBSNMP user
  • The Password for SYSMAN user
  • The Email address for notifications (optional)
  • The Outgoing Mail (SMTP) server for notifications (optional)
  • The ASM ORACLE_HOME e.g. /u01/app/asm/product/10.2.0
  • The ASM port e.g. 1521
  • The ASM user role e.g. SYSDBA
  • The ASM username e.g. SYS
  • The ASM user password


Note : Sometimes you need to put the password between "" . 
Thank you
Osama mustafa

Monday, May 7, 2012

FRM-92100 : your connection to the server was interrupted

Cause

NLS_LANG has been set to an invalid value in the environment of the user starting Oracle Forms Services.

Solution

Set NLS_LANG to a valid value like AMERICAN_AMERICA.AR8MSWIN1256 in the default.env file or any custom environment file which is being used.

You can go to regedit and also set the NLS_LANG value to the one mentioned above and check if this resolves the issue. 


 If the Above Solution Doesn't Work For you Try The Below One :

1) FRM-92100 occurs when invoking a new forms session from existing form session, or another URL is invoked from the parent browser window of the forms applet?

To work-around use the applet parameter separateFrame="True". This parameter is set in the static html file or formsweb.cfg

2) If using Oracle Jinitiator, try clearing the Jinitiator JAR or jcache:

For versions 1.3.x.x.x : Control Panel - Jinitiator Control Panel - Cache Tab Page - Clear JAR Cache button

3) If using MS Internet Explorer check that permissions / security options are set correctly

Launch Microsoft Internet Explorer.
Select the Tools -> Internet Options from the top level menu.
Click the SECURITY Tab:
Choose Local Intranet Zone from the list.
Click Custom Level.
Select Java Permissions - Custom from the list.
Click Java Custom Settings.
Select the Edit Permissions tab.
Choose Enable for Run Unsigned Content.
Choose Enable for Run Signed Content.
Select the ADVANCED tab.
Scroll down to Java VM.
Check the Java console enabled option.
Select the CONNECTIONS tab.
Click the LAN Settings button.
If IE is using a proxy server : Check the Bypass proxy server for local addresses check box. Click the Advanced button, and enter the local domain in the Exceptions box. Use the form *.domain.com, where domain.com maps to your local domain.
Click OK to exit the dialog.
Click OK to save the changes and exit IE.
Restart the computer.


Thank you
This Work aroud Is Working For Me , Hope it will be useful For you

Osama Mustafa 

All About Oracle WorkFlow Mailer

In this Topic We will discuss the Workflow mailer In Oracle Apps ad how to check it Let Start :

Workflow: version

  $FND_TOP/sql/wfver.sql

check workflow status.

set linesize 120
set pagesize 50
column COMPONENT_NAME format a45
column STARTUP_MODE format a15
column COMPONENT_STATUS format a15

select fsc.COMPONENT_NAME,fsc.STARTUP_MODE,fsc.COMPONENT_STATUS,fcq.last_update_date
from APPS.FND_CONCURRENT_QUEUES_VL fcq, fnd_svc_components fsc
where fsc.concurrent_queue_id = fcq.concurrent_queue_id(+)
order by COMPONENT_STATUS , STARTUP_MODE , COMPONENT_NAME;


check if workflow is used by only one instance

col value format a20
select p.parameter_id,
p.parameter_name,
v.parameter_value value
from apps.fnd_svc_comp_param_vals_v v,
apps.fnd_svc_comp_params_b p,
apps.fnd_svc_components c
where c.component_type = 'WF_MAILER'
and v.component_id = c.component_id
and v.parameter_id = p.parameter_id
and p.parameter_name in ( 'INBOUND_SERVER','ACCOUNT', 'REPLYTO')
order by p.parameter_name;


check for bad e-mail address

set linesize 170
col name format a40
col email_address format a80
select name, email_address from apps.wf_local_roles where email_address like '% %';

select name, email_address from apps.wf_local_roles where email_address like '%%';
 "If this retuning Row The there's bad Email"

How to know mail sent to a user with details:

select name, display_name, notification_preference, email_address
 from wf_local_roles where name = '';

To see failed, open notifications

SELECT message_type, COUNT(1)
FROM apps.wf_notifications
WHERE 1 = 1 AND mail_status = 'FAILED' AND status = 'OPEN'
GROUP BY message_type;

To check if email address, notification preference, display_name

select DISPLAY_NAME, NOTIFICATION_PREFERENCE from wf_users where EMAIL_ADDRESS = 'HR@domainname.com' and STATUS = 'ACTIVE' and DISPLAY_NAME = 'xxxxx';

select DISPLAY_NAME, NOTIFICATION_PREFERENCE, EMAIL_ADDRESS from wf_users where NOTIFICATION_PREFERENCE='MAILTEXT' and STATUS = 'ACTIVE';

select distinct(count(*)) from wf_users where NOTIFICATION_PREFERENCE='MAILTEXT' and STATUS = 'ACTIVE' and EMAIL_ADDRESS = 'HR@Domainname.com';



Thank you
Osama mustafa

Sunday, May 6, 2012

What Is $ADMIN_SCRIPT_HOME ???

As We All Know if you need to start/shutdown Oracle Apps you need go $ADMIN_SCRIPT_HOME In R12 Or $CONTEXT_HOME in R11

This Article Explain What These Scripts Do : 

adstrtal.sh
Master script to start all components/services of middle tier or application tier. This script will use Service Control API to start all services which are enabled after checking them in context file (SID_HOSTNAME.xml or CONTEXT_NAME.xml)


adstpall.sh
Master script to stop all components/services of middle tier or application tier

adalnctl.sh
Script to start / stop apps listener (FNDFS and FNDFS). This listener will file will be in 10.1.2 ORACLE_HOME (i.e. Forms & Reports Home)
listener.ora file will be in $INST_TOP/apps/$CONTEXT_NAME/ora/10.1.2/network/admin directory
(Mostly similar to one in 11i with only change in ORACLE_HOME i.e. from 8.0.6 to 10.1.2 )

adapcctl.sh
Script to start/stop Web Server or Oracle HTTP Server. This script uses opmn (Oracle Process Manager and Notification Server) with syntax similar to opmnctl [startstop]proc ohslike opmnctl stopproc ohs .

adcmctl.sh
Script to start / stop concurrent manager,

adformsctl.sh
Script to start / stop Forms OC4J from 10.1.3 Oracle_Home. This script will also use opmnctl to start/stop Forms OC4J like
opmnctl stopproc type=oc4j instancename=forms

adformsrvctl.sh
This script is used only if you wish to start forms in socket mode. Default forms connect method in R12 is servlet.
If started this will start frmsrv executable from 10.1.2 Oracle_Home in Apps R12

adoacorectl.sh
This script will start/stop oacore OC4J in 10.1.3 Oracle_Home. This scripts will also use opmnctl (similar to adapcctl & adformsctl) to start oacore instance of OC4J like
opmnctl startproc type=oc4j instancename=oacore

adoafmctl.sh
 This script will start/stop oafm OC4J in 10.1.3 Oracle_Home. This scripts will also use opmnctl (similar to above) to start oacore instance of OC4J like
opmnctl startproc type=oc4j instancename=oafm

adopmnctl.sh
This script will start/stop opmn service in 10.1.3 Oracle_Home. opmn will control all services in 10.1.3 Oracle_Home like web server or various oc4j instances. If any services are stopped abnormally opmn will/should start them automatically.


Thank You 
Osama Mustafa 
     

check Oracle Apps/EBS version

This is Simple Script To Check Version For Oracle APP/EBS For Any Version :

select RELEASE_NAME from fnd_product_groups;

output  :

RELEASE_NAME
-----------------------
12.1.0.1


Thank you
Osama mustafa

Saturday, May 5, 2012

Useful Query To check Some Privileges

Check for whether user has full database export/import privilege 


Query : 




SQL>SET lines 100 
COL privilege FOR a50 
SELECT grantee, granted_role, default_role 
FROM dba_role_privs 
WHERE granted_role IN ('DBA', 'EXP_FULL_DATABASE', 'IMP_FULL_DATABASE') 
ORDER BY 1,2; 

Check for user has create table or create session privilege.


Query 

SQL>SET lines 100 pages 100
COL privilege FOR a40
SELECT grantee, privilege 
  FROM dba_sys_privs 
 WHERE (grantee IN ('TEST', 'PUBLIC') 
        OR grantee IN (SELECT granted_role FROM dba_role_privs 
                        WHERE grantee IN ('TEST', 'PUBLIC'))) 
   AND privilege IN ('CREATE SESSION', 'CREATE TABLE') 
 ORDER BY 1,2;   

Check for granted privileges on directory objects.


Query :

SET lines 110
COL privilege FOR a12
COL grantee FOR a25
COL owner FOR a25
SELECT p.grantee, p.privilege, p.owner, d.directory_name 
  FROM dba_tab_privs p, dba_directories d 
 WHERE p.table_name=d.directory_name 
   AND (grantee IN ('TEST', 'PUBLIC') 
        OR grantee IN (SELECT granted_role FROM dba_role_privs 
                        WHERE grantee IN ('TEST', 'PUBLIC'))) 
 ORDER BY 4,3,2; 


Thank You
osama Mustafa

RW-50015 : Installation Error On Oracle EBS R12

RW-50015: Error: - HTTP Listener is not responding. The service might not have started on the port yet. Please check the service and use the retry button.


the Rapid Install window will show many errors for HTTP.

Checking status of OPMN managed Oracle HTTP Server (OHS) instance ...

Processes in Instance: PROD_ebs.ebs.sandiego.com
-------------------+--------------------+---------+---------
ias-component | process-type | pid | status
-------------------+--------------------+---------+---------
OC4J | oafm | 21168 | Alive
OC4J | forms | 21078 | Alive
OC4J | oacore | 20943 | Alive
HTTP_Server | HTTP_Server | N/A | Down

Download and apply the patch 6078836 from OracleMetaLink to fix an issue with the Oracle HTTP Server bundled with the E-Business Suite technology stack. We unzip the patch:

[oracle@ebs oracle]$ unzip p6078836_101330_LINUX.zip
Archive: p6078836_101330_LINUX.zip
creating: 6078836/
inflating: 6078836/libdb.so.2
inflating: 6078836/README.txt

[oracle@ebs oracle]$ cd 6078836/
[oracle@ebs 6078836]$ ls
libdb.so.2 README.txt


Then we copy to /usr/lib.

[root@ebs 6078836] $ cp libdb.so.2 /usr/lib

[root@ebs lib]# cd /usr/lib

[root@ebs lib]# pwd
/usr/lib


[root@ebs lib]# ls libdb.so*
libdb.so libdb.so.2
 

Processes in Instance: PROD_ebs.ebs.sandiego.com
-------------------+--------------------+---------+---------
ias-component | process-type | pid | status
-------------------+--------------------+---------+---------
OC4J | oafm | 21168 | Alive
OC4J | forms | 21078 | Alive
OC4J | oacore | 20943 | Alive
HTTP_Server | HTTP_Server | 28519 | Alive 








Thank You
 Osama mustafa