Thursday, December 29, 2016

WegLogic 12c silent installation on SUN Solaris


WebLogic 12c(12.1.3) on Solaris SPARC 64 bit fails with the error below:


java -jar fmw_12.1.3.0.0_wls.jar -silent -responseFile wls.rsp
Launcher log file is /var/tmp/OraInstall2016-12-29_10-33-15AM/launcher2016-12-29_10-33-15AM.log.
Extracting files...............................
Starting Oracle Universal Installer

Checking if CPU speed is above 300 MHz.   Actual 1415 MHz    Passed
Checking swap space: must be greater than 512 MB.   Actual 17934 MB    Passed
Checking if this platform requires a 64-bit JVM.   Actual 64    Passed
Checking temp space: must be greater than 300 MB.   Actual 56261 MB    Passed

Preparing to launch the Oracle Universal Installer from /var/tmp/OraInstall2016-12-29_10-33-15AM
Log: /var/tmp/OraInstall2016-12-29_10-33-15AM/install2016-12-29_10-33-15AM.log
Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved.
Reading response file..
Starting check : CertifiedVersions
Expected result: One of 5.10,5.11
Actual Result: 5.10
Check complete. The overall result of this check is: Passed
CertifiedVersions Check: Success.
Starting check : CheckJDKVersion
Expected result: 1.7.0_15
Actual Result: 1.7.0_79
Check complete. The overall result of this check is: Passed
CheckJDKVersion Check: Success.
Validations are enabled for this session.
Verifying data......
[VALIDATION] [ERROR]:INST-07546: Unable to find install type Fusion Middleware Infrastructure
[VALIDATION] [SUGGESTION]:Provide a valid install type
installation Failed. Exiting installation due to data validation failure.



Solution:

Changed  "INSTALL_TYPE" parameter in response file.
< INSTALL_TYPE=Fusion Middleware Infrastructure
---
> INSTALL_TYPE=WebLogic Server

 




Launcher log file is /var/tmp/OraInstall2016-12-29_11-14-20AM/launcher2016-12-29_11-14-20AM.log.
Extracting files...............................
Starting Oracle Universal Installer

Checking if CPU speed is above 300 MHz.   Actual 1415 MHz    Passed
Checking swap space: must be greater than 512 MB.   Actual 17923 MB    Passed
Checking if this platform requires a 64-bit JVM.   Actual 64    Passed
Checking temp space: must be greater than 300 MB.   Actual 55245 MB    Passed


Preparing to launch the Oracle Universal Installer from /var/tmp/OraInstall2016-12-29_11-14-20AM
Log: /var/tmp/OraInstall2016-12-29_11-14-20AM/install2016-12-29_11-14-20AM.log
Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved.
Reading response file..
Starting check : CertifiedVersions
Expected result: One of 5.10,5.11
Actual Result: 5.10
Check complete. The overall result of this check is: Passed
CertifiedVersions Check: Success.
Starting check : CheckJDKVersion
Expected result: 1.7.0_15
Actual Result: 1.7.0_79
Check complete. The overall result of this check is: Passed
CheckJDKVersion Check: Success.
Validations are enabled for this session.
Verifying data......
Copying Files...
You can find the log of this install session at:
 /var/tmp/OraInstall2016-12-29_11-14-20AM/install2016-12-29_11-14-20AM.log
-----------20%----------40%----------60%----------80%--------100%

The installation of Oracle Fusion Middleware 12c WebLogic Server and Coherence 12.1.3.0.0 completed successfully.
Logs successfully copied to /var/opt/oracle/oraInventory/logs.

 



source:
http://www.kernelbytes.com/silent-mode-installation-weblogic12c/
https://docs.oracle.com/middleware/1213/core/OUIRF/toc.htm


Wednesday, December 28, 2016

RMAN Technical Reference

