BLOG

Applying Critical Patch Updates (CPU).

A Critical Patch Update is a collection of patches for multiple security vulnerabilities. Critical Patch Update patches are usually cumulative but each advisory describes only the security fixes added since the previous Critical Patch Update advisory. Thus, prior Critical Patch Update advisories should be reviewed for information regarding earlier published security fixes.its released on January, April, July &October.

Steps to Apply CPU: 

Pre-Installation:

  1. Shutdown all the instance , and oracle services such as listener. 
  2. ensure $PATH variable.
  3. Download Patchand unzip it.
  4. Use the Opatch like this : opatch napply -skip_subset -skip_duplicate.
  5. Startup databas.

Post-Installation :

  1.  cd $ORACLE_HOME/rdbms/admin
  2. sqlplus / as sysdba
  3. SQL> @catbundle.sql cpu apply
     
     

     

Note : For rac database nothing diffrenece unless you have to shutdown services node by node and patching ( you can patch one node then the other one).

Useful MOS notes :
Introduction To Oracle Database catbundle.sql [ID 605795.1]

 Thank you 
Osama Mustafa

privileges Scripts

These script made by René Nyffenegger and shared here for knowledge

List user role and privileges :

select
lpad(' ', 2*level) || granted_role "User, his roles and privileges"
from
(
/* THE USERS */
select
null grantee,
username granted_role
from
dba_users
where
username like upper('%&enter_username%')
/* THE ROLES TO ROLES RELATIONS */
union
select
grantee,
granted_role
from
dba_role_privs
/* THE ROLES TO PRIVILEGE RELATIONS */
union
select
grantee,
privilege
from
dba_sys_privs
)
start with grantee is null
connect by grantee = prior granted_role;

Check System privileges:

select
lpad(' ', 2*level) || c "Privilege, Roles and Users"
from
(
/* THE PRIVILEGES */
select
null p,
name c
from
system_privilege_map
where
name like upper('%&enter_privliege%')
/* THE ROLES TO ROLES RELATIONS */
union
select
granted_role p,
grantee c
from
dba_role_privs
/* THE ROLES TO PRIVILEGE RELATIONS */
union
select
privilege p,
grantee c
from
dba_sys_privs
)
start with p is null
connect by p = prior c;

Object Privileges :

select
case when level = 1 then own || '.' || obj || ' (' || typ || ')' else
lpad (' ', 2*(level-1)) || obj || nvl2 (typ, ' (' || typ || ')', null)
end
from
(
/* THE OBJECTS */
select
null p1,
null p2,
object_name obj,
owner own,
object_type typ
from
dba_objects
where
owner not in
('SYS', 'SYSTEM', 'WMSYS', 'SYSMAN','MDSYS','ORDSYS','XDB', 'WKSYS', 'EXFSYS',
'OLAPSYS', 'DBSNMP', 'DMSYS','CTXSYS','WK_TEST', 'ORDPLUGINS', 'OUTLN')
and object_type not in ('SYNONYM', 'INDEX')
/* THE OBJECT TO PRIVILEGE RELATIONS */
union
select
table_name p1,
owner p2,
grantee,
grantee,
privilege
from
dba_tab_privs
/* THE ROLES TO ROLES/USERS RELATIONS */
union
select
granted_role p1,
granted_role p2,
grantee,
grantee,
null
from
dba_role_privs
)
start with p1 is null and p2 is null
connect by p1 = prior obj and p2 = prior own;
 
 Thank you 
Osama Mustafa 

Zombie process

Zombie process is an inactive computer process,according to wikipedia article, “…On Unix operating systems, a zombie process or defunct process is a process that has completed execution but still has an entry in the process table, allowing the process that started it to read its exit status. In the term’s colorful metaphor, the child process has died but has not yet been reaped…”

Find zombie by :

# ps aux | awk '{ print $8 " " $2 }' | grep -w Z

 after that use kill -9  PID

Thank you
osama mustafa

Useful Linux Commands For DBA

Show Routing Table :
 
netstat -r

Check ORA errors in the Logs:

grep ^ORA- *log |cut -f2 -d"-"|cut -f1 -d:|awk '{print "ORA-" $1}'|sort -u
Inzip CPIO Files :
 
cpio -idmv < 

 Sort Files By Size :

ls -l |sort -k 5

Find Command archive and move to another Folder :

find ./ -name "*.arch" -mtime +1 -exec mv {} /u01/;

Find Command archive and Remove it:

find ./ -name "*.ARC" -mtime +1 -exec rm {} \;

Find Command with Zip :

find ./ -name "*.ARC" -mtime +1 -exec gzip {} \;

 Find Command With List :


 find ./ -name “*.ARC” -mtime +1 -ls 

Thank you
Osama Mustafa

Check Default Tablespace For User and Change it

Check the Below Demo how you can check tablespace for specific User and how can  you change it

Create New User Without Determine which Tablespace:

SQL > Create User test Identified by test ;

Check TableSpace for Test User:

 SQL> select default_tablespace from dba_users where username=’TEST’;

