facebook twitter youtube facebook facebook facebook

E-Mail : info@askmlabs.com

Phone : +1.215.353.8306

Latest Post
Showing posts with label configuration. Show all posts
Showing posts with label configuration. Show all posts

Exadata Database UNKNOWN issue after Grid Upgrade PRCR-1133 PRCR-1132 CRS-2680 CRS-5807 CRS-2680 CRS-5807

Written By askMLabs on Saturday, September 15, 2018 | 4:39 PM

In this post ,we are going to discuss about a recent issue we had after completing the exadata grid upgrade from 12.1.0.2 to 12.2.0.1. After completing the grid upgrade, we started seeing some databases status in UNKNOWN status with crsctl status command. The srvctl command show the status of the Database as not running though they are actually running. So let’s see the step by step troubleshooting of this issue.

NOTE : When you are troubleshooting any issue it is very important to first understand the issue and all its symptoms. We can’t just search for error string in google or in Oracle Support portal and start applying the solutions. This is not the right approach. We always suggest my blog followers and my students to first understand the issue and all its error messages. Let’s start discussing our issue….


After completing the GRID upgrade, the following symptoms are identified ….

  • srvctl shows the database status as “not running” though the database is actually up and running
  • Can’t manage the database(start or stop ) using the srvctl utility
  • SQLPLUS is the only utility to start and stop any instance of the RAC database
  • CRSCTL shows the database resource status as UNKNOWN.


With above mentioned symptoms of the issue, any experienced RAC should be able to tell you that the database is not properly talking to clusterware to update its status. That being said, the clusterware is unable to manage the database. These kind of situations arise when any cluster rac nodes gets rebooted abruptly. In our case, It may or may not be the grid upgrade that caused this issue, but there could be some previous occurances where the rac node got rebooted and there was a mismatch of Oracle database status in Oracle Clusterware. So how do we let the clusterware tell to reset the database status and start managing the database? Simple , just disable the resource and re-enable the resource using srvctl utility. But many DBAs are not convinced with the solution provided by the experience, they need a step by step troubleshooting steps …

Check 1:

Validate all the symptoms of the issue specified above. This confirms the status mismatch with Oracle Clusterware.

I am considering one database to show you the commands, but this issue is with many database on Exadata.

The following output shows thath the database is not running on any of the clusterware exadata compute node.