RMAN backup, delete, reporting, charting, compression, encryption, authentication, such as crosschek control that I created a technical reference for quick access. I want to share with you. I will be updating this document periodically. I tried to classify the commands in RMAN to recover under the general headings. Hope to be useful.
Backup Reporting Operations
Backup need report:
RMAN>report need backup;
Obsolete backup report:
RMAN>report obsolete;
Back-up Operations
Backing Up whole database:
RMAN>backup database;
or
RMAN> backup incremental level 0 database;
Backing Up whole database with archive log files:
RMAN>backup database plus archivelog;
Backing Up Controlfile :
RMAN>backup as copy current controlfıle;
Backing Up whole database with archive log files and deleting arhived log files:
RMAN>backup database plus archivelog delete input;
Backing Up a Tablespace:
RMAN>backup as backupset
format '/backup/df_%d_%s.bck'
tablespace users;
Backing Up a datafile:
RMAN>backup datafile 5;
Backing Up changed blocks (Differential Incremental Backup):
RMAN> backup incremental level 1 database;
Backing Up all blocks after last full backup (Cumulative Incremental Backup):
RMAN>backup incremental level 1 cumulative database;
Image Copy Backup:
RMAN>backup as copy database;
Backup Deletion Operations
Deleting a backup by sequence number:
RMAN>delete backuppiece 101;
Deleting a backup by file name:
RMAN>DELETE CONTROLFILECOPY '/tmp/control01.ctl';
Deleting arhive log files:
RMAN>DELETE NOPROMPT ARCHIVELOG UNTIL SEQUENCE = 300;
RMAN>DELETE NOPROMPT ARCHIVELOG ALL;
Note:NOPROMPT, During the backup deletion , it will not ask the  Yes / No  question  confirmation
Deleting a backup by tag name:
RMAN>DELETE BACKUP TAG='before_upgrade';
Deleting all backups:
RMAN>DELETE BACKUP;
Deleting a backup on the disk which backed up to tape:
RMAN>DELETE ARCHIVELOG ALL BACKED UP 3 TIMES TO sbt;
Deleting Image copy backup:
RMAN>DELETE COPY;
Deleting Obsolete Backuıp
RMAN marks backups as obsolete are not needed for the recovery process. (if you set redundancy or recovery window )
Deleting obsolete backups:
RMAN>delete obsolete;
Deleting obsolete backups older than 3 days:
RMAN> delete obsolete recovery window of 3 days;
Deleting expired backup
RMAN>delete expired backup;
Crosscheck Control
Crosscheck command checks the backup in the RMAN repository whether it exists physically on the disk or tape . If the file not exists physically on the disk or tape (can be deleted through the operating system)  it marks the backup as  “EXPIRED” in the RMAN Repository. Then, you can delete from RMAN Repository with “DELETE EXPIRED” command.
Checking Archive log files with crosscheck:
RMAN>crosscheck archivelog all;
Checking whole backup with crosscheck:
RMAN>crosscheck backup;
Checking image copy backup with crosscheck:
RMAN>crosscheck copy;
Checking tagged backup with crosscheck:
RMAN>crosscheck backuppiece tag = 'nightly_backup';
Showing Backup List
RMAN>list backupset of database;
RMAN>list backup;
Showing Backup Preview (In which objects are listed in):
RMAN> restore database preview;

RMAN> restore tablespace users preview;
Configuration Operations
See the configuration settings:
RMAN>show all;
Return to the default configuration: At the end of statement iswritten  “clear” expression.
RMAN>configure backup optimization clear;
To see a configuration that has been set: At the begining of statement is written  “set” expression
RMAN>show controlfile autobackup format;
To configure a setting: At the begining of statement is written  “configure” expression
RMAN>configure device type disk backup type to copy;

RMAN>configure retention policy to recovery window of 7 days;

RMAN>configure retention policy to redundancy 3;
Verification Operations (validate) 
Verification whole backup:
RMAN>backup validate;
Verification archive log files backup:
RMAN>backup validate database archivelog all;
Verification whole database restore:
RMAN>restore database validate;
Verification control file restore:
RMAN>restore controlfile validate;
Verification spfile restore:
RMAN>restore spfile validate;
Verification a tablespace restore:
RMAN>restore tablespace users validate;
Backup Compression Operations (After 11g)
Compression a backupset:
RMAN>backup as compressed backupset database;
Backup Encryption  Operations
Setting the Encryption :
RMAN> Set  encryption identified by passwprd;
Setting the Decryption:
RMAN> Set  decryption identified by passwprd;
Enable & Disable Block change tracking
BCT to be active only changed blocks to keep track of:
SQL>alter database enable block change tracking using file '/rman_bkups/change.log';
Disabling Block change tracking:
SQL>alter database disable block change tracking;
To debug and trace RMAN backup
$rman target=/ debug=all trace=rman.trc
Create the backup log file
$export NLS_DATE_FORMAT=’dd.mm.yyyy hh24:mi:ss’;