DEFAULT_TABLESPACE
——————————
USERS

Change TableSpace For Test User :

Solution One : Change Default TableSpace For Database By :

 SQL> alter database default tablespace ;

Solution two : define Tablespace When Creating User

 SQL > create user Test identified by Test default tablespace USER

Thank you
Osama Mustafa

Stage Oracle EBS R12

in this article i will clarfiy how to download Oracle EBS R12 and learn how to stage this product.

Let’s start with how to download Oracle EBS R12 :

Step 1 : Go to https://edelivery.oracle.com
Step 2 : Enter Your UserName and Password to get acces to this site, and you also register for free.
Step 3 : in this step you have to select which product you need in our case “E-Business Suite” and platform compatiable with EBS , Windows, Linux , AiX and Solaris.
Step 4 : we need to download all the zip files belonging to the following parts:

  1. Rapid Install Start Here
  2. Rapid Install RDBMS
  3. Rapid Install Databases
  4. Rapid Install Tools
  5. Rapid Install APPL_TOP

Staging Oracle EBS is Easy & Simple

  1. By Creating Stage Directory , and make sure you have enough space on that direcoty , copy download file to stage folder, and exetation for downloadable files “zip”.
  2. Unzip the files and in this case you will have Stage area for EBS.

Documet Dowload Here.
Thank you
Osama mustafa
 
 

ORA-01151: use media recovery to recover block, restore backup if needed

SQL> startup
ORACLE instance started.

Total System Global Area 599785472 bytes
Fixed Size 1288820 bytes
Variable Size 192939404 bytes
Database Buffers 402653184 bytes
Redo Buffers 2904064 bytes
Database mounted.
ORA-01172: recovery of thread 1 stuck at block 4545 of file 1
ORA-01151: use media recovery to recover block, restore backup if needed
SQL>

Cause :
  There is block corruption in tablespace.

Solution :

 SQL> shutdown immediate;
SQL> startup mount;
SQL> recover database;
SQL> alter database open;

 

Find Resote Point Rman

Some Times you need to Restore your Database To Earlier time , and before doing that you have to check weather database have valid to do that or not

Simple Query :

SQL>  select resetlogs_change#,to_char(resetlogs_time,
 'DD-MON-YYYY HH24:MI:SS') Last_resetlog_time from v$database_incarnation;
 
RESETLOGS_CHANGE# LAST_RESETLOG_TIME
----------------- --------------------
1 11-SEP-2008 22:57:51
88033 23-MAY-2011 10:12:42
 
Or Sometimes you could Use v$restore_point , Such as
 
SELECT scn, time, database_incarnation#, guarantee_flashback_database from
v$restore_point;
 
 
Thank you 
Osama Mustafa 

ORA-20222: Workload was not captured in the current database



Happy New Year For All , And Wish you All Best 

ORA-20222 “Given capture_id \”%s\” is invalid or the corresponding capture failed”

ORA-20222: Workload was not captured in the current database. Cannot export!
ORA-06512: at “SYS.DBMS_WORKLOAD_CAPTURE”, line 1588
ORA-06512: at line 2

 Regarding to Https://support.oracle.com Note :

DATABASE CAPTURE AND REPLAY COMMON ERRORS AND REASONS [ID 463263.1]
This Error 

is a generic error message that can occur due other underlying error during Capture.
Check the error accompanying with ORA-20222.

Ensure correct directory name is used including check the case-sensitivity of the directory name.
The directory name is case sensitive. Ensure READ and WRITE privilege on the DIRECTORY object to the which is the capture is written.

Thank you 
Osama mustafa

Happy New Year Again . 

Oracle Physical Standby Modes


Regarding to Oracle Documents That Describe Standby Modes, There’s Are Three Types you can follow the documentation.

Check Standby Modes :
SQL> select PROTECTION_MODE from v$database ;

PROTECTION_MODE
——————–
MAXIMUM PERFORMANCE
Primary Database: prim
Standby Database: stdby 

Note: the below Commands Should Apply on Primary Database on Mount Mode Then Open database.

Convert Between Modes (Switch Modes)

MAXIMIZE AVAILABILITY 

SQL> alter system set log_archive_dest_2=’SERVICE=stdby AFFIRM SYNC VALID_FOR=(online_logfiles,primary_role) db_unique_name=stdby’;
System altered.

 SQL> alter database set standby Database to MAXIMIZE AVAILABILITY ;
Database altered.
MAXIMIZE PERFORMANCE

 SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_2=’SERVICE=stby NOAFFIRM ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=stdby’;
 System Altered  
SQL>ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE;
Database Altered
MAXIMIZE Proctection

SQL> alter system set log_archive_dest_2=’SERVICE=stdby AFFIRM SYNC VALID_FOR=(online_logfiles,primary_role) db_unique_name=stdby’;
System altered.
shutdown immediate ; 
Startup mount ;
Alter database set standby database to maximize Protection ;
Alter database open ; 

Some Useful Sites:
1-Convert Modes Using dgmgrl

Thank you

Osama Mustafa