[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$ srvctl status database -d ASKMDB
Instance ASKMDB1 is not running on node exaaskmdb01
Instance ASKMDB2 is not running on node exaaskmdb02
Instance ASKMDB3 is not running on node exaaskmdb03
Instance ASKMDB4 is not running on node exaaskmdb04
Instance ASKMDB5 is not running on node exaaskmdb05
Instance ASKMDB6 is not running on node exaaskmdb06
[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$


But the above output is not correct. The database instance is actually running on node2 exaaskmdb02.


[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$ sqlplus '/as sysdba'

SQL*Plus: Release 11.2.0.4.0 Production on Fri Sep 14 00:36:16 2018

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> sho parameter spfile

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      +ASKM_DG/ASKMDB/spfileASKMDB.ora


If I try to start this instance using srvctl , it gives me the following error messages …..

[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$ srvctl start instance -d ASKMDB -i ASKMDB2
PRCR-1013 : Failed to start resource ora.askmdb.db
PRCR-1064 : Failed to start resource ora.askmdb.db on node exaaskmdb02
CRS-2680: Clean of 'ora.askmdb.db' on 'exaaskmdb02' failed
CRS-5802: Unable to start the agent process

But the same instance can be started and stopped using sqlplus.


The CRSCTL status of this database resource shows the following UNKNOWN status ….

[grid@exaaskmdb01 ~]$ crsctl status res ora.askmdb.db -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.askmdb.db
       1        ONLINE  ONLINE       exaaskmdb02                 Open,HOME=/u01/app/o
                                                              racle/product/11.2.0
                                                              .4/dbhome_1,STABLE
       2        OFFLINE OFFLINE                               STABLE
       3        OFFLINE OFFLINE                               STABLE
       4        ONLINE  UNKNOWN      exaaskmdb02                 STABLE
       5        ONLINE  OFFLINE                               STABLE
       6        ONLINE  OFFLINE                               STABLE
--------------------------------------------------------------------------------
[grid@exaaskmdb01 ~]$



Check 2 :

With Check1, we confirmed that all the symptoms we specified are met. Now lets see what is being populated in logs and what logs files we need to review …….

All cluster related issues are logged to clusteware logs. These logs are located in /u01/app/grid/diag/crs/exaaskmdb02/crs/trace.  Check the logs alert.log , crsd.trc and crsd_oraagent_oracle.trc files to check the error messages that states the cluster resource status changed to UNKNOWN status with the reason for this status change. As a DBA we should be able to understand the log formatting messages of the clusterware trace files. 


Solution

The following steps are listed to let any DBA understand the sequence of steps to execute to correct the database UNKNOWN status.


1. List the database status and check all the instances status

[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$ srvctl status database -d ASKMDB
Instance ASKMDB1 is not running on node exaaskmdb01
Instance ASKMDB2 is not running on node exaaskmdb02
Instance ASKMDB3 is not running on node exaaskmdb03
Instance ASKMDB4 is not running on node exaaskmdb04
Instance ASKMDB5 is not running on node exaaskmdb05
Instance ASKMDB6 is not running on node exaaskmdb06


2. List the services status and check where the services are running.


[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$ srvctl status service -d ASKMDB
Service ASKMDBSC is running on instance(s) ASKMDB2


3. If the database is running a single instance,
3.a. Enable new database instance on a different node using srvctl

[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$ srvctl enable instance -d ASKMDB -i ASKMDB3


3.b. Start this new instance  using srvctl

[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$ srvctl start instance -d ASKMDB -i ASKMDB3


3.c. Modify the database services configuration to make the new instance as the preferred instance

[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$ srvctl modify service -d ASKMDB -s ASKMDBSC -n -i ASKMDB3 -a ASKMDB1,ASKMDB2,ASKMDB4,ASKMDB5,ASKMDB6


3.d. Verify the database configuration that the new instance is listed as the preferred instance.

[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$ srvctl config service -d ASKMDB -s ASKMDBSC
Service name: ASKMDBSC
Service is enabled
Server pool: ASKMDB_ASKMDBSC
Cardinality: 1
Disconnect: false
Service role: PRIMARY
Management policy: AUTOMATIC
DTP transaction: false
AQ HA notifications: false
Failover type: NONE
Failover method: NONE
TAF failover retries: 0
TAF failover delay: 0
Connection Load Balancing Goal: LONG
Runtime Load Balancing Goal: NONE
TAF policy specification: NONE
Edition:
Preferred instances: ASKMDB3
Available instances: ASKMDB1,ASKMDB2,ASKMDB4,ASKMDB5,ASKMDB6
[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$



4. If the database is running multiple instances,
4.a. List the database configuration and check if the services have multiple instances as preferred instances.
4.b. Modify if we need to adjust the service configuration, to have atleast one running instance(Other than problematic instance) as preferred instance.
5. Relocate the database services to the new instance.

[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$ srvctl status service -d ASKMDB -s ASKMDBSC
Service ASKMDBSC is running on instance(s) ASKMDB3


6. Stop the problematic instance using srvctl.           <<< If there are any errors during this step, it's expected. Don't worry about the error messages, but proceed to the next step.

[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$ srvctl stop instance -d ASKMDB -i ASKMDB2
PRCR-1133 : Failed to stop database ASKMDB and its running services
PRCR-1132 : Failed to stop resources using a filter
CRS-2680: Clean of 'ora.askmdb.db' on 'exaaskmdb02' failed
CRS-5807: Agent failed to process the message
CRS-2680: Clean of 'ora.askmdb.db' on 'exaaskmdb02' failed
CRS-5807: Agent failed to process the message
[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$


7. Disable the instance using srvctl

[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$ srvctl disable instance -d ASKMDB -i ASKMDB2


8. Enable the instance using srvctl

[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$ srvctl enable instance -d ASKMDB -i ASKMDB2


9. Start the instance using srvctl

[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$ srvctl status database -d ASKMDB
Instance ASKMDB1 is not running on node exaaskmdb01
Instance ASKMDB2 is not running on node exaaskmdb02
Instance ASKMDB3 is running on node exaaskmdb03
Instance ASKMDB4 is not running on node exaaskmdb04
Instance ASKMDB5 is not running on node exaaskmdb05
Instance ASKMDB6 is not running on node exaaskmdb06
[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$ ps -ef | grep -i pmon | grep -i ASKMDB
[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$ srvctl start instance -d ASKMDB -i ASKMDB2
[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$ srvctl status database -d ASKMDB
Instance ASKMDB1 is not running on node exaaskmdb01
Instance ASKMDB2 is running on node exaaskmdb02
Instance ASKMDB3 is running on node exaaskmdb03
Instance ASKMDB4 is not running on node exaaskmdb04
Instance ASKMDB5 is not running on node exaaskmdb05
Instance ASKMDB6 is not running on node exaaskmdb06
[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$



10. Now check the status of the database resource using crsctl

[grid@exaaskmdb02 ~]$ crsctl status res ora.askmdb.db -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.askmdb.db
       1        OFFLINE OFFLINE                               Instance Shutdown,ST
                                                              ABLE
       2        OFFLINE OFFLINE                               Instance Shutdown,ST
                                                              ABLE
       3        OFFLINE OFFLINE                               STABLE
       4        ONLINE  ONLINE       exaaskmdb02                 Open,HOME=/u01/app/o
                                                              racle/product/11.2.0
                                                              .4/dbhome_1,STABLE
       5        ONLINE  OFFLINE                               STABLE
       6        ONLINE  OFFLINE                               STABLE
--------------------------------------------------------------------------------
[grid@exaaskmdb01 ~]$



11. Once it is confirmed that the database shows the correct status using crsctl, proceed to bring down the temporary instance that we started.

[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$ srvctl stop instance -d ASKMDB -i ASKMDB3


12. Relocate the services back to the original instance once the problem is resolved with that instance.
13. Stop the temporary instance that we started.

[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$ srvctl status database -d ASKMDB
Instance ASKMDB1 is not running on node exaaskmdb01
Instance ASKMDB2 is running on node exaaskmdb02
Instance ASKMDB3 is not running on node exaaskmdb03
Instance ASKMDB4 is not running on node exaaskmdb04
Instance ASKMDB5 is not running on node exaaskmdb05
Instance ASKMDB6 is not running on node exaaskmdb06
[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$ srvctl status service -d ASKMDB
Service ASKMDBSC is running on instance(s) ASKMDB2
[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$


14. Disable the temporary instance that we started.

[oracle@exaaskmdb02.askmlabs.com:ASKMDB2]$ srvctl disable instance -d ASKMDB -i ASKMDB3


Hope this helps …

Creating A Dataguard Broker Configuration Using DGMGRL

Written By askMLabs on Tuesday, December 13, 2011 | 2:25 PM

In this article we will see step by step instructions on how to configure dataguard broker configuration using DGMGRL utility. The dataguard broker makes it easy to maintain and administer several standby databases. Dataguard broker maintains its own configuration files and runs a background process DMON both on primary and standby database servers. Dataguard broker configuration can be created using either OEM grid control or using a command line utility DGMGRL. In the present article we are using DGMGRL to create dataguard broker configuration to maintain standby databases.

Setup:

Primary Site
Standby Site
Hostname
dgaskmpri01
dgaskmsby01
Database Name
orcl
orcl
Database Unique Name
orcl
sbyorcl
Net Service Name
orcl
sbyorcl

  1. Prepare Primary Site ( Modify init.ora and listener.ora ) 
  2. Prepare Standby site ( Modify init.ora and listener.ora ) 
  3. Create Dataguard configuration 
  4. Adding Standby Database 
  5. Verify the Configuration 
  6. Enable Configuration 
  7. Verifying Configuration With Switchover 
  8. Monitoring DataGuard Broker Configuration

Prepared By SRI

1.Prepare Primary Site :
Init.ora Changes: DB_BROKER_CONFIG_FILEn parameter is used to specify the location of the dataguard configuration. DG_BROKER_START parameter is used to start the broker automatically when the instance starts.
SQL> alter system set dg_broker_config_file1='/home/oracle/app/oracle/product/11.2.0/dbhome_2/dbs/dr1orcl.dat' sid='*';
System altered.
SQL> alter system set dg_broker_config_file2='/home/oracle/app/oracle/product/11.2.0/dbhome_2/dbs/dr2orcl.dat' sid='*';
System altered.
SQL> alter system set dg_broker_start=true  sid='*';
System altered.
Listener.ora Changes : GLOBAL_DBNAME attribute value should be set as shown in the following listener.ora configuraiton on primary site otherwise you will get TNS-12154 error during switch over configuration. A service with name <sid>_DGMGRL will be started when the listener is started.
[oracle@dgaskmpri01 admin]$ cat listener.ora 
LISTENER_PRI = 
  (DESCRIPTION_LIST = 
    (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1525)) 
    ) 
    (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = dgaskmpri01.localdomain)(PORT = 1525)) 
    ) 
  )

SID_LIST_LISTENER_PRI = 
  (SID_LIST = 
    (SID_DESC = 
      (GLOBAL_DBNAME = orcl_DGMGRL.localdomain) 
      (ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_2) 
      (SID_NAME = orcl) 
      (SERVICE_NAME = orcl.localdomain) 
    ) 
  ) 
[oracle@dgaskmpri01 admin]$
2. Prepare Standby site:
Init.ora Changes:
SQL> alter system set dg_broker_config_file1='/home/oracle/app/oracle/product/11.2.0/dbhome_2/dbs/dr1sbyorcl.dat' sid='*';
System altered.
SQL> alter system set dg_broker_config_file2='/home/oracle/app/oracle/product/11.2.0/dbhome_2/dbs/dr2sbyorcl.dat' sid='*';
System altered.
SQL> alter system set dg_broker_start=true  sid='*';
System altered.
Listener.ora Changes:
[oracle@dgaskmsby01 admin]$ cat listener.ora
LISTENER_SBY = 
  (DESCRIPTION_LIST = 
    (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1525)) 
    ) 
    (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = dgaskmsby01.localdomain)(PORT = 1525)) 
    ) 
  )

SID_LIST_LISTENER_SBY = 
  (SID_LIST = 
    (SID_DESC = 
      (GLOBAL_DBNAME = sbyorcl_DGMGRL.localdomain) 
      (ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_2) 
      (SID_NAME = sbyorcl) 
      (SERVICE_NAME = sbyorcl.localdomain) 
    ) 
  ) 
[oracle@dgaskmsby01 admin]$

3. Create Dataguard configuration:
On the primary Database Server connect to database using DGMGRL utility.
[oracle@dgaskmpri01 dbs]$ dgmgrl 
DGMGRL for Linux: Version 11.2.0.2.0 - Production
Copyright (c) 2000, 2009, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information. 
DGMGRL> connect sys/oracle
Connected.
DGMGRL> CREATE CONFIGURATION 'askm_config' AS PRIMARY DATABASE IS 'orcl' CONNECT IDENTIFIER IS orcl; 
Configuration "askm_config" created with primary database "orcl"
DGMGRL> show configuration;
Configuration - askm_config
  Protection Mode: MaxPerformance 
  Databases:
    orcl - Primary database

Fast-Start Failover: DISABLED
Configuration Status: 
DISABLED
DGMGRL>
In the created configuration command,
askm_config = It is the name of the configuration. And it can be anything that your choice.
Primary Database is ‘orcl’ = Here ‘orcl’ is primary database db_unique_name value
Connect Identifier is ‘orcl’ = Here ‘orcl’ is alias name defined in tnsnames.ora to connect to primary database.
4. Adding Standby Databas:
DGMGRL> ADD DATABASE 'sbyorcl' AS CONNECT IDENTIFIER IS sbyorcl MAINTAINED AS PHYSICAL;
Database "sbyorcl" added 
DGMGRL> show configuration;
Configuration - askm_config
  Protection Mode: MaxPerformance 
  Databases:
    orcl    - Primary database
    sbyorcl - Physical standby database

Fast-Start Failover: DISABLED
Configuration Status: 
DISABLED
DGMGRL>
6. Enable Configuration:
DGMGRL> help enable configuration;
Enables a configuration, a database, or fast-start failover
Syntax:
  ENABLE CONFIGURATION;
  ENABLE DATABASE <database name>;
  ENABLE FAST_START FAILOVER [CONDITION <condition>];
DGMGRL> enable configuration; 
Enabled.
DGMGRL> show configuration;

Configuration - askm_config
  Protection Mode: MaxPerformance 
  Databases:
    orcl    - Primary database
    sbyorcl - Physical standby database

Fast-Start Failover: DISABLED
Configuration Status: 
SUCCESS
DGMGRL>
7. Verifying Configuration With Switchover:
[oracle@dgaskmpri01 dbs]$ dgmgrl
DGMGRL for Linux: Version 11.2.0.2.0 - Production

Copyright (c) 2000, 2009, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information. 
DGMGRL> connect sys/oracle
Connected.
DGMGRL> switchover to 'sbyorcl';
Performing switchover NOW, please wait...
New primary database "sbyorcl" is opening...
Operation requires shutdown of instance "orcl" on database "orcl"
Shutting down instance "orcl"...
ORACLE instance shut down.
Operation requires startup of instance "orcl" on database "orcl"
Starting instance "orcl"...
ORACLE instance started.
Database mounted.
Switchover succeeded, new primary is "sbyorcl"
DGMGRL>

DGMGRL> exit 
[oracle@dgaskmpri01 dbs]$ clear
[oracle@dgaskmpri01 dbs]$ sqlplus '/as sysdba'

SQL*Plus: Release 11.2.0.2.0 Production on Thu Nov 17 08:54:54 2011
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
Connected to: 
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select database_role,switchover_status from v$database;
DATABASE_ROLE    SWITCHOVER_STATUS 
--------------- -------------------- PHYSICAL STANDBY NOT ALLOWED
SQL> exit 
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@dgaskmpri01 dbs]$ dgmgrl
DGMGRL for Linux: Version 11.2.0.2.0 - Production

Copyright (c) 2000, 2009, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information. 
DGMGRL> connect sys/oracle
Connected.
DGMGRL> switchover to 'orcl';
Performing switchover NOW, please wait...
New primary database "orcl" is opening...
Operation requires shutdown of instance "sbyorcl" on database "sbyorcl"
Shutting down instance "sbyorcl"...
ORACLE instance shut down.
Operation requires startup of instance "sbyorcl" on database "sbyorcl"
Starting instance "sbyorcl"...
ORACLE instance started.
Database mounted.
Switchover succeeded, new primary is "orcl"
DGMGRL> exit
[oracle@dgaskmpri01 dbs]$ sqlplus '/as sysdba'

SQL*Plus: Release 11.2.0.2.0 Production on Thu Nov 17 08:56:46 2011
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
Connected to: 
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select database_role,switchover_status from v$database;
DATABASE_ROLE    SWITCHOVER_STATUS 
---------------- -------------------- PRIMARY          TO STANDBY
SQL> 

8. Monitoring DataGuard Broker Configuration:
DGMGRL> help DGMGRL> show configuration;
DGMGRL> edit database "orcl" set property LogXptMode='SYNC';
DGMGRL> show database 'orcl' 'LogXptStatus';
DGMGRL> edit configuration set protection mode as MaxAvailability;
DGMGRL> enable fast_start failover; DGMGRL> show database 'orcl';
DGMGRL> enable database 'orcl'; DGMGRL> remove configuration;
DGMGRL> show database verbose orcl;
DGMGRL> show database orcl InconsistentProperties
DGMGRL> show database 'orcl' 'StatusReport';

Reference :
http://docs.oracle.com/cd/B12037_01/server.101/b10822/cli.htm
Setup and maintenance of Data Guard Broker using DGMGRL [ID 201669.1]
10g DGMGRL CLI Configuration [ID 260112.1]
Unable To Recreate Data Guard Fast Start Failover Configuration With DGMGRL [ID 454418.1]
Creating a configuration using Data Guard Manager [ID 214071.1]
Interaction Between the Data Guard Broker and a Data Guard Configuration [ID 249703.1]
http://www.izzysoft.de/oracle/ifaqmaker.php?id=7;toc=1

Hope It Helps
SRI


Creating And Configuring Machines in Weblogic Server 10.3.4

Written By askMLabs on Thursday, September 1, 2011 | 5:40 PM

In this article, we will discuss how to create and configure machines in weblogic server 10.3.4. We can do this in three different ways
  1. Domain Configuration Wizard
  2. Administration Console
  3. Command Line ( WLST )
A managed server is a computer  that hosts the Oracle Weblogic server instances. After creating the machines, we will assign managed servers to these machines.

Following video demo gives you the basics of creating and configuring machines.




Review the previous articles if you want to know how to create managed servers and configure them using administration server.

Domain creation and deletion in Weblogic Server

Configuring Managed Servers In Weblogic Server 10.3.4

Thanks

SRI

Explaining Patch c,d,g and Unified Driver

Written By askMLabs on Wednesday, October 14, 2009 | 12:57 PM

Explaining Patch c,d,g and Unified Driver:


The unzipped patch contains three  drivers "c,d,g" or "u". These are called copy,database,generate drivers or Unified drivers. The unified driver is the combination of all the three c,d,g drivers.

Now we will see these drivers one by one ....

Copy Driver : (cXXXXX.drv )
-- Copies all files to the appropriate directory ( ex:  .fmb , .pll files)
-- Relinks executable

Ex :
copy    ap     forms/US      APXIISIM.fmb     110.8
Driver will check the versions of APXIISIM.fmb on your system. If it is less than 110.8, then it will copy this file to the $AU_TOP/forms/US directory.

copy    ap     patch/110/sql apaiithb.pls     110.2
Driver will check the versions of apaiithb.pls on your system. If it is less than 110.2, then it will copy this file to the $AP_TOP/patch/110/sql directory.

copy    fnd    resource      JE.pll           110.8
Driver will check the versions of JE.pll on your system. If it is less than 110.8, then it will copy this file to the $AU_TOP/resource directory.

Database Driver : ( dXXXXXX.drv )
This is the driver that runs .sql, .pls, .odf and other files that update the database. As mentioned previously, some common ways the database is updated by the this driver are:
-- Create packages
-- Create new error messages
-- Add a new table or view to the database
-- Add a new column to a table
-- Add new seed data to a table

The database driver uses the same command structure:
<command>  <product>  <subdirectory>  <file>  <other arguments....>
However, as you will see, it uses the <other arguments> section much more. There are numerous different arguments that can be used, but following are some more common examples:
- sql Run the script directly from the worker
- sqlplus Spawn a new sqlplus session and run the script
- package Same as sqlplus but performs package version checking

Another argument you may see at the end of the command string is a 'phase='’ command. Before performing any actions, adpatch divides all actions contained in the patch driver file into phases based on information specified in the patch driver. Adpatch performs all actions grouped in one phase in parallel before proceeding to the next.
Many 'd' drivers in patches contain phase definitions that determine what order the files in the driver will
run. If the driver does not contain any phase definitions, then the files are executed in the order they appear in the driver.
There are currently around 19 different phases that can be defined, but some examples are:
Phase name      Action taken
seq             Create sequences
tab             Create tables and indexes
pls             Create package specifications (specs)
vw              Create Views
plb             Create package bodies

Following are some examples of common commands found in a dXXXXXX.drv driver, and a brief explanation.
sql  ar   patchsc/107/sql b512706a.sql  !AR_PERIOD_TYPES  &un_ar  &pw_ar sql  &phase=tab
Run the sql script $AR_TOP/patchsc/107/sql/b512706a.sql using the ar username and password. The !AR_PERIOD_TYPES is another parameter expected by the .sql script. As discussed previously the &phase argument specifies what type of action this script is doing, in this case creating a table, and when the script will be executed by the driver.

sql  ar   patchsc/107/sql    ARTEHPCS.pls    none none none package &phase=pls
Run the script $AR_TOP/patchsc/107/sql/ARTEHPCS.pls which creates a package (phase=pls).

sql ar patchsc/107/sql artcall5.sql none none none sqlplus &phase=tbm+5 &un_ar &pw_ar
Run the script $AR_TOP/patchsc/107/sql/artcall5.sql. The phase ‘tbm’ tells you that it is altering a table.
The +5 is a way of determining the order a script will run within a phase. For example, within a phase, commands would be run in the following order:
&phase=tbm
&phase=tbm+5
&phase=tbm+99

Generate Driver : (gXXXXXX.drv )
Following are some examples of commands in a 'g' driver. Once again, remember that
-- The .fmb files are stored in $AU_TOP, and when generated the executable (.fmx) is stored under the product.
-- The .pll is stored under $AU_TOP, and when generated the executable (.plx) is also stored under $AU_TOP.
genform    ap     forms/US     APXIISIM.fmb
Generate the form $AU_TOP/forms/US/APXIISIM.fmb and store the executable in $AP_TOP/forms/US/APXIISIM.fmx
genrep     ap     reports      APXIIADV.rdf
Generate the report $AP_TOP/reports/APXIIADV.rdf, and store the resulting file APXIIADV.rdf in the same directory.
genfpll    fnd    resource     JE.pll
Generate the PL/SQL library $AU_TOP/resource/JE.pll, and store the executable JE.plx in $AU_TOP/resource.

Unified Driver : ( uXXXXXXX.drv )
The u driver is a merged driver that is a combined c, d, and/or g driver. Oracle is beginning to release a majority of its patches as unified driver patches. If a patch is a unified driver patch, then only the u driver is applied.

R12 - How to enable logging for Apache,Oc4j and Opmn

Written By askMLabs on Tuesday, September 29, 2009 | 7:51 AM

R12 - How to enable logging for Apache,Oc4j and Opmn:


Apache Logging ( Plain Text )
==============================

1) Edit the file $ORA_CONFIG_HOME/10.1.3/Apache/Apache/conf/httpd.conf and set
LogLevel warn (s_apache_loglevel in context file)
2) Bounce the apache
3) Try to access the home URL or reproduce the issue.
4) Collect the following logfiles from $LOG_HOME/ora/10.1.3/Apache
access_log.<unique id>
error_log.<unique id>

Values that can be set to LogLevel variable in httpd.conf file
LogLevel = emerg,alert,crit,error,warn,notice,info,debug.

Apache Logging ( ODL Logging)
=============================

1) Set the following parameters in file $ORA_CONFIG_HOME/10.1.3/Apache/Apache/conf/httpd.conf
OraLogMode [oracle|odl|apache]
OraLogSeverity <message type>:<message level>

Message type: INTERNAL_ERROR, ERROR, WARNING, NOTIFICATION & TRACE
Message level: 1-32 (1 most severe, 32 least)
2) Bounce the apache
3) Try to access the home URL or reproduce the issue.
4) Collect the logfiles from $LOG_HOME/ora/10.1.3/Apache/oracle

OC4J Logging
============

By default Oracle Applications R12 creates 3 OC4J instances:
*  OACore: runs OA Framework-based applications
* Forms: runs Forms-base applications
* OAFM (Oracle Apps Fusion Middleware): runs web services, mapviewer, ascontrol

Loglevel is set in the file
$ORA_CONFIG_HOME/10.1.3/j2ee/<oacore, forms, oafm>/config

Log file path is specified in the file
$ORA_CONFIG_HOME/10.1.3/j2ee/<oacore, forms, oafm>/application-deployments/<oacore, forms, oafm>/orion-application.xml

1) Open the file to set the following log level $ORA_CONFIG_HOME/10.1.3/j2ee/<oacore, forms, oafm>/config/j2ee-logging.xml
2) Come to the location located as
"<logger name='oracle' level='NOTIFICATION:1‘ .....
3) Set the desired logging using following values
<message type>:<message level>
Message type: INTERNAL_ERROR, ERROR, WARNING, NOTIFICATION & TRACE
Message level: 1-32 (1 most severe, 32 least)
4) Locate the log file path from the file
$ORA_CONFIG_HOME/10.1.3/j2ee/<oacore, forms, oafm>/application-deployments/<oacore,forms,oafm>/orion-application.xml
(Will be identified with tag : <log> <file path=...> </log>)
5) Bounce the OC4J instance and reproduce the issue
6) Collect the log files from the following locations .
Plain text -> $LOG_HOME/ora/10.1.3/j2ee/<oacore, forms, oafm>/<oacore,forms,oafm>_<default_group_1>/application.log
ODL Log -> $LOG_HOME/ora/10.1.3/j2ee/<oacore, forms, oafm>/<oacore,forms,oafm>_<default_group_1>/log.xml

OPMN Logging
============

1) Open the file $ORA_CONFIG_HOME/10.1.3/opmn/conf/opmn.xml to set the logging parameter
2) Logging is enabled per component (internal, ons or pm)
3) Levels that can be set are (component codes) as following:
none, fatal, error, warn, notify          (written to .log)
debug1, debug2, debug3, debug4    (written to .dbg)
Ex :
opmnctl set target=log comp=warn
opmnctl set target=debug comp=debug1
4) Bounce opmn services and reproduce the issue
5) Collect the opmn log files generated in $LOG_HOME/ora/10.1.3/opmn
opmn.log , opmn.dbg and opmn.out