$rman target=/ log=rman.log
Recovery area size information
select name
,        floor(space_limit / 1024 / 1024) "Size MB"
,        ceil(space_used  / 1024 / 1024) "Used MB"
from   v$recovery_file_dest
order by name
/
RMAN Catalog DB operations
  1. Create a user on catalog db.
  CREATE USER rman IDENTIFIED BY rman
  TEMPORARY TABLESPACE temp
  DEFAULT TABLESPACE users
  QUOTA UNLIMITED ON users;
  1. Grant Recovery Catalog owner to that user
GRANT RECOVERY_CATALOG_OWNER TO rman;
  1. Connect to catalog db and create catalog
rman CATALOG rman/rman@catalog
RMAN> create catalog;
  1. Register to target database which will be backed up.
rman TARGET sys/oracle@test10g CATALOG rman/rman@catolog RMAN> register database;
Opening channels in RMAN and  distribute objects to channels
Example:
RUN
{
  ALLOCATE CHANNEL c1 DEVICE TYPE sbt PARMS="ENV=(BACKUP_SERVER=tape_server1)";
  ALLOCATE CHANNEL c2 DEVICE TYPE sbt PARMS="ENV=(BACKUP_SERVER=tape_server2)";
  ALLOCATE CHANNEL c3 DEVICE TYPE sbt PARMS="ENV=(BACKUP_SERVER=tape_server3)";
  BACKUP
   (DATAFILE 1,2,3
    CHANNEL c1)
   (DATAFILECOPY '/tmp/system01.dbf', '/tmp/tools01.dbf'
     CHANNEL c2)
   (ARCHIVELOG FROM SEQUENCE 100 UNTIL SEQUENCE 102 THREAD 1
     CHANNEL c3);
}
 
 
 
source:
https://taliphakanozturken.wordpress.com/tag/delete-obsolete-backup/ 

Wednesday, November 9, 2016

ebs: Gather Statistics



In R11i/R12 customers should be using the FND_STATS command.
Do not use the ANALYZE command or DBMS_STATS package directly,
as doing so may cause incomplete statistics to be generated.

Use the following command to gather schema statistics:
   exec fnd_stats.gather_schema_statistics('ONT') < For a specific schema >
   exec fnd_stats.gather_schema_statistics('ALL') < For all schemas >


Use the following command for gathering statistics on a temporary table
(ie: temporary tablename = TEMP_tmp in schema ABC):
   exec fnd_stats.gather_table_stats('ABC','TEMP_tmp');




Source:  
Best Practices for Gathering Statistics with Oracle E-Business Suite (Doc ID 1586374.1)


Concurrent Processing - How To Gather Statistics On Oracle Applications Release 11i and/or Release 12 - Concurrent Process,Temp Tables, Manually (Doc ID 419728.1)

Tuesday, November 1, 2016

compiling a form in ebs R12.1.3


1) Remove or Rename the existing .fmb file under "$AU_TOP/forms/US"

2)  Remove or Rename the existing .fmx file under corresponding $PROD_TOP/forms/US.

3) Copy the .fmb to "$AU_TOP/forms/US"

4) Compile the form
  
cd $AU_TOP/forms/US

frmcmp_batch userid=apps/apps module=$AU_TOP/forms/US/APxxxx.fmb output_file=$AP_TOP/forms/US/APxxxx.fmx module_type=form compile_all=special

5) Verify the file created under the $PROD_TOP/forms/US

Thursday, October 20, 2016

Security Best Practices for Release 12

Actually I was looking for ebs R12 - SEEDED APPLICATION USER ACCOUNTS, in the process I stumbled on this blog and which I think answered my queries.

https://blogs.oracle.com/stevenChan/entry/security_best_practices_for_re


Best Practices for Securing Oracle E-Business Suite Release 12 (Metalink Note 403537.1)

Tuesday, September 27, 2016

Creating and Dropping UNDO Tablespace


SHOW PARAMETER UNDO

CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE '&undofile/undotbs201.dbf' SIZE 50M AUTOEXTEND ON NEXT 5M;

ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS2 SCOPE=BOTH;

DROP TABLESPACE APPS_UNDOTS1 INCLUDING CONTENTS AND DATAFILES;








CREATE UNDO TABLESPACE APPS_UNDOTS1 DATAFILE '&undofile/undo01.dbf' SIZE 50M AUTOEXTEND ON NEXT 5M;

ALTER SYSTEM SET UNDO_TABLESPACE=APPS_UNDOTS1 SCOPE=BOTH;

DROP TABLESPACE UNDOTBS2 INCLUDING CONTENTS AND DATAFILES;

SHOW PARAMETER UNDO

Friday, July 29, 2016

Oracle11g Data Pump EXPDP Query Parameter


SOURCE:

expdp
system/*****
DIRECTORY=DATA_PUMP_DIR
DUMPFILE=emp_jan16.dmp
LOGFILE=emp_jan16.log
TABLES=scott.emp
QUERY=emp:\"WHERE conversion_date between \'01-JAN-2016\' and \'31-JAN-2016\'\"

OR

expdp parfile=emp_jan16.par

DIRECTORY=DATA_PUMP_DIR
DUMPFILE=emp_jan16.dmp
LOGFILE=emp_jan16.log
TABLES=scott.emp
QUERY=emp:"WHERE conversion_date between '01-JUN-2016' and '28-JUN-2016'"



DESTINATION:

impdp
system/*****
DIRECTORY=DATA_PUMP_DIR
DUMPFILE=emp_jan16.dmp
LOGFILE=emp_jan16_import.log
REMAP_SCHEMA=scott:scott
TABLE_EXISTS_ACTION=APPEND

Saturday, June 18, 2016

How to get process id attached with particular port in SunOS

Solution 1:

$ lsof -i :6200


Solution 2:

Usage:
#pcp -p PORT_NUMBER or 
#pcp -P PROCESS_ID
-----------------------------------------------------------------------------------------------
#!/usr/bin/ksh
#
# # PCP (PID con Port)
# v1.10 08/10/2010 Sam Nelson sam @ unix.ms
#
# If you have a Solaris 8, 9 or 10 box and you can't
# install lsof, try this. It maps PIDS to ports and vice versa.
# It also shows you which peers are connected on which port.
# Wildcards are accepted for -p and -P options.
#
# Many thanks Daniel Trinkle trinkle @ cs.purdue.edu
# for the help, much appreciated.

#
i=0
while getopts :p:P:a opt
do
case "${opt}" in
p ) port="${OPTARG}";i=3;;
P ) pid="${OPTARG}";i=3;;
a ) all=all;i=2;;
esac
done
if [ $OPTIND != $i ]
then
echo >&2 "usage: $0 [-p PORT] [-P PID] [-a] (Wildcards OK) "
exit 1
fi
shift `expr $OPTIND - 1`
if [ "$port" ]
then
# Enter the port number, get the PID
#
port=${OPTARG}
echo "PID\tProcess Name and Port"
echo "_________________________________________________________"
for proc in `ptree -a | awk '/ptree/ {next} {print $1};'`
do
result=`pfiles $proc 2> /dev/null| egrep "port: $port$"`
if [ ! -z "$result" ]
then
program=`ps -fo comm= -p $proc`
echo "$proc\t$program\t$port\n$result"
echo "_________________________________________________________"
fi
done
elif [ "$pid" ]
then
# Enter the PID, get the port
#
pid=$OPTARG
# Print out the information
echo "PID\tProcess Name and Port"
echo "_________________________________________________________"
for proc in `ptree -a | awk '/ptree/ {next} $1 ~ /^'"$pid"'$/ {print $1};'`
do
result=`pfiles $proc 2> /dev/null| egrep port:`
if [ ! -z "$result" ]
then
program=`ps -fo comm= -p $proc`
echo "$proc\t$program\n$result"
echo "_________________________________________________________"
fi
done
elif [ $all ]
then
# Show all PIDs, Ports and Peers
#
echo "PID\tProcess Name and Port"
echo "_________________________________________________________"
for proc in `ptree -a | sort -n | awk '/ptree/ {next} {print $1};'`
do
out=`pfiles $proc 2>/dev/null| egrep "port:"`
if [ ! -z "$out" ]
then
name=`ps -fo comm= -p $proc`
echo "$proc\t$name\n$out"
echo "_________________________________________________________"
fi
done
fi
exit 0


Tuesday, April 26, 2016

command: not found (declare: not found)


If you have any of these shebangs

Code:
#!/bin/sh
#!/bin/dash
#!/bin/bash
#!/bin/tcsh
#!/bin/zsh
#!/bin/awesome_shell
but you still call your code with
Code:
sh my_script.sh
the program effectively used will be "sh", and the shebang will be ignored.

You need to use the appropriate shell
Code:
sh   my_script.sh     # If the shebang is #!/bin/sh
dash my_script.sh     # If the shebang is #!/bin/dash
bash my_script.sh     # If the shebang is #!/bin/bash
tcsh my_script.sh     # If the shebang is #!/bin/tcsh
zsh  my_script.sh     # If the shebang is #!/bin/zsh
or better yet, just give the full or relative path of the script
Code:
./my_script.sh
then the shell used, is the same as the shebang.

Monday, April 18, 2016

Script to check and update Profile value in ebs R12


SELECT
substr(pro1.user_profile_option_name,1,35) Profile,
decode(pov.level_id,
10001,'Site',
10002,'Application',
10003,'Resp',
10004,'User') Option_Level,
decode(pov.level_id,
10001,'Site',
10002,appl.application_short_name,
10003,resp.responsibility_name,
10004,u.user_name) Level_Value,
nvl(pov.profile_option_value,'Is Null') Profile_option_Value
FROM
fnd_profile_option_values pov,
fnd_responsibility_tl resp,
fnd_application appl,
fnd_user u,
fnd_profile_options pro,
fnd_profile_options_tl pro1
WHERE
upper(pro1.user_profile_option_name) like upper('%&profile%')
and  pro.profile_option_name = pro1.profile_option_name
and  pro.profile_option_id = pov.profile_option_id
--and  resp.responsibility_name like '%General%Ledger%' /* comment this line  if you need to check profiles for all responsibilities */
and  pov.level_value = resp.responsibility_id (+)
and  pov.level_value = appl.application_id (+)
and  pov.level_value = u.user_id (+)
order by 1,2;