NOTE : Logfiles can be enabled for rotation using parameter s_opmn_log_rotation_size, s_opmn_log_rotation_time in opmn.xml

Various Other Logfiles :
========================

$LOG_HOME/appl/admin/log/






































ServiceLogfile Name
TNS Listener Start/Stop logadalnctl.txt
Fulfillment Server Start/Stop logjtffmctl.txt
Oracle HTTP Server start/stop logadapcctl.txt
Concurrent Managers and ICM start/stop logadcmctl.txt
Forms OC4J start/stop logadformsctl.txt
OACore OC4J start/stop logadoacorectl.txtq
OAFM OC4J start/stop logadoafmctl.txt
OPMN start/stop logadopmnctl.txt

R12 - Changing APPS password

Written By askMLabs on Thursday, September 24, 2009 | 12:36 AM

Changing APPS password


There are some situations where you may need to change the apps password. Some times you may or may not know the apps password. And some times the password may be reset if it is corrupted.

Action Steps ( when you know the old apps password )
1) Shutdown all the MT services
2) Change apps password using FNDCPASS
FNDCPASS apps/[oldpasswd] 0 Y system/pwd SYSTEM APPLSYS <new_pwd>
3) Run autoconfig
4) Startup all the MT services

Action Steps ( when you forgot/dont know the apps password)
Follow metalink Note 160337.1 to change the apps password and then run autoconfig.