************************************


1. Run this sql query to check the value of the profile option at all levels:

set serveroutput on
set echo on
set timing on
set feedback on
set long 10000
set linesize 120
set pagesize 132
column SHORT_NAME format A30
column NAME format A40
column LEVEL_SET format a15
column CONTEXT format a30
column VALUE format A60 wrap

select p.profile_option_name SHORT_NAME,
n.user_profile_option_name NAME,
decode(v.level_id,
10001, 'Site',
10002, 'Application',
10003, 'Responsibility',
10004, 'User',
10005, 'Server',
10007, 'SERVRESP',
'UnDef') LEVEL_SET,
decode(to_char(v.level_id),
'10001', '',
'10002', app.application_short_name,
'10003', rsp.responsibility_key,
'10005', svr.node_name,
'10006', org.name,
'10004', usr.user_name,
'10007', 'Serv/resp',
'UnDef') "CONTEXT",
v.profile_option_value VALUE
from fnd_profile_options p,
fnd_profile_option_values v,
fnd_profile_options_tl n,
fnd_user usr,
fnd_application app,
fnd_responsibility rsp,
fnd_nodes svr,
hr_operating_units org
where p.profile_option_id = v.profile_option_id (+)
and p.profile_option_name = n.profile_option_name
and upper(p.profile_option_name) like '%FND_INIT_SQL%'
and usr.user_id (+) = v.level_value
and rsp.application_id (+) = v.level_value_application_id
and rsp.responsibility_id (+) = v.level_value
and app.application_id (+) = v.level_value
and svr.node_id (+) = v.level_value
and org.organization_id (+) = v.level_value
order by short_name, level_set;



2. One can also run this sql statement if one is sure to have updated the profile option at Site level only:

SELECT val.level_id, val.level_value, val.profile_option_id, val.profile_option_value
FROM fnd_profile_options opt, fnd_profile_option_values val
WHERE opt.profile_option_name = 'FND_INIT_SQL'
AND opt.profile_option_id = val.profile_option_id;



3. Update the profile option to a NULL value.
For instance if one just updated the same at site level one should run (as APPS user):

UPDATE fnd_profile_option_values
SET profile_option_value = NULL
WHERE profile_option_id = 3157 AND
level_id = 10001 AND
level_value = 0;

COMMIT;

Instead of that use this PROCEDURE below:

set serveroutput on;
DECLARE
stat boolean;
BEGIN
dbms_output.disable;
dbms_output.enable(100000);
stat := FND_PROFILE.SAVE('GUEST_USER_PWD', 'GUEST/ORACLE', 'SITE');
IF stat THEN
    dbms_output.put_line( 'Stat = TRUE - profile updated' );
ELSE
    dbms_output.put_line( 'Stat = FALSE - profile NOT updated' );
END IF;
commit;
END;






Monday, February 1, 2016

Clonning R12.1.3 Instance

Cloning Oracle Applications Release 12 with Rapid Clone (Doc ID 406982.1)

Troubleshooting RapidClone issues with Oracle Applications R12.0 & R12.1 (Doc ID 603104.1)