Encrypted Passwords details :
SQL> select oracle_username,encrypted_oracle_password from fnd_oracle_userid where oracle_username IN ('APPS', 'APPLSYS','APPLSYSPUB');
SQL> select encrypted_foundation_password, encrypted_user_password from fnd_user where user_name = 'SYSADMIN';

R12 – socket to servlet mode conversion

Written By askMLabs on Sunday, September 20, 2009 | 8:12 AM

R12 – socket to servlet mode conversion :


Action Steps
=============

1) Source the Env file
2) Stop all the application services.
3) Run the following command to enable Forms Socket Mode:
$FND_TOP/bin/txkrun.pl -script=ChangeFormsMode \
[-contextfile=<CONTEXT_FILE>] \
[-mode=servlet] \
-runautoconfig=<No or Yes> \
-appspass=<APPS password>
 Ex :

 $FND_TOP/bin/txkrun.pl -script=ChangeFormsMode \

 -contextfile=$INST_TOP/appl/admin/mycontext.xml \

 -mode=servlet \

 -runautoconfig=No

4) Run autoconfig in check mode and resolve the differences

5) Run autoconfig in actual mode

4) Start all the application services

Confirmation Checks
===================

1) Access the URL

<web_protocol>://<web_host>.<web_domain>:<web_port>/forms/frmservlet
http://ocvmrh2025.us.oracle.com:8000/forms/frmservlet

2) $INST_TOP/admin/scripts/adformsctl.sh status

3) Open the Java Console and check the "connectMode"

Observations
=============

Following values are modified in context file ....

Updated context Variable s_forms_servlet_serverurl to /forms/lservlet
Updated context Variable s_frmConnectMode to servlet
Updated context Variable s_formsstatus to enabled
Updated context Variable s_formsserver_status to disabled
Updated context Variable s_formslauncher_path to forms/frmservlet

adopmnctl.sh status in servlet mode :

Processes in Instance: VIS_ocvmrh2025.ocvmrh2025.us.oracle.com
-------------------+--------------------+---------+---------
ias-component      | process-type       |     pid | status
-------------------+--------------------+---------+---------
OC4J               | oafm               |   26006 | Alive
OC4J               | forms              |   25913 | Alive
OC4J               | oacore             |   25778 | Alive
HTTP_Server        | HTTP_Server        |   25727 | Alive

adopmnctl.sh status in socket mode :

Processes in Instance: VIS_ocvmrh2025.ocvmrh2025.us.oracle.com
-------------------+--------------------+---------+---------
ias-component      | process-type       |     pid | status
-------------------+--------------------+---------+---------
OC4J               | oafm               |   25365 | Alive
OC4J               | oacore             |   25279 | Alive
HTTP_Server        | HTTP_Server        |   25226 | Alive

Configuration files effected by this conversion :

socket_servlet_R12

Java Console Output :

Java_console_output_servlet_r12


R12 - servelet to socket mode conversion

R12 - servelet to socket mode conversion


Action Steps
============

1) Source the Env file
2) Stop all the application services.
3) Run the following command to enable Forms Socket Mode:

$FND_TOP/bin/txkrun.pl -script=ChangeFormsMode \
[-contextfile=<CONTEXT_FILE>] \
-mode=socket \
[-port=<Forms port number>] \
-runautoconfig=<No or Yes> \
-appspass=<APPS password>

Ex :
 $FND_TOP/bin/txkrun.pl -script=ChangeFormsMode \

 -contextfile=$INST_TOP/appl/admin/mycontext.xml \

 -mode=socket \

 -port=9095 \

 -runautoconfig=No

4) Run autoconfig in check mode and resolve the differences

5) Run autoconfig in actual mode

5) Start all the application services

Confirmation Checks
===================

1) Access the URL

<web_protocol>://<web_host>.<web_domain>:<web_port>/OA_HTML/frmservlet
http://ocvmrh2025.us.oracle.com:8000/OA_HTML/frmservlet

2) $INST_TOP/admin/scripts/adformsrvctl.sh status

3) Open the Java Console and check the "connectMode"

Observations
=============

Following values are modified in context file ....

s_forms_servlet_serverurl to <empty>
s_frmConnectMode to socket
s_formsstatus to disabled
s_formsserver_status to enabled
s_other_service_group_status to enabled
s_formsport to 9095
s_formslauncher_path to OA_HTML/frmservlet

adopmnctl.sh status in servlet mode :

Processes in Instance: VIS_ocvmrh2025.ocvmrh2025.us.oracle.com
-------------------+--------------------+---------+---------
ias-component      | process-type       |     pid | status
-------------------+--------------------+---------+---------
OC4J               | oafm               |   26006 | Alive
OC4J               | forms              |   25913 | Alive
OC4J               | oacore             |   25778 | Alive
HTTP_Server        | HTTP_Server        |   25727 | Alive

adopmnctl.sh status in socket mode :

Processes in Instance: VIS_ocvmrh2025.ocvmrh2025.us.oracle.com
-------------------+--------------------+---------+---------
ias-component      | process-type       |     pid | status
-------------------+--------------------+---------+---------
OC4J               | oafm               |   25365 | Alive
OC4J               | oacore             |   25279 | Alive
HTTP_Server        | HTTP_Server        |   25226 | Alive

Configuration files effected by this conversion :

serv_to_socket_r12

Java Console Output :

Java_console_output_socket_r12
 
Support :
Copyright © 2013. askMLabs - All Rights Reserved
Proudly powered by Blogger