<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7461233846321640962</id><updated>2012-01-25T11:44:48.204Z</updated><category term='indexes'/><category term='Red Hat'/><category term='shutdown immediate'/><category term='datablock'/><category term='alert.log'/><category term='block'/><category term='installation'/><category term='SQL'/><category term='bugs'/><category term='redo'/><category term='development'/><category term='PL/SQL'/><category term='buy'/><category term='order by'/><category term='SPM'/><category term='sqlplus'/><category term='10g'/><category term='cost'/><category term='11R2'/><category term='RAC'/><category term='acquire'/><category term='copy'/><category term='Maximum Protection'/><category term='baselines'/><category term='11g'/><category term='sun'/><category term='data file'/><category term='performance'/><category term='alter database'/><category term='character set'/><category term='AWR'/><category term='SASH'/><category term='backup'/><category term='centos'/><category term='rebuild'/><category term='schema move'/><category term='mysql'/><category term='ClusterWare'/><category term='vmware'/><category term='Oracle performance 10g'/><category term='links'/><category term='ASM'/><category term='oracle'/><category term='editor'/><category term='patchset'/><category term='ha'/><category term='andLinux'/><category term='iscsi'/><category term='OUI'/><category term='errors'/><category term='book review'/><category term='bitmap conversion from rowids performance'/><category term='partition'/><category term='network'/><category term='sbt_tape'/><category term='statistics'/><category term='ORA-08104'/><category term='error'/><category term='AIX'/><category term='Excel'/><category term='space'/><category term='BBED'/><category term='OEM'/><category term='Grid Control'/><category term='data corruption'/><category term='db console'/><category term='Oracle 10g'/><category term='BAAG'/><category term='trace'/><category term='DataGuard'/><category term='pivot'/><category term='ASH'/><category term='Discoverer BI API'/><category term='application server'/><category term='Grid Infrastructure'/><category term='CPU'/><category term='mutex'/><category term='11gR2'/><category term='RAC One Node'/><category term='Data Guard'/><category term='tuning'/><category term='ACFS'/><category term='FORMS'/><category term='Oracle RAC'/><category term='catalog'/><category term='ZFS'/><category term='database'/><category term='Oracle Vault'/><category term='recovery'/><category term='standby'/><category term='primary key'/><category term='CBO'/><category term='data protect'/><category term='iAS'/><category term='migration'/><category term='RMAN'/><category term='active database'/><category term='SQL*Plus'/><category term='cursor: pin S'/><category term='HCC'/><category term='online rebuild'/><category term='feature'/><category term='Linux'/><category term='tablespaces'/><category term='index'/><category term='nnfyboot'/><category term='Oracle VM'/><category term='Oracle 11gR2'/><title type='text'>Oracle Performance and Backup Blog</title><subtitle type='html'>Performance and Backup in Oracle databases. Looking for bottle-neck and using Oracle wait interface. News from Oracle world. Trick and tips for Oracle database.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>93</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-7467030328397509757</id><published>2012-01-19T18:17:00.006Z</published><updated>2012-01-20T13:31:41.181Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='DataGuard'/><title type='text'>DataGuard Broker configuration backup</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Some time ago I have seen question on oracle-l list about DataGuard Broker configuration backup. There was no clear answer and there were some suggestions to use "dgmgrl" and perl script to display and parse output. This topic was very interesting for me and I decided to dig deeper and find out how Oracle is keeping these information.&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;First step was to figure out how DataGuard Broker is gathering that data. You can enable debug option for dgmgrl tool and check how it works&lt;/div&gt;&lt;pre class="brush:bash"&gt;piorovm$ dgmgrl -xml -debug&lt;br /&gt;DGMGRL for Linux: Version 11.2.0.2.0 - 64bit Production&lt;br /&gt;&lt;br /&gt;Copyright (c) 2000, 2009, Oracle. All rights reserved.&lt;br /&gt;&lt;br /&gt;Welcome to DGMGRL, type "help" for information.&lt;br /&gt;DGMGRL&amp;gt; connect /&lt;br /&gt;[W000 01/19 11:44:50.82] Connecting to database using .&lt;br /&gt;[W000 01/19 11:44:50.84] Checking broker version [BEGIN :version := dbms_drs.dg_broker_info('VERSION'); END;].&lt;br /&gt;[W000 01/19 11:44:50.84] Broker version is '11.2.0.2.0'&lt;br /&gt;Connected.&lt;br /&gt;DGMGRL&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;As you can see there is a dbms_drs package which is used for that.I have checked what I could find in package definition file ( &lt;i&gt;dbmsdrs.sql&lt;/i&gt; ) and it was it. There are two examples for blocking and non-blocking queries. Last thing to figure out was to find a XML based command I can use with dbms_drs package to get configuration. &lt;/div&gt;&lt;pre class="brush:bash"&gt;DGMGRL&amp;gt; show configuration verbose;&lt;br /&gt;&amp;lt;do_monitor version="11.2"&amp;gt;&amp;lt;verify level="minor" object_id="4096"&amp;gt; &amp;lt;/verify&amp;gt;&lt;br /&gt;&amp;lt;/do_monitor&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;And then step after step I crated script showed below - &lt;a href="#displayconfig.sql"&gt;displayconfig.sql&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In 11.2 Oracle add new internal table X$DRC and it can be used to quick check of DataGuard Configuration. Object_id column can be decoded using following rules:&lt;br /&gt;- bit 12 - object_id = 4096 - configuration&lt;br /&gt;- bit 16 - object_id = 65536 - database (probably first database in site)&lt;br /&gt;- bit 24 - object_id = 16777216 - first site&lt;br /&gt;- bit 25 - object_id = 33554432 - second site&lt;br /&gt;&lt;br /&gt;First database in first site will have following object_id = 16777216 + 65536 = 16842752. &lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; set pagesize 1000&lt;br /&gt;SQL&amp;gt; column value format a100&lt;br /&gt;SQL&amp;gt; set linesize 200&lt;br /&gt;SQL&amp;gt; select  attribute, object_id, utl_raw.cast_to_varchar2(hextoraw(value_raw)) value FROM x$drc;&lt;br /&gt;&lt;br /&gt;ATTRIBUTE                       OBJECT_ID VALUE&lt;br /&gt;------------------------------ ---------- ----------------------&lt;br /&gt;DRC                                  4096 fsf&lt;br /&gt;intended_state                       4096 ONLINE&lt;br /&gt;protection_mode                      4096 MaxAvailability&lt;br /&gt;enabled                              4096 YES&lt;br /&gt;fast_start_failover                  4096 ENABLED&lt;br /&gt;observer_info                        4096 client.local&lt;br /&gt;fsfo_target                          4096 testdg_b&lt;br /&gt;SITE                             16777216 testdg_a&lt;br /&gt;DATABASE                         16842752 testdg_a&lt;br /&gt;intended_state                   16842752 READ-WRITE-XPTON&lt;br /&gt;connect_string                   16842752 testdg_a.local&lt;br /&gt;RAC                              16842752 NO&lt;br /&gt;enabled                          16842752 YES&lt;br /&gt;role                             16842752 PRIMARY&lt;br /&gt;INSTANCE                         16842753 testdg&lt;br /&gt;SITE                             33554432 testdg_b&lt;br /&gt;DATABASE                         33619968 testdg_b&lt;br /&gt;intended_state                   33619968 PHYSICAL-APPLY-ON&lt;br /&gt;connect_string                   33619968 testdg_b.local&lt;br /&gt;RAC                              33619968 NO&lt;br /&gt;enabled                          33619968 YES&lt;br /&gt;role                             33619968 PHYSICAL&lt;br /&gt;INSTANCE                         33619969 testdg&lt;br /&gt;&lt;/pre&gt;&lt;b&gt;Disclaimer:&lt;/b&gt;&lt;br /&gt;I have tested that script with 11.1 and 11.2 on Linux with simple primary / standby configuration and with RAC primary. Please check this script first on your test environment before you will run it on production configuration.&lt;br /&gt;&lt;br /&gt;regards,&lt;br /&gt;Marcin&lt;/div&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;a  name="displayconfig.sql"&gt;displayconfig.sql&lt;/a&gt;&lt;/span&gt;:&lt;br /&gt;&lt;pre class="brush:sql"&gt;set serveroutput on&lt;br /&gt;set linesize 200&lt;br /&gt;declare&lt;br /&gt;rid integer;&lt;br /&gt;indoc varchar2(4000);&lt;br /&gt;outdoc varchar2(4000);&lt;br /&gt;p integer;&lt;br /&gt;z XMLType;&lt;br /&gt;y clob;&lt;br /&gt;v_xml xmltype;&lt;br /&gt;tout varchar2(4000);&lt;br /&gt;begin&lt;br /&gt;    indoc:='&amp;ltDO_CONFIGURE_DRC&amp;gt&amp;ltENUM_DRC/&amp;gt&amp;lt/DO_CONFIGURE_DRC&amp;gt';&lt;br /&gt;    y := null;&lt;br /&gt;    rid :=dbms_drs.do_control(indoc);&lt;br /&gt;&lt;br /&gt;    outdoc :=NULL;&lt;br /&gt;    p:=1;&lt;br /&gt;    while (outdoc is null)&lt;br /&gt;    loop&lt;br /&gt;       outdoc:=dbms_drs.get_response(rid,p);&lt;br /&gt;       y := y || to_clob(outdoc);&lt;br /&gt;    end loop;&lt;br /&gt;&lt;br /&gt;    begin&lt;br /&gt;    while (outdoc is not NULL)&lt;br /&gt;    loop&lt;br /&gt;       p:=p+1;&lt;br /&gt;   &lt;br /&gt;       outdoc:=dbms_drs.get_response(rid,p);&lt;br /&gt;       y := y || to_clob(outdoc);&lt;br /&gt;       &lt;br /&gt;    end loop;&lt;br /&gt;    exception&lt;br /&gt;    when no_data_found then&lt;br /&gt;        NULL;&lt;br /&gt;    end;&lt;br /&gt;    z := XMLType(y);&lt;br /&gt;&lt;br /&gt;dbms_drs.delete_request(rid);    &lt;br /&gt;    &lt;br /&gt;for l in (select name , role, id, connectdb from XMLTABLE('/DRC/SITE/DATABASE' passing z COLUMNS name PATH '/DATABASE/@name', role PATH '/DATABASE/@role', id PATH '/DATABASE/@id', connectdb PATH '/DATABASE/@connect') )&lt;br /&gt; loop&lt;br /&gt;    if (l.role = 'PRIMARY') then&lt;br /&gt;        outdoc := 'create configuration DGCONF as primary database is ''' || l.name || ''' connect identifier is ' || l.connectdb || ';';&lt;br /&gt;        dbms_output.put_line(outdoc);&lt;br /&gt;    else&lt;br /&gt;        outdoc := 'add database ''' || l.name || ''' as connect identifier is ' || l.connectdb || ';';&lt;br /&gt;        dbms_output.put_line(outdoc);&lt;br /&gt;    end if;&lt;br /&gt;    &lt;br /&gt;    indoc:='&amp;ltDO_CONFIGURE_SITE version="11.2"&amp;gt&amp;ltGET_RESOURCE res_id="' || l.id || '"/&amp;gt&amp;lt/DO_CONFIGURE_SITE&amp;gt';&lt;br /&gt;    y := null;&lt;br /&gt;    rid :=dbms_drs.do_control(indoc);&lt;br /&gt;&lt;br /&gt;    outdoc :=NULL;&lt;br /&gt;    p:=1;&lt;br /&gt;    while (outdoc is null)&lt;br /&gt;    loop&lt;br /&gt;       outdoc:=dbms_drs.get_response(rid,p);&lt;br /&gt;       y := y || to_clob(outdoc);&lt;br /&gt;    end loop;&lt;br /&gt;&lt;br /&gt;    begin&lt;br /&gt;    while (outdoc is not NULL)&lt;br /&gt;    loop&lt;br /&gt;       p:=p+1;&lt;br /&gt;   &lt;br /&gt;       outdoc:=dbms_drs.get_response(rid,p);&lt;br /&gt;       y := y || to_clob(outdoc);&lt;br /&gt;       &lt;br /&gt;    end loop;&lt;br /&gt;    exception&lt;br /&gt;    when no_data_found then&lt;br /&gt;        NULL;&lt;br /&gt;    end;&lt;br /&gt;    z := XMLType(y);&lt;br /&gt;   &lt;br /&gt;    select XMLQuery('/RESOURCE/PROPERTY_LIST/VALUE' passing z returning content) into v_xml from dual;&lt;br /&gt;   &lt;br /&gt;   &lt;br /&gt;    for q in (select name , value , property_type as r from&lt;br /&gt;           XMLTABLE('/VALUE' passing v_xml COLUMNS name PATH '/VALUE/@name', value PATH '/VALUE/@value', property_type PATH '/VALUE/@property_type' )&lt;br /&gt;           where value is not null and name in&lt;br /&gt;           ('AlternateLocation','ApplyInstanceTimeout','ApplyParallel','ArchiveLagTarget','Binding','BystandersFollowRoleChange','CommunicationTimeout',&lt;br /&gt;           'DbFileNameConvert','DelayMins','DGConnectIdentifier','FastStartFailoverAutoReinstate','FastStartFailoverLagLimit','FastStartFailoverPmyShutdown',&lt;br /&gt;           'FastStartFailoverTarget','FastStartFailoverThreshold','LogArchiveFormat','LogArchiveMaxProcesses','LogArchiveMinSucceedDest','LogArchiveTrace',&lt;br /&gt;           'LogFileNameConvert','LogShipping','LogXptMode','LsbyASkipCfgPr','LsbyASkipErrorCfgPr','LsbyASkipTxnCfgPr','LsbyDSkipCfgPr','LsbyDSkipErrorCfgPr','LsbyDSkipTxnCfgPr',&lt;br /&gt;           'LsbyMaxEventsRecorded','LsbyMaxSga','LsbyMaxServers','LsbyPreserveCommitOrder','LsbyRecordAppliedDdl','LsbyRecordSkipDdl','LsbyRecordSkipErrors','MaxConnections',&lt;br /&gt;           'MaxFailure','NetTimeout','ObserverConnectIdentifier','PreferredApplyInstance','RedoCompression','ReopenSecs','StandbyArchiveLocation','StandbyFileManagement'&lt;br /&gt;           ))&lt;br /&gt;           loop&lt;br /&gt;       dbms_output.put_line('edit database ' || l.name || ' set property ''' || q.name || ''' = ''' || q.value || ''';' );&lt;br /&gt;    end loop;&lt;br /&gt;    dbms_drs.delete_request(rid);&lt;br /&gt;   &lt;br /&gt;end loop;    &lt;br /&gt;end;&lt;br /&gt;/&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-7467030328397509757?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/7467030328397509757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=7467030328397509757' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7467030328397509757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7467030328397509757'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2012/01/dataguard-broker-configuration-backup.html' title='DataGuard Broker configuration backup'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-7895977928742324958</id><published>2011-12-02T09:44:00.000Z</published><updated>2011-12-02T09:44:02.560Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='book review'/><title type='text'>Oracle Information Integration, Migration, and Consolidation - book review</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Recently I read interesting book about data migration and consolidation published by PACKT Publishing titled “&lt;a href="http://www.packtpub.com/oracle-information-integration-migration-and-consolidation/book"&gt;Oracle Information Integration, Migration, and Consolidation&lt;/a&gt;”.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Whole book is split into 9 chapters covering different areas of this complicated topic. In my opinion this book is intended for architects or anyone who want to have a general overview of data migration and integration based on Oracle tools. You can find some details there as well but this book is covering too many tools to do a deep dive into each of them.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Chapter 1: Getting Started with Information Integration&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;This is a overview of data and process integration challenges and general approaches. Some high level use cases are presented as well.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Chapter 2: Oracle Tools and Products&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;This chapter is describing all major tools created or acquired by Oracle Corp. and used for&amp;nbsp; consolidation, migration or data exchange. It is a general overview and can be used as easier way to go thought all application owned by Oracle.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Chapter 3: Application and Data Integration Case Study&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Proof of Value (POV) for insurance company is a case study described in this chapter. This project include process and data integration using Oracle BPEL between mainframe VSAM, flat files, COBOL application, MQ Series and Oracle database. Author is presenting his findings and solutions to migrate one of business process in organization. Using step by step approach and Oracle SOA Suite project achieve all goals and bring some more benefits for organization.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Chapter 4: Oracle Database Migrations&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;There are many way to migrate data from one database to other and between versions of this same database. A few ways are mentioned here but author focused on migration from non-oracle database to Oracle database using SQL Developer. All important steps are presented and everyone can try to reproduce it on his own test environment.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Chapter 5: Database Migration Challenges and Solutions&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Database migration is a tough projects and list of well know problems described in this chapter is a good point to start thinking about it. Most of RDBMS systems have their own ways to tread null/not-null columns, objects names have a different rules and procedural language running inside database is not a standard neither. Addressing most of these issues before starting a project is a good way to avoid unexpected results at the end.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Chapter 6: Data Consolidation and Management&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Trusted data sources are one of base requirements in every enterprise application or reporting tools. Oracle solutions like Oracle Master Data Management Suit is presented here as an answer to these needs. Beside that some other solutions like data centric consolidation solution using in-memory TimesTen database or application centric data consolidation using Oracle Coherence are presented as well.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Chapter 7: Database-centric Data Integration&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Database centric data integration is based on continuous data exchange process in heterogeneous database environment. Two very powerful products are presented here: Oracle GoldenGate and Oracle Data Integrator. In addition to that Oracle Gateways (Heteregeneous Services Agent) is presented as well. This chapter together with chapter 4 are most technical and detailed ones.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Chapter 8: Application and Process Integration&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;This chapter is presenting history of Oracle application and process integration solutions over the years. Starting with basic export / import tables for Oracle Apps and ending with Oracle Fusion Middleware and Oracle SOA Suite.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Chapter 9: Information Lifecycle Management for Transactional Applications&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Last chapter is covering problem of data and application retention. How and how long data have to be kept in database, how to managed them and how to deal with application retirement process.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;I can recommend that book for every one who want to have a general overview of Oracle approach to integration problems. As I said before one book can’t cover all technical problems/issues but it is good starting point to enter integration world.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;regards,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Marcin&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-7895977928742324958?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/7895977928742324958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=7895977928742324958' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7895977928742324958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7895977928742324958'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/12/oracle-information-integration.html' title='Oracle Information Integration, Migration, and Consolidation - book review'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-4884837740209128974</id><published>2011-11-27T14:25:00.000Z</published><updated>2011-11-27T14:25:27.035Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SASH'/><title type='text'>New release of S-ASH v.2.3</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;New version of Oracle Simulate ASH is ready to download and test. You can find it here - &lt;a href="https://sourceforge.net/projects/orasash/files/v2.3/"&gt;sash-v2.3&lt;/a&gt;&lt;br /&gt;New features:&lt;br /&gt;- new easier installation process&lt;br /&gt;- new metrics history (IO and system) &lt;br /&gt;- improved support for RAC / multi database in one repository&lt;br /&gt;- Oracle scheduler is used to manage jobs&lt;br /&gt;&lt;br /&gt;This version of OraSASH has been tested with Oracle 10g and 11g R1 and R2 as a target database and Oracle 11gR2 Express Edition as repository.&lt;br /&gt;&lt;br /&gt;regards,&lt;br /&gt;Marcin&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-4884837740209128974?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/4884837740209128974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=4884837740209128974' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/4884837740209128974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/4884837740209128974'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/11/new-release-of-s-ash-v23.html' title='New release of S-ASH v.2.3'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-809168374646214651</id><published>2011-11-07T12:11:00.000Z</published><updated>2011-11-07T12:11:42.710Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='11gR2'/><category scheme='http://www.blogger.com/atom/ns#' term='HCC'/><title type='text'>dNFS configuration and Hybrid Column Compression</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;After my &lt;a href="http://oracleprof.blogspot.com/2011/10/quick-note-about-hybrid-columnar.html%20"&gt;post&lt;/a&gt; about Hybrid Column Compression Kevin Closson suggested that there is a chance that Oracle doesn’t check what kind of storage is sitting behind NFS volumes. I followed after that idea and I had checked if I was able to create table with HCC on Open Filer or build-in NFS server. First attempt failed but at that point I decided to figure out how Oracle is checking storage and if there is any chance to used different one for test and education.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;At first sight difference appear in two views - v$dnsf_server and v$dnfs_channels&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; set linesize 200&lt;br /&gt;SQL&amp;gt; col DIRNAME format a30&lt;br /&gt;SQL&amp;gt; col SVRNAME format a10&lt;br /&gt;SQL&amp;gt; select * from v$dnfs_servers;&lt;br /&gt;&lt;br /&gt;       ID SVRNAME    DIRNAME                           MNTPORT    NFSPORT      WTMAX      RTMAX&lt;br /&gt;---------- ---------- ------------------------------ ---------- ---------- ---------- ----------&lt;br /&gt;        1 piorovm    /nfs                                  653       2049          0          0&lt;br /&gt;        2 sunzfs     /export/sunnfs                      53214       2049    1048576    1048576&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;In this example server piorovm is my local NFS storage and sunzfs is a simulator of SunStorage 7000. V$DNFS_SERVER view is showing differences in mount port and lack of information about wtmax and rtmax for local NFS.&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; col PATH format a25&lt;br /&gt;SQL&amp;gt; col LOCAL format a25&lt;br /&gt;SQL&amp;gt; col SVRNAME format a10&lt;br /&gt;SQL&amp;gt; select * from v$dnfs_channels;&lt;br /&gt;&lt;br /&gt;     PNUM SVRNAME    PATH                      LOCAL                          CH_ID     SVR_ID      SENDS      RECVS      PINGS&lt;br /&gt;---------- ---------- ------------------------- ------------------------- ---------- ---------- ---------- ---------- ----------&lt;br /&gt;       10 sunzfs     192.168.56.101                                               0          2          0          0          0&lt;br /&gt;       10 sunzfs     192.168.56.101                                               1          2          0          0          0&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;There is no Information about local NFS channels at all in V$DNFS_CHANNELS. Similar situation happen for NFS shared from Open Filer server. In alert.log I could find an information about Sun NFS but there wasn't similar entries for local NFS.&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;Direct NFS: channel id [0] path [192.168.56.101] to filer [sunzfs] via local [] is UP&lt;br /&gt;Direct NFS: channel id [1] path [192.168.56.101] to filer [sunzfs] via local [] is UP&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;I wanted to know why it happen so I was looking for information how to enable trace in dNFS subsystem.There are 3 events in oraus.msg related to autonfs and when I did research on Metalink I end up with following list of events enabling tracing for dNFS.&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;event "19392 trace name context forever, level 8"  # kgnfs&lt;br /&gt;event "19394 trace name context forever, level 28" # skgnfs&lt;br /&gt;event "19396 trace name context forever, level 2"  # kgodm&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;When I compared trace files from SUN ZFS and local NFS I realize that Oracle is not using dNFS for my local NFS even if local NFS exist in v$dnfs_servers and I did all configuration steps from Metalink note 762374.1.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;In next step I captured all NFS traffic between Oracle and NFS server and started to analyze all NFS parameters and commands. After that I did internet and found following posts &lt;a href="http://blogs.oracle.com/XPSONHA/entry/using_dnfs_for_test_purposes"&gt;"Using dNFS for test purposes&lt;/a&gt;" and "&lt;a href="http://mvirt.com/2011/09/02/oracle-direct-nfs-quick-tips/"&gt;Oracle direct nfs quick tips&lt;/a&gt;". I realize that there is a missing parameter in my local NFS configuration. This "insecure" parameter allow NFS connections from unprivileged ( above 1024 ) ports and has to be set to allow Oracle dNFS to connect to server. When I added “insecure” option to my local NFS configuration it appear in v$dnfs_channels and I was able to create table compressed with Hybrid Column Compression on my local NFS.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Here is my final configuration&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;/etc/exports&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;pre class="brush:bash"&gt;/nfs2 *(rw,anonuid=96,anongid=96,insecure,root_squash,wdelay,sync)&lt;br /&gt;&lt;/pre&gt;&lt;i&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;$ORACLE_HOME/dbs/oranfstab&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;pre class="brush:bash"&gt;server:local&lt;br /&gt;path:192.168.1.41&lt;br /&gt;export:/nfs2 mount:/local&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;/nfs2 is mounted in OS using following command&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:bash"&gt;# mount -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,nfsvers=3,timeo=600 node1:/nfs2 /local/&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Tablespace and table with Hybrid Column Compression&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;SQL&amp;gt; create tablespace local_nfs datafile '/local/local_nfs01.dbf' size 10M;&lt;br /&gt;&lt;br /&gt;Tablespace created.&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Current status of dNFS views&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; set linesize 200&lt;br /&gt;SQL&amp;gt; col DIRNAME format a30&lt;br /&gt;SQL&amp;gt; col SVRNAME format a10&lt;br /&gt;SQL&amp;gt; select * from v$dnfs_servers;&lt;br /&gt;&lt;br /&gt;        ID SVRNAME    DIRNAME                           MNTPORT    NFSPORT      WTMAX      RTMAX&lt;br /&gt;---------- ---------- ------------------------------ ---------- ---------- ---------- ----------&lt;br /&gt;         1 local      /nfs2                                 792       2049     524288     524288&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; set linesize 200&lt;br /&gt;SQL&amp;gt; col PATH format a25&lt;br /&gt;SQL&amp;gt; col LOCAL format a25&lt;br /&gt;SQL&amp;gt; col SVRNAME format a10&lt;br /&gt;SQL&amp;gt; select * from v$dnfs_channels;&lt;br /&gt;&lt;br /&gt;      PNUM SVRNAME    PATH                      LOCAL                          CH_ID     SVR_ID      SENDS      RECVS      PINGS&lt;br /&gt;---------- ---------- ------------------------- ------------------------- ---------- ---------- ---------- ---------- ----------&lt;br /&gt;        17 local      192.168.1.41                                                 0          1          0          0          0&lt;br /&gt;        17 local      192.168.1.41                                                 1          1          0          0          0&lt;br /&gt;        55 local      192.168.1.41                                                 0          1          0          0          0&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Alert log's information about local NFS server are similar to previous Sun ZFS server.&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;Direct NFS: channel id [0] path [192.168.1.41] to filer [local] via local [] is UP&lt;br /&gt;Direct NFS: channel id [1] path [192.168.1.41] to filer [local] via local [] is UP&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;And at the end I was able to create table with Hybrid Column Compression using local NFS server.&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; create table SCOTT.testsunnfs tablespace local_nfs  compress for archive high as select * from dba_objects where rownum &amp;lt; 100;&lt;br /&gt;&lt;br /&gt;Table created.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Disclaimer&lt;/span&gt; &lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Please be aware that this article is for education only and using of Hybrid Column Compression according to Oracle license is limited to Exadata and two additional storage types : ZFS storage, and Pillar Axiom 600 - see details in &lt;a href="http://www.oracle.com/pls/db112/to_toc?pathname=license.112/e10594/toc.htm"&gt;Oracle license&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Marcin &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-809168374646214651?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/809168374646214651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=809168374646214651' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/809168374646214651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/809168374646214651'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/11/dnfs-configuration-and-hybrid-column.html' title='dNFS configuration and Hybrid Column Compression'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-7353132528551586126</id><published>2011-10-12T08:27:00.000+01:00</published><updated>2011-10-12T08:27:22.072+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ZFS'/><category scheme='http://www.blogger.com/atom/ns#' term='HCC'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle 11gR2'/><title type='text'>Quick note about Hybrid Columnar Compression running on my laptop</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;As I mentioned in previous &lt;a href="http://oracleprof.blogspot.com/2011/10/oracle-11203-and-hybrid-columnar.html"&gt;post&lt;/a&gt; Oracle allowed users to use Hybrid Columnar Compression on ZFS appliance. Two days ago there was a note in MOS about bug/enhancement but there was no patch for it. Yesterday I was able to download patch number 13041324 for Oracle 11.2.0.3 and successfully applied it against my installation on virtual machine. After that I run my &lt;a href="http://www.oracle.com/webapps/dialogue/ns/dlgwelcome.jsp?p_ext=Y&amp;amp;p_dlg_id=10521841&amp;amp;src=7299332&amp;amp;Act=45"&gt;Oracle's Sun Unified Storage Simulator &lt;/a&gt;and I created a new table space on it using NFS share together with Oracle Direct NFS client. Next I try to create compressed table using old existing table space on local ASM disk and it fail as expected. Than I give a try on new table space and this time table has been created :&lt;/div&gt;&lt;pre&gt;SQL&amp;gt; create tablespace SUNNFSTS datafile '/nfs/sunnfsts.dbf' size 10M;&lt;br /&gt;Tablespace created.&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; create table SCOTT.test1 tablespace USERS  compress for archive high as select * from dba_objects where rownum &amp;lt; 100;&lt;br /&gt;create table SCOTT.test1 tablespace USERS  compress for archive high as select * from dba_objects where rownum &amp;lt; 100&lt;br /&gt;                                                                                      *&lt;br /&gt;ERROR at line 1:&lt;br /&gt;ORA-64307: hybrid columnar compression is not supported for tablespaces on this&lt;br /&gt;storage type&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; create table SCOTT.test tablespace SUNNFSTS  compress for archive high as select * from dba_objects where rownum &amp;lt; 100;&lt;br /&gt;Table created.&lt;br /&gt;SQL&amp;gt; exit&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Looks like it is working and HCC can be tested without expensive hardware. I hope I will find some time to write down all my notes and create proper blog post about installation and configuration.&lt;br /&gt;regards,&lt;br /&gt;Marcin&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-7353132528551586126?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/7353132528551586126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=7353132528551586126' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7353132528551586126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7353132528551586126'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/10/quick-note-about-hybrid-columnar.html' title='Quick note about Hybrid Columnar Compression running on my laptop'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-2751462796552127479</id><published>2011-10-06T18:20:00.000+01:00</published><updated>2011-10-06T18:20:20.125+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HCC'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle 11gR2'/><title type='text'>Oracle 11.2.0.3 and Hybrid Columnar Compression Support</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:WordDocument&gt;   &lt;w:View&gt;Normal&lt;/w:View&gt;   &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:TrackMoves/&gt;   &lt;w:TrackFormatting/&gt;   &lt;w:PunctuationKerning/&gt;   &lt;w:ValidateAgainstSchemas/&gt;   &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:DoNotPromoteQF/&gt;   &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:Compatibility&gt;    &lt;w:BreakWrappedTables/&gt;    &lt;w:SnapToGridInCell/&gt;    &lt;w:WrapTextWithPunct/&gt;    &lt;w:UseAsianBreakRules/&gt;    &lt;w:DontGrowAutofit/&gt;    &lt;w:SplitPgBreakAndParaMark/&gt;    &lt;w:DontVertAlignCellWithSp/&gt;    &lt;w:DontBreakConstrainedForcedTables/&gt;    &lt;w:DontVertAlignInTxbx/&gt;    &lt;w:Word11KerningPairs/&gt;    &lt;w:CachedColBalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathPr&gt;    &lt;m:mathFont m:val="Cambria Math"/&gt;    &lt;m:brkBin m:val="before"/&gt;    &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;    &lt;m:smallFrac m:val="off"/&gt;    &lt;m:dispDef/&gt;    &lt;m:lMargin m:val="0"/&gt;    &lt;m:rMargin m:val="0"/&gt;    &lt;m:defJc m:val="centerGroup"/&gt;    &lt;m:wrapIndent m:val="1440"/&gt;    &lt;m:intLim m:val="subSup"/&gt;    &lt;m:naryLim m:val="undOvr"/&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"  DefSemiHidden="true" DefQFormat="false" DefPriority="99"  LatentStyleCount="267"&gt;   &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;   &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;   &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;   &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;   &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;   &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;   &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;   &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;   &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;   &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"   UnhideWhenUsed="false" Name="Table Grid"/&gt;   &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;   &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;   &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;   &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;   &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;   &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;   &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;   &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;   &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;   &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;   &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;   &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt; /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin-top:0in; mso-para-margin-right:0in; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0in; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"Times New Roman"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;}&lt;/style&gt; &lt;![endif]--&gt;  &lt;/div&gt;&lt;div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;"&gt;Oracle announced support for &lt;a href="http://www.oracle.com/us/corporate/press/508020."&gt;Hybrid Columnar CompressionSupport for ZFS Storage Appliances and Pillar Axiom Storage Systems&lt;/a&gt; on Sep 30&lt;sup&gt;th&lt;/sup&gt;. According to &lt;a href="http://blogs.oracle.com/7000tips/entry/hooray_the_hcc_announcement_came"&gt;Steve Tunstall's blog&lt;/a&gt; these feature should work with 11.2.0.3 and any ZFS Appliance. I have tested it on Oracle Enterprise Linux 5.5 with 11.2.0.3 and ZFS Appliance software emulator and it didn’t work. I have read Steve post again and he mentioned in comment that additional patch is required. There is was no information about it on MOS yesterday evening but today morning I found following note - "&lt;i&gt;Bug 13041324 - Enhancement to allow HCC on ZFS and Pillar Storage&lt;/i&gt;". I still can’t find patch and I’m really tempted to try it on my virtual machines and has a possibility to test Oracle HCC feature. Hope this patch will be available soon.&lt;/div&gt;&lt;div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;"&gt;Regards,&lt;/div&gt;&lt;div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;"&gt;Marcin&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-2751462796552127479?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/2751462796552127479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=2751462796552127479' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/2751462796552127479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/2751462796552127479'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/10/oracle-11203-and-hybrid-columnar.html' title='Oracle 11.2.0.3 and Hybrid Columnar Compression Support'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-4988813933871780097</id><published>2011-10-04T02:51:00.000+01:00</published><updated>2011-10-04T02:51:21.868+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Grid Control'/><title type='text'>Grid Control 11g - 2 small improvments</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;I installed Oracle Grid Control 11g months ago and left it with typical configuration. Recently it becomes a little bit unstable and did a quick audit. Here are my first 2 finding but and will do a deeper dive into into if only I will find some more time.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Memory settings &lt;/b&gt;&lt;br /&gt;In default configuration of Weblogic Management server running Grid Control instance maximum number of Java stack memory (parameter -Xmx) is unset and it is using default value of 512 MB. It is too small for big installation with many agents and concurrent users. Weblogic configuration allow users to set USER_MEM_ARGS variable with Java memory settings in starting script which will be used instead of MEM_ARGS variable. I has goint to change startManagedWebLogic.sh file as I want to keep default values for admin server but I found better solution on&amp;nbsp; &lt;a href="http://blogs.oracle.com/oem/entry/differences_between_em10g_and"&gt;Oracle Enterprise Manager blog&lt;/a&gt; in "&lt;i&gt;Increasing the JAVA heap size of the OMS" &lt;/i&gt;section. Instead of startManagedWebLogic.sh you need to edit startEMServer.sh file&lt;br /&gt;and add following section just before last line&lt;br /&gt;&lt;pre&gt;if [ "${SERVER_NAME}" != "EMGC_ADMINSERVER" ] ; then&lt;br /&gt;   USER_MEM_ARGS="-Xms256m -Xmx1024m -XX:MaxPermSize=512m -XX:CompileThreshold=8000 -XX:PermSize=128m"&lt;br /&gt;   export USER_MEM_ARGS&lt;br /&gt;fi&lt;br /&gt;&lt;/pre&gt;&lt;b&gt;Log rotation &lt;/b&gt;&lt;br /&gt;It was very typical for old Oracle Application Server or Grid Control 10g that logs weren't rotated in default configurations. I have seen this many times when I have been asked to do some troubleshooting. After installation of Grid Control 11g together with Weblogic I was thinking how many logs has been left without rotation this time. Most of them looks OK but I found one &lt;i&gt;mod_wl_ohs.log&lt;/i&gt; belonging to WebTier (Oracle HTTP server) which is still not rotated. This log file is configured in this configuration file mod_wl_ohs.conf and it is quite easy to add rotation to it. As all rotated Apache logs this line&lt;br /&gt;&lt;pre&gt;WLLogFile ${ORACLE_INSTANCE}/diagnostics/logs/${COMPONENT_TYPE}/${COMPONENT_NAME}/mod_wl_ohs.log&lt;/pre&gt;should be started with &lt;i&gt;rotatelog &lt;/i&gt;command:&lt;br /&gt;&lt;pre&gt;WLLogFile "|${ORACLE_HOME}/ohs/bin/rotatelogs ${ORACLE_INSTANCE}/diagnostics/logs/${COMPONENT_TYPE}/${COMPONENT_NAME}/mod_wl_ohs.log 43200"&lt;/pre&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;There is also a MOS note ID 1271676.1 about that issue.&lt;br /&gt;&lt;br /&gt;Update:&lt;br /&gt;Oracle Enterprise Manager 12c (like Cloud) has been just officially presented. There is still not documentation but you can download and install it.&lt;br /&gt;regards,&lt;br /&gt;Marcin&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-4988813933871780097?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/4988813933871780097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=4988813933871780097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/4988813933871780097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/4988813933871780097'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/10/grid-control-11g-2-small-improvments.html' title='Grid Control 11g - 2 small improvments'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-7651269464015136638</id><published>2011-10-03T03:13:00.000+01:00</published><updated>2011-10-03T03:13:27.113+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='book review'/><title type='text'>Oracle PeopleSoft Enterprise Financial Management - book review</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span id="internal-source-marker_0.1973379059091933" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;This  is my second review in short time frame but totally different from  first one. It is not about Oracle DB and I’m doing it from newbie  position. This is my first experience with Oracle PeopleSoft from  business perspective. &lt;a href="http://www.packtpub.com/oracle-peoplesoft-enterprise-financial-management-9-1-implementation/book"&gt;Oracle PeopleSoft Enterprise Financial Management 9.1&lt;/a&gt; Implementation is covering following topics from business  perspective:&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;1. Financials Fundamentals&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;2. PeopleSoft Security&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;3. PeopleSoft Billing Module&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;4. PeopleSoft Accounts Receivable Module&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;5. PeopleSoft Asset Management Module&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;6. PeopleSoft Accounts Payable Module&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;7. PeopleSoft General Ledger Module&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;8. PeopleSoft Expenses Module&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;9. PeopleSoft Commitment Control&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Whole book is covering one example based on Automotive company and every chapter is describing other business requirements.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;All  topics are explained in details and every topic has a short  introduction from functional perspective. There are also implementation  challenges for most common issues. Every chapter is guiding user though  module configuration and typical actions. Examples have slides and  description of all actions.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;I  can recommend this book for all for people without financial background  like me as a starting point into PeopleSoft application world.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;regards,&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Marcin&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-7651269464015136638?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/7651269464015136638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=7651269464015136638' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7651269464015136638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7651269464015136638'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/10/oracle-peoplesoft-enterprise-financial.html' title='Oracle PeopleSoft Enterprise Financial Management - book review'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-1959956990396950002</id><published>2011-10-01T04:44:00.002+01:00</published><updated>2011-10-04T22:20:46.010+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='online rebuild'/><category scheme='http://www.blogger.com/atom/ns#' term='index'/><category scheme='http://www.blogger.com/atom/ns#' term='ORA-08104'/><title type='text'>Online index rebuild cleanup</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&amp;nbsp;If session performing online index rebuild will be killed by mistake Oracle end up with some inconsistency inside dictionary. If you try to re-run killed command to create index once more database will complain that index already exist. Although if you try to drop index database will complain that index is in rebuild state and could not be dropped at that time.&lt;br /&gt;To fix that issue you need to use package dbms_repair as showed in example:&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ol style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;li&gt;Building test table&lt;br /&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; create table test tablespace users as select rownum id, 'xxxxxxxxxxxxxxxxxxxxxxxx' col1 from dba_source, dba_source where rownum &amp;lt; 10000000;&lt;br /&gt;Table created.&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt; New index build has been started with online clause and session has been killed &lt;br /&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; create index test_index on test (id) tablespace users online;&lt;br /&gt;create index test_index on test (id) tablespace users online&lt;br /&gt;                                                           *&lt;br /&gt;ERROR at line 1:&lt;br /&gt;ORA-03113: end-of-file on communication channel&lt;br /&gt;Process ID: 4356&lt;br /&gt;Session ID: 191 Serial number: 13&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt; Sanity check - index exist even if build has been never completed.&lt;br /&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; select index_name from dba_indexes where table_name = 'TEST';&lt;br /&gt;INDEX_NAME&lt;br /&gt;------------------------------&lt;br /&gt;TEST_INDEX&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Now let's try to drop it&lt;br /&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; drop index test_index;&lt;br /&gt;drop index test_index&lt;br /&gt;           *&lt;br /&gt;ERROR at line 1:&lt;br /&gt;ORA-08104: this index object 66960 is being online built or rebuilt&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;So maybe we can create it again ?&lt;br /&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; create index test_index on test (id) tablespace users online;&lt;br /&gt;create index test_index on test (id) tablespace users online&lt;br /&gt;             *&lt;br /&gt;ERROR at line 1:&lt;br /&gt;ORA-00955: name is already used by an existing object&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Let's clean it up and allow Oracle to drop index - ONLINE_INDEX_CLEAN need a object number which can be taken from drop index error message or using the following query (at least it worked for me).&lt;br /&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; select min(object_id) from dba_objects where object_name = 'TEST_INDEX';&lt;br /&gt;&lt;br /&gt;MIN(OBJECT_ID)&lt;br /&gt;--------------&lt;br /&gt;        66960&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; declare&lt;br /&gt;  2  ret boolean;&lt;br /&gt;  3&lt;br /&gt;  4  begin&lt;br /&gt;  5      ret:=dbms_repair.ONLINE_INDEX_CLEAN(66960);&lt;br /&gt;  6  end;&lt;br /&gt;  7  /&lt;br /&gt;&lt;br /&gt;PL/SQL procedure successfully completed.&lt;br /&gt;&lt;/pre&gt;and now let's check if index is still there&lt;br /&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; select index_name from dba_indexes where table_name = 'TEST';&lt;br /&gt;no rows selected&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Hope it help to solve some of your problems.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;regards,&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Marcin&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-1959956990396950002?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/1959956990396950002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=1959956990396950002' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/1959956990396950002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/1959956990396950002'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/10/online-index-rebuild-cleanup.html' title='Online index rebuild cleanup'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-1620702659100805977</id><published>2011-09-18T13:42:00.001+01:00</published><updated>2011-09-18T13:44:20.849+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Grid Infrastructure'/><category scheme='http://www.blogger.com/atom/ns#' term='11g'/><category scheme='http://www.blogger.com/atom/ns#' term='RAC'/><title type='text'>How to restore Oracle Grid Infrastructure OCR and vote disk on ASM</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;After reading the book about Oracle RAC (&lt;a href="http://oracleprof.blogspot.com/2011/08/book-review-oracle-11g-r1r2-real.html"&gt;see previous post&lt;/a&gt;) I decided to test recovery of OCR (Oracle Cluster Registry) file and vote disk placed on ASM disk groups. This is an operation I never did before. I was lucky enough and my ASM based RAC installation never had similar issue but I did it before when OCR and vote disk were placed on raw or block devices.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;According to &lt;a href="http://download.oracle.com/docs/cd/E11882_01/rac.112/e16794/votocr.htm#CHDHBBIJ"&gt;Oracle doc&lt;/a&gt; it should be straight forward and it really is but you need to careful otherwise you can hit strange errors, like "segmentation fault" for ocrconfig when Grid Infrastructure is down.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Here is step by step instruction:&lt;/div&gt;&lt;ol style="font-family: Arial,Helvetica,sans-serif; text-align: left;"&gt;&lt;li&gt;Check if you can access OCR files &lt;br /&gt;&lt;pre class="brush:bash"&gt;[root@node1 ~]# /u01/app/11.2.0/grid/bin/ocrcheck&lt;br /&gt;PROT-602: Failed to retrieve data from the cluster registry&lt;br /&gt;PROC-26: Error while accessing the physical storage&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Stop CRS on all nodes&lt;br /&gt;&lt;pre class="brush:bash"&gt;[root@node1 ~]# export CRS_HOME=/u01/app/11.2.0/grid&lt;br /&gt;[root@node1 ~]# $CRS_HOME/bin/crsctl stop crs&lt;br /&gt;CRS-2796: The command may not proceed when Cluster Ready Services is not running&lt;br /&gt;CRS-4687: Shutdown command has completed with errors.&lt;br /&gt;CRS-4000: Command Stop failed, or completed with errors.&lt;br /&gt;&lt;/pre&gt;If you got error like that try force option&lt;br /&gt;&lt;pre class="brush:bash"&gt;[root@node1 ~]# $CRS_HOME/bin/crsctl stop crs -f&lt;br /&gt;CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'node1'&lt;br /&gt;CRS-2673: Attempting to stop 'ora.ctssd' on 'node1'&lt;br /&gt;CRS-2673: Attempting to stop 'ora.evmd' on 'node1'&lt;br /&gt;CRS-2673: Attempting to stop 'ora.asm' on 'node1'&lt;br /&gt;CRS-2673: Attempting to stop 'ora.mdnsd' on 'node1'&lt;br /&gt;CRS-2677: Stop of 'ora.asm' on 'node1' succeeded&lt;br /&gt;CRS-2673: Attempting to stop 'ora.cluster_interconnect.haip' on 'node1'&lt;br /&gt;CRS-2677: Stop of 'ora.mdnsd' on 'node1' succeeded&lt;br /&gt;CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'node1' succeeded&lt;br /&gt;CRS-2677: Stop of 'ora.evmd' on 'node1' succeeded&lt;br /&gt;CRS-2677: Stop of 'ora.ctssd' on 'node1' succeeded&lt;br /&gt;CRS-2673: Attempting to stop 'ora.cssd' on 'node1'&lt;br /&gt;CRS-2677: Stop of 'ora.cssd' on 'node1' succeeded&lt;br /&gt;CRS-2673: Attempting to stop 'ora.diskmon' on 'node1'&lt;br /&gt;CRS-2673: Attempting to stop 'ora.crf' on 'node1'&lt;br /&gt;CRS-2677: Stop of 'ora.crf' on 'node1' succeeded&lt;br /&gt;CRS-2673: Attempting to stop 'ora.gipcd' on 'node1'&lt;br /&gt;CRS-2677: Stop of 'ora.diskmon' on 'node1' succeeded&lt;br /&gt;CRS-2677: Stop of 'ora.gipcd' on 'node1' succeeded&lt;br /&gt;CRS-2673: Attempting to stop 'ora.gpnpd' on 'node1'&lt;br /&gt;CRS-2677: Stop of 'ora.gpnpd' on 'node1' succeeded&lt;br /&gt;CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'node1' has completed&lt;br /&gt;CRS-4133: Oracle High Availability Services has been stopped.&lt;br /&gt;[root@node1 ~]#&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt; When OCR file and vote disk are located on ASM disk group running ASM instance is required for recovery. Current version of Oracle Grid Infrastructure (GI) can be started in exclusive mode on one node to allow checks and restore.&lt;br /&gt;There is a slight change between version 11.2.0.1 and 11.2.0.2 - in first release we need to start GI in exclusive mode and then stop CRS service (as showed below). In 11.2.0.2 we can start GI without CRS like mentioned in MOS note ID 1062983.1 but old steps are still working. &lt;br /&gt;Steps for 11.2.0.1&lt;br /&gt;&lt;pre class="brush:bash"&gt;[root@node1 ~]# $CRS_HOME/bin/crsctl start crs -excl&lt;br /&gt;CRS-4123: Oracle High Availability Services has been started.&lt;br /&gt;CRS-2672: Attempting to start 'ora.mdnsd' on 'node1'&lt;br /&gt;CRS-2676: Start of 'ora.mdnsd' on 'node1' succeeded&lt;br /&gt;CRS-2672: Attempting to start 'ora.gpnpd' on 'node1'&lt;br /&gt;CRS-2676: Start of 'ora.gpnpd' on 'node1' succeeded&lt;br /&gt;CRS-2672: Attempting to start 'ora.cssdmonitor' on 'node1'&lt;br /&gt;CRS-2672: Attempting to start 'ora.gipcd' on 'node1'&lt;br /&gt;CRS-2676: Start of 'ora.cssdmonitor' on 'node1' succeeded&lt;br /&gt;CRS-2676: Start of 'ora.gipcd' on 'node1' succeeded&lt;br /&gt;CRS-2672: Attempting to start 'ora.cssd' on 'node1'&lt;br /&gt;CRS-2672: Attempting to start 'ora.diskmon' on 'node1'&lt;br /&gt;CRS-2676: Start of 'ora.diskmon' on 'node1' succeeded&lt;br /&gt;CRS-2676: Start of 'ora.cssd' on 'node1' succeeded&lt;br /&gt;CRS-2672: Attempting to start 'ora.ctssd' on 'node1'&lt;br /&gt;CRS-2672: Attempting to start 'ora.cluster_interconnect.haip' on 'node1'&lt;br /&gt;CRS-2676: Start of 'ora.ctssd' on 'node1' succeeded&lt;br /&gt;CRS-5017: The resource action "ora.cluster_interconnect.haip start" encountered the following error:&lt;br /&gt;Start action for HAIP aborted&lt;br /&gt;CRS-2674: Start of 'ora.cluster_interconnect.haip' on 'node1' failed&lt;br /&gt;CRS-2679: Attempting to clean 'ora.cluster_interconnect.haip' on 'node1'&lt;br /&gt;CRS-2681: Clean of 'ora.cluster_interconnect.haip' on 'node1' succeeded&lt;br /&gt;CRS-2672: Attempting to start 'ora.asm' on 'node1'&lt;br /&gt;CRS-2674: Start of 'ora.asm' on 'node1' failed&lt;br /&gt;CRS-2673: Attempting to stop 'ora.ctssd' on 'node1'&lt;br /&gt;CRS-2677: Stop of 'ora.ctssd' on 'node1' succeeded&lt;br /&gt;CRS-4000: Command Start failed, or completed with errors.&lt;br /&gt;[root@node1 ~]#&lt;br /&gt;&lt;/pre&gt;Errors are expected so now we need to stop CRS (if it has been started)&lt;br /&gt;&lt;pre class="brush:bash"&gt;[root@node1 ~]# $CRS_HOME/bin/crsctl stop resource ora.crsd -init&lt;br /&gt;[root@node1 ~]# $CRS_HOME/bin/crsctl stop resource ora.crsd -init&lt;br /&gt;CRS-2500: Cannot stop resource 'ora.crsd' as it is not running&lt;br /&gt;CRS-4000: Command Stop failed, or completed with errors.&lt;br /&gt;&lt;/pre&gt;Steps for 11.2.0.2 - this allow us to avoid starting CRS which is trying to start resources. Issues related to CRS resource will bring down HAIP and ASM - and this is root cause of errors shown in 11.2.0.1 example.&lt;br /&gt;&lt;pre class="brush:bash"&gt;[root@node1 ~]# $CRS_HOME/bin/crsctl start crs -excl -nocrs&lt;br /&gt;CRS-4123: Oracle High Availability Services has been started.&lt;br /&gt;CRS-2672: Attempting to start 'ora.mdnsd' on 'node1'&lt;br /&gt;CRS-2676: Start of 'ora.mdnsd' on 'node1' succeeded&lt;br /&gt;CRS-2672: Attempting to start 'ora.gpnpd' on 'node1'&lt;br /&gt;CRS-2676: Start of 'ora.gpnpd' on 'node1' succeeded&lt;br /&gt;CRS-2672: Attempting to start 'ora.cssdmonitor' on 'node1'&lt;br /&gt;CRS-2672: Attempting to start 'ora.gipcd' on 'node1'&lt;br /&gt;CRS-2676: Start of 'ora.cssdmonitor' on 'node1' succeeded&lt;br /&gt;CRS-2676: Start of 'ora.gipcd' on 'node1' succeeded&lt;br /&gt;CRS-2672: Attempting to start 'ora.cssd' on 'node1'&lt;br /&gt;CRS-2672: Attempting to start 'ora.diskmon' on 'node1'&lt;br /&gt;CRS-2676: Start of 'ora.diskmon' on 'node1' succeeded&lt;br /&gt;CRS-2676: Start of 'ora.cssd' on 'node1' succeeded&lt;br /&gt;CRS-2672: Attempting to start 'ora.cluster_interconnect.haip' on 'node1'&lt;br /&gt;CRS-2672: Attempting to start 'ora.ctssd' on 'node1'&lt;br /&gt;CRS-2676: Start of 'ora.ctssd' on 'node1' succeeded&lt;br /&gt;CRS-2676: Start of 'ora.cluster_interconnect.haip' on 'node1' succeeded&lt;br /&gt;CRS-2672: Attempting to start 'ora.asm' on 'node1'&lt;br /&gt;CRS-2676: Start of 'ora.asm' on 'node1' succeeded&lt;br /&gt;&lt;/pre&gt;No errors has been displayed and GI has been started in exclusive mode.&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Now it is time to check if ASM instance is running and recreate ASM disk groups.&lt;br /&gt;&lt;pre class="brush:bash"&gt;[oracle@node1 ~]$ ps aux | grep pmon&lt;br /&gt;oracle    8009  0.0  0.9 495804 18564 ?        Ss   20:37   0:00 asm_pmon_+ASM1&lt;br /&gt;oracle    8260  0.0  0.0  61184   760 pts/3    S+   20:38   0:00 grep pmon&lt;br /&gt;&lt;/pre&gt;ASM is running. Now we can connect and create a disk group for OCR and vote disk. Be sure that your new group will have proper COMPATIBLE.ASM value. You can put OCR and vote on groups with COMPATIBLE.ASM greater than 11.2.&lt;br /&gt;&lt;pre class="brush:bash"&gt;[oracle@node1 ~]$ export ORACLE_HOME=/u01/app/11.2.0/grid&lt;br /&gt;[oracle@node1 ~]$ export PATH=$PATH:$ORACLE_HOME/bin&lt;br /&gt;[oracle@node1 ~]$ export ORACLE_SID=+ASM1&lt;br /&gt;[oracle@node1 ~]$ sqlplus / as sysasm&lt;br /&gt;SQL*Plus: Release 11.2.0.2.0 Production on Tue Aug 30 20:39:14 2011&lt;br /&gt;Copyright (c) 1982, 2010, Oracle.  All rights reserved.&lt;br /&gt;Connected to:&lt;br /&gt;Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production&lt;br /&gt;With the Real Application Clusters and Automatic Storage Management options&lt;br /&gt;SQL&amp;gt; show parameter asm_di&lt;br /&gt;NAME                                 TYPE        VALUE&lt;br /&gt;------------------------------------ ----------- ------------------------------&lt;br /&gt;asm_diskgroups                       string&lt;br /&gt;asm_diskstring                       string&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; alter system set asm_diskstring = '/dev/asmdisk*';&lt;br /&gt;System altered.&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; create diskgroup DATA external redundancy disk '/dev/asmdisk11' attribute 'COMPATIBLE.ASM' = '11.2';&lt;br /&gt;Diskgroup created.&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt; In next step we need to create spfile for ASM instance as it will be used for rest of cluster to find out location of ASM disks using 'asm_diskstring'.&lt;br /&gt;First text init.ora file has been created and then new binary spfile has been created on ASM disk group. &lt;br /&gt;&lt;pre class="brush:bash"&gt;[oracle@node1 rac-cluster]$ cat /tmp/init.ora&lt;br /&gt;*.asm_power_limit=1&lt;br /&gt;*.diagnostic_dest='/u01/app/oracle'&lt;br /&gt;*.instance_type='asm'&lt;br /&gt;*.large_pool_size=12M&lt;br /&gt;*.remote_login_passwordfile='EXCLUSIVE'&lt;br /&gt;*.asm_diskstring = '/dev/asmdisk*'&lt;br /&gt;[oracle@node1 rac-cluster]$ sqlplus / as sysasm&lt;br /&gt;SQL*Plus: Release 11.2.0.2.0 Production on Tue Aug 30 21:23:36 2011&lt;br /&gt;Copyright (c) 1982, 2010, Oracle.  All rights reserved.&lt;br /&gt;Connected to:&lt;br /&gt;Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production&lt;br /&gt;With the Real Application Clusters and Automatic Storage Management options&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; create spfile='+DATA' from pfile='/tmp/init.ora';&lt;br /&gt;File created.&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt; When disk group is ready it is time now to restore OCR from backup file.&lt;br /&gt;Oracle Grid Infrastructure is doing OCR backup automatically into following location $GRID_HOME/cdata/&lt;cluster_name&gt;. Let's restore and check if OCR file is recognized properly after it.&lt;br /&gt;&lt;pre class="brush:bash"&gt;[root@node1 ~]# $CRS_HOME/bin/ocrconfig -restore /u01/app/11.2.0/grid/cdata/rac-cluster/backup_20110830_201118.ocr&lt;br /&gt;&lt;br /&gt;[root@node1 ~]# $CRS_HOME/bin/ocrcheck&lt;br /&gt;Status of Oracle Cluster Registry is as follows :&lt;br /&gt;         Version                  :          3&lt;br /&gt;         Total space (kbytes)     :     262120&lt;br /&gt;         Used space (kbytes)      :       3132&lt;br /&gt;         Available space (kbytes) :     258988&lt;br /&gt;         ID                       :  660203047&lt;br /&gt;         Device/File Name         :      +DATA&lt;br /&gt;                                    Device/File integrity check succeeded&lt;br /&gt;                                    Device/File not configured&lt;br /&gt;                                    Device/File not configured&lt;br /&gt;                                    Device/File not configured&lt;br /&gt;                                    Device/File not configured&lt;br /&gt;         Cluster registry integrity check succeeded&lt;br /&gt;         Logical corruption check succeeded&lt;br /&gt;&lt;/pre&gt;&lt;/cluster_name&gt;&lt;/li&gt;&lt;li&gt; Now it is time to restore vote disk. This process will read asm_diskstring from ASM instance and will place vote files on these disks. See what happen when asm_diskstring is empty.&lt;br /&gt;&lt;pre class="brush:bash"&gt;[root@node1 ~]# $CRS_HOME/bin/crsctl replace votedisk +DATA&lt;br /&gt;CRS-4602: Failed 27 to add voting file 28652f742fc44f28bfc6d12d1412a604.&lt;br /&gt;Failed to replace voting disk group with +DATA.&lt;br /&gt;CRS-4000: Command Replace failed, or completed with errors.&lt;br /&gt;&lt;/pre&gt;Error message from log file.&lt;br /&gt;&lt;pre class="brush:bash"&gt;[cssd(7894)]CRS-1638:Unable to locate voting file with ID 1b37b25b-686c4fb4-bfb82eac-357f48df that is being added to the list of configured voting files; details at (:CSSNM00022:) in /u01/app/11.2.0/grid/log/node1/cssd/ocssd.log&lt;br /&gt;2011-08-30 20:44:12.256&lt;br /&gt;&lt;/pre&gt;When asm_diskstring is set up properly it is looking much better.&lt;br /&gt;&lt;pre class="brush:bash"&gt;[root@node1 ~]# $CRS_HOME/bin/crsctl replace votedisk +DATA&lt;br /&gt;Successful addition of voting disk 4ca8c2b58d394ff1bf7a9b88dd9f5fc3.&lt;br /&gt;Successfully replaced voting disk group with +DATA.&lt;br /&gt;CRS-4266: Voting file(s) successfully replaced&lt;br /&gt;[root@node1 ~]#  $CRS_HOME/bin/crsctl query css votedisk&lt;br /&gt;##  STATE    File Universal Id                File Name Disk group&lt;br /&gt;--  -----    -----------------                --------- ---------&lt;br /&gt; 1. ONLINE   4ca8c2b58d394ff1bf7a9b88dd9f5fc3 (/dev/asmdisk11) [DATA]&lt;br /&gt;Located 1 voting disk(s).&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt; In last step Grid Infrastructure need to be restarted on all nodes.&lt;br /&gt;&lt;pre class="brush:bash"&gt;[root@node1 ~]#  $CRS_HOME/bin/crsctl stop crs -f&lt;br /&gt;CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'node1'&lt;br /&gt;CRS-2673: Attempting to stop 'ora.mdnsd' on 'node1'&lt;br /&gt;CRS-2673: Attempting to stop 'ora.ctssd' on 'node1'&lt;br /&gt;CRS-2673: Attempting to stop 'ora.asm' on 'node1'&lt;br /&gt;CRS-2677: Stop of 'ora.asm' on 'node1' succeeded&lt;br /&gt;CRS-2677: Stop of 'ora.mdnsd' on 'node1' succeeded&lt;br /&gt;CRS-2677: Stop of 'ora.ctssd' on 'node1' succeeded&lt;br /&gt;CRS-2673: Attempting to stop 'ora.cssd' on 'node1'&lt;br /&gt;CRS-2677: Stop of 'ora.cssd' on 'node1' succeeded&lt;br /&gt;CRS-2673: Attempting to stop 'ora.gipcd' on 'node1'&lt;br /&gt;CRS-2673: Attempting to stop 'ora.diskmon' on 'node1'&lt;br /&gt;CRS-2677: Stop of 'ora.diskmon' on 'node1' succeeded&lt;br /&gt;CRS-2677: Stop of 'ora.gipcd' on 'node1' succeeded&lt;br /&gt;CRS-2673: Attempting to stop 'ora.gpnpd' on 'node1'&lt;br /&gt;CRS-2677: Stop of 'ora.gpnpd' on 'node1' succeeded&lt;br /&gt;CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'node1' has completed&lt;br /&gt;CRS-4133: Oracle High Availability Services has been stopped.&lt;br /&gt;&lt;br /&gt;[root@node1 ~]#  $CRS_HOME/bin/crsctl start crs&lt;br /&gt;CRS-4123: Oracle High Availability Services has been started.&lt;br /&gt;&lt;/pre&gt;If everything went well similar result is expected&lt;br /&gt;&lt;pre class="brush:bash"&gt;[root@node1 ~]# $CRS_HOME/bin/crsctl check cluster -all&lt;br /&gt;**************************************************************&lt;br /&gt;node1:&lt;br /&gt;CRS-4537: Cluster Ready Services is online&lt;br /&gt;CRS-4529: Cluster Synchronization Services is online&lt;br /&gt;CRS-4533: Event Manager is online&lt;br /&gt;**************************************************************&lt;br /&gt;node2:&lt;br /&gt;CRS-4537: Cluster Ready Services is online&lt;br /&gt;CRS-4529: Cluster Synchronization Services is online&lt;br /&gt;CRS-4533: Event Manager is online&lt;br /&gt;**************************************************************&lt;br /&gt;node3:&lt;br /&gt;CRS-4537: Cluster Ready Services is online&lt;br /&gt;CRS-4529: Cluster Synchronization Services is online&lt;br /&gt;CRS-4533: Event Manager is online&lt;br /&gt;**************************************************************&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Now Grid Infrastructure is working and if database ASM disk groups has been destroyed as well or we have everything in one ASM disk groups (like in my example) it is time to restore database from backup using Oracle Recovery Manager. But this is a different story.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Hope it help someone to restore Grid Infrastructure after disk crash.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;regards,&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Marcin&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-1620702659100805977?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/1620702659100805977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=1620702659100805977' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/1620702659100805977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/1620702659100805977'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/09/after-reading-book-about-oracle-rac-see.html' title='How to restore Oracle Grid Infrastructure OCR and vote disk on ASM'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-6117044507868881093</id><published>2011-08-29T17:26:00.000+01:00</published><updated>2011-08-29T17:26:26.653+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle RAC'/><category scheme='http://www.blogger.com/atom/ns#' term='book review'/><title type='text'>Book review - Oracle 11g R1/R2 Real Application Clusters Essentials</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span id="internal-source-marker_0.04741008226424004" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Recently  I have read a new book “&lt;a href="http://www.packtpub.com/oracle-11g-r1-r2-real-application-clusters-essentials/book"&gt;Oracle 11g R1/R2 Real Application Clusters Essentials&lt;/a&gt;” by Ben Prusinski and Syed Jaffer Hussain.. First of all I  would like to thanks both authors for good lecture for few days. Whole  book is divided into a few parts:&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;introduction to Oracle Real Application Server including High  Availability concepts, various storage options and overall Oracle RAC  architecture - chapter 1 and 2&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;installation of Oracle RAC components - Clusterware, Automatic Storage Management - chapter 3&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;overview of Oracle ASM - chapter 4&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;cluster components troubleshooting - chapter 5&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Oracle Database installation &amp;nbsp;- chapter 6&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Day by day topics including administration, backup, performance tuning  and upgrade of Oracle Real Application Cluster - chapter 6, 7, 8 and 9 &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Real life examples including implementation of Oracle EBS using Oracle RAC - chapter 10 and 11&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Oracle Maximum Availability - Chapter 12&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Overview of Oracle tools for more experience users - Appendinx&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;In  a first part authors are presenting High Availability options for  Oracle and describing all main hardware components required for Oracle  RAC implementation (server, network and storage options). Next chapter  is covering an Oracle RAC architecture and it is covering mostly 11g  Release 1. There is some information about a 11g Release 2 as well  but due to number of changes between both version I would like to see  two chapters instead of one - some additional information about a 11gR2 is  covered at the end of appendix.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;The next  part is a guide how to install whole an Oracle RAC infrastructure -  Clusterware and Automatic Storage Management in case of 11g Release 1 or  Grid Infrastructure in case of version 11g Release 2. It is well  documented and I will help new users to go though this process.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;The next  chapter is covering all topics related to Oracle Automatic Storage  Management. Authors are presenting concepts and overview of this  component as well as basic administration options. There is also  separate part about new features of Oracle ASM 11g Release 2 covering  ACFS file system. &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Chapter  5 is about managing and &amp;nbsp;troubleshooting Oracle RAC components. Some tools and common scenarios based on typical  clusterware issues are presented there together with solving tips.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;The next  chapters (6,7,8 and 9) describe installation of database as well as new  features of an Oracle 11g Release 1 and Release 2. In subsequent paragraph we can  read about Oracle RAC High Availability features like - Load Balancing,  Transparent Application Failover and Fast Connection Failover. After  that backup and recovery strategy for database and whole clusterware  comes to play. From management perspective this part is very important  and should be study carefully. Next part is a overview of performance  tuning tools, wait event and statistics important any performance  improvement work. &lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Real  life examples is in my opinion most interesting part of the book. All  readers can go though typical scenario like adding or deleting node from  cluster or converting database from single instance to RAC database.  Configuration of Oracle EBS with Oracle RAC is also very well  documented.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;When  I went though whole book I have to say that it was a good lecture and I  can recommend it for everybody who want to do first dive into Oracle  RAC world. Furthermore I think that more experience users will find this  book interesting and worth to read too.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;regards,&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Marcin&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-6117044507868881093?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/6117044507868881093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=6117044507868881093' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/6117044507868881093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/6117044507868881093'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/08/book-review-oracle-11g-r1r2-real.html' title='Book review - Oracle 11g R1/R2 Real Application Clusters Essentials'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-8143482243651573953</id><published>2011-08-24T19:48:00.000+01:00</published><updated>2011-08-24T19:48:10.950+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle VM'/><title type='text'>Oracle VM 3.0</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Announced yesterday Oracle VM 3.0 can be downloaded from &lt;a href="http://edelivery.oracle.com/"&gt;edelivery.oracle.com&lt;/a&gt;.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;I have downloaded Oracle VM server - 177 M and Oracle VM Manager - 2.4 GB. As far as I remember Oracle VM Manager is based on Oracle Database and Weblogic stack and this explain a little bit size of iso image with VM manager. &lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Documentation can found here -&lt;a href="http://download.oracle.com/docs/cd/E20065_01/index.htm"&gt;Oracle VM 3.0 documentation.&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;ps. Going to install it now&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;regards,&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Marcin&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-8143482243651573953?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/8143482243651573953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=8143482243651573953' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/8143482243651573953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/8143482243651573953'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/08/oracle-vm-30.html' title='Oracle VM 3.0'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-7495860498222476103</id><published>2011-08-06T17:07:00.001+01:00</published><updated>2011-08-06T17:09:02.714+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PL/SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>PL/SQL myths busted</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;RSS feed from &lt;a href="http://www.oaktable.net/feed/blog-rss.xml"&gt;Oakie's blog&lt;/a&gt; point me to Toon's Koppelaars post and his redirection to &lt;a href="http://ora-00001.blogspot.com/"&gt;Morten Braten &lt;/a&gt;blog. Morten wrote excellent post about stored PL/SQL procedures - &lt;a href="http://ora-00001.blogspot.com/2011/07/mythbusters-stored-procedures-edition.html"&gt;Mythbusters: Stored Procedures Edition.&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;regards,&lt;/div&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Marcin&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-7495860498222476103?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/7495860498222476103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=7495860498222476103' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7495860498222476103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7495860498222476103'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/08/plsql-myths-busted.html' title='PL/SQL myths busted'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-721408143294677171</id><published>2011-07-28T19:42:00.000+01:00</published><updated>2011-07-28T19:42:00.799+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='baselines'/><category scheme='http://www.blogger.com/atom/ns#' term='SPM'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle 11gR2'/><title type='text'>How to find SQL_ID and PLAN_HASH_VALUE in Oracle SQL Plan Management Baselines</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;SQL_ID and/or PLAN_HASH_VALUE are used almost globally across Oracle database to identify query. This is not a case for SPM mechanism&lt;br /&gt;using different identifiers - SQL_HANDLE for query and PLAN_NAME for execution plan. SQL_HANDLE contain hexadecimal representation of EXACT_MATCHING_SIGNATURE from V$SQL but we don't have any information in DBA_SQL_PLAN_BASELINES about SQL_ID and PLAN_HASH_VALUE. &lt;br /&gt;After some research I found two ways to find SQL_ID matched to SQL baseline (if there is more please let me know).&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Let me present following example - first of all test environment will be prepared&lt;/div&gt;&lt;blockquote&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; select sql_handle, plan_name from dba_sql_plan_baselines;&lt;br /&gt;&lt;br /&gt;no rows selected&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; select count(*) from soe.customers where customer_id = 19998;&lt;br /&gt;&lt;br /&gt;  COUNT(*)&lt;br /&gt;----------&lt;br /&gt;         1&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; select sql_id, plan_hash_value, exact_matching_signature, sql_plan_baseline from v$sql where sql_text = 'select count(*) from soe.customers where customer_id = 19998';&lt;br /&gt;&lt;br /&gt;SQL_ID                       PLAN_HASH_VALUE       EXACT_MATCHING_SIGNATURE SQL_PLAN_BASELINE&lt;br /&gt;------------- ------------------------------ ------------------------------ ------------------------------&lt;br /&gt;aa1m3a9b64srz                     1925551782           18089075686129158449&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;There is no plan baseline at the beginning to make it more clear and only baseline for test query will be loaded.&lt;/div&gt;&lt;blockquote&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; vari rc number&lt;br /&gt;SQL&amp;gt; exec :rc:=dbms_spm.load_plans_from_cursor_cache(sql_id=&amp;gt;'aa1m3a9b64srz',plan_hash_value=&amp;gt;1925551782)&lt;br /&gt;&lt;br /&gt;PL/SQL procedure successfully completed.&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; print rc&lt;br /&gt;&lt;br /&gt;                            RC&lt;br /&gt;------------------------------&lt;br /&gt;                             1&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; select sql_id, plan_hash_value, exact_matching_signature, sql_plan_baseline from v$sql where sql_text = 'select count(*) from soe.customers where customer_id = 19998';&lt;br /&gt;&lt;br /&gt;SQL_ID                       PLAN_HASH_VALUE       EXACT_MATCHING_SIGNATURE SQL_PLAN_BASELINE&lt;br /&gt;------------- ------------------------------ ------------------------------ ------------------------------&lt;br /&gt;aa1m3a9b64srz                     1925551782           18089075686129158449&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; select count(*) from soe.customers where customer_id = 19998;&lt;br /&gt;&lt;br /&gt;                      COUNT(*)&lt;br /&gt;------------------------------&lt;br /&gt;                             1&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; select sql_id, plan_hash_value, exact_matching_signature, sql_plan_baseline from v$sql where sql_text = 'select count(*) from soe.customers where customer_id = 19998';&lt;br /&gt;&lt;br /&gt;SQL_ID                       PLAN_HASH_VALUE       EXACT_MATCHING_SIGNATURE SQL_PLAN_BASELINE&lt;br /&gt;------------- ------------------------------ ------------------------------ ------------------------------&lt;br /&gt;aa1m3a9b64srz                     1925551782           18089075686129158449&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Plan baseline has been loaded but still not used by query - new cursor has to be opened.&lt;/div&gt;&lt;blockquote&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; alter system flush shared_pool;&lt;br /&gt;&lt;br /&gt;System altered.&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; select count(*) from soe.customers where customer_id = 19998;&lt;br /&gt;&lt;br /&gt;                      COUNT(*)&lt;br /&gt;------------------------------&lt;br /&gt;                             1&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; select sql_id, plan_hash_value, exact_matching_signature, sql_plan_baseline from v$sql where sql_text = 'select count(*) from soe.customers where customer_id = 19998';&lt;br /&gt;&lt;br /&gt;SQL_ID                       PLAN_HASH_VALUE       EXACT_MATCHING_SIGNATURE SQL_PLAN_BASELINE&lt;br /&gt;------------- ------------------------------ ------------------------------ ------------------------------&lt;br /&gt;aa1m3a9b64srz                     1925551782           18089075686129158449 SQL_PLAN_gq2afgwdf4k9je2333459&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;After reload test query is using SQL plan baseline.&lt;br /&gt;&lt;br /&gt;Now is a time to present first method of conversing SQL_HANLDE and PLAN_NAME into SQL_ID and PLAN_HASH_VALUE. This method is simple but it has one pitfall - query has to be in shared pool.&lt;/div&gt;&lt;blockquote&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; select sql_id, plan_hash_value, exact_matching_signature, sql_plan_baseline from v$sql where sql_text = 'select count(*) from soe.customers where customer_id = 19998';&lt;br /&gt;&lt;br /&gt;SQL_ID                       PLAN_HASH_VALUE       EXACT_MATCHING_SIGNATURE SQL_PLAN_BASELINE&lt;br /&gt;------------- ------------------------------ ------------------------------ ------------------------------&lt;br /&gt;aa1m3a9b64srz                     1925551782           18089075686129158449 SQL_PLAN_gq2afgwdf4k9je2333459&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; select sql_handle from dba_sql_plan_baselines where plan_name = 'SQL_PLAN_gq2afgwdf4k9je2333459';&lt;br /&gt;&lt;br /&gt;SQL_HANDLE&lt;br /&gt;------------------------------&lt;br /&gt;SQL_fb094e7f1ae24931&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; select sql_handle, plan_name from dba_sql_plan_baselines where sql_handle = 'SQL_fb094e7f1ae24931';&lt;br /&gt;&lt;br /&gt;SQL_HANDLE                     PLAN_NAME&lt;br /&gt;------------------------------ ------------------------------&lt;br /&gt;SQL_fb094e7f1ae24931           SQL_PLAN_gq2afgwdf4k9je2333459&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;First we need to display SQL_PLAN_BASELINE from V$SQL which is related to PLAN_NAME column in DBA_SQL_PLAN_BASELINES. Second query shows SQL_HANDLE for that PLAN_NAME and last one will show all entries (it can be more plans for one query) for this particular SQL_HANDLE. At the end all required information are on screen. I have used this method for long time but I hit into problem several times as my query wasn't in v$sql anymore.&lt;br /&gt;&lt;br /&gt;Second method is more complicated but it is working even when SQL is not in shared pool any more. DBMS_XPLAN has possibility to display plan for particular SQL_HANDLE and it will be our source of PLAN_HASH_VALUE&lt;/div&gt;&lt;blockquote&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; select * from table(dbms_xplan.DISPLAY_SQL_PLAN_BASELINE('SQL_fb094e7f1ae24931'));&lt;br /&gt;&lt;br /&gt;PLAN_TABLE_OUTPUT&lt;br /&gt;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;SQL handle: SQL_fb094e7f1ae24931&lt;br /&gt;SQL text: select count(*) from soe.customers where customer_id = 19998&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;Plan name: SQL_PLAN_gq2afgwdf4k9je2333459         Plan id: 3795006553&lt;br /&gt;Enabled: YES     Fixed: NO      Accepted: YES     Origin: MANUAL-LOAD&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Plan hash value: 1925551782&lt;br /&gt;&lt;br /&gt;-------------------------------------------------------------------------------------------------------&lt;br /&gt;| Id  | Operation              | Name         | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |&lt;br /&gt;-------------------------------------------------------------------------------------------------------&lt;br /&gt;|   0 | SELECT STATEMENT       |              |     1 |     6 |     1   (0)| 00:00:01 |       |       |&lt;br /&gt;|   1 |  SORT AGGREGATE        |              |     1 |     6 |            |          |       |       |&lt;br /&gt;|   2 |   PARTITION HASH SINGLE|              |     1 |     6 |     1   (0)| 00:00:01 |    16 |    16 |&lt;br /&gt;|*  3 |    INDEX UNIQUE SCAN   | CUSTOMERS_PK |     1 |     6 |     1   (0)| 00:00:01 |    16 |    16 |&lt;br /&gt;-------------------------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Predicate Information (identified by operation id):&lt;br /&gt;---------------------------------------------------&lt;br /&gt;&lt;br /&gt;   3 - access("CUSTOMER_ID"=19998)&lt;br /&gt;&lt;br /&gt;26 rows selected.&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Unfortunately there is no still information about SQL_ID. But I realize that DBA_SQL_PLAN_BASELINES is keeping full text of SQL query so I should be able to calculate HASH_VALUE. Anyway this is what DBMS_XPLAN is using to generate PLAN_HASH_VALUE - optimizer is generating plan when DBMS_XPLAN.DISPLAY_SQL_PLAN_BASELINE has been invoked. I tried to calculate SQL_ID using md5sum or perl but then I recall post from &lt;a href="http://blog.tanelpoder.com/2009/02/22/sql_id-is-just-a-fancy-representation-of-hash-value/"&gt;Tanel Poder blog&lt;/a&gt; how to calculate SQL_ID based on HASH_VALUE and other post by &lt;a href="http://www.slaviks-blog.com/2010/03/30/oracle-sql_id-and-hash-value/"&gt;Slavik Markovich&lt;/a&gt; how to calculate SQL_ID using PL/SQL. Great Work Guys !&lt;br /&gt;Rest was quite simple - I joined all parts together (PL/SQL loop calculating SQL_ID has been taken from Slavik script)&lt;/div&gt;&lt;blockquote&gt;&lt;pre class="brush:sql"&gt;declare&lt;br /&gt;v_sqlid VARCHAR2(13);&lt;br /&gt;v_num number;&lt;br /&gt;BEGIN&lt;br /&gt;dbms_output.put_line('SQL_ID       '||' '|| 'PLAN_HASH_VALUE' || ' ' || 'SQL_HANDLE                    ' || ' ' || 'PLAN_NAME');&lt;br /&gt;dbms_output.put_line('-------------'||' '|| '---------------' || ' ' || '------------------------------' || ' ' || '--------------------------------');&lt;br /&gt;for a in (select sql_handle, plan_name, trim(substr(g.PLAN_TABLE_OUTPUT,instr(g.PLAN_TABLE_OUTPUT,':')+1)) plan_hash_value, sql_text&lt;br /&gt;                 from (select t.*, c.sql_handle, c.plan_name, c.sql_text from dba_sql_plan_baselines c, table(dbms_xplan.DISPLAY_SQL_PLAN_BASELINE(c.sql_handle, c.plan_name)) t&lt;br /&gt;                 where c.sql_handle = '&amp;amp;sql_handle') g&lt;br /&gt;                 where PLAN_TABLE_OUTPUT like 'Plan hash value%') loop&lt;br /&gt;    v_num := to_number(sys.UTL_RAW.reverse(sys.UTL_RAW.SUBSTR(sys.dbms_crypto.hash(src =&amp;gt; UTL_I18N.string_to_raw(a.sql_text || chr(0),'AL32UTF8'), typ =&amp;gt; 2),9,4)) || sys.UTL_RAW.reverse(sys.UTL_RAW.SUBSTR(sys.dbms_crypto.hash(src =&amp;gt; UTL_I18N.string_to_raw(a.sql_text || chr(0),'AL32UTF8'), typ =&amp;gt; 2),13,4)),RPAD('x', 16, 'x'));&lt;br /&gt;    v_sqlid := '';&lt;br /&gt;    FOR i IN 0 .. FLOOR(LN(v_num) / LN(32))&lt;br /&gt;    LOOP&lt;br /&gt;        v_sqlid := SUBSTR('0123456789abcdfghjkmnpqrstuvwxyz',FLOOR(MOD(v_num / POWER(32, i), 32)) + 1,1) || v_sqlid;&lt;br /&gt;    END LOOP;&lt;br /&gt;    dbms_output.put_line(v_sqlid ||' ' || rpad(a.plan_hash_value,15) || ' ' || rpad(a.sql_handle,30) ||  ' ' || rpad(a.plan_name,30));&lt;br /&gt;end loop;&lt;br /&gt;end;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;How it work:&lt;/div&gt;&lt;blockquote&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; declare&lt;br /&gt;  2  v_sqlid VARCHAR2(13);&lt;br /&gt;  3  v_num number;&lt;br /&gt;  4  BEGIN&lt;br /&gt;dbms_output.put_line('SQL_ID       '||' '|| 'PLAN_HASH_VALUE' || ' ' || 'SQL_HANDLE                    ' || ' ' || 'PLAN_NAME');&lt;br /&gt;  6      LOOP&lt;br /&gt;dbms_output.put_line('-------------'||' '|| '---------------' || ' ' || '------------------------------' || ' ' || '--------------------------------');&lt;br /&gt;for a in (select sql_handle, plan_name, trim(substr(g.PLAN_TABLE_OUTPUT,instr(g.PLAN_TABLE_OUTPUT,':')+1)) plan_hash_value, sql_text&lt;br /&gt;                 from (select t.*, c.sql_handle, c.plan_name, c.sql_text from dba_sql_plan_baselines c, table(dbms_xplan.DISPLAY_SQL_PLAN_BASELINE(c.sql_handle, c.plan_name)) t&lt;br /&gt;                 where c.sql_handle = '&amp;amp;sql_handle') g&lt;br /&gt;                 where PLAN_TABLE_OUTPUT like 'Plan hash value%') loop&lt;br /&gt;    v_num := to_number(sys.UTL_RAW.reverse(sys.UTL_RAW.SUBSTR(sys.dbms_crypto.hash(src =&amp;gt; UTL_I18N.string_to_raw(a.sql_text || chr(0),'AL32UTF8'), typ =&amp;gt; 2),9,4)) || sys.UTL_RAW.reverse(sys.UTL_RAW.SUBSTR(sys.dbms_crypto.hash(src =&amp;gt; UTL_I18N.string_to_raw(a.sql_text || chr(0),'AL32UTF8'), typ =&amp;gt; 2),13,4)),RPAD('x', 16, 'x'));&lt;br /&gt;    v_sqlid := '';&lt;br /&gt;    FOR i IN 0 .. FLOOR(LN(v_num) / LN(32))&lt;br /&gt;    LOOP&lt;br /&gt;        v_sqlid := SUBSTR('0123456789abcdfghjkmnpqrstuvwxyz',FLOOR(MOD(v_num / POWER(32, i), 32)) + 1,1) || v_sqlid;&lt;br /&gt;    END LOOP;&lt;br /&gt;    dbms_output.put_line(v_sqlid ||' ' || rpad(a.plan_hash_value,15) || ' ' || rpad(a.sql_handle,30) ||  ' ' || rpad(a.plan_name,30));&lt;br /&gt; 18  end loop;&lt;br /&gt; 19  end;&lt;br /&gt; 20  /&lt;br /&gt;Enter value for sql_handle: SQL_fb094e7f1ae24931&lt;br /&gt;old   9:                  where c.sql_handle = '&amp;amp;sql_handle') g&lt;br /&gt;new   9:                  where c.sql_handle = 'SQL_fb094e7f1ae24931') g&lt;br /&gt;SQL_ID        PLAN_HASH_VALUE SQL_HANDLE                     PLAN_NAME&lt;br /&gt;------------- --------------- ------------------------------ --------------------------------&lt;br /&gt;aa1m3a9b64srz 1925551782      SQL_fb094e7f1ae24931           SQL_PLAN_gq2afgwdf4k9je2333459&lt;br /&gt;&lt;br /&gt;PL/SQL procedure successfully completed.&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Let me clean shared pool&lt;/div&gt;&lt;blockquote&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; alter system flush shared_pool;&lt;br /&gt;&lt;br /&gt;System altered.&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; select sql_id, plan_hash_value, exact_matching_signature, sql_plan_baseline from v$sql where sql_text = 'select count(*) from soe.customers where customer_id = 19998';&lt;br /&gt;&lt;br /&gt;no rows selected&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Let's try one more time&lt;/div&gt;&lt;blockquote&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; declare&lt;br /&gt;  2  v_sqlid VARCHAR2(13);&lt;br /&gt;  3  v_num number;&lt;br /&gt;  4  BEGIN&lt;br /&gt;dbms_output.put_line('SQL_ID       '||' '|| 'PLAN_HASH_VALUE' || ' ' || 'SQL_HANDLE                    ' || ' ' || 'PLAN_NAME');&lt;br /&gt;  6      LOOP&lt;br /&gt;dbms_output.put_line('-------------'||' '|| '---------------' || ' ' || '------------------------------' || ' ' || '--------------------------------');&lt;br /&gt;for a in (select sql_handle, plan_name, trim(substr(g.PLAN_TABLE_OUTPUT,instr(g.PLAN_TABLE_OUTPUT,':')+1)) plan_hash_value, sql_text&lt;br /&gt;                 from (select t.*, c.sql_handle, c.plan_name, c.sql_text from dba_sql_plan_baselines c, table(dbms_xplan.DISPLAY_SQL_PLAN_BASELINE(c.sql_handle, c.plan_name)) t&lt;br /&gt;                 where c.sql_handle = '&amp;amp;sql_handle') g&lt;br /&gt;                 where PLAN_TABLE_OUTPUT like 'Plan hash value%') loop&lt;br /&gt;    v_num := to_number(sys.UTL_RAW.reverse(sys.UTL_RAW.SUBSTR(sys.dbms_crypto.hash(src =&amp;gt; UTL_I18N.string_to_raw(a.sql_text || chr(0),'AL32UTF8'), typ =&amp;gt; 2),9,4)) || sys.UTL_RAW.reverse(sys.UTL_RAW.SUBSTR(sys.dbms_crypto.hash(src =&amp;gt; UTL_I18N.string_to_raw(a.sql_text || chr(0),'AL32UTF8'), typ =&amp;gt; 2),13,4)),RPAD('x', 16, 'x'));&lt;br /&gt;    v_sqlid := '';&lt;br /&gt;    FOR i IN 0 .. FLOOR(LN(v_num) / LN(32))&lt;br /&gt;    LOOP&lt;br /&gt;        v_sqlid := SUBSTR('0123456789abcdfghjkmnpqrstuvwxyz',FLOOR(MOD(v_num / POWER(32, i), 32)) + 1,1) || v_sqlid;&lt;br /&gt;    END LOOP;&lt;br /&gt;    dbms_output.put_line(v_sqlid ||' ' || rpad(a.plan_hash_value,15) || ' ' || rpad(a.sql_handle,30) ||  ' ' || rpad(a.plan_name,30));&lt;br /&gt; 18  end loop;&lt;br /&gt; 19  end;&lt;br /&gt; 20  /&lt;br /&gt;Enter value for sql_handle: SQL_fb094e7f1ae24931&lt;br /&gt;old   9:                  where c.sql_handle = '&amp;amp;sql_handle') g&lt;br /&gt;new   9:                  where c.sql_handle = 'SQL_fb094e7f1ae24931') g&lt;br /&gt;SQL_ID        PLAN_HASH_VALUE SQL_HANDLE                     PLAN_NAME&lt;br /&gt;------------- --------------- ------------------------------ --------------------------------&lt;br /&gt;aa1m3a9b64srz 1925551782      SQL_fb094e7f1ae24931           SQL_PLAN_gq2afgwdf4k9je2333459&lt;br /&gt;&lt;br /&gt;PL/SQL procedure successfully completed.&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; select sql_id, plan_hash_value, exact_matching_signature, sql_plan_baseline from v$sql where sql_text = 'select count(*) from soe.customers where customer_id = 19998';&lt;br /&gt;&lt;br /&gt;no rows selected&lt;br /&gt;&lt;br /&gt;SQL&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Hope it help work with SQL Plan Management feature.&lt;br /&gt;&lt;br /&gt;regards,&lt;br /&gt;Marcin&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-721408143294677171?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/721408143294677171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=721408143294677171' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/721408143294677171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/721408143294677171'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/07/how-to-find-sqlid-and-planhashvalue-in.html' title='How to find SQL_ID and PLAN_HASH_VALUE in Oracle SQL Plan Management Baselines'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-7389879709909028178</id><published>2011-07-24T17:20:00.000+01:00</published><updated>2011-07-24T17:20:18.987+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='11g'/><category scheme='http://www.blogger.com/atom/ns#' term='RMAN'/><title type='text'>RMAN Database duplication without target connectivity can corrupt target database</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Latest version of Oracle 11g R2   has new Recovery Manager functionality - database duplication from   backup without connectivity to target database.&lt;/span&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt; During tests I have found unexpected behavior of that functionality. I'm still not sure if it is bug or RMAN is doing it by design but if backup doesn't contain all files and SKIP TABLESPACE is not included, duplication process can overwrite target database files. When database is using ASM it can happen regardless of database state. Due to file locking mechanism this issue occur on file system only when target database is down. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;All has been performed using Oracle version 11.2.0.2 on Red Hat 5.3 running target and auxiliary database on one server using file system. I have tested it with ASM as well but log files are gone together with my VM machine.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Target database is down, Backup has been taken without one tablespace,&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;no SKIP TABLESPACE clause.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Duplication script:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre class="brush:bash"&gt;run {&lt;br /&gt;set newname for tempefile 1 to '/opt/app/oracle/oradata/clon/temp01.dbf';&lt;br /&gt;duplicate target database to clon&lt;br /&gt;SPFILE&lt;br /&gt;    PARAMETER_VALUE_CONVERT '/opt/app/oracle/admin/testdb/',&lt;br /&gt;                            '/opt/app/oracle/admin/clon/'&lt;br /&gt;    SET SGA_MAX_SIZE '500M'&lt;br /&gt;    SET CONTROL_FILES '/opt/app/oracle/oradata/clon/control01.ctl','/opt/app/oracle/oradata/clon/control02.ctl'&lt;br /&gt;    SET SGA_TARGET '450M'&lt;br /&gt;    SET CLUSTER_DATABASE 'false'&lt;br /&gt;    SET db_create_file_dest          '/opt/app/oracle/oradata/clon/'&lt;br /&gt;    SET db_create_online_log_dest_1  '/opt/app/oracle/oradata/clon/'&lt;br /&gt;    SET LOG_FILE_NAME_CONVERT  '/opt/app/oracle/oradata/testdb/','/opt/app/oracle/oradata/clon/'&lt;br /&gt;    SET DB_FILE_NAME_CONVERT   '/opt/app/oracle/oradata/testdb/','/opt/app/oracle/oradata/clon/'&lt;br /&gt;    BACKUP LOCATION '/opt/app/oracle/backup/';&lt;br /&gt;}&lt;/pre&gt;&lt;/blockquote&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Let's take a look on output - unimportant lines have been skipped&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre class="brush:bash"&gt;Recovery Manager: Release 11.2.0.2.0 - Production on Tue Jun 21 07:17:34 2011&lt;br /&gt;Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.&lt;br /&gt;connected to auxiliary database: CLON (not mounted)&lt;br /&gt;&lt;br /&gt;Starting Duplicate Db at 21-JUN-11&lt;br /&gt;...&lt;br /&gt;Starting restore at 21-JUN-11&lt;br /&gt;allocated channel: ORA_AUX_DISK_1&lt;br /&gt;channel ORA_AUX_DISK_1: SID=171 device type=DISK&lt;br /&gt;&lt;br /&gt;channel ORA_AUX_DISK_1: restoring control file&lt;br /&gt;channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03&lt;br /&gt;output file name=/opt/app/oracle/oradata/clon/control01.ctl&lt;br /&gt;output file name=/opt/app/oracle/oradata/clon/control02.ctl&lt;br /&gt;Finished restore at 21-JUN-11&lt;br /&gt;&lt;br /&gt;database mounted&lt;br /&gt;released channel: ORA_AUX_DISK_1&lt;br /&gt;allocated channel: ORA_AUX_DISK_1&lt;br /&gt;channel ORA_AUX_DISK_1: SID=171 device type=DISK&lt;br /&gt;&lt;br /&gt;contents of Memory Script:&lt;br /&gt;{&lt;br /&gt;   set until scn  95159515;&lt;br /&gt;   set newname for datafile  1 to &lt;br /&gt; "/opt/app/oracle/oradata/clon/system-01.dbf";&lt;br /&gt;   set newname for datafile  2 to &lt;br /&gt; "/opt/app/oracle/oradata/clon/undo_t1-01.dbf";&lt;br /&gt;   set newname for datafile  3 to &lt;br /&gt; "/opt/app/oracle/oradata/clon/sysaux-01.dbf";&lt;br /&gt;   set newname for datafile  4 to &lt;br /&gt; "/opt/app/oracle/oradata/clon/administrator-01.dbf";&lt;br /&gt;   set newname for datafile  5 to &lt;br /&gt; "/opt/app/oracle/oradata/clon/administrator_idx-01.dbf";&lt;br /&gt;   set newname for datafile  6 to &lt;br /&gt; "/opt/app/oracle/oradata/clon/replication-01.dbf";&lt;br /&gt;   set newname for datafile  7 to &lt;br /&gt; "/opt/app/oracle/oradata/clon/replication_idx-01.dbf";&lt;br /&gt;   set newname for datafile  8 to &lt;br /&gt; "/opt/app/oracle/oradata/clon/soe.dbf";&lt;br /&gt;   set newname for datafile  9 to &lt;br /&gt; "/opt/app/oracle/oradata/clon/soeindex.dbf";&lt;br /&gt;   set newname for datafile  10 to &lt;br /&gt; "/opt/app/oracle/oradata/clon/users-01.dbf";&lt;br /&gt;   restore&lt;br /&gt;   clone database&lt;br /&gt;   ;&lt;br /&gt;}&lt;br /&gt;executing Memory Script&lt;br /&gt;executing command: SET until clause&lt;br /&gt;executing command: SET NEWNAME&lt;br /&gt;executing command: SET NEWNAME&lt;br /&gt;executing command: SET NEWNAME&lt;br /&gt;executing command: SET NEWNAME&lt;br /&gt;executing command: SET NEWNAME&lt;br /&gt;executing command: SET NEWNAME&lt;br /&gt;executing command: SET NEWNAME&lt;br /&gt;executing command: SET NEWNAME&lt;br /&gt;executing command: SET NEWNAME&lt;br /&gt;executing command: SET NEWNAME&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;So far so good - new name has been set for all files. What is next&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre class="brush:bash"&gt;file 9 is excluded from whole database backup&lt;br /&gt;channel ORA_AUX_DISK_1: starting datafile backup set restore&lt;br /&gt;channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set&lt;br /&gt;channel ORA_AUX_DISK_1: restoring datafile 00001 to /opt/app/oracle/oradata/clon/system-01.dbf&lt;br /&gt;channel ORA_AUX_DISK_1: restoring datafile 00002 to /opt/app/oracle/oradata/clon/undo_t1-01.dbf&lt;br /&gt;channel ORA_AUX_DISK_1: restoring datafile 00003 to /opt/app/oracle/oradata/clon/sysaux-01.dbf&lt;br /&gt;channel ORA_AUX_DISK_1: restoring datafile 00004 to /opt/app/oracle/oradata/clon/administrator-01.dbf&lt;br /&gt;channel ORA_AUX_DISK_1: restoring datafile 00005 to /opt/app/oracle/oradata/clon/administrator_idx-01.dbf&lt;br /&gt;channel ORA_AUX_DISK_1: restoring datafile 00006 to /opt/app/oracle/oradata/clon/replication-01.dbf&lt;br /&gt;channel ORA_AUX_DISK_1: restoring datafile 00007 to /opt/app/oracle/oradata/clon/replication_idx-01.dbf&lt;br /&gt;channel ORA_AUX_DISK_1: restoring datafile 00008 to /opt/app/oracle/oradata/clon/soe.dbf&lt;br /&gt;channel ORA_AUX_DISK_1: restoring datafile 00010 to /opt/app/oracle/oradata/clon/users-01.dbf&lt;br /&gt;channel ORA_AUX_DISK_1: reading from backup piece /opt/app/oracle/backup/bck_13_testdb_1&lt;br /&gt;channel ORA_AUX_DISK_1: piece handle=/opt/app/oracle/backup/bck_13_testdb_1 tag=TAG20110621T064346&lt;br /&gt;channel ORA_AUX_DISK_1: restored backup piece 1&lt;br /&gt;channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:06:36&lt;br /&gt;failover to previous backup&lt;br /&gt;&lt;br /&gt;Finished restore at 21-JUN-11&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;All files from backupset have been restored and Oracle realize that one file is missing. Keep in mind that new name has been prepared for all files.&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre class="brush:bash"&gt;contents of Memory Script:&lt;br /&gt;{&lt;br /&gt;   switch clone datafile all;&lt;br /&gt;}&lt;br /&gt;executing Memory Script&lt;br /&gt;&lt;br /&gt;datafile 1 switched to datafile copy&lt;br /&gt;input datafile copy RECID=10 STAMP=754384699 file name=/opt/app/oracle/oradata/clon/system-01.dbf&lt;br /&gt;datafile 2 switched to datafile copy&lt;br /&gt;input datafile copy RECID=11 STAMP=754384699 file name=/opt/app/oracle/oradata/clon/undo_t1-01.dbf&lt;br /&gt;datafile 3 switched to datafile copy&lt;br /&gt;input datafile copy RECID=12 STAMP=754384699 file name=/opt/app/oracle/oradata/clon/sysaux-01.dbf&lt;br /&gt;datafile 4 switched to datafile copy&lt;br /&gt;input datafile copy RECID=13 STAMP=754384699 file name=/opt/app/oracle/oradata/clon/administrator-01.dbf&lt;br /&gt;datafile 5 switched to datafile copy&lt;br /&gt;input datafile copy RECID=14 STAMP=754384699 file name=/opt/app/oracle/oradata/clon/administrator_idx-01.dbf&lt;br /&gt;datafile 6 switched to datafile copy&lt;br /&gt;input datafile copy RECID=15 STAMP=754384699 file name=/opt/app/oracle/oradata/clon/replication-01.dbf&lt;br /&gt;datafile 7 switched to datafile copy&lt;br /&gt;input datafile copy RECID=16 STAMP=754384699 file name=/opt/app/oracle/oradata/clon/replication_idx-01.dbf&lt;br /&gt;datafile 8 switched to datafile copy&lt;br /&gt;input datafile copy RECID=17 STAMP=754384699 file name=/opt/app/oracle/oradata/clon/soe.dbf&lt;br /&gt;datafile 10 switched to datafile copy&lt;br /&gt;input datafile copy RECID=18 STAMP=754384700 file name=/opt/app/oracle/oradata/clon/users-01.dbf&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;This switch command is starting this issue - missing file hasn't been switch to new location&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre class="brush:bash"&gt;contents of Memory Script:&lt;br /&gt;{&lt;br /&gt;   set until scn  95159515;&lt;br /&gt;   recover&lt;br /&gt;   clone database&lt;br /&gt;   delete archivelog&lt;br /&gt;   ;&lt;br /&gt;}&lt;br /&gt;executing Memory Script&lt;br /&gt;executing command: SET until clause&lt;br /&gt;Starting recover at 21-JUN-11&lt;br /&gt;using channel ORA_AUX_DISK_1&lt;br /&gt;starting media recovery&lt;br /&gt;channel ORA_AUX_DISK_1: starting archived log restore to default destination&lt;br /&gt;channel ORA_AUX_DISK_1: restoring archived log&lt;br /&gt;archived log thread=1 sequence=1024&lt;br /&gt;channel ORA_AUX_DISK_1: restoring archived log&lt;br /&gt;archived log thread=1 sequence=1025&lt;br /&gt;channel ORA_AUX_DISK_1: reading from backup piece /opt/app/oracle/backup/bck_arch_16_testdb_1&lt;br /&gt;channel ORA_AUX_DISK_1: piece handle=/opt/app/oracle/backup/bck_arch_16_testdb_1 tag=TAG20110621T070623&lt;br /&gt;channel ORA_AUX_DISK_1: restored backup piece 1&lt;br /&gt;channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03&lt;br /&gt;archived log file name=/opt/app/oracle/fra/CLON/archivelog/2011_06_21/o1_mf_1_1024_700kfxcx_.arc thread=1 sequence=1024&lt;br /&gt;channel clone_default: deleting archived log(s)&lt;br /&gt;archived log file name=/opt/app/oracle/fra/CLON/archivelog/2011_06_21/o1_mf_1_1024_700kfxcx_.arc RECID=2 STAMP=754384704&lt;br /&gt;archived log file name=/opt/app/oracle/fra/CLON/archivelog/2011_06_21/o1_mf_1_1025_700kfxg6_.arc thread=1 sequence=1025&lt;br /&gt;Oracle Error: &lt;br /&gt;ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below&lt;br /&gt;ORA-01152: file 9 was not restored from a sufficiently old backup &lt;br /&gt;ORA-01110: data file 9: '/opt/app/oracle/oradata/testdb/soeindex.dbf'&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;The worst part is here - RMAN was trying to apply logs to other database using entries from control file - the TARGET database entries. DBID at that time for target and clone database are still the same and target database was down so there are no locks. Nothing could prevent this process to overwrite target database file header.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;What happen to target database ? The following error will be found in target alert.log file&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre class="brush:bash"&gt;Read of datafile '/opt/app/oracle/oradata/testdb/soeindex.dbf' (fno 9) header failed with ORA-01206&lt;br /&gt;Rereading datafile 9 header failed with ORA-01206&lt;br /&gt;Errors in file /opt/app/oracle/diag/rdbms/testdb/testdb/trace/testdb_dbw0_4984.trc:&lt;br /&gt;ORA-01186: file 9 failed verification tests&lt;br /&gt;ORA-01122: database file 9 failed verification check&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;File in target database has been corrupted during duplication process and &lt;/span&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;it has to be restored from backup or dropped.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Target database is running, backup has been taken without one table space,&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;no SKIP TABLESPACE clause.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Duplication process is starting in similar way to previous scenario but instead of overwriting target file the following error is reporting during recovery process.&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre class="brush:bash"&gt;RMAN-11001: Oracle Error: &lt;br /&gt;ORA-00283: recovery session canceled due to errors&lt;br /&gt;ORA-01110: data file 9: '/opt/app/oracle/oradata/testdb/soeindex.dbf'&lt;br /&gt;ORA-01157: cannot identify/lock data file 9 - see DBWR trace file&lt;br /&gt;ORA-01110: data file 9: '/opt/app/oracle/oradata/testdb/soeindex.dbf'&lt;/pre&gt;&lt;/blockquote&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;This time duplication process failed but target database wasn't touched.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Target database is down, Backup has been taken without one tablespace,&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;SKIP TABLESPACE clause has been setup&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;This time backup still doesn't have all files but SKIP_TABLESPACE has been added to script. Recovery manager is working now without any issues&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre class="brush:bash"&gt;Recovery Manager: Release 11.2.0.2.0 - Production on Tue Jun 21 09:32:21 2011&lt;br /&gt;Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.&lt;br /&gt;connected to auxiliary database: CLON (not mounted)&lt;br /&gt;RMAN&amp;gt; run {&lt;br /&gt;2&amp;gt; set newname for tempfile 1 to '/opt/app/oracle/oradata/clon/temp01.dbf';&lt;br /&gt;3&amp;gt;                                                             &lt;br /&gt;4&amp;gt; duplicate target database to clon                           &lt;br /&gt;5&amp;gt; SPFILE                                                      &lt;br /&gt;6&amp;gt;     PARAMETER_VALUE_CONVERT '/opt/app/oracle/admin/testdb/',&lt;br /&gt;7&amp;gt;                             '/opt/app/oracle/admin/clon/'   &lt;br /&gt;8&amp;gt;     SET SGA_MAX_SIZE '500M'                                 &lt;br /&gt;9&amp;gt;     SET CONTROL_FILES '/opt/app/oracle/oradata/clon/control01.ctl','/opt/app/oracle/oradata/clon/control02.ctl'&lt;br /&gt;10&amp;gt;     SET SGA_TARGET '450M'        &lt;br /&gt;11&amp;gt;     SET CLUSTER_DATABASE 'false' &lt;br /&gt;12&amp;gt;     SET db_create_file_dest          '/opt/app/oracle/oradata/clon/'&lt;br /&gt;13&amp;gt;     SET db_create_online_log_dest_1  '/opt/app/oracle/oradata/clon/'&lt;br /&gt;14&amp;gt;     SET LOG_FILE_NAME_CONVERT  '/opt/app/oracle/oradata/testdb/','/opt/app/oracle/oradata/clon/'&lt;br /&gt;15&amp;gt;     SET DB_FILE_NAME_CONVERT   '/opt/app/oracle/oradata/testdb/','/opt/app/oracle/oradata/clon/'&lt;br /&gt;16&amp;gt;     SKIP TABLESPACE 'SOEINDEX'                       &lt;br /&gt;17&amp;gt;     UNDO TABLESPACE 'UNDO_T1'                                                                   &lt;br /&gt;18&amp;gt;     BACKUP LOCATION '/opt/app/oracle/backup/';                                                  &lt;br /&gt;19&amp;gt; }     &lt;br /&gt;20&amp;gt; &lt;br /&gt;executing command: SET NEWNAME&lt;br /&gt;&lt;br /&gt;Starting Duplicate Db at 21-JUN-11&lt;br /&gt;...&lt;br /&gt;allocated channel: ORA_AUX_DISK_1&lt;br /&gt;channel ORA_AUX_DISK_1: SID=171 device type=DISK&lt;br /&gt;Not connected to TARGET or TARGET not open, cannot verify that subset of tablespaces is self-contained&lt;br /&gt;Not connected to TARGET, cannot verify that set of tablespaces being duplicated does not have SYS objects&lt;br /&gt;Datafile 9 skipped by request&lt;br /&gt;&lt;br /&gt;contents of Memory Script:&lt;br /&gt;{&lt;br /&gt;   set until scn  95159515;&lt;br /&gt;   set newname for datafile  1 to &lt;br /&gt; "/opt/app/oracle/oradata/clon/system-01.dbf";&lt;br /&gt;   set newname for datafile  2 to &lt;br /&gt; "/opt/app/oracle/oradata/clon/undo_t1-01.dbf";&lt;br /&gt;   set newname for datafile  3 to &lt;br /&gt; "/opt/app/oracle/oradata/clon/sysaux-01.dbf";&lt;br /&gt;   set newname for datafile  4 to &lt;br /&gt; "/opt/app/oracle/oradata/clon/administrator-01.dbf";&lt;br /&gt;   set newname for datafile  5 to &lt;br /&gt; "/opt/app/oracle/oradata/clon/administrator_idx-01.dbf";&lt;br /&gt;   set newname for datafile  6 to &lt;br /&gt; "/opt/app/oracle/oradata/clon/replication-01.dbf";&lt;br /&gt;   set newname for datafile  7 to &lt;br /&gt; "/opt/app/oracle/oradata/clon/replication_idx-01.dbf";&lt;br /&gt;   set newname for datafile  8 to &lt;br /&gt; "/opt/app/oracle/oradata/clon/soe.dbf";&lt;br /&gt;   set newname for datafile  10 to &lt;br /&gt; "/opt/app/oracle/oradata/clon/users-01.dbf";&lt;br /&gt;   restore&lt;br /&gt;   clone database&lt;br /&gt;   skip forever tablespace  "SOEINDEX"   ;&lt;br /&gt;}&lt;br /&gt;executing Memory Script&lt;br /&gt;executing command: SET until clause&lt;br /&gt;executing command: SET NEWNAME&lt;br /&gt;executing command: SET NEWNAME&lt;br /&gt;executing command: SET NEWNAME&lt;br /&gt;executing command: SET NEWNAME&lt;br /&gt;executing command: SET NEWNAME&lt;br /&gt;executing command: SET NEWNAME&lt;br /&gt;executing command: SET NEWNAME&lt;br /&gt;executing command: SET NEWNAME&lt;br /&gt;executing command: SET NEWNAME&lt;br /&gt;&lt;br /&gt;Starting restore at 21-JUN-11&lt;br /&gt;using channel ORA_AUX_DISK_1&lt;br /&gt;&lt;br /&gt;channel ORA_AUX_DISK_1: starting datafile backup set restore&lt;br /&gt;channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set&lt;br /&gt;channel ORA_AUX_DISK_1: restoring datafile 00001 to /opt/app/oracle/oradata/clon/system-01.dbf&lt;br /&gt;channel ORA_AUX_DISK_1: restoring datafile 00002 to /opt/app/oracle/oradata/clon/undo_t1-01.dbf&lt;br /&gt;channel ORA_AUX_DISK_1: restoring datafile 00003 to /opt/app/oracle/oradata/clon/sysaux-01.dbf&lt;br /&gt;channel ORA_AUX_DISK_1: restoring datafile 00004 to /opt/app/oracle/oradata/clon/administrator-01.dbf&lt;br /&gt;channel ORA_AUX_DISK_1: restoring datafile 00005 to /opt/app/oracle/oradata/clon/administrator_idx-01.dbf&lt;br /&gt;channel ORA_AUX_DISK_1: restoring datafile 00006 to /opt/app/oracle/oradata/clon/replication-01.dbf&lt;br /&gt;channel ORA_AUX_DISK_1: restoring datafile 00007 to /opt/app/oracle/oradata/clon/replication_idx-01.dbf&lt;br /&gt;channel ORA_AUX_DISK_1: restoring datafile 00008 to /opt/app/oracle/oradata/clon/soe.dbf&lt;br /&gt;channel ORA_AUX_DISK_1: restoring datafile 00010 to /opt/app/oracle/oradata/clon/users-01.dbf&lt;br /&gt;channel ORA_AUX_DISK_1: reading from backup piece /opt/app/oracle/backup/bck_13_testdb_1&lt;br /&gt;channel ORA_AUX_DISK_1: piece handle=/opt/app/oracle/backup/bck_13_testdb_1 tag=TAG20110621T064346&lt;br /&gt;channel ORA_AUX_DISK_1: restored backup piece 1&lt;br /&gt;channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:06:25&lt;br /&gt;Finished restore at 21-JUN-11&lt;br /&gt;&lt;br /&gt;contents of Memory Script:&lt;br /&gt;{&lt;br /&gt;   switch clone datafile all;&lt;br /&gt;}&lt;br /&gt;executing Memory Script&lt;br /&gt;&lt;br /&gt;datafile 1 switched to datafile copy&lt;br /&gt;input datafile copy RECID=10 STAMP=754393152 file name=/opt/app/oracle/oradata/clon/system-01.dbf&lt;br /&gt;datafile 2 switched to datafile copy&lt;br /&gt;input datafile copy RECID=11 STAMP=754393152 file name=/opt/app/oracle/oradata/clon/undo_t1-01.dbf&lt;br /&gt;datafile 3 switched to datafile copy&lt;br /&gt;input datafile copy RECID=12 STAMP=754393152 file name=/opt/app/oracle/oradata/clon/sysaux-01.dbf&lt;br /&gt;datafile 4 switched to datafile copy&lt;br /&gt;input datafile copy RECID=13 STAMP=754393152 file name=/opt/app/oracle/oradata/clon/administrator-01.dbf&lt;br /&gt;datafile 5 switched to datafile copy&lt;br /&gt;input datafile copy RECID=14 STAMP=754393152 file name=/opt/app/oracle/oradata/clon/administrator_idx-01.dbf&lt;br /&gt;datafile 6 switched to datafile copy&lt;br /&gt;input datafile copy RECID=15 STAMP=754393152 file name=/opt/app/oracle/oradata/clon/replication-01.dbf&lt;br /&gt;datafile 7 switched to datafile copy&lt;br /&gt;input datafile copy RECID=16 STAMP=754393152 file name=/opt/app/oracle/oradata/clon/replication_idx-01.dbf&lt;br /&gt;datafile 8 switched to datafile copy&lt;br /&gt;input datafile copy RECID=17 STAMP=754393152 file name=/opt/app/oracle/oradata/clon/soe.dbf&lt;br /&gt;datafile 10 switched to datafile copy&lt;br /&gt;input datafile copy RECID=18 STAMP=754393152 file name=/opt/app/oracle/oradata/clon/users-01.dbf&lt;br /&gt;&lt;br /&gt;contents of Memory Script:&lt;br /&gt;{&lt;br /&gt;   set until scn  95159515;&lt;br /&gt;   recover&lt;br /&gt;   clone database&lt;br /&gt;   skip forever tablespace  "SOEINDEX"    delete archivelog&lt;br /&gt;   ;&lt;br /&gt;}&lt;br /&gt;executing Memory Script&lt;br /&gt;&lt;br /&gt;executing command: SET until clause&lt;br /&gt;&lt;br /&gt;Starting recover at 21-JUN-11&lt;br /&gt;using channel ORA_AUX_DISK_1&lt;br /&gt;&lt;br /&gt;Executing: alter database datafile 9 offline drop&lt;br /&gt;starting media recovery&lt;br /&gt;&lt;br /&gt;channel ORA_AUX_DISK_1: starting archived log restore to default destination&lt;br /&gt;channel ORA_AUX_DISK_1: restoring archived log&lt;br /&gt;archived log thread=1 sequence=1024&lt;br /&gt;channel ORA_AUX_DISK_1: restoring archived log&lt;br /&gt;archived log thread=1 sequence=1025&lt;br /&gt;channel ORA_AUX_DISK_1: reading from backup piece /opt/app/oracle/backup/bck_arch_16_testdb_1&lt;br /&gt;channel ORA_AUX_DISK_1: piece handle=/opt/app/oracle/backup/bck_arch_16_testdb_1 tag=TAG20110621T070623&lt;br /&gt;channel ORA_AUX_DISK_1: restored backup piece 1&lt;br /&gt;channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:07&lt;br /&gt;archived log file name=/opt/app/oracle/fra/CLON/archivelog/2011_06_21/o1_mf_1_1024_700sp3lj_.arc thread=1 sequence=1024&lt;br /&gt;channel clone_default: deleting archived log(s)&lt;br /&gt;archived log file name=/opt/app/oracle/fra/CLON/archivelog/2011_06_21/o1_mf_1_1024_700sp3lj_.arc RECID=2 STAMP=754393158&lt;br /&gt;archived log file name=/opt/app/oracle/fra/CLON/archivelog/2011_06_21/o1_mf_1_1025_700sp3p1_.arc thread=1 sequence=1025&lt;br /&gt;channel clone_default: deleting archived log(s)&lt;br /&gt;archived log file name=/opt/app/oracle/fra/CLON/archivelog/2011_06_21/o1_mf_1_1025_700sp3p1_.arc RECID=1 STAMP=754393155&lt;br /&gt;media recovery complete, elapsed time: 00:00:04&lt;br /&gt;Finished recover at 21-JUN-11&lt;br /&gt;Oracle instance started&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Additional step has been run before recover process - file from skipped table space has been dropped. In that case recovery process should touch it anymore from any location.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;This exercise is showing that all new features should be tested in safe environment and in addition to that every operation on production database has to be well tested. I can't blame only Recovery Manager here but it would nice to have more checks in place (ex. if not all files are in backup just cancel duplication after control file has been restored). This is a perfect example of human error (at least someone created that scripts and run it) which can in complex environment.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;regards,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Marcin&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-7389879709909028178?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/7389879709909028178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=7389879709909028178' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7389879709909028178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7389879709909028178'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/07/rman-database-duplication-without.html' title='RMAN Database duplication without target connectivity can corrupt target database'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-8461642247527920180</id><published>2011-06-18T17:30:00.001+01:00</published><updated>2011-06-18T17:33:21.099+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='AWR'/><category scheme='http://www.blogger.com/atom/ns#' term='11g'/><title type='text'>How to color (mark) SQL for AWR snapshots</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Are all SQL statements you’re looking for in your AWR repository ? If not, there is a simple way to ‘ask’ Oracle to include list of SQL_ID in every snapshot. All you need to do is color it. No, not using marker on the screen with Grid Control Performance tab but using &lt;a href="http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28419/d_wkrpos.htm#BACEEABC"&gt;DBMS_WORKLOAD_REPOSITORY. ADD_COLORED_SQL&lt;/a&gt;&amp;nbsp; procedure. Since you mark sql_id as colored it will be included in every AWR snapshot even if it is not one of the top SQL's.&lt;br /&gt;All colored sql_id together with creation date could be checked in the following view - &lt;a href="http://download.oracle.com/docs/cd/B28359_01/server.111/b28320/statviews_3192.htm"&gt;DBA_HIST_COLORED_SQL&lt;/a&gt;. After all work there is a simple way to uncolor sql_id (make it white ? ). There is a procedure called DBMS_WORKLOAD_REPOSITORY.REMOVE_COLORED_SQL.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Simple example:&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;- script used to display SQL statistics from AWR repository &lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;pre class="brush:sql; ruler: true;"&gt;$ cat sql_stats.sql&lt;br /&gt;col exetime format 99999999999.99&lt;br /&gt;col begin_interval_time format a30&lt;br /&gt;select begin_interval_time, PLAN_HASH_VALUE, ELAPSED_TIME_DELTA/EXECUTIONS_DELTA exetime, EXECUTIONS_DELTA, CPU_TIME_DELTA, ELAPSED_TIME_DELTA, DISK_READS_DELTA from dba_hist_sqlstat ss, dba_hist_snapshot s where s.snap_id = ss.snap_id and sql_id = '&amp;amp;SQL_ID' and s.snap_id &amp;gt; (select max(snap_id)-96 from dba_hist_snapshot) and EXECUTIONS_DELTA&amp;lt;&amp;gt;0 order by s.snap_id, sql_id;&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Checking AWR repository for particular SQL_ID.&lt;/div&gt;&lt;pre class="brush:sql; ruler: true;"&gt;SQL&amp;gt; @sql_stats.sql&lt;br /&gt;Enter value for sql_id: 6zfggtprazcvb&lt;br /&gt;old&amp;nbsp;&amp;nbsp; 2: where s.snap_id = ss.snap_id and sql_id = '&amp;amp;SQL_ID' and s.snap_id &amp;gt; (select max(snap_id)-96 from dba_hist_snapshot) and EXECUTIONS_DELTA&amp;lt;&amp;gt;0 order by s.snap_id, sql_id&lt;br /&gt;new&amp;nbsp;&amp;nbsp; 2: where s.snap_id = ss.snap_id and sql_id = '6zfggtprazcvb' and s.snap_id &amp;gt; (select max(snap_id)-96 from dba_hist_snapshot) and EXECUTIONS_DELTA&amp;lt;&amp;gt;0 order by s.snap_id, sql_id&lt;br /&gt;BEGIN_INTERVAL_TIME            PLAN_HASH_VALUE         EXETIME EXECUTIONS_DELTA CPU_TIME_DELTA ELAPSED_TIME_DELTA DISK_READS_DELTA &lt;br /&gt;------------------------------ --------------- --------------- ---------------- -------------- ------------------ ---------------- &lt;br /&gt;16-JUN-11 04.00.43.639 PM            927619989     90627544.40               20       12879044         1812550888           125728 &lt;br /&gt;16-JUN-11 04.15.51.312 PM            927619989    282777061.76              151      279247551         4.2699E+10            72065 &lt;br /&gt;16-JUN-11 04.30.57.081 PM           1587981875      1308903.00                7         203969            9162321             1894 &lt;br /&gt;16-JUN-11 09.46.00.195 PM           1587981875       889464.06               16         760882           14231425             2463 &lt;br /&gt;17-JUN-11 12.45.49.596 AM           1587981875      1390759.44               16         778881           22252151             2973 &lt;br /&gt;17-JUN-11 04.45.38.168 AM           1587981875       621587.94               16         682897            9945407             2320 &lt;br /&gt;17-JUN-11 06.45.18.396 AM           1587981875       415950.50               16         692895            6655208             1774 &lt;br /&gt;17-JUN-11 07.45.35.975 AM           1587981875       865986.07               15         642901           12989791             1228 &lt;br /&gt;&lt;br /&gt;8 rows selected.&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;SQL has been executed in last hour a few times but was not included in AWR snapshot&lt;/div&gt;&lt;pre class="brush:sql;  ruler: true;"&gt;SQL&amp;gt; select sample_time, session_id, sql_id, sql_plan_hash_value, sql_child_number  from v$active_session_history where sql_id = '6zfggtprazcvb' and sample_time &amp;gt; sysdate - 1/24 order by sample_time;&lt;br /&gt;&lt;br /&gt;SAMPLE_TIME                   SESSION_ID SQL_ID        SQL_PLAN_HASH_VALUE SQL_CHILD_NUMBER&lt;br /&gt;----------------------------- ---------- ------------- ------------------- ----------------&lt;br /&gt;17-JUN-11 03.21.43.399 PM           1711 6zfggtprazcvb          1587981875               10&lt;br /&gt;17-JUN-11 03.21.44.399 PM           1711 6zfggtprazcvb          1587981875               10&lt;br /&gt;17-JUN-11 03.21.45.399 PM           1711 6zfggtprazcvb          1587981875               10&lt;br /&gt;17-JUN-11 03.21.46.399 PM           1711 6zfggtprazcvb          1587981875               10&lt;br /&gt;17-JUN-11 03.21.47.409 PM           1711 6zfggtprazcvb          1587981875               10&lt;br /&gt;17-JUN-11 03.21.48.409 PM           1711 6zfggtprazcvb          1587981875               10&lt;br /&gt;17-JUN-11 03.21.49.409 PM           1711 6zfggtprazcvb          1587981875               10&lt;br /&gt;17-JUN-11 03.21.50.409 PM           1711 6zfggtprazcvb          1587981875               10&lt;br /&gt;17-JUN-11 03.21.51.409 PM           1711 6zfggtprazcvb          1587981875               10&lt;br /&gt;17-JUN-11 03.21.52.419 PM           1711 6zfggtprazcvb          1587981875               10&lt;br /&gt;17-JUN-11 03.33.42.862 PM            474 6zfggtprazcvb          1587981875               10&lt;br /&gt;17-JUN-11 03.33.43.862 PM            474 6zfggtprazcvb          1587981875               10&lt;br /&gt;17-JUN-11 03.33.44.862 PM            474 6zfggtprazcvb          1587981875               10&lt;br /&gt;17-JUN-11 03.49.37.819 PM           1724 6zfggtprazcvb          1587981875               10&lt;br /&gt;17-JUN-11 03.49.38.819 PM           1724 6zfggtprazcvb          1587981875               10&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;SQL_ID has been colored (marked) using DBMS_WORKLOAD_REPOSITORY procedure&lt;/div&gt;&lt;pre class="brush:sql;  ruler: true;"&gt;SQL&amp;gt; exec dbms_workload_repository.add_colored_sql('6zfggtprazcvb');&lt;br /&gt;&lt;br /&gt;PL/SQL procedure successfully completed.&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; select * from DBA_HIST_COLORED_SQL;&lt;br /&gt;&lt;br /&gt;      DBID SQL_ID        CREATE_TIME&lt;br /&gt;---------- ------------- -------------------&lt;br /&gt;1878812188 6zfggtprazcvb 2011-06-17 15:55:45&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Now this SQL_ID has been included in AWR snapshot even if it has been executed once - see last row&lt;/div&gt;&lt;pre class="brush:sql;  ruler: true;"&gt;SQL&amp;gt; @sql_stats.sql&lt;br /&gt;Enter value for sql_id: 6zfggtprazcvb&lt;br /&gt;old   2: where s.snap_id = ss.snap_id and sql_id = '&amp;amp;SQL_ID' and s.snap_id &amp;gt; (select max(snap_id)-96 from dba_hist_snapshot) and EXECUTIONS_DELTA&amp;lt;&amp;gt;0 order by s.snap_id, sql_id&lt;br /&gt;new   2: where s.snap_id = ss.snap_id and sql_id = '6zfggtprazcvb' and s.snap_id &amp;gt; (select max(snap_id)-96 from dba_hist_snapshot) and EXECUTIONS_DELTA&amp;lt;&amp;gt;0 order by s.snap_id, sql_id&lt;br /&gt;&lt;br /&gt;BEGIN_INTERVAL_TIME            PLAN_HASH_VALUE         EXETIME EXECUTIONS_DELTA CPU_TIME_DELTA ELAPSED_TIME_DELTA DISK_READS_DELTA &lt;br /&gt;------------------------------ --------------- --------------- ---------------- -------------- ------------------ ---------------- &lt;br /&gt;16-JUN-11 04.00.43.639 PM            927619989     90627544.40               20       12879044         1812550888           125728 &lt;br /&gt;16-JUN-11 04.15.51.312 PM            927619989    282777061.76              151      279247551         4.2699E+10            72065 &lt;br /&gt;16-JUN-11 04.30.57.081 PM           1587981875      1308903.00                7         203969            9162321             1894 &lt;br /&gt;16-JUN-11 09.46.00.195 PM           1587981875       889464.06               16         760882           14231425             2463 &lt;br /&gt;17-JUN-11 12.45.49.596 AM           1587981875      1390759.44               16         778881           22252151             2973 &lt;br /&gt;17-JUN-11 04.45.38.168 AM           1587981875       621587.94               16         682897            9945407             2320 &lt;br /&gt;17-JUN-11 06.45.18.396 AM           1587981875       415950.50               16         692895            6655208             1774 &lt;br /&gt;17-JUN-11 07.45.35.975 AM           1587981875       865986.07               15         642901           12989791             1228 &lt;br /&gt;17-JUN-11 03.45.11.552 PM           1587981875      1818946.00                1          12998            1818946              226 &lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;At the end of this example SQL_ID has been uncolored (unmarked).&lt;/div&gt;&lt;pre class="brush:sql;  ruler: true;"&gt;SQL&amp;gt; exec dbms_workload_repository.remove_colored_sql('6zfggtprazcvb');&lt;br /&gt;&lt;br /&gt;PL/SQL procedure successfully completed.&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; select * from DBA_HIST_COLORED_SQL;&lt;br /&gt;&lt;br /&gt;no rows selected&lt;br /&gt;&lt;br /&gt;SQL&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-8461642247527920180?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/8461642247527920180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=8461642247527920180' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/8461642247527920180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/8461642247527920180'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/06/how-to-color-mark-sql-for-awr-snapshots.html' title='How to color (mark) SQL for AWR snapshots'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-7046540319001027017</id><published>2011-06-10T08:25:00.002+01:00</published><updated>2011-06-10T08:33:51.864+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='index'/><category scheme='http://www.blogger.com/atom/ns#' term='space'/><category scheme='http://www.blogger.com/atom/ns#' term='rebuild'/><title type='text'>Rolling partition and global index - do we need to rebuild ?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Some time ago (arrghhh - three month ago) I blogged about partition dropping when table has a global index - &lt;a href="http://oracleprof.blogspot.com/2011/03/rolling-partition-and-global-index.html"&gt;see.&lt;/a&gt; There was a example based on my tests. Now it is time to show some real figures. Both examples are sharing same scenario - about 2 years without touching indexes, 7 partitions are drop once per week. Partition drop is taking up to 6 - 7 hours. This time coalesce was not a option due to free up space requirement but it should help in future to avoid similar situations.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;i&gt;Example number 1&lt;/i&gt; &lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Table has around 562.000.000 rows and one partition has around 13.000.000 rows. Primary key index based on one number column growth to 140 GB and has been rebuilt to 13.9 GB. It is around &lt;b&gt;10&lt;/b&gt; times less.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;i&gt;Example number 2 - bigger scale&lt;/i&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Table has around 2.130.000.000 rows and one partition has around 45.000.000 rows.Primary key index based on one number column growth to 360 GB and has been rebuilt to 40 GB. &lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;It is &lt;b&gt;9&lt;/b&gt; times less.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;I put both examples here to show you that running coalesce for global indexes after partition drop can save you a lot of space and if done regularly prevent you from more resource consuming index rebuild.To be honest this is one of a few situations when I have seen any improvement (space wise this time) after index rebuild. But keep in mind that this is a special situation and for most of other cases you don't need to rebuild you indexes - if you think you need read &lt;a href="http://orawin.info/blog/2011/05/23/monotonically-increasing-indexes/"&gt;Niall &lt;/a&gt;or &lt;a href="http://richardfoote.wordpress.com/"&gt;Richard&lt;/a&gt; blog first.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;regards,&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Marcin&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-7046540319001027017?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/7046540319001027017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=7046540319001027017' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7046540319001027017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7046540319001027017'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/06/rolling-partition-and-global-index-do.html' title='Rolling partition and global index - do we need to rebuild ?'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-5701676853576789945</id><published>2011-05-07T17:32:00.000+01:00</published><updated>2011-05-07T17:32:04.478+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='pivot'/><category scheme='http://www.blogger.com/atom/ns#' term='11g'/><category scheme='http://www.blogger.com/atom/ns#' term='ASH'/><title type='text'>Pivot tables and Active Session History in Oracle 11g</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Oracle introduced a pivot tables in version 11g. If you want to use it there is still some limitation but as least it gave us a nice tool to display Active Session History information in various way. Please find one of possible example below - database CPU utilization for 5 minutes period with waits split into percent across wait classes&lt;/span&gt;&lt;/div&gt;&lt;pre class="brush:sql"&gt;col "Administrative" format 999.99&lt;br /&gt;col "Application" format 999.99&lt;br /&gt;col "Cluster" format 999.99&lt;br /&gt;col "Commit" format 999.99&lt;br /&gt;col "Concurrency" format 999.99&lt;br /&gt;col "Configuration" format 999.99&lt;br /&gt;col "Network" format 999.99&lt;br /&gt;col "Other" format 999.99&lt;br /&gt;col "SYSTEM I/O" format 999.99&lt;br /&gt;col "USER I/O" format 999.99&lt;br /&gt;col "CPU" format 999.99&lt;br /&gt;col Scheduler format 999.99&lt;br /&gt;col Queueing format 999.99&lt;br /&gt;col AAS format 999.99&lt;br /&gt;&lt;br /&gt;select to_char(to_date(ts*300,'SSSSS'),'HH24:MI') sample_time, AAS,&lt;br /&gt;nvl("'ON CPU'",0) "CPU",&lt;br /&gt;nvl("'Scheduler'",0) Scheduler ,&lt;br /&gt;nvl("'User I/O'",0) "USER I/O" ,&lt;br /&gt;nvl("'System I/O'",0) "SYSTEM I/O" ,&lt;br /&gt;nvl("'Concurrency'",0) Concurrency ,&lt;br /&gt;nvl("'Application'",0) Application ,&lt;br /&gt;nvl("'Commit'",0) Commit,&lt;br /&gt;nvl("'Configuration'",0) Configuration,&lt;br /&gt;nvl("'Administrative'",0) Administrative ,&lt;br /&gt;nvl("'Network'",0) Network ,&lt;br /&gt;nvl("'Queueing'",0) Queueing ,&lt;br /&gt;nvl("'Cluster'",0) "CLUSTER",&lt;br /&gt;nvl("'Other'",0) Other &lt;br /&gt;from (&lt;br /&gt; select trunc(to_char(sample_time, 'SSSSS')/300) ts,&lt;br /&gt; decode(session_state,'WAITING',wait_class,'ON CPU') wait_class, &lt;br /&gt; count(*) cnt, &lt;br /&gt; sum(count(*)) over (partition by trunc(to_char(sample_time, 'SSSSS')/300)) sum, &lt;br /&gt; sum(count(*)) over (partition by trunc(to_char(sample_time, 'SSSSS')/300))/300 AAS &lt;br /&gt; from v$active_session_history &lt;br /&gt; group by trunc(to_char(sample_time, 'SSSSS')/300),&lt;br /&gt;          decode(session_state,'WAITING',wait_class,'ON CPU') &lt;br /&gt; order by 1&lt;br /&gt;) &lt;br /&gt;pivot (&lt;br /&gt;   sum(round(cnt/sum*100,2)) &lt;br /&gt;   for (wait_class) in    &lt;br /&gt;   ('Administrative','Application','Cluster','Commit','Concurrency',&lt;br /&gt;    'Configuration','Network','Other','Queueing','Scheduler','System I/O',&lt;br /&gt;    'User I/O','ON CPU'&lt;br /&gt;   )&lt;br /&gt;) order by 1;&lt;br /&gt;&lt;br /&gt;SAMPLE_TIME          AAS     CPU SCHEDULER USER I/O SYSTEM I/O CONCURRENCY APPLICATION  COMMIT CONFIGURATION ADMINISTRATIVE NETWORK QUEUEING CLUSTER   OTHER&lt;br /&gt;---------------- ------- ------- --------- -------- ---------- ----------- ----------- ------- ------------- -------------- ------- -------- ------- -------&lt;br /&gt;2011-05-06 14:58    3.38    6.40       .00    38.42        .49         .00         .00     .00           .00          54.68     .00      .00     .00     .00&lt;br /&gt;2011-05-06 14:59    3.67    4.55       .00    44.09        .00         .00         .00     .00           .00          51.36     .00      .00     .00     .00&lt;br /&gt;2011-05-06 15:00    2.98    5.59       .00    29.05        .56         .00         .00     .00           .00          64.80     .00      .00     .00     .00&lt;br /&gt;2011-05-06 15:01    2.53    7.89       .00    16.45        .00         .00         .00     .00           .00          75.66     .00      .00     .00     .00&lt;br /&gt;2011-05-06 15:02    2.62    7.64       .00    21.66        .00         .00         .00     .00           .00          70.70     .00      .00     .00     .00&lt;br /&gt;2011-05-06 15:03    2.32    9.35       .00    11.51        .00         .00         .00     .00           .00          79.14     .00      .00     .00     .00&lt;br /&gt;2011-05-06 15:04    2.37    6.34       .00    30.99        .70         .00         .00     .00           .00          61.97     .00      .00     .00     .00&lt;br /&gt;2011-05-06 15:05    2.93   10.80       .00     6.25        .00         .00         .00     .00           .00          82.95     .00      .00     .00     .00&lt;br /&gt;2011-05-06 15:06    3.28   12.69       .00    14.72       1.02         .00         .00     .00           .00          71.07     .00      .00     .00     .51&lt;br /&gt;2011-05-06 15:07    4.57   10.58       .00     8.39        .00         .00         .00     .00           .00          81.02     .00      .00     .00     .00&lt;br /&gt;2011-05-06 15:08    4.72    5.30       .00    13.78        .00         .00         .00     .00           .00          80.92     .00      .00     .00     .00&lt;br /&gt;2011-05-06 15:09    4.80    6.25       .00    15.28        .00         .00         .00     .00           .00          78.47     .00      .00     .00     .00&lt;br /&gt;2011-05-06 15:10    4.42    8.30       .00     7.92        .00         .00         .00     .00           .00          83.77     .00      .00     .00     .00&lt;br /&gt;2011-05-06 15:11    4.65    6.45       .00    12.19        .00         .00         .00     .00           .00          81.36     .00      .00     .00     .00&lt;br /&gt;2011-05-06 15:12    4.48    7.06       .00     9.67        .00         .00         .00     .00           .00          83.27     .00      .00     .00     .00&lt;br /&gt;2011-05-06 15:13    4.58    9.09       .00    13.09        .00         .00         .00     .00           .00          77.82     .00      .00     .00     .00&lt;br /&gt;2011-05-06 15:14    4.40   10.61       .00     7.20        .00         .00         .00     .00           .00          82.20     .00      .00     .00     .00&lt;br /&gt;2011-05-06 15:15    4.00    7.92       .00      .00        .00         .00         .00     .00           .00          92.08     .00      .00     .00     .00&lt;br /&gt;2011-05-06 15:16    4.33    8.46       .00     6.15        .00         .00         .00     .00           .00          85.00     .38      .00     .00     .00&lt;br /&gt;2011-05-06 15:17    4.60    5.07       .00     9.42        .00         .00         .00     .00           .00          85.51     .00      .00     .00     .00&lt;br /&gt;2011-05-06 15:18    4.80    4.86       .00    15.97        .00         .00         .00     .00           .00          79.17     .00      .00     .00     .00&lt;br /&gt;2011-05-06 15:19    4.27    5.08       .00     5.08        .00         .00         .00     .00           .00          89.84     .00      .00     .00     .00&lt;br /&gt;2011-05-06 15:20    4.00    2.92       .00      .00        .00         .00         .00     .00           .00          97.08     .00      .00     .00     .00&lt;br /&gt;2011-05-06 15:21    4.37    3.05       .00     8.02        .00         .00         .00     .00           .00          88.93     .00      .00     .00     .00&lt;br /&gt;2011-05-06 15:22    7.23   17.05       .00    32.03        .00         .00         .00     .00           .00          50.92     .00      .00     .00     .00&lt;br /&gt;2011-05-06 15:23     .55    6.06       .00     3.03        .00         .00         .00     .00           .00          90.91     .00      .00     .00     .00&lt;br /&gt;&lt;/pre&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;That query can be easily change by adding filtering condition for sessions or sample time. Unfortunately list of values for pivot table can't be generated dynamically without XML output so it is required to hard coded number of wait class into this code.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;regards,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Marcin&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-5701676853576789945?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/5701676853576789945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=5701676853576789945' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/5701676853576789945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/5701676853576789945'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/05/pivot-tables-and-active-session-history.html' title='Pivot tables and Active Session History in Oracle 11g'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-4142109874100673675</id><published>2011-04-27T20:52:00.000+01:00</published><updated>2011-04-27T20:52:02.152+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><title type='text'>MySQLPerformance Schema - is this introduction of Oracle event based monitoring in MySQL ?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Today I read presentation about MySQL performance &lt;a href="http://event.on24.com/event/30/12/60/rt/1/documents/slidepdf/mysqlessentials_pertuningapr2011final.pdf"&gt;MySQL Essentials part 8&amp;nbsp; &lt;/a&gt;recommended by &lt;a href="http://twitter.com/#%21/surachart"&gt;@surachart&lt;/a&gt; and I learned that Performance Schema has been introduced - see &lt;a href="http://dev.mysql.com/doc/refman/5.5/en/performance-schema.html"&gt;documentation.&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;After basic review it looks like introduction of well know Oracle wait interface and statistics. I'm going to download MySQL version 5.5 shortly and check it out. I have a lot of concerns what happen to MySQL after Oracle acquisition but at least this is step in good direction.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;regards,&lt;/div&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Marcin&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-4142109874100673675?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/4142109874100673675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=4142109874100673675' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/4142109874100673675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/4142109874100673675'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/04/mysqlperformance-schema-is-this.html' title='MySQLPerformance Schema - is this introduction of Oracle event based monitoring in MySQL ?'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-5859986378043869684</id><published>2011-04-03T23:01:00.000+01:00</published><updated>2011-04-03T23:01:31.846+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SASH'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><title type='text'>SASH visualization using Excel</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;a href="https://sourceforge.net/projects/orasash/"&gt;OraSASH&lt;/a&gt; is a free implementation of Oracle Active Session History mechanism but it is providing only raw tables with data. To help other people use that functionality and inspired by &lt;a href="http://hoopercharles.wordpress.com/category/excel/"&gt;Charles Hooper&lt;/a&gt; blog I have created a Excel based simple GUI interface for SASH. It is providing historical and real time view based on repository. It has been tested on Windows 7 64 bit with 32 bit Excel 2007. To make it running it is necessary to install and configure &lt;a href="http://www.oracle.com/technetwork/topics/dotnet/downloads/install112021-200037.html"&gt;Oracle ODAC 11.2.0.2&lt;/a&gt;. &lt;a href="https://sourceforge.net/projects/orasash/files/reports/"&gt;Zip file&lt;/a&gt; can be downloaded from SourceForge repository. Please be aware that this is alpha stage of this Excel sheet and it can contain errors. Read only access is needed to OraSASH repository. Macros have to be enabled in Excel as all functionality is based on Visual Basic.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;b&gt;Setup sheet &lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;"&gt;Fill out repository user and tns alias name on Setup sheet and click Start button.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-S_z6mVS0Y60/TZdMLp2K5EI/AAAAAAAAAdo/SmMgZW9KfXA/s1600/sash_excel0.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="344" src="http://3.bp.blogspot.com/-S_z6mVS0Y60/TZdMLp2K5EI/AAAAAAAAAdo/SmMgZW9KfXA/s640/sash_excel0.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-VqKHvnSTMd0/TZdMNJRT7JI/AAAAAAAAAds/6VstToXvY2A/s1600/sash_excel1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;"&gt;Historic data should be read from repository for whole available period of time and available instances list will be fill out as well. When all data will be collected active sheet will be switched to Graph sheet.&lt;br /&gt;&lt;b&gt;Graph sheet &lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-VqKHvnSTMd0/TZdMNJRT7JI/AAAAAAAAAds/6VstToXvY2A/s1600/sash_excel1.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="384" src="http://2.bp.blogspot.com/-VqKHvnSTMd0/TZdMNJRT7JI/AAAAAAAAAds/6VstToXvY2A/s640/sash_excel1.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;"&gt;There are two charts on Graph sheet – upper one is displaying Average Active Session - for AAS concept see John Beresniewicz &lt;a href="http://ashmasters.com/jb-zone/average-active-sessions/"&gt;presentation&lt;/a&gt; or Kyle Hailey &lt;a href="http://dboptimizer.com/?p=553"&gt;blog&lt;/a&gt;.&lt;/div&gt;&lt;div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;"&gt;Chart on the right side is displaying SQL activity for selected period of time. Percent of activity is calculated against number of all samples from that time. This same activity percent can be seen on OEM performance tab. SQL details like query text and plan will be displayed in Detail SQL view when chart bar for appropriate SQL ID will be clicked.&lt;/div&gt;&lt;div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;i&gt;Historic view&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;"&gt;To change period displayed on screen change start and stop date and then click Refresh Historic View button.&amp;nbsp; &lt;/div&gt;&lt;div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;i&gt;Real time view&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;"&gt;To see current database activity switch radio button to Real Time refresh. Refresh rate can be change on this same sheet in Refresh Rate field. It take one full refresh cycle to pick up a refresh new value.&lt;/div&gt;&lt;div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;b&gt;Detail SQLsheet&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-DGhZWqiQmG4/TZdMOnUqlzI/AAAAAAAAAdw/oyNNXMzHm3A/s1600/sash_excel2.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="384" src="http://1.bp.blogspot.com/-DGhZWqiQmG4/TZdMOnUqlzI/AAAAAAAAAdw/oyNNXMzHm3A/s640/sash_excel2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;"&gt;Separate sheet for every SQL query. Sheet name is SQL_ID and detail available information about query text and plan will be displayed there. In addition to that detail information about wait event and CPU utilization will be displayed as well.&lt;br /&gt;&lt;br /&gt;If you have any comments or questions please feel free to contact me. &lt;br /&gt;regards,&lt;br /&gt;Marcin&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-5859986378043869684?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/5859986378043869684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=5859986378043869684' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/5859986378043869684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/5859986378043869684'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/04/sash-visualization-using-excel.html' title='SASH visualization using Excel'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-S_z6mVS0Y60/TZdMLp2K5EI/AAAAAAAAAdo/SmMgZW9KfXA/s72-c/sash_excel0.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-6582836383738285115</id><published>2011-04-02T17:14:00.000+01:00</published><updated>2011-04-02T17:14:47.274+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='11g'/><title type='text'>Oracle XE 11g - beta release</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Hello,&lt;br /&gt;&lt;br /&gt;Good news Oracle XE 11g has been &lt;a href="http://www.oracle.com/technetwork/database/express-edition/11gxe-beta-download-302519.html"&gt;released&lt;/a&gt;. Right now it is a beta version but we can expect production release soon. I was waiting for that release as my idea was to use it a repository database for &lt;a href="http://ashmasters.com/ash-simulation/simulation-v22/"&gt;S-ASH&lt;/a&gt;. I'm going to check if all new 11g functionality like PIVOT functions will be working fine.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;regards,&lt;br /&gt;Marcin&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-6582836383738285115?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/6582836383738285115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=6582836383738285115' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/6582836383738285115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/6582836383738285115'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/04/oracle-xe-11g-beta-release.html' title='Oracle XE 11g - beta release'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-7298016507550673570</id><published>2011-04-01T20:23:00.000+01:00</published><updated>2011-04-01T20:23:25.864+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='11g'/><category scheme='http://www.blogger.com/atom/ns#' term='10g'/><title type='text'>New version of S-ASH</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Hello,&lt;br /&gt;&lt;br /&gt;I'm pleased to inform you that new version of Simulate ASH has been published.&lt;br /&gt;You can download it from&amp;nbsp;&lt;a href="http://ashmasters.com/ash-simulation/simulation-v22/"&gt;ASH Masters&lt;/a&gt; website or from Source Forge&amp;nbsp;&lt;a href="https://sourceforge.net/projects/orasash/"&gt;project site.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you have any questions or ideas how to improve it please feel free to contact me&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;regards,&lt;br /&gt;Marcin&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-7298016507550673570?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/7298016507550673570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=7298016507550673570' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7298016507550673570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7298016507550673570'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/04/new-version-of-s-ash.html' title='New version of S-ASH'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-1811470716946186534</id><published>2011-03-14T22:54:00.000Z</published><updated>2011-03-14T22:54:47.714Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='partition'/><category scheme='http://www.blogger.com/atom/ns#' term='11g'/><category scheme='http://www.blogger.com/atom/ns#' term='index'/><title type='text'>Rolling partition and global index coalesce</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Resolving one of performance issues I figure out that primary key index is much bigger that it should be. Most of database activity is inserting data into partitioning table using some date field as a partitioning key. Rows can be inserted to every partition not only to most recent one. Daily job is dropping one oldest partition per day. Unfortunately primary key index is not partitioned and is maintained during partition drop as a global index. Correlation of these two things is a root cause of index size explosion.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Short test case below:&lt;/div&gt;&lt;ul style="font-family: Arial,Helvetica,sans-serif; text-align: left;"&gt;&lt;li&gt;script test.sql has been used to check index size, number of rows in table and partition drop&lt;/li&gt;&lt;li&gt;in second session simple script inserting data into random partition was running continuously&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Table definition:&lt;/div&gt;&lt;pre class="brush:sql"&gt;  CREATE TABLE LOGS&lt;br /&gt;   (    "LOG_ID" NUMBER NOT NULL ENABLE,&lt;br /&gt;        "DELDATE" DATE NOT NULL ENABLE,&lt;br /&gt;        "FILL" VARCHAR2(100),&lt;br /&gt;         CONSTRAINT "LOGS_PK" PRIMARY KEY ("LOG_ID")&lt;br /&gt;   )&lt;br /&gt;  TABLESPACE "USERS"&lt;br /&gt;  PARTITION BY RANGE ("DELDATE")&lt;br /&gt; (PARTITION "PARTITION1"  VALUES LESS THAN (TO_DATE(' 2011-02-28 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),&lt;br /&gt;  PARTITION "PARTITION2"  VALUES LESS THAN (TO_DATE(' 2011-03-28 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),&lt;br /&gt;  PARTITION "PARTITION3"  VALUES LESS THAN (TO_DATE(' 2011-04-28 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),&lt;br /&gt;  PARTITION "PARTITION4"  VALUES LESS THAN (TO_DATE(' 2011-05-28 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),&lt;br /&gt;  PARTITION "PARTITION5"  VALUES LESS THAN (TO_DATE(' 2011-06-28 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),&lt;br /&gt;  PARTITION "PARTITION6"  VALUES LESS THAN (TO_DATE(' 2011-07-28 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),&lt;br /&gt;  PARTITION "PARTITION7"  VALUES LESS THAN (TO_DATE(' 2011-08-28 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),&lt;br /&gt;  PARTITION "PARTITION8"  VALUES LESS THAN (TO_DATE(' 2011-09-28 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),&lt;br /&gt;  PARTITION "PARTITION9"  VALUES LESS THAN (TO_DATE(' 2011-10-28 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),&lt;br /&gt;  PARTITION "PARTITION10"  VALUES LESS THAN (TO_DATE(' 2011-11-28 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),&lt;br /&gt;  PARTITION "PARTITION11"  VALUES LESS THAN (TO_DATE(' 2011-12-28 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))&lt;br /&gt; );&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Source of test.sql script&amp;nbsp;&lt;/div&gt;&lt;pre class="brush:sql"&gt;prompt number of rows in table&lt;br /&gt; select count(*) from pioro.logs;&lt;br /&gt; &lt;br /&gt; prompt LOGS_PK index size&lt;br /&gt; select sum(bytes)/1024/1024 from dba_extents where segment_name = 'LOGS_PK';&lt;br /&gt;&lt;br /&gt; prompt calculating stats&lt;br /&gt; exec dbms_stats.gather_table_stats('PIORO','LOGS',cascade=&amp;gt;true, estimate_percent=&amp;gt;null);&lt;br /&gt; &lt;br /&gt; prompt rows/block without update global indexes&lt;br /&gt; select blevel, leaf_blocks, distinct_keys, NUM_ROWS, NUM_ROWS/leaf_blocks "rows/block" from dba_indexes &lt;br /&gt;where owner='PIORO' and table_name='LOGS' and leaf_blocks &amp;lt;&amp;gt; 0;&lt;br /&gt;&lt;br /&gt; prompt number of rows in table partition&lt;br /&gt; select count(*) from pioro.logs partition(&amp;amp;partname);&lt;br /&gt; set timing on &lt;br /&gt;&lt;br /&gt; alter table pioro.logs drop partition &amp;amp;partname update global indexes;&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Inserts script running in loop looks like&lt;/div&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;insert into logs select seq_log_id.nextval, to_date('2011-'|| trunc(dbms_random.value(2,9)) ||'-15','yyyy-mm-dd'),&lt;br /&gt;lpad('x',70,'x') from all_source a, all_source b where rownum &lt;= 3000000;&lt;br /&gt;commit;&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Here is a output from test.sql for first partition drop&lt;/div&gt;&lt;pre class="brush:sql"&gt;SQL&gt; @test&lt;br /&gt;number of rows in table COUNT(*)                                                                                                 &lt;br /&gt;----------                                                                                                          &lt;br /&gt;  12000000                                                                                                          &lt;br /&gt;&lt;br /&gt;Elapsed: 00:00:13.74&lt;br /&gt;LOGS_PK index size&lt;br /&gt;&lt;br /&gt;SUM(BYTES)/1024/1024                                                                                                &lt;br /&gt;--------------------                                                                &lt;br /&gt;242           &lt;br /&gt;&lt;br /&gt;Elapsed: 00:00:00.51&lt;br /&gt;calculating stats&lt;br /&gt;&lt;br /&gt;PL/SQL procedure successfully completed.&lt;br /&gt;&lt;br /&gt;Elapsed: 00:01:11.28&lt;br /&gt;rows/block without update global indexes&lt;br /&gt;&lt;br /&gt;    BLEVEL LEAF_BLOCKS DISTINCT_KEYS   NUM_ROWS rows/block                                                          &lt;br /&gt;---------- ----------- ------------- ---------- ----------                                                          &lt;br /&gt;         2       30000      12000000   12000000        400         &lt;br /&gt;&lt;br /&gt;Elapsed: 00:00:00.03&lt;br /&gt;number of rows in table partition&lt;br /&gt;Enter value for partname: partition1&lt;br /&gt;old   1:  select count(*) from pioro.logs partition(&amp;partname)&lt;br /&gt;new   1:  select count(*) from pioro.logs partition(partition1)&lt;br /&gt;&lt;br /&gt;  COUNT(*)                                                                                                          &lt;br /&gt;----------                                                                                                          &lt;br /&gt;   3001361                                                                              &lt;br /&gt;Elapsed: 00:00:00.35&lt;br /&gt;Enter value for partname: partition1&lt;br /&gt;old   1:  alter table pioro.logs drop partition &amp;partname update global indexes&lt;br /&gt;new   1:  alter table pioro.logs drop partition partition1 update global indexes&lt;br /&gt;&lt;br /&gt;Table altered.&lt;br /&gt;&lt;br /&gt;Elapsed: 00:00:55.37&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;As you can see before first drop average number of rows in one index leaf for primary key was 400. ( 8 kB database block )  Output from next run looks like:&lt;/div&gt;&lt;pre class="brush:sql"&gt;SQL&gt; @test&lt;br /&gt;number of rows in table&lt;br /&gt;&lt;br /&gt;  COUNT(*)   &lt;br /&gt;----------   &lt;br /&gt;  11998639   &lt;br /&gt;&lt;br /&gt;Elapsed: 00:00:09.59&lt;br /&gt;LOGS_PK index size&lt;br /&gt;&lt;br /&gt;SUM(BYTES)/1024/1024  &lt;br /&gt;--------------------  &lt;br /&gt;                 296  &lt;br /&gt;&lt;br /&gt;Elapsed: 00:00:01.12&lt;br /&gt;calculating stats&lt;br /&gt;&lt;br /&gt;PL/SQL procedure successfully completed.&lt;br /&gt;&lt;br /&gt;Elapsed: 00:01:13.16&lt;br /&gt;rows/block without update global indexes&lt;br /&gt;&lt;br /&gt;    BLEVEL LEAF_BLOCKS DISTINCT_KEYS   NUM_ROWS rows/block    &lt;br /&gt;---------- ----------- ------------- ---------- ----------    &lt;br /&gt;         2       37500      11998639   11998639 319.963707    &lt;br /&gt;&lt;br /&gt;Elapsed: 00:00:00.05&lt;br /&gt;number of rows in table partition&lt;br /&gt;Enter value for partname: partition2&lt;br /&gt;old   1:  select count(*) from pioro.logs partition(&amp;partname)&lt;br /&gt;new   1:  select count(*) from pioro.logs partition(partition2)&lt;br /&gt;&lt;br /&gt;  COUNT(*)                  &lt;br /&gt;----------                  &lt;br /&gt;   3749280                  &lt;br /&gt;&lt;br /&gt;Elapsed: 00:00:00.43&lt;br /&gt;Enter value for partname: partition2&lt;br /&gt;old   1:  alter table pioro.logs drop partition &amp;partname update global indexes&lt;br /&gt;new   1:  alter table pioro.logs drop partition partition2 update global indexes&lt;br /&gt;&lt;br /&gt;Table altered.&lt;br /&gt;&lt;br /&gt;Elapsed: 00:01:22.85&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Numbers of rows in one leaf block drop from 400 to 320 rows per block.After a few next runs it looks like:&lt;/div&gt;&lt;pre class="brush:sql"&gt;SQL&gt; @test&lt;br /&gt;number of rows in table&lt;br /&gt;&lt;br /&gt;  COUNT(*)                                                                                                          &lt;br /&gt;----------                                                                                                          &lt;br /&gt;   9748583                                                                                                          &lt;br /&gt;&lt;br /&gt;Elapsed: 00:00:17.67&lt;br /&gt;LOGS_PK index size&lt;br /&gt;&lt;br /&gt;SUM(BYTES)/1024/1024      &lt;br /&gt;--------------------      &lt;br /&gt;                 414      &lt;br /&gt;&lt;br /&gt;Elapsed: 00:00:00.85&lt;br /&gt;calculating stats&lt;br /&gt;&lt;br /&gt;PL/SQL procedure successfully completed.&lt;br /&gt;&lt;br /&gt;Elapsed: 00:01:11.78&lt;br /&gt;rows/block without update global indexes&lt;br /&gt;&lt;br /&gt;    BLEVEL LEAF_BLOCKS DISTINCT_KEYS   NUM_ROWS rows/block        &lt;br /&gt;---------- ----------- ------------- ---------- ----------        &lt;br /&gt;         2       52500       9748583    9748583 185.687295        &lt;br /&gt;&lt;br /&gt;Elapsed: 00:00:00.01&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Now is really bad - only 186 rows in one leaf block and size of index segment is now 414 MB.It will have huge impact on database performance as much more index blocks have to be read during index range scans.Solution is quite simple and can be done online without huge overhead.It is a index coalesce - this command will consolidate a free space in existing index and provide more free blocks for particular index segment. See example:&lt;/div&gt;&lt;pre class="brush:sql"&gt;SQL&gt; alter index pioro.LOGS_PK coalesce;&lt;br /&gt;&lt;br /&gt;Index altered.&lt;br /&gt;&lt;br /&gt;Elapsed: 00:03:57.12&lt;br /&gt;SQL&gt; prompt number of rows in table partition&lt;br /&gt;number of rows in table partition&lt;br /&gt;SQL&gt; select count(*) from pioro.logs partition(&amp;partname);&lt;br /&gt;Enter value for partname: partition4&lt;br /&gt;old   1: select count(*) from pioro.logs partition(&amp;partname)&lt;br /&gt;new   1: select count(*) from pioro.logs partition(partition4)&lt;br /&gt;&lt;br /&gt;  COUNT(*)                    &lt;br /&gt;----------                    &lt;br /&gt;   5248055                    &lt;br /&gt;&lt;br /&gt;Elapsed: 00:00:10.47&lt;br /&gt;SQL&gt; alter table pioro.logs drop partition &amp;partname update global indexes;&lt;br /&gt;Enter value for partname: partition4&lt;br /&gt;old   1: alter table pioro.logs drop partition &amp;partname update global indexes&lt;br /&gt;new   1: alter table pioro.logs drop partition partition4 update global indexes&lt;br /&gt;&lt;br /&gt;Table altered.&lt;br /&gt;&lt;br /&gt;Elapsed: 00:02:09.65&lt;br /&gt;SQL&gt; @test&lt;br /&gt;number of rows in table&lt;br /&gt;&lt;br /&gt;  COUNT(*)                          &lt;br /&gt;----------                          &lt;br /&gt;   7500528                          &lt;br /&gt;&lt;br /&gt;Elapsed: 00:00:15.78&lt;br /&gt;LOGS_PK index size&lt;br /&gt;&lt;br /&gt;SUM(BYTES)/1024/1024      &lt;br /&gt;--------------------      &lt;br /&gt;                 414      &lt;br /&gt;&lt;br /&gt;Elapsed: 00:00:01.47&lt;br /&gt;calculating stats&lt;br /&gt;&lt;br /&gt;PL/SQL procedure successfully completed.&lt;br /&gt;&lt;br /&gt;Elapsed: 00:00:46.30&lt;br /&gt;rows/block without update global indexes&lt;br /&gt;&lt;br /&gt;    BLEVEL LEAF_BLOCKS DISTINCT_KEYS   NUM_ROWS rows/block      &lt;br /&gt;---------- ----------- ------------- ---------- ----------      &lt;br /&gt;         2       26682       7500528    7500528 281.108163      &lt;br /&gt;&lt;br /&gt;Elapsed: 00:00:00.08&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;After index coalesce we can see that Oracle is able to allocate space from free block and size of index remain stable and number of rows in one leaf block is now increasing.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;This post has been created based on test data and test scenario but after sucesfull implementation in life systems I will blog about real numbers from production databases.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-1811470716946186534?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/1811470716946186534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=1811470716946186534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/1811470716946186534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/1811470716946186534'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/03/rolling-partition-and-global-index.html' title='Rolling partition and global index coalesce'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-9102481625806020082</id><published>2011-01-12T03:01:00.000Z</published><updated>2011-01-12T03:01:07.763Z</updated><title type='text'>Moving standby database or Oracle know limitation story</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;It has been a long time since I last blogged. There were some changes in my professional live and now I'm again more close with 24/7 databases.&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;I really like Oracle approach to know bugs or limitation and dealing with that from version to version. I have hit one of those recently and I want to share it with all my readers. This know limitation/bug appear first time in 10g and still exist in 11g R1.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;I had a simple task to do - move standby database managed by DataGuard to new host. According to some bandwidth limitation I couldn't copy files from old host but I need to copy it from production box. In 11g it is not a problem we can use duplication from active database so we don't need to wait until backup solution will be setup on new box. This is what I have chosen&amp;nbsp; - RMAN and duplicate from active database.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Here is a command line used by me:&lt;/div&gt;&lt;pre&gt;$ rman target sys@production auxiliary sys@standby&lt;br /&gt;RMAN&amp;gt; duplicate target database for standby from active database dorecover NOFILENAMECHECK; &lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;And here is my point - I have specified NOFILENAMECHECK so Oracle allow me to keep same disk layout on production and standby database and will no claim that datafiles have the same names on both boxes. So far so good - duplication process has been finished without any issues.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;I have started standby database and there is where I my problem begun.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Here are an example entry from alert.log&lt;/div&gt;&lt;pre&gt;Errors in file /logs/diag/rdbms/dbs0_a/dbs0/trace/dbs0_mrp0_23247.trc:&lt;br /&gt;ORA-00313: open failed for members of log group 1 of thread 1&lt;br /&gt;ORA-00312: online log 1 thread 1: '/redo1/dbs0/redo11.log'&lt;br /&gt;ORA-27037: unable to obtain file status&lt;br /&gt;Linux-x86_64 Error: 2: No such file or directory&lt;br /&gt;Additional information: 3&lt;br /&gt;Errors in file /logs/diag/rdbms/dbs0_a/dbs0/trace/dbs0_mrp0_23247.trc:&lt;br /&gt;ORA-00313: open failed for members of log group 1 of thread 1&lt;br /&gt;ORA-00312: online log 1 thread 1: '/redo1/dbs0/redo11.log'&lt;br /&gt;ORA-27037: unable to obtain file status&lt;br /&gt;Linux-x86_64 Error: 2: No such file or directory&lt;br /&gt;Additional information: 3&lt;br /&gt;Clearing online redo logfile 1 /redo1/dbs0/redo11.log&lt;br /&gt;Clearing online log 1 of thread 1 sequence number 2357&lt;br /&gt;Errors in file /logs/diag/rdbms/dbs0_a/dbs0/trace/dbs0_mrp0_23247.trc:&lt;br /&gt;ORA-00313: open failed for members of log group 1 of thread 1&lt;br /&gt;ORA-00312: online log 1 thread 1: '/redo1/dbs0/redo11.log'&lt;br /&gt;ORA-27037: unable to obtain file status&lt;br /&gt;Linux-x86_64 Error: 2: No such file or directory&lt;br /&gt;Additional information: 3&lt;br /&gt;Errors in file /logs/diag/rdbms/dbs0_a/dbs0/trace/dbs0_mrp0_23247.trc:&lt;br /&gt;ORA-19527: physical standby redo log must be renamed&lt;br /&gt;ORA-00312: online log 1 thread 1: '/redo1/dbs0/redo11.log'&lt;br /&gt;Clearing online redo logfile 1 complete&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Oracle is trying to open redo log file which doesn't exist on standby machine - this is a first error and of course expected one. Than Oracle is trying to clear (in that case recreate) redo log and it failed with error ORA-19527 and of course at the end it is informing DBA that clearing online redo log 1 has been completed.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Unfortunately this files has not been created and this error appear every time standby database has been restarted or recovery process has been restarted. The main issue is ORA-19527 "physical standby redo log must be renamed" even if in that case this is not a standby redo but online redo log. Simplest solution like drop and add a new groups of redo logs failed as Oracle is claiming that all those unexisting files will be used to database recovery. Hmmm - i like that. This is what Oracle support answer for that problem (783113.1) "These are not bug's, they are known limitations" and proposed solution is to set LOG_FILE_NAME_CONVERT to convert old redo log name to new one - even if both are same. As a part of explanation other note (352879.1) has following sentence "It is the equivalent of asking - Are you sure you want the logs to be called this....". &lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;I can agree with that and this can be some protection to prevent overwriting of existing redo logs but why this same error happen if&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I have specified NOFILENAME checking (ok I could do it by mistake)&amp;nbsp;&lt;/li&gt;&lt;li&gt;There were not online redo logs files nor standby logs files on my new box so I can't imagine how Oracle could overwritten one of those files&lt;/li&gt;&lt;/ul&gt;This is KNOW limitation so why RMAN is not forcing user to specify LOG_FILE_NAME_CONVERT or not checking if this parameter is set in new instance ?&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;regards,&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Marcin &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-9102481625806020082?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/9102481625806020082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=9102481625806020082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/9102481625806020082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/9102481625806020082'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2011/01/moving-standby-database-or-oracle-know.html' title='Moving standby database or Oracle know limitation story'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-771031108732663906</id><published>2010-11-02T20:17:00.000Z</published><updated>2010-11-02T20:17:55.467Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='OUI'/><title type='text'>Unsafe deinstall using Oracle Univeral Installer.</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Are Oracle Homes totally independent from OUI point of view? This was my impression until yesterday when I hit Oracle OUI de-installer bug in Oracle Real Application Cluster environment. I did 3 simple steps:&lt;/div&gt;&lt;ul style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;li&gt;I have installed new Oracle Home into new directory on both nodes&lt;/li&gt;&lt;li&gt;There was timing issue between servers so I need to remove new Oracle Home using OUI de-install functionality.&lt;/li&gt;&lt;li&gt;I have corrected timing issue and installed new Oracle Home once again.&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;All old homes have been used by working Oracle ClusterWare, ASM and database and I believed that there should not be any issues. Unfortunately a few minutes after that work I have got first error message but only for new session:&lt;/div&gt;&lt;pre class="brush:sql"&gt;ORA-27504: IPC error creating OSD context &lt;br /&gt;ORA-27300: OS system dependent operation: IPC init failed with status:65 &lt;br /&gt;ORA-27301: OS failure message: Package not installed &lt;br /&gt;ORA-27302: failure occurred at: skgxpcini &lt;br /&gt;ORA-27303: additional information: libskgxpd.so called&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;I was surprised and I have checked &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ORACLE_HOME/lib/&lt;/span&gt; directory and I have found root cause - &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;libskgxpd.so&lt;/span&gt; has very recent modification date and it was date of my installation. I have checked all OUI logs immediately looking for that file and in deinstallation log I found that entry:&lt;br /&gt;&lt;pre class="brush:bash"&gt;INFO: The output of this make operation is also available at: '/opt/app/oracle/product/10.2.0/Db_new/install/make.log'&lt;br /&gt;INFO:&lt;br /&gt;INFO: Start output from spawned process:&lt;br /&gt;INFO: ----------------------------------&lt;br /&gt;INFO:&lt;br /&gt;INFO: rm -f /opt/app/oracle/product/10.2.0/Db_1/lib/libskgxp10.so&lt;br /&gt;INFO: cp /opt/app/oracle/product/10.2.0/Db_1/lib//libskgxpd.so /opt/app/oracle/product/10.2.0/Db_1/lib/libskgxp10.so&lt;br /&gt;&lt;/pre&gt;But in that same log I have found following message at the end:&lt;br /&gt;&lt;pre class="brush:bash"&gt;INFO: Current Inventory:&lt;br /&gt;        Oracle Home: OraCrs10g_home&lt;br /&gt;                This Oracle Home has not been changed in this session.&lt;br /&gt;        Oracle Home: ASM_HOME&lt;br /&gt;                This Oracle Home has not been changed in this session.&lt;br /&gt;        Oracle Home: RDBMS_HOME&lt;br /&gt;                This Oracle Home has not been changed in this session.&lt;br /&gt;INFO: This deinstallation was successful&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;So OUI replaced library &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;libskgxp10.so&lt;/span&gt; in existing old home (RDBMS_HOME) and at the end of work stated that this home has not been change. There are bugs related to that : 7006848, 5474623.&lt;br /&gt;&lt;br /&gt;If you ever hit that error – there is two possible solutions:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Copy backup &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;libskgxp10.so&lt;/span&gt; from untouched home if you have home with this same patch level (in my case it was ASM) &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Rebuild Oracle using the following steps – MOS note 814896.1-&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;cd $ORACLE_HOME/rdbms/lib&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;rename the original library (if exists) &lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;mv libskgxp10.so libskgxp10.so.old&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;Relink to configure UDP for IPC &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;make -f ins_rdbms.mk rac_on ipc_udp ioracle&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/li&gt;&lt;li&gt;Check whether the library exists &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;ls -l $ORACLE_HOME/lib/libskgxp10.so &lt;/span&gt;&lt;/li&gt;&lt;li&gt;startup the instance&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;And good advise at the end – your testing environment should be same as production one. If you are going to do some work on RAC test it on your test RAC too. &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-771031108732663906?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/771031108732663906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=771031108732663906' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/771031108732663906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/771031108732663906'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2010/11/unsafe-deinstall-using-oracle-univeral.html' title='Unsafe deinstall using Oracle Univeral Installer.'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-7011438823031704089</id><published>2010-09-12T20:37:00.000+01:00</published><updated>2010-09-12T20:37:11.009+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='patchset'/><category scheme='http://www.blogger.com/atom/ns#' term='11gR2'/><title type='text'>Oracle patchest 11.2.0.2</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Hi,&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Some people tweet about new Oracle patch set 11.2.0.2. I decided to check it too but I can't find it on MOS any more. Not only me as Tim Hall&amp;nbsp; (&lt;a href="http://twitter.com/oraclebase"&gt;@oraclebase&lt;/a&gt;) tweet about that situation too.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Anyway there is one important note on MOS - 1189783.1 - starting with patch set 11.2.0.2 new Oracle patch sets will be full installations of Oracle Software and patching out-of-place will be preferred one or even mandatory one in case of Grid Infrastructure.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;I hope this note doesn't disappear from MOS like patch set and will be still valid after a few days.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Now I'm waiting for 11.2.0.2 to appear once again.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;regards,&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Marcin&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-7011438823031704089?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/7011438823031704089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=7011438823031704089' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7011438823031704089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7011438823031704089'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2010/09/oracle-patchest-11202.html' title='Oracle patchest 11.2.0.2'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-6521136619830793101</id><published>2010-09-08T21:56:00.000+01:00</published><updated>2010-09-08T21:56:12.425+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='SASH'/><title type='text'>New version of Simulating ASH</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Hello,&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;I have mentioned some time ago about using Simulating ASH to solve performance issue in Oracle 9i database.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;According to some restrictions I have to customize it a little bit and than I agreed with Kyle Hailey that I will publish it as a new version of S-ASH. A new project has been created on &lt;a href="http://sourceforge.net/projects/orasash"&gt;SourceForge &lt;/a&gt;to keep a repository and this new code and installation instruction can be find &lt;a href="http://ashmasters.com/ash-simulation/simulation-v21/"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Please feel free to post any comments or remarks. I have some idea about potential enhancement of that tool but I'm open for any new too.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;regards,&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Marcin&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-6521136619830793101?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/6521136619830793101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=6521136619830793101' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/6521136619830793101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/6521136619830793101'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2010/09/new-version-of-simulating-ash.html' title='New version of Simulating ASH'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-8397913727645233519</id><published>2010-08-04T21:40:00.000+01:00</published><updated>2010-08-04T21:40:22.719+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='feature'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Column names and typing errors</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Last few days I have hit myself into Oracle "feature" which was one of my favorite when I was helping developers solve strange Oracle issues. I recall one Oracle ANSI SQL syntax issue when Oracle didn't recognize that column names are duplicated in different tables and use a random one in output. This is why I always told people use column name with table name to avoid confusion. Anyway now I decided to blog about that and show why table.column_name syntax is so important.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Let's go through an example - In this syntax equal ?&lt;/div&gt;&lt;pre class="brush:sql"&gt;select name1 from T1 where id1 in (select id1 from T2 where name2='NAME2');&lt;br /&gt;&lt;/pre&gt;&lt;pre class="brush:sql"&gt;select T1.name1 from T1 where T1.id1 in (select T2.id1 from T2 where name2='NAME2');&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Looks OK isn't it ? But it really depend on how tables are defined.&amp;nbsp;&lt;/div&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; desc T1&lt;br /&gt; Name                                      Null?    Type&lt;br /&gt; ----------------------------------------- -------- ----------------------------&lt;br /&gt; ID1                                                NUMBER&lt;br /&gt; NAME1                                              VARCHAR2(100)&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; desc T2&lt;br /&gt; Name                                      Null?    Type&lt;br /&gt; ----------------------------------------- -------- ----------------------------&lt;br /&gt; ID2                                                NUMBER&lt;br /&gt; NAME2                                              VARCHAR2(100)&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; select id1, name1 from T1;&lt;br /&gt;&lt;br /&gt;       ID1 NAME1&lt;br /&gt;---------- -------------------------------------------------------&lt;br /&gt;         1 NAME1&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; select id2, name2 from T2;&lt;br /&gt;&lt;br /&gt;       ID2 NAME2&lt;br /&gt;---------- -------------------------------------------------------&lt;br /&gt;         2 NAME2&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&amp;nbsp; &lt;br /&gt;Now we can see that there is a typo in second query as there is no ID1 column in T2 table. But lets try to execute both. First we start a query with tablename.columnname syntax :&lt;/div&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; select T1.name1 from T1 where T1.id1 in (select T2.id1 from T2 where name2='NAME2');&lt;br /&gt;select T1.name1 from T1 where T1.id1 in (select T2.id1 from T2 where name2='NAME2')&lt;br /&gt;                                                *&lt;br /&gt;ERROR at line 1:&lt;br /&gt;ORA-00904: "T2"."ID1": invalid identifier&lt;br /&gt;&lt;/pre&gt;Looks OK Oracle found our error and query has not been executed. What about first example ?&lt;br /&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; select name1 from T1 where id1 in (select id1 from T2 where name2='NAME2');&lt;br /&gt;&lt;br /&gt;NAME1&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;NAME1&lt;br /&gt;&lt;br /&gt;SQL&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;It return one row and Oracle didn't find our typing error. Even worse IN filter is true for every T1 row but it should not - if you check rows in T1 and T2 where is no common value between&amp;nbsp; ID1 and ID2. &lt;br /&gt;Why ? We are going to check if ID1 from T1 is included in set of ID1 from T2. But there is no ID1 in T2 so Oracle is using ID1 from T1 as in every correlated subquery. What this subquery return ? It will return ID1 from table T1 for every row in table T2 where name is equal to 'NAME2'. This is not what was excepted.&lt;br /&gt;&lt;br /&gt;But is this subquery can be executed as separate query ? Of course not&lt;/div&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; select id1 from T2 where name2='NAME2';&lt;br /&gt;select id1 from T2 where name2='NAME2'&lt;br /&gt;       *&lt;br /&gt;ERROR at line 1:&lt;br /&gt;ORA-00904: "ID1": invalid identifier&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;I'm not sure if that problem can be classified as bug but at least is good to know how Oracle is using columns names and use tablename.columnname syntax to avoid confusion and increase code quality. Especially if there are tables with long column names and there is one letter difference between them.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;regards,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Marcin&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-8397913727645233519?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/8397913727645233519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=8397913727645233519' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/8397913727645233519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/8397913727645233519'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2010/08/column-names-and-typing-errors.html' title='Column names and typing errors'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-2084622027414085482</id><published>2010-07-29T20:55:00.000+01:00</published><updated>2010-07-29T20:55:46.088+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='ASH'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Process hung on library cache lock</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Customer reported a system slowdown/process hung during small and well defined period of time and it was related to one specific process only. Standard Oracle 9i performance analyze tool - Statspack didn't show anything unusual in that time but shapshots were taking very 30 min and this issue took about 5 minutes.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;As we could not replicate issue I thought about &lt;a href="http://ashmasters.com/"&gt;SASH&lt;/a&gt; (a free simulator of Oracle Active Session History) and I have installed it and configured. From that time I was able to gather and keep information about active sessions.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;When next time I got detailed information about similar issue I was able to use collected data and found a problem. After investigation I figured out that process used for that business functionality stuck on “library cache lock” event. When I compared my findings from SASH with Statspack I realize why I didn't spotted it before - "library cache lock" was about 1.8 % of all locks between statspack snapshots. From overall database review there was no problem but from process (and business) perspective that lock hung important process for almost 5 minutes. &lt;br /&gt;&lt;br /&gt;Below I described all major steps of my investigation and what was a root cause.&lt;br /&gt;Let's start with SASH output (I just left 3 lines but there was many more similar lines):&lt;/div&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; select sample_time,program, session_id, session_state, event, seq#, sql_id, '0' || trim(to_char(p1,'XXXXXXXXXXXXXXXXX')) "p1raw", p3&lt;br /&gt;  2  from v$active_session_history&lt;br /&gt;  3  where &lt;br /&gt;  4  sample_time &amp;gt;= to_date('18-7-2010 13:50:10','dd-mm-yyyy hh24:mi:ss')&lt;br /&gt;  5  and sample_time &amp;lt;= to_date('18-7-2010 13:54:58','dd-mm-yyyy hh24:mi:ss')&lt;br /&gt;  6  and event like 'library%'&lt;br /&gt;  7  order by sample_time desc&lt;br /&gt;  8  /&lt;br /&gt;&lt;br /&gt;SAMPLE_TI PROGRAM        SESSION_ID SESSION_STATE EVENT              SEQ#  SQL_ID     p1raw             P3&lt;br /&gt;--------- -------------- ---------- ------------- ------------------ ----- -------    -----------       ---&lt;br /&gt;18-JUL-10 importantp.exe        472 WAITING       library cache lock  214  1548901218 07000002AC789A98  210&lt;br /&gt;18-JUL-10 otherprogr.exe        436 WAITING       library cache lock    8  2855865705 07000002AC789A98  210&lt;br /&gt;18-JUL-10                       375 WAITING       library cache lock   33   261624711 07000002AC789A98  310&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;First idea was about parsing problem but when I took a look on SQL it looked OK but it was just entry point to PL/SQL procedure. Next thing was to check event parameters and there was first surprise. According to Oracle &lt;a href="http://download.oracle.com/docs/cd/B10501_01/server.920/a96536/apa5.htm#972328"&gt;documentation&lt;/a&gt; and Metalink note 34579.1 that event has following parameters:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;p1 is an address of required object - in my case 07000002AC789A98&lt;/li&gt;&lt;li&gt;p3 is a lock type and namespace type (lock mode * 100 + namespace)&amp;nbsp; - in my case 310 or 210&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;In Oracle definitions (metalink or decode in v$librarycache) namespace number 10 is not defined. See whole list below&lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 SQL Area &lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 Table / Procedure / Function / Package Header &lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 Package Body &lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Trigger &lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; 4 Index &lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; 5 Cluster &lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; 6 Object &lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; 7 Pipe &lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; 13 Java Source &lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; 14 Java Resource &lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; 32 Java Data &lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;So what object it is ? P1 had a address and X$KGLOB has a list of all objects (I checked that table next day but there was no restart and it was a chance that there is still that same object in shared pool as session was running 24/7):&lt;/div&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; select kglnaown "Owner", kglnaobj "Object" from x$kglob where kglhdadr='07000002AC789A98'; &lt;br /&gt;&lt;br /&gt;Owner  Object&lt;br /&gt;------ --------&lt;br /&gt;SOFT   SNDQ&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;What type of objects is it ?&lt;/div&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; select object_type, object_name from dba_objects where owner='SOFT' and object_name = 'SNDQ';&lt;br /&gt;&lt;br /&gt;OBJECT_TYPE OBJECT_NAME&lt;br /&gt;----------- -----------&lt;br /&gt;QUEUE       SNDQ&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Bingo - object was a queue there was a dequeue in that PL/SQL code. My process called &lt;i&gt;importantp.exe &lt;/i&gt;was waiting for lock on queue. Let's check lock type:&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;ul&gt;&lt;li&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp; - Share mode&amp;nbsp;&lt;/li&gt;&lt;li&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp; - Exclusive mode&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;For &lt;i&gt;importantp.exe &lt;/i&gt;lock mode in p3 parameter was 210 which mean wait for shared lock. But queuing and dequeueing operations are running with shared locks so reason for waiting had to be related to none of them. I found it in last line of my listing there was another processes waiting for exclusive lock on that same queue. Using SQL_ID (261624711)&amp;nbsp; I discovered that there was another PL/SQL piece of code and add_subscriber function was called inside.&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;That was a explanation of &lt;i&gt;importantp.exe&lt;/i&gt; hungs - as dequeue function was called after add_subscriber function it had to wait until DDL command was finished. Add subscriber function had to wait until all previous operations in shared mode will be completed and there was typical chain of locks.&lt;br /&gt;&lt;br /&gt;There are bugs in Metalink raised by other people describing similar situations and there is only one workaround do not try any DDL on queues during traffic peaks. This recommendation is well know and most DBAs preventing database from typical DDL operation ( like index rebuild or schema changes) during business hours. The problems starts with hidden&amp;nbsp; DDL commands used in application.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-2084622027414085482?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/2084622027414085482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=2084622027414085482' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/2084622027414085482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/2084622027414085482'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2010/07/process-hung-on-library-cache-lock.html' title='Process hung on library cache lock'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-5044942979765177284</id><published>2010-07-18T19:10:00.000+01:00</published><updated>2010-07-18T19:10:10.255+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='SASH'/><category scheme='http://www.blogger.com/atom/ns#' term='ASH'/><title type='text'>OEM performance tab and Active Session History data.</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Graphic representation of Active Session History data in Database Console or in Grid Control is causing some misunderstanding of how to read it. I have lot of questions about Y scale on OEM performance tab and now I decide to blog about it. I want to describe now OEM is using a ASH date and what we can do with this information. Anyway using SQL instead of OEM is more useful in performance tuning and can be easily focused on existing issue. &lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;For other point of view knowledge of ASH give you opportunity to use &lt;a href="http://ashmasters.com/"&gt;free implementation&lt;/a&gt; of it developed by Kyle Hailey. (Thanks Kyle for your excellent &lt;a href="http://ashmasters.com/ash-queries/overview-queries/"&gt;scripts&lt;/a&gt; – this is great staff to learn from). By the way recently I have deployed SASH on big production database running on Oracle 9i and it help me to identify and address performance problems. As soon as I finish all these work I will blog about it too.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span style="font-size: large;"&gt;CPU utilization&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;CPU usage on performance tab is in green and in my case it has upper limit set to 2 – as I have two core CPU.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_04XcTwZsZtg/TEM-G60eLDI/AAAAAAAAAK0/zZuOoSV4qCk/s1600/screen.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="103" src="http://3.bp.blogspot.com/_04XcTwZsZtg/TEM-G60eLDI/AAAAAAAAAK0/zZuOoSV4qCk/s400/screen.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;It is quite clear how to read CPU usage and what is a maximum CPU utilization. Scope of time which sessions can spend on CPU has an upper limit which is 100 % utilization of all CPU. It mean that maximum CPU time for session in sampling time can be calculated using following formula&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Number of CPU x Sampling Time&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;So if we want to calculate a CPU usage we need to use following formula:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;time consumed per all sessions / (Number of CPU x Sampling Time) * 100 % &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;ex. &lt;br /&gt;time consumed per all sessions = 16 s&lt;br /&gt;Number of CPU = 2&lt;br /&gt;Sampling time = 15 s&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;i&gt;Util of all CPUs = 15 / (2 * 15) * 100 % = 53.3 %&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How to calculate CPU utilisation using Active Session History data instead of OEM performance tab ?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Active Session History table is a results of sampling V$SESSION view every second. That mean there is no “real” waiting or executing time in V$ACTIVE_SESSION_HISTORY but just samples. We are assuming that every state in ASH view (WAITING or ON CPU) took exactly 1 s. This is important as we don’t sum waiting time from ASH view but we have to count how many 1 s events were in observed time.&lt;br /&gt;Be aware that DBA_HIST_ACTIVE_SESS_HISTORY has only 1/10 data of&amp;nbsp; V$ACTIVE_SESSIN_HISTORY (only sample_id modulo 10 are copied into it) and each sample is now 10s long if we want to use it for our calculations. &lt;br /&gt;&lt;br /&gt;Following query will calculate average CPU utilization for two minutes:&lt;/div&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; select trunc(count(*)/&lt;br /&gt;  2  (min(p.value)*(max(sample_id) - min (sample_id)))*100,2) "CPU_UTIL",&lt;br /&gt;  3  max(sample_id) - min (sample_id) "sampling time [s]",&lt;br /&gt;  4  count(*) "time consumed per sessions [s]",&lt;br /&gt;  5  min(p.value) * (max(sample_id) - min (sample_id)) "maximum possible time [s]"&lt;br /&gt;  6  from v$active_session_history,&lt;br /&gt;  7  (select value from v$parameter  where name = 'cpu_count') p&lt;br /&gt;  8  where 1=1&lt;br /&gt;  9  and sample_time &amp;gt;= to_date('18-07-2010 12:23:00','dd-mm-yyyy hh24:mi:ss')&lt;br /&gt; 10  and sample_time &amp;lt;= to_date('18-07-2010 12:25:00','dd-mm-yyyy hh24:mi:ss')&lt;br /&gt; 11  and session_state = 'ON CPU';&lt;br /&gt;&lt;br /&gt;  CPU_UTIL sampling time [s] time consumed per sessions [s] maximum possible time [s]&lt;br /&gt;---------- ----------------- ------------------------------ -------------------------&lt;br /&gt;     29.23               118                             69                       236&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;But this doesn’t help us in understanding OEM graph. Refresh rate is set to 15 sec so we need to display data from that period split into 15 sec slices.&lt;/div&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; select trunc(to_char(sample_time,'SSSSS')/15) "15s_sample", trunc(count(*)/&lt;br /&gt;  2  (min(p.value)*15)*100,2) "CPU_UTIL",&lt;br /&gt;  3  count(*) "time consumed per sessions [s]"&lt;br /&gt;  4  from v$active_session_history,&lt;br /&gt;  5  (select value from v$parameter  where name = 'cpu_count') p&lt;br /&gt;  6  where 1=1&lt;br /&gt;  7  and sample_time &amp;gt;= to_date('18-07-2010 12:23:00','dd-mm-yyyy hh24:mi:ss')&lt;br /&gt;  8  and sample_time &amp;lt;= to_date('18-07-2010 12:25:00','dd-mm-yyyy hh24:mi:ss')&lt;br /&gt;  9  and session_state = 'ON CPU'&lt;br /&gt; 10  group by trunc(to_char(sample_time,'SSSSS')/15)&lt;br /&gt; 11  order by 1;&lt;br /&gt;&lt;br /&gt;15s_sample   CPU_UTIL time consumed per sessions [s]&lt;br /&gt;---------- ---------- ------------------------------&lt;br /&gt;      2972       6.66                              2&lt;br /&gt;      2973       6.66                              2&lt;br /&gt;      2974      53.33                             16&lt;br /&gt;      2975      23.33                              7&lt;br /&gt;      2976      36.66                             11&lt;br /&gt;      2977      26.66                              8&lt;br /&gt;      2978      33.33                             10&lt;br /&gt;      2979      43.33                             13&lt;br /&gt;&lt;br /&gt;8 rows selected.&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Now if you use any graphic tool to create a chart using 15s_sample column as X axis and "CPU util" column as Y axis you should get very similar picture to OEM chart. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Wait events&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There is no easily calculated upper limit for waiting sessions. Why ? Number of waits per sample is depended on session state and number of waiting sessions. So what is a maximum for that ? Should we use only active sessions or all connected sessions ? The worst case scenario is all sessions are active and all are in waiting state. Both values multiplied each other give us a potential upper limit.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Performance tab in OEM is calculating a average of waits in sample time divided by groups and all groups are displayed using stacked area graph.&lt;br /&gt;&lt;br /&gt;Following SQL return data used to create following graphs &lt;/div&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; select trunc(to_char(sample_time,'SSSSS')/15) "15s_sample", wait_class, count(*)/15&lt;br /&gt;  2  from v$active_session_history&lt;br /&gt;  3  where sample_time &amp;gt;= to_date('18-07-2010 12:23:00','dd-mm-yyyy hh24:mi:ss')&lt;br /&gt;  4  and sample_time &amp;lt;= to_date('18-07-2010 12:25:00','dd-mm-yyyy hh24:mi:ss')&lt;br /&gt;  5  and session_state = 'WAITING'&lt;br /&gt;  6  group by trunc(to_char(sample_time,'SSSSS')/15), wait_class order by 1,3&lt;br /&gt;  7  ;&lt;br /&gt;&lt;br /&gt;15s_sample WAIT_CLASS                                                       COUNT(*)/15&lt;br /&gt;---------- ---------------------------------------------------------------- -----------&lt;br /&gt;      2974 Other                                                                     .2&lt;br /&gt;      2974 System I/O                                                        .533333333&lt;br /&gt;      2974 Commit                                                                     2&lt;br /&gt;      2974 User I/O                                                          2.06666667&lt;br /&gt;      2974 Concurrency                                                       4.66666667&lt;br /&gt;      2975 Application                                                       .066666667&lt;br /&gt;      2975 System I/O                                                        .933333333&lt;br /&gt;      2975 User I/O                                                                 3.8&lt;br /&gt;      2975 Commit                                                            4.93333333&lt;br /&gt;      2976 Concurrency                                                       .066666667&lt;br /&gt;      2976 Application                                                       .066666667&lt;br /&gt;      2976 Other                                                                     .4&lt;br /&gt;      2976 System I/O                                                               1.2&lt;br /&gt;      2976 Commit                                                                   5.4&lt;br /&gt;      2976 User I/O                                                                 5.8&lt;br /&gt;      2977 System I/O                                                        .866666667&lt;br /&gt;      2977 User I/O                                                          2.93333333&lt;br /&gt;      2977 Commit                                                                   5.6&lt;br /&gt;      2978 Concurrency                                                       .066666667&lt;br /&gt;      2978 System I/O                                                        .933333333&lt;br /&gt;      2978 User I/O                                                          3.26666667&lt;br /&gt;      2978 Commit                                                                     4&lt;br /&gt;      2979 System I/O                                                        .866666667&lt;br /&gt;      2979 User I/O                                                          1.46666667&lt;br /&gt;      2979 Commit                                                            2.53333333&lt;br /&gt;&lt;br /&gt;25 rows selected.&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;As results we have average time spend by all sessions divided per wait class for a 1 second.&amp;nbsp; What it mean that in sample 2976 wait class “Commit” average time was 5.4 ? It exactly mean that in that 15 seconds sampling time all active sessions were 5.4*15 = 81 times waiting for events in commit class. Is it bad or not ? This is a different question and will not be answered in that post.&lt;br /&gt;&lt;br /&gt;Now if we take a look on sample nr 2976&lt;/div&gt;&lt;pre class="brush:sql"&gt;2976 Application                                                       .066666667&lt;br /&gt;2976 Other                                                                     .4&lt;br /&gt;2976 System I/O                                                               1.2&lt;br /&gt;2976 Commit                                                                   5.4&lt;br /&gt;2976 User I/O                                                                 5.8&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Sum of all waits give us 12.8 and this is more less what we can see as a top value on graph. A differences between graph and our calculation are related to observation period start time and how we split results into 15 sampling time. We are using a group by function based on sample_time truncated into 4 periods of seconds - using group by to_char function (based on Kyle idea).These periods are: 0 – 15, 15- 30 , 30-45, 45-60 but OEM can display data based on different 15 sec groups ex. 10 - 25, 25 - 40 so small differences can occure.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;Now the question is – is this a bad thing to have high numbers of OEM graph ? And like always when we are talking about Oracle performance an answer is depends.&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;What is bad for sure if our CPU usage is going over 85-90 % and stay there for a long time. In that case CPU response time will have good opportunity to increase and whole system performance can go down. What to do with waits ? In my opinion a best way is to create a baseline (even on paper) with average waiting time and react only when system is working over our baseline or what is more important when system users are claiming a performance problems.&lt;br /&gt;&lt;br /&gt;Next time I will use drill-into functionality of OEM and will try to explain what other graphs means – unfortunately most of them are changing a scale between main performance graph and detailed ones so if you are not aware of that it can cause a lot of misunderstandings.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Marcin &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-5044942979765177284?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/5044942979765177284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=5044942979765177284' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/5044942979765177284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/5044942979765177284'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2010/07/oem-performance-tab-and-active-session.html' title='OEM performance tab and Active Session History data.'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_04XcTwZsZtg/TEM-G60eLDI/AAAAAAAAAK0/zZuOoSV4qCk/s72-c/screen.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-7744312289944808474</id><published>2010-07-14T21:22:00.000+01:00</published><updated>2010-07-14T21:22:00.291+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AIX'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Oracle and AIX</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;Very useful &lt;a href="http://www.ibm.com/developerworks/forums/servlet/JiveServlet/download/747-332466-14479945-364618/Oracle_tuning_AIX_Jan09.pdf"&gt;document&lt;/a&gt; about AIX configuration for Oracle Database provided IBM.&lt;br /&gt;&lt;br /&gt;regards,&lt;br /&gt;Marcin&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-7744312289944808474?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/7744312289944808474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=7744312289944808474' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7744312289944808474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7744312289944808474'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2010/07/oracle-and-aix.html' title='Oracle and AIX'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-80640898650571115</id><published>2010-06-20T19:22:00.000+01:00</published><updated>2010-06-20T19:22:35.144+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle 11gR2'/><category scheme='http://www.blogger.com/atom/ns#' term='ASM'/><title type='text'>Grid Infrastructure - Reconfiguration / host name change</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;In 11g Release 2 Oracle introduced a Grid Infrastructure (GI) which can be also called Oracle Restart if it is implemented for single instance only. If database is based on Oracle ASM there is no other option and GI has to be installed. Since version 11gR2 ASM is not longer part of RDBMS but part of Grid Infrastructure.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;I would like to present how to perform reconfiguration of Grid Infrastructure on one server together with change of server name and IP. Of course reconfiguration can be done in case of other problems and I want to show that it isn't very complicated.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;b&gt;Part 1 - Gathering current configuration &lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Information about current configuration of ASM and LISTENER should be well documented so in case of reconfiguration it can be easily used. &lt;/div&gt;&lt;br /&gt;&lt;pre class="brush:bash"&gt;[oracle@piorovm ~]$ srvctl config asm&lt;br /&gt;ASM home: /u01/app/11.2.0/grid&lt;br /&gt;ASM listener: LISTENER&lt;br /&gt;Spfile: +DATA_SOURCE/ASM/ASMPARAMETERFILE/REGISTRY.253.722024685&lt;br /&gt;ASM diskgroup discovery string: /dev/sd*&lt;br /&gt;&lt;br /&gt;[oracle@piorovm ~]$ srvctl config listener&lt;br /&gt;Name: LISTENER&lt;br /&gt;Home: /u01/app/11.2.0/grid&lt;br /&gt;End points: TCP:1521&amp;nbsp;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;In addition all ASM disk group names should be documented. If there is no information about group names this information could be read from ASM disks even when ASM instance is down.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;In that example information from header of all disks matching string '/dev/sd*' will be displayed.&lt;/div&gt;&lt;br /&gt;&lt;pre class="brush:bash"&gt;[oracle@piorovm ~]$ asmcmd&lt;br /&gt;Connected to an idle instance.&lt;br /&gt;ASMCMD&amp;gt; lsdsk -I -p /dev/sd*&lt;br /&gt;Disk_Num  Disk_group   Header_Stat  Path&lt;br /&gt;       0  DATA_SOURCE  MEMBER       /dev/sdb1&lt;br /&gt;ASMCMD&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;b&gt;Part 2- Grid Control deconfiguration&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Current Grid Infrastructure configuration has to be deleted. To achieve it roothas.pl script with proper attributes has to be executed. If Grid Infrastructure was working all resources will be stopped automatically before deletion. &lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;This script has  to be run as root user.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre class="brush:bash"&gt;[root@piorovm install]# cd /u01/app/11.2.0/grid/crs/install&lt;br /&gt;[root@piorovm install]# ./roothas.pl -delete -force&lt;br /&gt;2010-06-18 14:40:33: Checking for super user privileges&lt;br /&gt;2010-06-18 14:40:33: User has super user privileges&lt;br /&gt;2010-06-18 14:40:33: Parsing the host name&lt;br /&gt;Using configuration parameter file: ./crsconfig_params&lt;br /&gt;CRS-4639: Could not contact Oracle High Availability Services&lt;br /&gt;CRS-4000: Command Stop failed, or completed with errors.&lt;br /&gt;CRS-4639: Could not contact Oracle High Availability Services&lt;br /&gt;CRS-4000: Command Delete failed, or completed with errors.&lt;br /&gt;CRS-4544: Unable to connect to OHAS&lt;br /&gt;CRS-4000: Command Stop failed, or completed with errors.&lt;br /&gt;ACFS-9200: Supported&lt;br /&gt;2560+0 records in&lt;br /&gt;2560+0 records out&lt;br /&gt;10485760 bytes (10 MB) copied, 0.077012 seconds, 136 MB/s&lt;br /&gt;Successfully deconfigured Oracle Restart stack&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;b&gt;Part 3- Host rename and Grid Infrastructure configuration&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;In that part any required changes to host can be made. If reconfiguration was a result of errors&lt;br /&gt;next new configuration of Grid Infrastructure can be done now.&lt;br /&gt;&lt;br /&gt;In this example both IP and host name have&amp;nbsp; been changed.&lt;/div&gt;&lt;br /&gt;&lt;pre class="brush:bash"&gt;[oracle@piorovm2 ~]$ cat /etc/hosts&lt;br /&gt;# Do not remove the following line, or various programs&lt;br /&gt;# that require network functionality will fail.&lt;br /&gt;127.0.0.1       localhost.localdomain localhost&lt;br /&gt;::1             localhost6.localdomain6 localhost6&lt;br /&gt;10.10.30.150    piorovm2.localdomain piorovm2&lt;br /&gt;[oracle@piorovm2 ~]$ hostname&lt;br /&gt;piorovm2.localdomain&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;As a first step of Grid Infrastructure configuration "roothas.pl" script has to be executed.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;It will create all local resources and allow future configuration of whole stack. This script has to be run as root user.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:bash"&gt;[root@piorovm install]# cd /u01/app/11.2.0/grid/crs/install&lt;br /&gt;[root@piorovm2 install]# ./roothas.pl -verbose&lt;br /&gt;2010-06-19 13:38:35: Checking for super user privileges&lt;br /&gt;2010-06-19 13:38:35: User has super user privileges&lt;br /&gt;2010-06-19 13:38:35: Parsing the host name&lt;br /&gt;Using configuration parameter file: ./crsconfig_params&lt;br /&gt;LOCAL ADD MODE&lt;br /&gt;Creating OCR keys for user 'oracle', privgrp 'oinstall'..&lt;br /&gt;Operation successful.&lt;br /&gt;CRS-4664: Node piorovm2 successfully pinned.&lt;br /&gt;Adding daemon to inittab&lt;br /&gt;CRS-4123: Oracle High Availability Services has been started.&lt;br /&gt;ohasd is starting&lt;br /&gt;&lt;br /&gt;piorovm2     2010/06/19 13:41:12     /u01/app/11.2.0/grid/cdata/piorovm2/backup_20100619_134112.olr&lt;br /&gt;Successfully configured Oracle Grid Infrastructure for a Standalone Server&lt;br /&gt;[root@piorovm2 install]#&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Next part of GI configuration will be executed from "oracle" account who is a owner of GI home.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;First of all current status of all resources will be displayed.&lt;/div&gt;&lt;br /&gt;&lt;pre class="brush:bash"&gt;[oracle@piorovm2 ~]$ crsctl status resource -t&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;NAME           TARGET  STATE        SERVER                   STATE_DETAILS&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;Cluster Resources&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;ora.cssd&lt;br /&gt;      1        OFFLINE OFFLINE&lt;br /&gt;ora.diskmon&lt;br /&gt;      1        OFFLINE OFFLINE&lt;br /&gt;[oracle@piorovm2 ~]$&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Both resources CSSD and DISKMON are offline and are not automatically started. It has to be changed and auto start mode has to be enabled.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;pre class="brush:bash"&gt;&lt;/pre&gt;&lt;pre class="brush:bash"&gt;[oracle@piorovm2 ~]$ crsctl modify resource "ora.cssd" -attr "AUTO_START=1"&lt;br /&gt;[oracle@piorovm2 ~]$ crsctl modify resource "ora.diskmon" -attr "AUTO_START=1"&lt;br /&gt;[oracle@piorovm2 ~]$ crsctl start resource "ora.cssd"&lt;br /&gt;CRS-2672: Attempting to start 'ora.cssd' on 'piorovm2'&lt;br /&gt;CRS-2672: Attempting to start 'ora.diskmon' on 'piorovm2'&lt;br /&gt;CRS-2676: Start of 'ora.diskmon' on 'piorovm2' succeeded&lt;br /&gt;CRS-2676: Start of 'ora.cssd' on 'piorovm2' succeeded&lt;br /&gt;[oracle@piorovm2 ~]$ crsctl status resource -t&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;NAME           TARGET  STATE        SERVER                   STATE_DETAILS&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;Cluster Resources&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;ora.cssd&lt;br /&gt;      1        ONLINE  ONLINE       piorovm2&lt;br /&gt;ora.diskmon&lt;br /&gt;      1        ONLINE  ONLINE       piorovm2&lt;br /&gt;[oracle@piorovm2 ~]$&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;In that step both cluster resources (in single node configuration both resources are not really cluster one) are started and other GI resources like Oracle Listener and Oracle ASM instance can be added.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;In this example host name has been changed and appropriate changes has to be done for Oracle Listener configuration. After changes configuration file should look like this.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:bash"&gt;[oracle@piorovm2 ~]$ cat /u01/app/11.2.0/grid/network/admin/listener.ora&lt;br /&gt;# listener.ora Network Configuration File: /u01/app/11.2.0/grid/network/admin/listener.ora&lt;br /&gt;# Generated by Oracle configuration tools.&lt;br /&gt;&lt;br /&gt;LISTENER =&lt;br /&gt;  (DESCRIPTION_LIST =&lt;br /&gt;    (DESCRIPTION =&lt;br /&gt;      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))&lt;br /&gt;      (ADDRESS = (PROTOCOL = TCP)(HOST = piorovm2.localdomain)(PORT = 1521))&lt;br /&gt;    )&lt;br /&gt;  )&lt;br /&gt;&lt;br /&gt;ADR_BASE_LISTENER = /u01/app/oracle&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Listener and Oracle ASM has to be added to Grid Infrastructure and can be managed by it&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Listener name LISTENER has been taken from information gathered in first part. &lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;pre class="brush:bash"&gt;[oracle@piorovm2 ~]$ srvctl add listener -l LISTENER&lt;br /&gt;[oracle@piorovm2 ~]$ srvctl start listener&lt;br /&gt;[oracle@piorovm2 ~]$ crsctl status resource -t&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;NAME           TARGET  STATE        SERVER                   STATE_DETAILS&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;Local Resources&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;ora.LISTENER.lsnr&lt;br /&gt;               ONLINE  ONLINE       piorovm2&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;Cluster Resources&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;ora.cssd&lt;br /&gt;      1        ONLINE  ONLINE       piorovm2&lt;br /&gt;ora.diskmon&lt;br /&gt;      1        ONLINE  ONLINE       piorovm2&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;When Listener is up and running Oracle ASM instance can be added to GI.&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Listener name, disk string path and path and name of ASM parameter file has been taken from part 1.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;pre class="brush:bash"&gt;[oracle@piorovm2 ~]$ srvctl add asm -l LISTENER -d "/dev/sd*" -p "+DATA_SOURCE/ASM/ASMPARAMETERFILE/REGISTRY.253.722024685"&lt;br /&gt;[oracle@piorovm2 ~]$ srvctl start asm&lt;br /&gt;[oracle@piorovm2 ~]$ crsctl status resource -t&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;NAME           TARGET  STATE        SERVER                   STATE_DETAILS&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;Local Resources&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;ora.DATA_SOURCE.dg&lt;br /&gt;               ONLINE  ONLINE       piorovm2&lt;br /&gt;ora.LISTENER.lsnr&lt;br /&gt;               ONLINE  ONLINE       piorovm2&lt;br /&gt;ora.asm&lt;br /&gt;               ONLINE  ONLINE       piorovm2                 Started&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;Cluster Resources&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;ora.cssd&lt;br /&gt;      1        ONLINE  ONLINE       piorovm2&lt;br /&gt;ora.diskmon&lt;br /&gt;      1        ONLINE  ONLINE       piorovm2&lt;br /&gt;[oracle@piorovm2 ~]$&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;When both - Listener and Oracle ASM instance has been successfully added Grid Infrastructure configuration has been completed.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Oracle Grid Infrastructure and all management commands related in previous version for Oracle RAC only are now required for single instance environment with ASM and in my opinion this is a new direction of Oracle software. All differences between Oracle RAC and single instance will be minimized from maintenance and configuration point of view.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;regards,&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Marcin&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-80640898650571115?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/80640898650571115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=80640898650571115' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/80640898650571115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/80640898650571115'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2010/06/grid-infrastructure-reconfiguration.html' title='Grid Infrastructure - Reconfiguration / host name change'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-8226504564457677411</id><published>2010-05-24T23:09:00.003+01:00</published><updated>2010-05-24T23:13:30.261+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='alter database'/><category scheme='http://www.blogger.com/atom/ns#' term='BAAG'/><category scheme='http://www.blogger.com/atom/ns#' term='ASM'/><title type='text'>Rename file and BAAG</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Hi,&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;There are two reasons why I'm posting this. First I have read a &lt;a href="http://iggyfernandez.wordpress.com/2010/05/04/download-the-nocoug-journal-featuring-an-interview-with-alex-gorbachev/"&gt;interview&lt;br /&gt;with Alex Gorbachev&lt;/a&gt; about &lt;a href="http://www.battleagainstanyguess.com/"&gt;BAAG&lt;/a&gt; and second I run into BAAG related problem myself.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;This was not pure BAAG problem as I used my knowledge but I forgot about one very important step - VERIFY old knowledge (based on Oracle 8i) with current release. What I did ?&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;A scenario was very simple - I have a "production" database (thanks God it was only my VM) running on ASM with all files in group called DATA. I cloned that database using a storage snapshot functionality and then I have renamed ASM group to different name and mounted it. So far so good. Next step was to mount a cloned database and rename a files in control file using old fashion command&lt;/div&gt;&lt;pre&gt;ALTER DATABASE RENAME FILE '+DATA\xxxx\redo01.log' to '+DATACLONE\xxxx\redo02.log';&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Command was successfully finished and control file has been updated. I have checked a alert log and what was my surprise when I saw warning that file source can't be deleted.&lt;/div&gt;&lt;pre&gt;WARNING: Cannot delete Oracle managed file &lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;I didn't want to delete a source file - this file is a part of source database. It was very interested and I did another test - I have stopped a source database and run rename command for other file.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;And ? Yes a source file has been deleted. What if you do it on production environment without test ?&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;The most worry thing is that latest &lt;a href="http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/statements_1004.htm"&gt;SQL reference&lt;/a&gt; there is no information about that behavior.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;blockquote style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;i&gt;This clause renames only files in the control file. It does not actually  rename them on your operating system. The operating system files  continue to exist, but Oracle Database no longer uses them.&lt;/i&gt;&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;This is not about ASM but if there is a different behavior for ASM it should be mentioned as well. &lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;So there are three important things to remember:&lt;br /&gt;- ALTER DATABASE RENAME FILE can delete files &lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;- always check what you are going to do and not guess a results&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;- check relevant of vendor docs, White papers and other well know stuff with current release of software.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;regards,&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Marcin &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-8226504564457677411?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/8226504564457677411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=8226504564457677411' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/8226504564457677411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/8226504564457677411'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2010/05/rename-file-and-baag.html' title='Rename file and BAAG'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-4075373939155978712</id><published>2010-05-11T20:57:00.003+01:00</published><updated>2010-05-11T20:59:43.851+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='iscsi'/><title type='text'>Persistent ISCSI disks name</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Last few days I was working on Oracle cloning possibility using storage snapshots (post will be blogged soon) and I hit a ISCSI issue at the very beginning.&lt;br /&gt;I have been playing with restarting storage and Linux box and from time to time ISCSI disk has been mapped to different block devices (/dev/sdb1 instead of /dev/sdc1). I really need to keep this persistent and I found this instruction for &lt;a href="http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5.5/html/Virtualization_Guide/sect-Virtualization-Virtualized_block_devices-Configuring_persistent_storage_in_Red_Hat_Enterprise_Linux_5.html"&gt;RedHat Linux&lt;/a&gt; (so it should work for OEL and CentOS).&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Additionally I was looking for possibility to check how IQN shared on storage is mapped to Linux block devices. There is a nice directory layout where you can check that.&lt;br /&gt;&lt;pre class="brush:bash"&gt;[root@piorovm by-path]# pwd&lt;br /&gt;/dev/disk/by-path&lt;br /&gt;[root@piorovm by-path]# ls -l&lt;br /&gt;total 0&lt;br /&gt;lrwxrwxrwx 1 root root  9 May 11 13:01 ip-10.10.20.241:3260-iscsi-iqn.1986-03.com.sun:02:6fe1e73d-8d7a-6ee7-8446-db844ae0d0c7-lun-0 -&amp;gt; ../../sdc&lt;br /&gt;lrwxrwxrwx 1 root root 10 May 11 13:01 ip-10.10.20.241:3260-iscsi-iqn.1986-03.com.sun:02:6fe1e73d-8d7a-6ee7-8446-db844ae0d0c7-lun-0-part1 -&amp;gt; ../../sdc1&lt;br /&gt;lrwxrwxrwx 1 root root  9 May 11 13:01 ip-10.10.20.241:3260-iscsi-iqn.1986-03.com.sun:02:f6746dbb-c95f-e2dc-8bb6-c82d3ef5169a-lun-0 -&amp;gt; ../../sdb&lt;br /&gt;lrwxrwxrwx 1 root root 10 May 11 13:01 ip-10.10.20.241:3260-iscsi-iqn.1986-03.com.sun:02:f6746dbb-c95f-e2dc-8bb6-c82d3ef5169a-lun-0-part1 -&amp;gt; ../../sdb1&lt;br /&gt;lrwxrwxrwx 1 root root  9 May 11 13:00 pci-0000:00:07.1-ide-0:0 -&amp;gt; ../../hda&lt;br /&gt;lrwxrwxrwx 1 root root 10 May 11 13:00 pci-0000:00:07.1-ide-0:0-part1 -&amp;gt; ../../hda1&lt;br /&gt;lrwxrwxrwx 1 root root 10 May 11 13:00 pci-0000:00:07.1-ide-0:0-part2 -&amp;gt; ../../hda2&lt;br /&gt;lrwxrwxrwx 1 root root  9 May 11 13:00 pci-0000:00:07.1-ide-1:0 -&amp;gt; ../../hdc&lt;br /&gt;lrwxrwxrwx 1 root root  9 May 11 13:00 pci-0000:00:10.0-scsi-0:0:0:0 -&amp;gt; ../../sda&lt;br /&gt;lrwxrwxrwx 1 root root 10 May 11 13:00 pci-0000:00:10.0-scsi-0:0:0:0-part1 -&amp;gt; ../../sda1&lt;br /&gt;[root@piorovm by-path]#&lt;/pre&gt;When you know which IQN is pointed to which block devices we can use mentioned RedHat instruction with some additional remarks.&lt;br /&gt;&lt;br /&gt;Here is output from my configuration&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Check WWID for block devices &lt;/li&gt;&lt;pre class="brush:bash"&gt;[root@piorovm ~]# scsi_id -g -s /block/sdb&lt;br /&gt;3600144f04be80ec000000c2936224200&lt;br /&gt;[root@piorovm ~]# scsi_id -g -s /block/sdc&lt;br /&gt;3600144f04be7ffdf00000c2936224200&lt;br /&gt;&lt;/pre&gt;&lt;li&gt;Go to &lt;br /&gt;&lt;pre class="brush:bash"&gt;[root@piorovm ~]# cd /etc/udev/rules.d/&lt;br /&gt;&lt;/pre&gt;and create a file called 20-names.rules  Replace my WWID with results from scsi_id command and put correct names    &lt;pre class="brush:bash"&gt;[root@piorovm rules.d]# cat 20-name.rules&lt;br /&gt;KERNEL=="sd*", BUS=="scsi", PROGRAM="/sbin/scsi_id -g -s", RESULT=="3600144f04be7ffdf00000c2936224200", NAME="sdc"&lt;br /&gt;KERNEL=="sd*", BUS=="scsi", PROGRAM="/sbin/scsi_id -g -s", RESULT=="3600144f04be80ec000000c2936224200", NAME="sdb"&lt;br /&gt;&lt;/pre&gt;Here is a change with RedHat doc – use double equal mark "==" instead of one equal mark "=" for compare (KERNEL, BUS,RESULT).&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Save file and start&lt;br /&gt;&lt;pre class="brush:bash"&gt;[root@piorovm ~]# start_udev&lt;br /&gt;Starting udev:                                             [  OK  ]&lt;br /&gt;[root@piorovm ~]#&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;regards,&lt;br /&gt;Marcin&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-4075373939155978712?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/4075373939155978712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=4075373939155978712' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/4075373939155978712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/4075373939155978712'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2010/05/persistent-iscsi-disks-name.html' title='Persistent ISCSI disks name'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-9173336345696646291</id><published>2010-04-23T13:09:00.000+01:00</published><updated>2010-04-23T13:09:58.023+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='11g'/><category scheme='http://www.blogger.com/atom/ns#' term='Grid Control'/><title type='text'>Grid  Control 11.1- new directories structure</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;New Grid Control has a different design of directory structure on disk. &lt;br /&gt;During installation process you have been asked for two paths&lt;/div&gt;&lt;ul style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;li&gt;Middleware home&lt;/li&gt;&lt;li&gt;Instance base&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Let’s take a closer look on new structure.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Middleware Home - set to /u01/Middleware &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This is directory where Weblogic server has been installed and according to Grid Control Installation documentation &lt;/div&gt;&lt;blockquote&gt;Oracle Middleware Home is the parent directory that has the Oracle WebLogic Server&lt;br /&gt;home, the Web tier instance files, and, optionally, one or more Oracle homes. &lt;br /&gt;This  is where the OMS and the Management Agent are deployed.&lt;/blockquote&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;After Grid Control installation process you will see following structure in that directory:&lt;/div&gt;&lt;pre class="brush:bash"&gt;[oracle@piorovm Middleware]$ du -s -h *&lt;br /&gt;1.4G    agent11g      &lt;br /&gt;4.0K    domain-registry.xml   &lt;br /&gt;172M    jdk160_14_R27.6.5-32  &lt;br /&gt;187M    jrockit_160_14_R27.6.5-32  &lt;br /&gt;8.0K    logs       &lt;br /&gt;121M    modules      &lt;br /&gt;4.0K    ocm.rsp      &lt;br /&gt;3.4G    oms11g       &lt;br /&gt;895M    oracle_common     &lt;br /&gt;887M    Oracle_WT      &lt;br /&gt;60K     registry.dat     &lt;br /&gt;4.0K    registry.xml     &lt;br /&gt;444K    user_projects     &lt;br /&gt;26M     utils       &lt;br /&gt;518M    wlserver_10.3    &lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;As you can see the following directories are part of Grid Control:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;agent11g - Agent Oracle Home&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/li&gt;&lt;li&gt;oms11g - OMS Oracle Home&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/li&gt;&lt;li&gt;oracle_common &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/li&gt;&lt;li&gt;Oracle_WT - WebTier &lt;/li&gt;&lt;/ul&gt;Rest of directories are part of Weblogic server.&lt;/div&gt;&lt;br /&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;b&gt;Instance base - set to /u01/gc_inst&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;According to Oracle Installation documentation:&lt;br /&gt;&lt;blockquote&gt;Oracle Management Service Instance Base Location is the directory under the parent directory of the Oracle Middleware Home, where the configuration files of OMS a restored.&lt;/blockquote&gt;Let see what is inside&lt;/div&gt;&lt;pre class="brush:bash"&gt;[oracle@piorovm gc_inst]$ du -s -h *&lt;br /&gt;1.4M    em        &lt;br /&gt;895M    user_projects     &lt;br /&gt;53M     WebTierIH1      &lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Short description:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; em - sysman configuration and logs files – equivalnet of old OMS ORACLE_HOME/sysman directory&lt;/li&gt;&lt;li&gt;user_projects – deployed OMS server application – equivalent of old OMS ORACLE_HOME/j2ee directory&lt;/li&gt;&lt;li&gt;WebTierIH1 – web tier - equivalent of old OMS ORACLE_HOME/Apache&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Log files&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;As Grid Control has a new directory structure all log files has been moved to different directories too. Please find some new location of well know logs:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Agent trace and log files - &lt;br /&gt;/u01/Middleware/agent11g/sysman/log/&lt;/li&gt;&lt;li&gt;OMS trace and log files - &lt;br /&gt;/u01/gc_inst/em/EMGC_OMS1/sysman/log&lt;/li&gt;&lt;li&gt;Domian log - &lt;br /&gt;/u01/gc_inst/user_projects/domains/GCDomain/servers/EMGC_ADMINSERVER/logs/GCDomain.log&lt;/li&gt;&lt;li&gt;Weblogic OMS server -- &lt;br /&gt;/u01/gc_inst/user_projects/domains/GCDomain/servers/EMGC_OMS1/logs&lt;/li&gt;&lt;li&gt;Weblogic Admin server - &lt;br /&gt;/u01/gc_inst/user_projects/domains/GCDomain/servers/EMGC_ADMINSERVER/logs&lt;/li&gt;&lt;/ul&gt;Where:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;/u01/gc_inst - is a Instance Base&lt;/li&gt;&lt;li&gt;GCDomain is a Weblogic domain name&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;As you can see there are two Weblogic servers – if you are familiar with Weblogic you know that there should be always at least two – one is a Admin server and next servers (can be more than one) are management servers and those servers are running applications. In our case server EMGC_OMS1 is a management server and OMS software is running on it. &lt;br /&gt;In relation to old Oracle Grid Control we can say that new admin server is a equivalent of HOME OC4 container and new management server called EMGS_OMS1 is a equivalent of&amp;nbsp; EM OC4J container.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Grid Control maintenance&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Automatic start:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;An additional file has been added to Linux starting scripts (/ect/init.d/gcstartup) and it is staring&lt;br /&gt;Grid Control infrastructure. Keep in mind that unlike to Grid Control 10g this script doesn’t include database. It is DBA responsibility to start a database before this script will be started.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Manual start:&lt;/i&gt;&lt;br /&gt;To start Grid Control we need to use emctl tool from oms11g Oracle Home.&lt;/div&gt;&lt;pre class="brush:bash"&gt;[oracle@piorovm oms11g]$ ./bin/emctl start oms&lt;br /&gt;Oracle Enterprise Manager 11g Release 1 Grid Control&lt;br /&gt;Copyright (c) 1996, 2010 Oracle Corporation.  All rights reserved.&lt;br /&gt;Starting WebTier...&lt;br /&gt;WebTier Successfully Started&lt;br /&gt;Starting Oracle Management Server...&lt;br /&gt;Oracle Management Server Successfully Started&lt;br /&gt;Oracle Management Server is Up&lt;br /&gt;[oracle@piorovm oms11g]$&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;i&gt;Status:&lt;/i&gt;&lt;br /&gt;From maintenance point of view OPMN functionality has been reduced to WebTier only and management server can be start and stop only via emctl utility.&lt;br /&gt;&lt;pre class="brush:bash"&gt;[oracle@piorovm oms11g]$ ./bin/emctl status oms&lt;br /&gt;Oracle Enterprise Manager 11g Release 1 Grid Control&lt;br /&gt;Copyright (c) 1996, 2010 Oracle Corporation.&amp;nbsp; All rights reserved.&lt;br /&gt;WebTier is Up&lt;br /&gt;Oracle Management Server is Up&lt;br /&gt;[oracle@piorovm oms11g]$&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;i&gt;WebTier &lt;/i&gt;&lt;br /&gt;Let’s try to check HTTP status using a old OPMN process&lt;br /&gt;&lt;pre class="brush:bash"&gt;[oracle@piorovm ]$ cd /u01/Middleware/oms11g&lt;br /&gt;[oracle@piorovm oms11g]$ ./opmn/bin/opmnctl status&lt;br /&gt;opmnctl: ORACLE_INSTANCE is not set.&lt;br /&gt;opmnctl status requires that ORACLE_INSTANCE be correctly set in your environment.&lt;br /&gt;Make sure you are using ORACLE_INSTANCE/bin/opmnctl, or set ORACLE_INSTANCE&lt;br /&gt;in your environment.&lt;br /&gt;&lt;/pre&gt;Ok let’s set this environment variable and check again.&lt;br /&gt;&lt;pre class="brush:bash"&gt;[oracle@piorovm oms11g]$ ./opmn/bin/opmnctl status&lt;br /&gt;&lt;br /&gt;Processes in Instance: instance1&lt;br /&gt;---------------------------------+--------------------+---------+---------&lt;br /&gt;ias-component                    | process-type       |     pid | status&lt;br /&gt;---------------------------------+--------------------+---------+---------&lt;br /&gt;ohs1                             | OHS                |   11538 | Alive&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;Now I can try to restart WebTier process if needed&lt;br /&gt;&lt;pre class="brush:bash"&gt;[oracle@piorovm oms11g]$ ./opmn/bin/opmnctl stopproc&lt;br /&gt;opmnctl stopproc: stopping opmn managed processes...&lt;br /&gt;[oracle@piorovm oms11g]$ ./opmn/bin/opmnctl status&lt;br /&gt;&lt;br /&gt;Processes in Instance: instance1&lt;br /&gt;---------------------------------+--------------------+---------+---------&lt;br /&gt;ias-component                    | process-type       |     pid | status&lt;br /&gt;---------------------------------+--------------------+---------+---------&lt;br /&gt;ohs1                             | OHS                |     N/A | Down&lt;br /&gt;&lt;br /&gt;[oracle@piorovm oms11g]$ ./opmn/bin/opmnctl startproc&lt;br /&gt;opmnctl startproc: starting opmn managed processes...&lt;br /&gt;[oracle@piorovm oms11g]$ ./opmn/bin/opmnctl status&lt;br /&gt;&lt;br /&gt;Processes in Instance: instance1&lt;br /&gt;---------------------------------+--------------------+---------+---------&lt;br /&gt;ias-component                    | process-type       |     pid | status&lt;br /&gt;---------------------------------+--------------------+---------+---------&lt;br /&gt;ohs1                             | OHS                |   18227 | Alive&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;Agent&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;There is no changes to agent startup process - only Agent Oracle Home has a different location.&lt;br /&gt;&lt;pre class="brush:bash"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="brush:bash"&gt;[oracle@piorovm agent11g]$ pwd&lt;br /&gt;/u01/Middleware/agent11g&lt;br /&gt;[oracle@piorovm agent11g]$ ./bin/emctl start agent&lt;br /&gt;Oracle Enterprise Manager 11g Release 1 Grid Control 11.1.0.1.0&lt;br /&gt;Copyright (c) 1996, 2010 Oracle Corporation.&amp;nbsp; All rights reserved.&lt;br /&gt;Starting agent ................................... started.&lt;br /&gt;[oracle@piorovm agent11g]$&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-9173336345696646291?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/9173336345696646291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=9173336345696646291' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/9173336345696646291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/9173336345696646291'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2010/04/grid-control-111-new-directories.html' title='Grid  Control 11.1- new directories structure'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-1636068091796247317</id><published>2010-04-17T17:03:00.005+01:00</published><updated>2010-04-17T17:13:38.845+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='11g'/><category scheme='http://www.blogger.com/atom/ns#' term='Grid Control'/><title type='text'>Grid  Control 11.1- Installation - OEM</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Hello,&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Welcome in part 2 of my series about Grid Control 11g.&lt;br /&gt;In the &lt;a href="http://oracleprof.blogspot.com/2010/04/grid-control-111.html"&gt;first part&lt;/a&gt; I have described how to install Weblogic server which is a one of main components of new Grid Control.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Second required component is a database in releases described in previous post too.I have used 11.1.0.7 with default settings.&lt;br /&gt;According to installation document (included in zip files from eDevlivery) and checks performed by OUI during my installation following parameters has to be set in my database:&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;open_cursors 300 or greater&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;processes 500 or greater&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;session_cached_cursors 200 or greater&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;log_buffer 10485760 or greater&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Next thing is to delete existing database console repository and delete whole db console configuration. This is checked by OUI too so it is better to do it before start.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;emca -deconfig dbcontrol db -repos drop&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;If you are installing Grid Control on RedHat 5.2 (it was my case) in addition to all packages required for 11gR1 database you will need following package:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;compat-db-4.2&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;I have used that rpm&lt;/span&gt; compat-db-4.2.52-5.1.i386.rpm &lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;This a package with libdb used by webserver.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Space requirements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Weblogic - installed in previous part about 1 GB&lt;/li&gt;&lt;li&gt;Grid Control - required space is 8.4 GB&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;about 7 GB is installed in Middleware home&lt;/li&gt;&lt;li&gt;rest in OEM home&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Database - about 1 GB for new tablespaces&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;After that we can start with installation.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;OUI start - ./runInstaller&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_04XcTwZsZtg/S8mOsQD7wiI/AAAAAAAAAH4/MS3ttxZ7tr0/s1600/oem1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="312" src="http://4.bp.blogspot.com/_04XcTwZsZtg/S8mOsQD7wiI/AAAAAAAAAH4/MS3ttxZ7tr0/s400/oem1.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Confirm that you don't need MOS - at least during installation&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_04XcTwZsZtg/S8mPCP1G1xI/AAAAAAAAAIA/GV5N6DOpmFo/s1600/oem2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="162" src="http://2.bp.blogspot.com/_04XcTwZsZtg/S8mPCP1G1xI/AAAAAAAAAIA/GV5N6DOpmFo/s400/oem2.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Basic installation - without any additional patches &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_04XcTwZsZtg/S8mPXs1FYUI/AAAAAAAAAII/vf3fXS33gf0/s1600/oem3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="312" src="http://3.bp.blogspot.com/_04XcTwZsZtg/S8mPXs1FYUI/AAAAAAAAAII/vf3fXS33gf0/s400/oem3.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;New installation - we don't have any existing Management Services yet &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_04XcTwZsZtg/S8mP6bJyZiI/AAAAAAAAAIQ/5afJLfmWR9w/s1600/oem4.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="313" src="http://3.bp.blogspot.com/_04XcTwZsZtg/S8mP6bJyZiI/AAAAAAAAAIQ/5afJLfmWR9w/s400/oem4.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;All prerequisites are met&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_04XcTwZsZtg/S8mQlz_RNTI/AAAAAAAAAIY/XGvTFXD0fow/s1600/oem10.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="313" src="http://4.bp.blogspot.com/_04XcTwZsZtg/S8mQlz_RNTI/AAAAAAAAAIY/XGvTFXD0fow/s400/oem10.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Middleware home loction has to be set to Weblogic installation, OMS location is a directory for Grid Control - see disk spaces requirement above&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_04XcTwZsZtg/S8mR9UfrgjI/AAAAAAAAAIg/NM-T21898d4/s1600/oem8.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="313" src="http://4.bp.blogspot.com/_04XcTwZsZtg/S8mR9UfrgjI/AAAAAAAAAIg/NM-T21898d4/s400/oem8.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Provide username and password for new Weblogic domain and password for Node Manager. Weblogic domain can be compared to OC4J but you can have more then one server in domain. Node Manager is a host based tool used for domain management.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_04XcTwZsZtg/S8mURV3XF4I/AAAAAAAAAIo/SApzxlPHI24/s1600/oem11.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="313" src="http://4.bp.blogspot.com/_04XcTwZsZtg/S8mURV3XF4I/AAAAAAAAAIo/SApzxlPHI24/s400/oem11.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Provide database details like hostname, listener port and sys password. OUI will check if database meet all required prerequisites now. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_04XcTwZsZtg/S8mU4sSH0wI/AAAAAAAAAIw/3XFpPE_Jgd8/s1600/oem12.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_04XcTwZsZtg/S8mU4sSH0wI/AAAAAAAAAIw/3XFpPE_Jgd8/s320/oem12.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I have deleted DB Console but still got following error - after 2 compilations I just clicked continue. When you drop DB Console repository SYSMAN user should be dropped too - so I don't think it will be a problem.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_04XcTwZsZtg/S8mWhUrW6FI/AAAAAAAAAI4/1DROmfqZ6QQ/s1600/oem16.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="105" src="http://3.bp.blogspot.com/_04XcTwZsZtg/S8mWhUrW6FI/AAAAAAAAAI4/1DROmfqZ6QQ/s400/oem16.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Enter password for SYSMAN user and path for tablespace files&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_04XcTwZsZtg/S8mW3LK-BvI/AAAAAAAAAJA/sDO6A9NmFME/s1600/oem17.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="313" src="http://2.bp.blogspot.com/_04XcTwZsZtg/S8mW3LK-BvI/AAAAAAAAAJA/sDO6A9NmFME/s400/oem17.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Registration password for agent and security settings&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_04XcTwZsZtg/S8nZm5O1WZI/AAAAAAAAAJI/kAakSd6nffo/s1600/oem18.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="313" src="http://4.bp.blogspot.com/_04XcTwZsZtg/S8nZm5O1WZI/AAAAAAAAAJI/kAakSd6nffo/s400/oem18.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ports summary - all ports in one page and easy to edit&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_04XcTwZsZtg/S8naB9OYQzI/AAAAAAAAAJQ/XJiBSfAtoSE/s1600/oem19.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="313" src="http://3.bp.blogspot.com/_04XcTwZsZtg/S8naB9OYQzI/AAAAAAAAAJQ/XJiBSfAtoSE/s400/oem19.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Last review&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_04XcTwZsZtg/S8naO6ysaPI/AAAAAAAAAJY/YcivyWByv00/s1600/oem20.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="313" src="http://3.bp.blogspot.com/_04XcTwZsZtg/S8naO6ysaPI/AAAAAAAAAJY/YcivyWByv00/s400/oem20.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Installation - cafe time ;) it took about 1 hour on my laptop&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_04XcTwZsZtg/S8naj8cfjwI/AAAAAAAAAJg/O009tMIM80Y/s1600/oem21.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="313" src="http://2.bp.blogspot.com/_04XcTwZsZtg/S8naj8cfjwI/AAAAAAAAAJg/O009tMIM80Y/s400/oem21.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Root part of work - all in one script&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_04XcTwZsZtg/S8nayGl6IdI/AAAAAAAAAJo/neh1kPNlPNI/s1600/oem22.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="286" src="http://2.bp.blogspot.com/_04XcTwZsZtg/S8nayGl6IdI/AAAAAAAAAJo/neh1kPNlPNI/s400/oem22.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;And at least - OEM configuration - another long running process&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_04XcTwZsZtg/S8nbF9w5YVI/AAAAAAAAAJw/vPWonDee1bc/s1600/oem24.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="313" src="http://4.bp.blogspot.com/_04XcTwZsZtg/S8nbF9w5YVI/AAAAAAAAAJw/vPWonDee1bc/s400/oem24.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;This is it - yes if you are here you have Grid Control installed&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_04XcTwZsZtg/S8nbYBalDTI/AAAAAAAAAJ4/FftIke8oB_Y/s1600/oem25.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="313" src="http://1.bp.blogspot.com/_04XcTwZsZtg/S8nbYBalDTI/AAAAAAAAAJ4/FftIke8oB_Y/s400/oem25.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;This is all for that post. I have almost no time after installation to play with new Grid Control but I have a free weekend so I hope I will spend some time on investigating it and I hope to blog about it.&lt;br /&gt;&lt;br /&gt;regards,&lt;br /&gt;Marcin&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-1636068091796247317?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/1636068091796247317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=1636068091796247317' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/1636068091796247317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/1636068091796247317'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2010/04/grid-control-111-installation-oem.html' title='Grid  Control 11.1- Installation - OEM'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_04XcTwZsZtg/S8mOsQD7wiI/AAAAAAAAAH4/MS3ttxZ7tr0/s72-c/oem1.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-7968166342959159525</id><published>2010-04-15T22:50:00.003+01:00</published><updated>2010-04-15T22:52:40.967+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='11g'/><category scheme='http://www.blogger.com/atom/ns#' term='Grid Control'/><title type='text'>Grid Control 11.1- Installation - Weblogic server</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Hello&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;New Grid Control 11g has been released a view days ago (see my previous &lt;a href="http://oracleprof.blogspot.com/2010/04/grid-control-111.html"&gt;post&lt;/a&gt; with links).I have spend some time downloading it and now is time to share my installing experience.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;First of all you have to know that unlike in previous version of Grid Control, new one is shipped without application server and without database.Both of them has to be downloaded and installed separately.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;This a list of all necessary Oracle products:&lt;/div&gt;&lt;ul style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;li&gt;Oracle Database - 10.2.0.4, 11.1.0.7, 11.2.0.1 plus required patches - see Grid Control Basic Installation Guide&amp;nbsp;&lt;/li&gt;&lt;li&gt;Weblogic 10.3.2 with patches - I was unable to find required patch but decided to try without it&lt;/li&gt;&lt;li&gt;certified operating system - Oracle Enterprise Linux 4, 5.x or RedHat Linux 4, 5.x &lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;I'm wondering what is inside this package Grid Control 10g has about 2.5 GB including database and application server. Grid Control 11g has 4.2 GB without application server (1 GB) and database server (4 GB for Oracle 11gR1).&lt;br /&gt;Let's start with prerequisites.I assume that everybody has database up and running and I will start with Weblogic server. I have some experience with Weblogic version 7 and 8 and I have been very excited to see a new version of it.&lt;/div&gt;&lt;ol style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;li&gt;Download a &lt;a href="http://download.oracle.com/otn/linux/middleware/11g/wls/wls1032_linux32.bin"&gt;Weblogic server&lt;/a&gt; - I have used Package installer which has everything inside one package&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Login as oracle and start ./wls1032_linux32.bin process&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Welcome screen appear - Click Next&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_04XcTwZsZtg/S8d5vL-5t2I/AAAAAAAAAGw/ATzvgnDcIjA/s1600/web1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="305" src="http://3.bp.blogspot.com/_04XcTwZsZtg/S8d5vL-5t2I/AAAAAAAAAGw/ATzvgnDcIjA/s400/web1.JPG" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Choose Middleware Home and click Next&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_04XcTwZsZtg/S8eEHsq-cjI/AAAAAAAAAG4/7hxI2yij6f4/s1600/web2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="305" src="http://2.bp.blogspot.com/_04XcTwZsZtg/S8eEHsq-cjI/AAAAAAAAAG4/7hxI2yij6f4/s400/web2.JPG" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Confirm that you don't need to configure My Oracle Support&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_04XcTwZsZtg/S8eFo4iBpAI/AAAAAAAAAHI/6H6IYWFd3qQ/s1600/web3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="305" src="http://2.bp.blogspot.com/_04XcTwZsZtg/S8eFo4iBpAI/AAAAAAAAAHI/6H6IYWFd3qQ/s400/web3.JPG" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Choose installation type&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_04XcTwZsZtg/S8eGFQ8h4QI/AAAAAAAAAHQ/wJopRmy5qQA/s1600/web4.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="305" src="http://4.bp.blogspot.com/_04XcTwZsZtg/S8eGFQ8h4QI/AAAAAAAAAHQ/wJopRmy5qQA/s400/web4.JPG" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Confirm Weblogic directory&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_04XcTwZsZtg/S8eGHfnHWVI/AAAAAAAAAHY/d4J46xN4erk/s1600/web5.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="305" src="http://2.bp.blogspot.com/_04XcTwZsZtg/S8eGHfnHWVI/AAAAAAAAAHY/d4J46xN4erk/s400/web5.JPG" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Installation summary - click Next&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_04XcTwZsZtg/S8eGvyCnx9I/AAAAAAAAAHg/E5OsnO-d9Bo/s1600/web6.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="305" src="http://4.bp.blogspot.com/_04XcTwZsZtg/S8eGvyCnx9I/AAAAAAAAAHg/E5OsnO-d9Bo/s400/web6.JPG" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Take some - installation in progress&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_04XcTwZsZtg/S8eHMqsKdSI/AAAAAAAAAHo/qa6xot5hFFk/s1600/web7.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="305" src="http://2.bp.blogspot.com/_04XcTwZsZtg/S8eHMqsKdSI/AAAAAAAAAHo/qa6xot5hFFk/s400/web7.JPG" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Installation has been completed - We don't need to configure any Weblogic domain now so we can skip Quickstart. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_04XcTwZsZtg/S8eHiBaxkoI/AAAAAAAAAHw/cfGH5ptwQgQ/s1600/web8.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="305" src="http://3.bp.blogspot.com/_04XcTwZsZtg/S8eHiBaxkoI/AAAAAAAAAHw/cfGH5ptwQgQ/s400/web8.JPG" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;If everything was well you should have all necessary components (database and Weblogic server) to start Grid Control installation. Next post will cover check of database parameters and Grid Control installation. See you soon.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Marcin &lt;/span&gt;&lt;br /&gt;&lt;ol style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-7968166342959159525?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/7968166342959159525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=7968166342959159525' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7968166342959159525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7968166342959159525'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2010/04/grid-control-111-installation-weblogic.html' title='Grid Control 11.1- Installation - Weblogic server'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_04XcTwZsZtg/S8d5vL-5t2I/AAAAAAAAAGw/ATzvgnDcIjA/s72-c/web1.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-6865692655823300593</id><published>2010-04-12T21:50:00.001+01:00</published><updated>2010-04-12T21:52:00.889+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='11g'/><category scheme='http://www.blogger.com/atom/ns#' term='OEM'/><category scheme='http://www.blogger.com/atom/ns#' term='Grid Control'/><title type='text'>Grid Control 11.1</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Hi,&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Grid Control 11.1 on Linux platform is available to download from &lt;a href="http://edelivery.oracle.com/"&gt;Oracle E-delivery&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Thanks to &lt;a href="http://www.blogger.com/goog_551978054"&gt;Marco &lt;/a&gt;&lt;span class="fn"&gt;&lt;a href="http://twitter.com/MGralike"&gt;Gralike&lt;/a&gt; and &lt;/span&gt;&lt;span class="status-body"&gt;&lt;span class="status-content"&gt;&lt;span class="entry-content"&gt;Rob Zoeteweij.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span class="status-body"&gt;&lt;span class="status-content"&gt;&lt;span class="entry-content"&gt;There are 3 disks - about 4.2 GB in total - so be aware before you download it. You will need a lot of space for test. Grid Control 11.1 is based on Weblogic server and it need 2 GB of RAM.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;According to disk space and memory requirements it is laptop killer.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;regards,&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Marcin&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-6865692655823300593?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/6865692655823300593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=6865692655823300593' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/6865692655823300593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/6865692655823300593'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2010/04/grid-control-111.html' title='Grid Control 11.1'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-2427821538824362439</id><published>2010-04-02T19:09:00.004+01:00</published><updated>2010-04-02T19:11:17.078+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sqlplus'/><category scheme='http://www.blogger.com/atom/ns#' term='shutdown immediate'/><title type='text'>Shutdown immediate and background sqlplus process</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Hello,&lt;br /&gt;&lt;br /&gt;I have been playing with Oracle 11g and memory utilization and I finished myself with strange problem. I have started about 60 background sessions using following command:&lt;/div&gt;&lt;pre class="brush:bash"&gt;$ sqlplus pioro/pioro @a.sql&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Script a.sql is a simple one and it is allocating about 8 MB of memory for PL/SQL table but this is story for different post.&lt;br /&gt;After some tests I was going to restart database. First thought was simple - shutdown immediate and that's it.&lt;br /&gt;When I come back with next cup of tea database was still open. Hmmm. &lt;br /&gt;Let's check alter.log&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:bash"&gt;License high water mark = 59&lt;br /&gt;Waiting for dispatcher 'D000' to shutdown&lt;br /&gt;Waiting for shared server 'S000' to die&lt;br /&gt;All dispatchers and shared servers shutdown&lt;br /&gt;Tue Mar 30 09:31:00 2010&lt;br /&gt;SHUTDOWN: Active processes prevent shutdown operation&lt;br /&gt;Tue Mar 30 09:36:01 2010&lt;br /&gt;SHUTDOWN: Active processes prevent shutdown operation&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;and trace file&lt;/div&gt;&lt;pre class="brush:bash"&gt;Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production&lt;br /&gt;With the Partitioning, Oracle Label Security, OLAP, Data Mining&lt;br /&gt;and Real Application Testing options&lt;br /&gt;ORACLE_HOME = /oracle/app/product/11.1.0/db_1&lt;br /&gt;...&lt;br /&gt;*** 2010-03-30 09:25:58.372&lt;br /&gt;*** SESSION ID:(170.15) 2010-03-30 09:25:58.372&lt;br /&gt;*** CLIENT ID:() 2010-03-30 09:25:58.372&lt;br /&gt;*** SERVICE NAME:(SYS$USERS) 2010-03-30 09:25:58.372&lt;br /&gt;*** MODULE NAME:(sqlplus@piorovm.localdomain (TNS V1-V3)) 2010-03-30 09:25:58.372&lt;br /&gt;*** ACTION NAME:() 2010-03-30 09:25:58.372&lt;br /&gt;...&lt;br /&gt;ksukia: Starting kill, force = 0&lt;br /&gt;ksukia: killed 57 out of 57 processes.&lt;br /&gt;&lt;br /&gt;*** 2010-03-30 09:26:03.421&lt;br /&gt;ksukia: Starting kill, force = 0&lt;br /&gt;ksukia: Attempt 1 to re-kill process OS PID=24040.&lt;br /&gt;...&lt;br /&gt;ksukia: Attempt 1 to re-kill process OS PID=23958.&lt;br /&gt;ksukia: Attempt 1 to re-kill process OS PID=23954.&lt;br /&gt;ksukia: Attempt 1 to re-kill process OS PID=23951.&lt;br /&gt;ksukia: Attempt 1 to re-kill process OS PID=23949.&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Hmm - all this session was idle and there was no transactions at all - so why "shutdown immediate" can't shut down database. Next what has to be done is check of status of processes in Linux&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:bash"&gt;$ ps -ef &lt;br /&gt;...&lt;br /&gt;oracle    7426 11402  0 09:34 pts/1    00:00:00 sqlplus             @a.sql&lt;br /&gt;oracle    7427  7426  0 09:34 ?        00:00:00 [oracle] &amp;lt;defunct&amp;gt;&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;I just put two lines as example - as you can see oracle process 7427 becomes zombie.&lt;br /&gt;So let's kill it and solve problem&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:bash"&gt;$ kill -9 7427&lt;br /&gt;$ ps -ef&lt;br /&gt;...&lt;br /&gt;oracle    7426 11402  0 09:34 pts/1    00:00:00 sqlplus             @a.sql&lt;br /&gt;oracle    7427  7426  0 09:34 ?        00:00:00 [oracle] &amp;lt;defunct&amp;gt;&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;Still working. I google a little bit and found answer (http://www.linuxsa.org.au/tips/zombies.html)&lt;br /&gt;This is true - you can kill dead process. What you have to do is kill his parent process.&lt;br /&gt;PPID for my process is 7426 and this is a sqlplus process starting my script.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:bash"&gt;$ kill -9 7426 &lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;and database is going down. (of course I have to kill all sqlplus processes without that one with shutdown immediate command running)&lt;br /&gt;&lt;br /&gt;Most funny thing is that is sqlplus process is running in foreground or when is started from cron there is no issue with other sessions&lt;br /&gt;and shutdown immediate is working well.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:bash"&gt;$ ps -ef&lt;br /&gt;...&lt;br /&gt;oracle    8831 11402  0 09:40 pts/1    00:00:00 sqlplus             @a.sql&lt;br /&gt;oracle    8832  8831  1 09:40 ?        00:00:00 oraclepioro (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;Shutdown immediate executed on other sqlplus session and following result in observed session&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; select * from dual;&lt;br /&gt;select * from dual&lt;br /&gt;*&lt;br /&gt;ERROR at line 1:&lt;br /&gt;ORA-03135: connection lost contact&lt;br /&gt;Process ID: 8832&lt;br /&gt;Session ID: 153 Serial number: 5&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;This is expected result of shutdown immediate command.&lt;br /&gt;&lt;br /&gt;Where is a problem ?&lt;br /&gt;If sqlplus is running as background process and it become idle (no active SQL)  will be not finished until it will be killed or taken to foreground using fg.&lt;br /&gt;Be aware if you want to shutdown database and you have some sqlplus'es in background – especially in this same Linux session.&lt;br /&gt;&lt;br /&gt;regards,&lt;br /&gt;Marcin&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-2427821538824362439?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/2427821538824362439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=2427821538824362439' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/2427821538824362439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/2427821538824362439'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2010/04/shutdown-immediate-and-background.html' title='Shutdown immediate and background sqlplus process'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-1247441599698194691</id><published>2010-03-27T19:21:00.001Z</published><updated>2010-03-27T19:22:26.631Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='error'/><category scheme='http://www.blogger.com/atom/ns#' term='application server'/><title type='text'>Oracle Application Server issue</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Strange error in Oracle Application Server 10g 10.1.3.3.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;I have tried to start it using opmnctl startall and it finish with following error:&lt;/div&gt;&lt;pre class="brush:java"&gt;10/03/25 08:06:44 WARNING: OC4J will not send ONS ProcReadyPort messages to opmn for service: OC4JServiceInfo id: null protocol: jms hostname: nul&lt;br /&gt;l port: 12602 description: null&lt;br /&gt;10/03/25 08:06:44 null hostname was null&lt;br /&gt;10/03/25 08:06:44 Oracle Containers for J2EE 10g (10.1.3.3.0)  initialized&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;First idea was that something is wrong with /etc/hosts file or IP has been changed but everything was OK. I have found solution on &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=414165"&gt;OTN forum&lt;/a&gt; and it works. You have to stop all iAS components and delete all files from following directories:&lt;/div&gt;&lt;pre class="brush:java"&gt;$ORACLE_HOME/j2ee/home/persistence&lt;br /&gt;$ORACLE_HOME/j2ee/[other OC4J]/persistence&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;regards,&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Marcin&amp;nbsp; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-1247441599698194691?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/1247441599698194691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=1247441599698194691' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/1247441599698194691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/1247441599698194691'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2010/03/oracle-application-server-issue.html' title='Oracle Application Server issue'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-1684784383912396949</id><published>2010-03-13T19:22:00.001Z</published><updated>2010-03-13T19:24:56.212Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='11gR2'/><category scheme='http://www.blogger.com/atom/ns#' term='ACFS'/><title type='text'>Oracle ACFS on CentOS</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Hi,&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;This is short instruction how to install Oracle ACFS on CentOS. CentOS is free version of RedHat and it is binary compatible. It is not officially supported by Oracle but all solutions related for RedHat should work on CentOS too.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;I have found &lt;a href="http://laurentleturgez.blogspot.com/2009/09/load-acfs-on-centos-5.html"&gt;Laurent blog&lt;/a&gt; post about it and I used it as a background of my investigation. When I have used Laurent's steps it was fine until I want to register ACFS in Oracle Cluster Registry. I couldn't do it as not all cluster types has been registered during Grid Infrastructure configuration process.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Here is a simple solution how to fix it for new installations (still working on solution for existing one).&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;ol style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;li&gt;Perform GUI part of Grid Control installation&lt;/li&gt;&lt;li&gt;Before executing root.sh on both nodes edit following file on both nodes : $ORACLE_HOME/lib/osds_acfslib.pm&lt;br /&gt;&lt;br /&gt;&lt;pre class='brush:java'&gt;line 299:    &lt;br /&gt;else   {     &lt;br /&gt;   # we don't know what this is     &lt;br /&gt;   $supported = 1;     &lt;br /&gt;   $vers = "EL5";   &lt;br /&gt;} &lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Execute a root.sh on both nodes&lt;/li&gt;&lt;/ol&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Now ACFS will be installed and configured and all necessary tools will be copied.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-1684784383912396949?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/1684784383912396949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=1684784383912396949' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/1684784383912396949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/1684784383912396949'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2010/03/oracle-acfs-on-centos.html' title='Oracle ACFS on CentOS'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-710066035534688872</id><published>2010-02-01T23:43:00.002Z</published><updated>2010-02-01T23:46:28.155Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='catalog'/><category scheme='http://www.blogger.com/atom/ns#' term='RMAN'/><category scheme='http://www.blogger.com/atom/ns#' term='sbt_tape'/><title type='text'>RMAN and SBT_TAPE backup pieces - how to catalog it</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Hi,&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;There has been  a discussion on &lt;a href="http://www.freelists.org/post/oracle-l/Catalog-RMAN-backups-on-Tape"&gt;oracle-l&lt;/a&gt; mailing list about RMAN and backup pieces on tape which are non in recovery catalog anymore. A few people including me response that those backup pieces can be restored using dbms_backup_restore PL/SQL package if we only know a backup piece name.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;i&gt;Update 01/02/2010: Now is more solutions - I have started my investigation a few days ago.&lt;/i&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;I investigated this problem a little deeper and I found another solution. I did it because I was not aware that according to official Oracle documentation &lt;a href="http://download.oracle.com/docs/cd/E11882_01/backup.112/e10643/rcmsynta008.htm#i79811"&gt;CATALOG&lt;/a&gt; command is not working with ‘SBT_TAPE’ interface.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;I have tested this solution on:&lt;/div&gt;&lt;ul style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;li&gt;Oracle 11.1.0.7 Linux 32 bit &lt;/li&gt;&lt;li&gt;Oracle 10.2.0.1 Windows 32 bit&lt;/li&gt;&lt;li&gt;Oracle 10.2.0.4 Linux 32 bit&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;I’ve no possibility to check this on other machines now but if you can give me a shout what a results are.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;b&gt;Let’s story begin.&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Only thing I knew was a backup piece name. This is a prerequisite but it can be found quite easily by Media Manager admin or by you itself if you know your Media Manager software. See example below for Legato Networker:&lt;/div&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;[oracle@piorovm usr]$ ./sbin/mminfo -q "client=piorovm" -r "ssid,name,totalsize,savetime,volume"&lt;br /&gt; ssid      name                                 total  date   volume&lt;br /&gt;4267926146 RMAN:3bl4n6ru_1_1                  9961944 01/29/2010 piorovm.localdomain.001&lt;br /&gt;4234372063 RMAN:3dl4n76v_1_1                805331112 01/29/2010 piorovm.localdomain.001&lt;br /&gt;4217594914 RMAN:3el4n792_1_1               1389143616 01/29/2010 piorovm.localdomain.001&lt;br /&gt;4200817814 RMAN:3fl4n7cl_1_1                477378960 01/29/2010 piorovm.localdomain.001&lt;br /&gt;4251148936 RMAN:c-3537902502-20100129-03     10224108 01/29/2010 piorovm.localdomain.001&lt;br /&gt;4184040645 RMAN:c-3537902502-20100129-04     10224108 01/29/2010 piorovm.localdomain.001&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Or another example for Verita Netbackup (by Allen Brandon from Oracle-l list)&lt;/div&gt;&lt;pre class="brush:sql"&gt;&amp;nbsp;/opt/oracle -&amp;gt;bplist -t 4 -k &lt;your_policy_name&gt; -l -s 1/25/2010 -e 1/26/2010 -R /&lt;br /&gt;-rw------- oracle    oracle       12582912 Jan 25 21:21 /c-18889999-20100125-09&lt;br /&gt;-rw------- oracle    oracle        2359296 Jan 25 21:18 /xxprd_al_52855_1_709244222&lt;br /&gt;-rw------- oracle    oracle       3383296K Jan 25 21:15 /xxprd_db_52852_1_709243545&lt;br /&gt;&lt;/your_policy_name&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Next thing is to add these names to control file or recovery catalog. First  of all I started with very low level solution and dbms_backup_restore package. There is a function called inspectBackupPiece which required only backup piece name. Channel has to be allocated before that command. This gave me a hope that I can do it. I have created a small PL/SQL script and I have executed it.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;DECLARE&lt;br /&gt;v_dev varchar2(50);             &lt;br /&gt;v_fullname varchar2(4000);&lt;br /&gt;recid number;&lt;br /&gt;stamp number;&lt;br /&gt;&lt;br /&gt;BEGIN&lt;br /&gt;v_dev:=sys.dbms_backup_restore.deviceAllocate(type=&amp;gt;'sbt_tape', ident=&amp;gt;'test');&lt;br /&gt;sys.dbms_backup_restore.inspectBackupPiece('3fl4n7cl_1_1',v_fullname,recid,stamp);&lt;br /&gt;sys.dbms_backup_restore.deviceDeallocate;&lt;br /&gt;END;&lt;br /&gt;/&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;And that was it – Backup piece has been added to control file.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Ok, if there is a possibility to does this using PL/SQL package there should be possibility do this using RMAN command line. I was trying with allocating ‘SBT_TAPE’ channel and catalog command but without success. Because I have very short memory about command syntax and I know that RMAN is helping with that a little bit I gave a try:&lt;/div&gt;&lt;pre class="brush:sql"&gt;RMAN&amp;gt; catalog  ;&lt;br /&gt;&lt;br /&gt;RMAN-00571: ===========================================================&lt;br /&gt;RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============&lt;br /&gt;RMAN-00571: ===========================================================&lt;br /&gt;RMAN-00558: error encountered while parsing input commands&lt;br /&gt;RMAN-01009: syntax error: found ";": expecting one of: "archivelog, backup, backuppiece, controlfilecopy, clone, datafilecopy, device, db_recovery_file_dest, recovery, start"&lt;br /&gt;RMAN-01007: at line 2 column 1 file: standard input&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;As you can see in error message is a short information about what is expected. Hmmm a device I think it is a good direction. Let’s try again&lt;/div&gt;&lt;pre class="brush:sql"&gt;&lt;/pre&gt;&lt;pre class="brush:sql"&gt;RMAN&amp;gt; catalog device type;&lt;br /&gt;&lt;br /&gt;RMAN-00571: ===========================================================&lt;br /&gt;RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============&lt;br /&gt;RMAN-00571: ===========================================================&lt;br /&gt;RMAN-00558: error encountered while parsing input commands&lt;br /&gt;RMAN-01009: syntax error: found ";": expecting one of: "double-quoted-string, disk, equal, identifier, single-quoted-string"&lt;br /&gt;RMAN-01007: at line 1 column 20 file: standard input&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Ok that’s it – RMAN is expecting a disk or any double or single quoted string. &lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Final step is to give RMAN a chance:&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;pre class="brush:sql"&gt;RMAN&amp;gt; list backupset;&lt;br /&gt;&lt;br /&gt;RMAN&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;There is no backup in control file.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;/div&gt;&lt;pre class="brush:sql"&gt;RMAN&amp;gt; catalog device type 'sbt_tape' backuppiece '3dl4n76v_1_1';&lt;br /&gt;&lt;br /&gt;released channel: ORA_DISK_1&lt;br /&gt;released channel: ORA_SBT_TAPE_1&lt;br /&gt;allocated channel: ORA_SBT_TAPE_1&lt;br /&gt;channel ORA_SBT_TAPE_1: SID=170 device type=SBT_TAPE&lt;br /&gt;channel ORA_SBT_TAPE_1: NMO v5.0.0.0&lt;br /&gt;cataloged backup piece&lt;br /&gt;backup piece handle=3dl4n76v_1_1 RECID=103 STAMP=709599103&amp;nbsp;&lt;/pre&gt;&lt;pre class="brush:sql"&gt;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;and now &lt;/div&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;RMAN&amp;gt; list backupset;&lt;br /&gt;List of Backup Sets&lt;br /&gt;===================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;BS Key  Type LV Size       Device Type Elapsed Time Completion Time&lt;br /&gt;------- ---- -- ---------- ----------- ------------ ---------------&lt;br /&gt;77      Full    Unknown    SBT_TAPE    00:00:00     29-JAN-10&lt;br /&gt;        BP Key: 103   Status: AVAILABLE  Compressed: NO  Tag: TAG20100129T224031&lt;br /&gt;        Handle: 3dl4n76v_1_1   Media:&lt;br /&gt;  List of Datafiles in backup set 77&lt;br /&gt;  File LV Type Ckp SCN    Ckp Time  Name&lt;br /&gt;  ---- -- ---- ---------- --------- ----&lt;br /&gt;  1       Full 8788185    29-JAN-10 +DATA/pioro/datafile/system.260.695313067&amp;nbsp;&lt;/pre&gt;&lt;pre class="brush:sql"&gt;&amp;nbsp;&lt;/pre&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Yes we have one already added via catalog command.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;After that I have found two notes on MOS where this syntax is mentioned no 727655.1 and not public no550082.1&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;This example is very typical for a lot of new solutions – if you are not aware that something is impossible you can try and do that.&lt;br /&gt;&lt;br /&gt;regards,&lt;br /&gt;Marcin&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-710066035534688872?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/710066035534688872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=710066035534688872' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/710066035534688872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/710066035534688872'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2010/02/rman-and-sbttape-backup-pieces-how-to.html' title='RMAN and SBT_TAPE backup pieces - how to catalog it'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-8194314340218922839</id><published>2010-01-30T18:31:00.002Z</published><updated>2010-01-30T18:36:51.335Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='RAC One Node'/><title type='text'>Oracle RAC One Node – part 3</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;At the beginning I have to apologize everyone who was waiting on that post and I will try to keep posting more regular.&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;This time before I will present connection test results I need to clarity one thing.&lt;br /&gt;Instance name in One Node RAC can change on each node. This is related to way how instance is started. In case of Omotion migration there is a situation when both instances are up and running so both instances have to have different name, ex.&amp;nbsp;&lt;/div&gt;&lt;ul style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;li&gt;testone_1 is running on rac1 &lt;/li&gt;&lt;li&gt;testone_2 is running on rac2&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;What happen if one of servers with crash with running instance (ex. rac1 will crashed). &lt;br /&gt;ClusterWare status is showing that last running instance was testone_1 and this instance will be migrated to other node in cluster. This mean that testone_1 instance will be started on rac2 server.&lt;br /&gt;&lt;br /&gt;If we fix rac1 server and we want to failback our database using Omotion&amp;nbsp; instance will be started on rac1 server but according to restriction described in previous point instance name has to be different and in that case instance name will be testone_2. So that mean that now we have instance:&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;ul&gt;&lt;li&gt;testone_1 running on rac2&amp;nbsp; &lt;/li&gt;&lt;li&gt;testone_2 running on rac1 &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Of course after session migration only one instance will be running but still with that same name.&lt;br /&gt;Where is a problem? You can’t hardcoded instance name and server name in any monitoring tool because instance name can be vary depend on fail over scenario. You should use raconestatus to figure out what is a current status of database.&lt;br /&gt;&lt;br /&gt;Now is a time to make a last tests with Java and Fast Connection Failover client.&lt;br /&gt;I have used following code based on &lt;a href="http://www.oracle.com/technology/sample_code/products/rac/zip/fcf_stepbystep.zip"&gt;Oracle Example&lt;/a&gt; with FCF functionality. &lt;br /&gt;&lt;br /&gt;After compilation it is high time to start tests:&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;b&gt;Case no 1– both servers are up, instance is running on rac1&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;I have started Oracle test program and run Omotion in rac1 forcing instance migration to rac2.&lt;br /&gt;Below is output from test program:&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;Url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=rac1-vip)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=rac2-vip)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=serviceone)))&lt;br /&gt;Instance name: testone_1&lt;br /&gt;FCF Activ(cache): 1&lt;br /&gt;FCF Avail(cache): 9&lt;br /&gt;&lt;br /&gt;Url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=rac1-vip)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=rac2-vip)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=serviceone)))&lt;br /&gt;java.sql.SQLException: Closed Connection&lt;br /&gt;        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)&lt;br /&gt;        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)&lt;br /&gt;        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:207)&lt;br /&gt;        at oracle.jdbc.driver.OracleStatement.ensureOpen(OracleStatement.java:3512)&lt;br /&gt;        at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1244)&lt;br /&gt;        at FCFDemo2.main(FCFDemo2.java:62)&lt;br /&gt;getErrorCode=17008&lt;br /&gt;getSQLState=null&lt;br /&gt;getMessage=Closed Connection&lt;br /&gt;Url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=rac1-vip)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=rac2-vip)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=serviceone)))&lt;br /&gt;&lt;br /&gt;Instance name: testone_2&lt;br /&gt;FCF Activ(cache): 1&lt;br /&gt;FCF Avail(cache): 0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;As excepted session has been failover from instance to another without any problems with one raised exception.&lt;br /&gt;So let’s test it once again&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;Url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=rac1-vip)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=rac2-vip)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=serviceone)))&lt;br /&gt;Instance name: testone_2&lt;br /&gt;FCF Activ(cache): 1&lt;br /&gt;FCF Avail(cache): 9&lt;br /&gt;&lt;br /&gt;Url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=rac1-vip)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=rac2-vip)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=serviceone)))&lt;br /&gt;java.sql.SQLException: Io exception: Software caused connection abort: recv failed&lt;br /&gt;        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)&lt;br /&gt;        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)&lt;br /&gt;        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:254)&lt;br /&gt;        at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:805)&lt;br /&gt;        at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1030)&lt;br /&gt;        at oracle.jdbc.driver.T4CStatement.executeMaybeDescribe(T4CStatement.java:829)&lt;br /&gt;        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1123)&lt;br /&gt;        at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1263)&lt;br /&gt;        at FCFDemo2.main(FCFDemo2.java:62)&lt;br /&gt;getErrorCode=17002&lt;br /&gt;getSQLState=null&lt;br /&gt;getMessage=Io exception: Software caused connection abort: recv failed&lt;br /&gt;java.sql.SQLException: Listener refused the connection with the following error:&lt;br /&gt;ORA-12514, TNS:listener does not currently know of service requested in connect descriptor&lt;br /&gt;The Connection descriptor used by the client was:&lt;br /&gt;(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=rac1-vip)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=rac2-vip)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=serviceone)))&lt;br /&gt;&lt;br /&gt;        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)&lt;br /&gt;        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:260)&lt;br /&gt;        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:386)&lt;br /&gt;        at oracle.jdbc.driver.PhysicalConnection.&lt;init&gt;(PhysicalConnection.java:413)&lt;br /&gt;        at oracle.jdbc.driver.T4CConnection.&lt;init&gt;(T4CConnection.java:164)&lt;br /&gt;        at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:34)&lt;br /&gt;        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:752)&lt;br /&gt;        at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:296)&lt;br /&gt;        at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:220)&lt;br /&gt;        at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPhysicalConnection(OracleConnectionPoolDataSource.java:156)&lt;br /&gt;        at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPooledConnection(OracleConnectionPoolDataSource.java:93)&lt;br /&gt;        at oracle.jdbc.pool.OracleImplicitConnectionCache.makeCacheConnection(OracleImplicitConnectionCache.java:1529)&lt;br /&gt;        at oracle.jdbc.pool.OracleImplicitConnectionCache.getCacheConnection(OracleImplicitConnectionCache.java:463)&lt;br /&gt;        at oracle.jdbc.pool.OracleImplicitConnectionCache.getConnection(OracleImplicitConnectionCache.java:332)&lt;br /&gt;        at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:403)&lt;br /&gt;        at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:188)&lt;br /&gt;        at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:164)&lt;br /&gt;        at FCFDemo2.main(FCFDemo2.java:77)&lt;br /&gt;&lt;br /&gt;C:\Downloads\fcf_stepbystep&amp;gt;rem Restore old var values&lt;br /&gt;&lt;br /&gt;C:\Downloads\fcf_stepbystep&amp;gt;set ORACLE_HOME=C:\oracle\product\10.2.0\db_1&lt;br /&gt;&lt;/init&gt;&lt;/init&gt;&lt;/pre&gt;&lt;br /&gt;Opps what happen ? We lost a connection and program has been terminated.&lt;br /&gt;Let’s take a look on raised exceptions – first one is related to session closure on active instance. In code there is catch section which catch exception and try to reopen connection. But in that case a new started instance has not been registered in listener yet and another exception came in. This one was not catch by any section and demo has been terminated.&lt;br /&gt;This same behaviour appear in SQL*Plus tests – in my opinion information about instance availability is sending before service is registered in listener. Maybe this is only my VM installation issue but if my assumption about order of event is correct it can happen everyware.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Case no 2 session with transactions&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Base on Oracle example code I have added transactions. Below is my version of code:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;// &lt;br /&gt;// last revised 01/06/2006 - Adding connection pool exposure&lt;br /&gt;//      revised 01/05/2006 - kpm use VIP IP addresses.&lt;br /&gt;//      revised 12/21/2005 - PC&lt;br /&gt;// ...........&lt;br /&gt;import java.sql.Connection;&lt;br /&gt;import java.sql.ResultSet;&lt;br /&gt;import java.sql.SQLException;&lt;br /&gt;import java.sql.*;&lt;br /&gt;import java.sql.Statement;&lt;br /&gt;import java.util.Properties;&lt;br /&gt;import java.util.*;&lt;br /&gt;import oracle.jdbc.pool.OracleDataSource;&lt;br /&gt;import oracle.jdbc.pool.*;&lt;br /&gt;import oracle.jdbc.*;&lt;br /&gt;public class FCFDemo2 {&lt;br /&gt;   public static void main(String[] args) throws InterruptedException {&lt;br /&gt;   try {&lt;br /&gt;   OracleDataSource ods = new OracleDataSource();&lt;br /&gt;   OracleConnectionCacheManager occm = null;&lt;br /&gt;   ods.setUser("system");&lt;br /&gt;   ods.setPassword("oracle");&lt;br /&gt;   String cacheName = "cache";&lt;br /&gt;   String dbURL="jdbc:oracle:thin:@"     &lt;br /&gt;               +"(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=ON)" +&lt;br /&gt;         "(ADDRESS=(PROTOCOL=TCP)" +&lt;br /&gt;         "(HOST=rac1-vip)(PORT=1521))" +&lt;br /&gt;         "(ADDRESS=(PROTOCOL=TCP)" +&lt;br /&gt;         "(HOST=rac2-vip)(PORT=1521)))" +&lt;br /&gt;         "(CONNECT_DATA=(SERVICE_NAME=serviceone)))";&lt;br /&gt;   System.out.println("Url=" + dbURL );&lt;br /&gt;   ods.setURL(dbURL);&lt;br /&gt;   System.out.println("Url=" + dbURL );&lt;br /&gt;   ods.setConnectionCachingEnabled(true);&lt;br /&gt;   Properties prop = new Properties();&lt;br /&gt;   prop.setProperty("MinLimit", "5");&lt;br /&gt;   prop.setProperty("MaxLimit", "40");&lt;br /&gt;   prop.setProperty("InitialLimit", "10");&lt;br /&gt;   prop.put (oracle.net.ns.SQLnetDef.TCP_CONNTIMEOUT_STR,"" + (5000)); // 5000ms&lt;br /&gt;   ods.setConnectionCacheProperties(prop);&lt;br /&gt;   ods.setFastConnectionFailoverEnabled(true);&lt;br /&gt;   ods.setONSConfiguration("nodes=rac1-vip:6200,rac2-vip:6200");&lt;br /&gt;   ods.setConnectionCacheName(cacheName);   // moved from above&lt;br /&gt;   occm = OracleConnectionCacheManager.getConnectionCacheManagerInstance();&lt;br /&gt;   Connection conn = ods.getConnection();&lt;br /&gt;   conn.setAutoCommit(false);&lt;br /&gt;   System.out.println(conn);&lt;br /&gt;   Statement stmt=conn.createStatement();  // fixed&lt;br /&gt;   ResultSet rs = null;&lt;br /&gt;   int stop = 0;&lt;br /&gt;   &lt;br /&gt;   rs =stmt.executeQuery("truncate table marcin");  &lt;br /&gt;   int i = 0;&lt;br /&gt;   int j=0;&lt;br /&gt;   String name = new String();&lt;br /&gt;      while (true){&lt;br /&gt;      try {&lt;br /&gt;                //System.out.println("Url=" + dbURL );&lt;br /&gt;                rs =stmt.executeQuery("select instance_name from v$instance");&lt;br /&gt;                while(rs.next()) {&lt;br /&gt; name = rs.getString(1);&lt;br /&gt;                   System.out.println("Instance name: " + name);&lt;br /&gt;                   System.out.println("FCF Activ(" + cacheName + "): " +&lt;br /&gt;                   occm.getNumberOfActiveConnections(cacheName));&lt;br /&gt;                   System.out.println("FCF Avail(" + cacheName + "): " +&lt;br /&gt;                   occm.getNumberOfAvailableConnections(cacheName)+"\n");&lt;br /&gt;                   PreparedStatement pstmt = conn.prepareStatement ("insert into marcin  values (?, ?)");&lt;br /&gt; pstmt.setInt (1, i);               &lt;br /&gt;                   pstmt.setString (2, name);   &lt;br /&gt;pstmt.execute ();&lt;br /&gt; System.out.println("inserted " + i +" \n");&lt;br /&gt; Thread.sleep(1000);&lt;br /&gt; conn.commit();    &lt;br /&gt; System.out.println("Commited " + i + " \n");&lt;br /&gt; i++;&lt;br /&gt;      }&lt;br /&gt;      catch (OracleSQLException sqle) {&lt;br /&gt;     //sqle.printStackTrace();&lt;br /&gt;              System.out.println("getErrorCode=" + sqle.getErrorCode());&lt;br /&gt;              System.out.println("getSQLState=" + sqle.getSQLState());&lt;br /&gt;              System.out.println("getMessage=" + sqle.getMessage());&lt;br /&gt;     //Thread.sleep(1000);&lt;br /&gt;     &lt;br /&gt;     System.out.println("Try number " + j + "\n");&lt;br /&gt;     j++;&lt;br /&gt;     &lt;br /&gt;     try {&lt;br /&gt;     conn =ods.getConnection(); //Re-get the conn&lt;br /&gt;     stmt =conn.createStatement();&lt;br /&gt;     } catch (OracleSQLException sqle1) {&lt;br /&gt;               System.out.println("getErrorCode - reconnect =" + sqle.getErrorCode());&lt;br /&gt;               System.out.println("getSQLState - reconnect =" + sqle.getSQLState());&lt;br /&gt;               System.out.println("getMessage - reconnect=" + sqle.getMessage());&lt;br /&gt;      sqle1.printStackTrace();      &lt;br /&gt;     }&lt;br /&gt;        }&lt;br /&gt;       Thread.sleep(1000);&lt;br /&gt;    System.out.println("New iteration \n");    &lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;   catch(Exception e)&lt;br /&gt;      {&lt;br /&gt;      e.printStackTrace();&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Start inserting rows.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;Instance name: testone_1&lt;br /&gt;FCF Activ(cache): 1&lt;br /&gt;FCF Avail(cache): 9&lt;br /&gt;&lt;br /&gt;inserted 185&lt;br /&gt;Commited 185&lt;br /&gt;&lt;br /&gt;Instance name: testone_1&lt;br /&gt;FCF Activ(cache): 1&lt;br /&gt;FCF Avail(cache): 9&lt;br /&gt;&lt;br /&gt;inserted 186&lt;br /&gt;Commited 186&lt;br /&gt;&lt;br /&gt;java.sql.SQLException: Closed Connection&lt;br /&gt;        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)&lt;br /&gt;        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)&lt;br /&gt;        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:207)&lt;br /&gt;        at oracle.jdbc.driver.OracleStatement.ensureOpen(OracleStatement.java:3512)&lt;br /&gt;        at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1244)&lt;br /&gt;        at FCFDemo2.main(FCFDemo2.java:70)&lt;br /&gt;getErrorCode=17008&lt;br /&gt;getSQLState=null&lt;br /&gt;getMessage=Closed Connection&lt;br /&gt;Try number 0&lt;br /&gt;&lt;br /&gt;Instance name: testone_2&lt;br /&gt;FCF Activ(cache): 1&lt;br /&gt;FCF Avail(cache): 0&lt;br /&gt;&lt;br /&gt;inserted 187&lt;br /&gt;Commited 187&lt;br /&gt;&lt;br /&gt;Instance name: testone_2&lt;br /&gt;FCF Activ(cache): 1&lt;br /&gt;FCF Avail(cache): 0&lt;br /&gt;&lt;br /&gt;inserted 188&lt;br /&gt;&lt;br /&gt;Commited 188&lt;br /&gt;&lt;br /&gt;Instance name: testone_2&lt;br /&gt;FCF Activ(cache): 1&lt;br /&gt;FCF Avail(cache): 0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;As you can see transaction got a exception but because there is a loop in the code transaction has been replay and successfully inserted in database.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;SQL&amp;gt; select id,cos from system.marcin where id &amp;gt; 184 order by id;&lt;br /&gt;&lt;br /&gt;        ID   INSTANCE_NAME&lt;br /&gt;---------- ------------------------------&lt;br /&gt;       185 testone_1&lt;br /&gt;       186 testone_1&lt;br /&gt;       187 testone_2&lt;br /&gt;       188 testone_2&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Any RAC aware software should work with RAC OneNode without any problem like with typical Oracle RAC installation.&lt;br /&gt;&lt;br /&gt;This is last part about Oracle RAC OneNode and connection details but I’m sure not a last about RAC itself.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-8194314340218922839?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/8194314340218922839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=8194314340218922839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/8194314340218922839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/8194314340218922839'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2010/01/oracle-rac-one-node-part-3.html' title='Oracle RAC One Node – part 3'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-1951772859411661868</id><published>2009-12-15T22:16:00.006Z</published><updated>2010-01-30T12:42:18.603Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL*Plus'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>How to create CSV file in SQL*Plus</title><content type='html'>&lt;span style="font-family: arial;"&gt;&lt;/span&gt;&lt;span style="font-family: arial;"&gt;As I remember this is one of question which was asked every time on my Oracle DBA classes&lt;br /&gt;"How to save a data in CSV or other text format ?"&lt;br /&gt;Now a answer is simple go to &lt;/span&gt;&lt;span style="font-family: arial;"&gt;Shivmohan Purohit Oracle blog&lt;/span&gt; and check that post&lt;span style="font-family: arial;"&gt; &lt;/span&gt;&lt;a style="font-family: arial;" href="http://knoworacle.wordpress.com/2009/12/10/how-to-use-in-oracle-output-files-comma-pipe-or-tab-delimited-output/"&gt;SQL*Plus output&lt;/a&gt;&lt;span style="font-family: arial;"&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;"&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-1951772859411661868?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/1951772859411661868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=1951772859411661868' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/1951772859411661868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/1951772859411661868'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/12/how-to-create-cvs-file-in-sqlplus.html' title='How to create CSV file in SQL*Plus'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-5100925140153057476</id><published>2009-12-14T10:30:00.015Z</published><updated>2009-12-14T20:29:50.579Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='11gR2'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle RAC'/><category scheme='http://www.blogger.com/atom/ns#' term='RAC One Node'/><title type='text'>Oracle RAC One Node – part 2</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;In this post I want to share with you some scenarios about RAC One Node and client behaviour. In that part I’m using SQL*Plus from 10g so there is no FAN notification, next part will be with FAN enabled client. The main difference between using and not using FAN is that FAN client has a feedback from Oracle Cluster (formally Grid Infrastructure in 11R2 or Oracle ClusterWare in previous releases) and has information about current cluster status. Non FAN client has to wait for TCP/IP time-out for current session before switching to other node. More information about client failover and cluster configuration can be found &lt;a href="http://www.oracle.com/technology/deploy/availability/pdf/MAA_WP_10gR2_ClientFailoverBestPractices.pdf"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;My server and client configuration has been presented in part 1 (entry from TNSNAMES.ORA) so this is only short recall:&lt;/span&gt; &lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;Two nodes – RAC1 and RAC2 with SCAN configured&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;SQL*Plus 10g Client&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;I want to present 3 scenarios:&lt;/span&gt; &lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;a href="http://oracleprof.blogspot.com/2009/12/oracle-rac-one-node-part-2.html#ONE"&gt;One node in cluster is running&lt;/a&gt;&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;Two nodes are running – current instance is crashing&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;a href="http://oracleprof.blogspot.com/2009/12/oracle-rac-one-node-part-2.html#ACTIVE"&gt;Active query&lt;/a&gt;&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;a href="http://oracleprof.blogspot.com/2009/12/oracle-rac-one-node-part-2.html#IDLE"&gt;Non active session&lt;/a&gt;&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;a href="http://oracleprof.blogspot.com/2009/12/oracle-rac-one-node-part-2.html#FIX"&gt;Fixing configuration&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="ONE"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;One node in cluster is running&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Due to failure or maintenance only one node in cluster is running. RAC One node service is starting on that node and it is opened for all sessions. Irrespective of which node was current previously instance is open on node which is running now. &lt;/span&gt;  &lt;span style="font-family:arial;"&gt;Current status can be checked via raconestatus&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;[oracle@rac1 ~]$ raconestatus&lt;br /&gt;&lt;br /&gt;RAC One Node databases on this cluster:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Database UP Fix Required        Current Server                    Candidate Server Names&lt;br /&gt;======== == ============ ==============================  ========================================&lt;br /&gt;testone  Y       N                                rac1                                 rac1 rac2                             &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Available Free Servers:&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;As we can see there is no available server to move our instance on. &lt;/span&gt; &lt;span style="font-family:arial;"&gt;If we start Omotion process we will hit error.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;[oracle@rac1 ~]$ Omotion&lt;br /&gt;&lt;br /&gt;RAC One Node databases on this cluster:&lt;br /&gt;&lt;br /&gt;#      Database                    Server                      Fix Required&lt;br /&gt;===     ========        ==============================          ============&lt;br /&gt;[1]      testone                                  rac1                N&lt;br /&gt;&lt;br /&gt;Enter number of the database to migrate [1]:&lt;br /&gt;&lt;br /&gt;Specify maximum time in minutes for migration to complete (max 30) [30]: 2&lt;br /&gt;&lt;br /&gt;Available Target Server(s) :&lt;br /&gt;#            Server            Available&lt;br /&gt;===     ==================      =========&lt;br /&gt;ERROR: Cannot find any available servers in this cluster.&lt;br /&gt;&lt;br /&gt;Exiting...&lt;br /&gt;&lt;br /&gt;[oracle@rac1 ~]$&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;In case of shutdown node RAC1 all session will be terminated as in single node configuration. Whatever server will be started after both nodes are down will become a current one.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Two nodes are running – current instance is crashing &lt;/span&gt;  &lt;span style="font-family:arial;"&gt;&lt;br /&gt;Both servers are up – instance is running on RAC1 server. Current cluster configuration can be checked via crsctl command&lt;/span&gt;  &lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;[oracle@rac1 grid]$ $GRID_HOME/bin/crsctl status resource -t&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;NAME           TARGET  STATE        SERVER                   STATE_DETAILS&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;Local Resources&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;ora.DATA.dg&lt;br /&gt;        ONLINE  ONLINE       rac1&lt;br /&gt;        ONLINE  ONLINE       rac2&lt;br /&gt;ora.LISTENER.lsnr&lt;br /&gt;        ONLINE  ONLINE       rac1&lt;br /&gt;        ONLINE  ONLINE       rac2&lt;br /&gt;ora.asm&lt;br /&gt;        ONLINE  ONLINE       rac1                     Started&lt;br /&gt;        ONLINE  ONLINE       rac2                     Started&lt;br /&gt;ora.eons&lt;br /&gt;        ONLINE  ONLINE       rac1&lt;br /&gt;        ONLINE  ONLINE       rac2&lt;br /&gt;ora.gsd&lt;br /&gt;        OFFLINE OFFLINE      rac1&lt;br /&gt;        OFFLINE OFFLINE      rac2&lt;br /&gt;ora.net1.network&lt;br /&gt;        ONLINE  ONLINE       rac1&lt;br /&gt;        ONLINE  ONLINE       rac2&lt;br /&gt;ora.ons&lt;br /&gt;        ONLINE  ONLINE       rac1&lt;br /&gt;        ONLINE  ONLINE       rac2&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;Cluster Resources&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;ora.LISTENER_SCAN1.lsnr&lt;br /&gt;1        ONLINE  ONLINE       rac1&lt;br /&gt;ora.oc4j&lt;br /&gt;1        OFFLINE OFFLINE&lt;br /&gt;ora.rac1.vip&lt;br /&gt;1        ONLINE  ONLINE       rac1&lt;br /&gt;ora.rac2.vip&lt;br /&gt;1        ONLINE  ONLINE       rac2&lt;br /&gt;ora.scan1.vip&lt;br /&gt;1        ONLINE  ONLINE       rac1&lt;br /&gt;ora.testone.db&lt;br /&gt;1        ONLINE  ONLINE       rac1                     Open&lt;br /&gt;ora.testone.serviceone.svc&lt;br /&gt;1        ONLINE  ONLINE       rac1&lt;br /&gt;[oracle@rac2 grid]$&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Session is connected to RAC1 server&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;Connected to:&lt;br /&gt;Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production&lt;br /&gt;With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,&lt;br /&gt;Data Mining and Real Application Testing options&lt;br /&gt;&lt;br /&gt;SQL&gt; select * from test;&lt;br /&gt;&lt;br /&gt; ID&lt;br /&gt;----------&lt;br /&gt;  1&lt;br /&gt;  2&lt;br /&gt;  3&lt;br /&gt;  4&lt;br /&gt;  5&lt;br /&gt;  6&lt;br /&gt;&lt;br /&gt;6 rows selected.&lt;br /&gt;&lt;br /&gt;SQL&gt; insert into test values (7);&lt;br /&gt;&lt;br /&gt;1 row created.&lt;br /&gt;&lt;br /&gt;SQL&gt; commit;&lt;br /&gt;&lt;br /&gt;Commit complete.&lt;br /&gt;&lt;br /&gt;SQL&gt; insert into test values (8);&lt;br /&gt;&lt;br /&gt;1 row created.&lt;br /&gt;&lt;br /&gt;SQL&gt; select instance_name, host_name from v$instance;&lt;br /&gt;&lt;br /&gt;INSTANCE_NAME              HOST_NAME&lt;br /&gt;----------------           ----------------------------------------------------------------&lt;br /&gt;testone_2                  rac1&lt;br /&gt;&lt;br /&gt;SQL&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a name="ACTIVE"&gt;Active Query&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Now first scenario when I’m repeating a select command in SQL*Plus and in that same time I’m turning off RAC1 server. In that case a active statement is cancelled and client is trying to reconnect at that time.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;SQL&gt; select to_char(sysdate,'hh24:mi') from dual;&lt;br /&gt;&lt;br /&gt;TO_CH&lt;br /&gt;-----&lt;br /&gt;09:55&lt;br /&gt;&lt;br /&gt;SQL&gt; select to_char(sysdate,'hh24:mi') from dual;&lt;br /&gt;select to_char(sysdate,'hh24:mi') from dual&lt;br /&gt;*&lt;br /&gt;ERROR at line 1:&lt;br /&gt;ORA-03135: connection lost contact&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SQL&gt; select to_char(sysdate,'hh24:mi') from dual;&lt;br /&gt;ERROR:&lt;br /&gt;ORA-03114: not connected to ORACLE&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;As you can see command has been cancelled and session has been terminated. There is no other instance up and running yet to there is no target to failover a session. In client session network trace file you can find following order of errors:&lt;/span&gt; &lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;ORA -12547 – TNS Lost Contact&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;ORA- 12151 – Bad packages &lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;ORA-03115 – connection lost contact&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;After that client is going to reconnect session to other nodes like in normal RAC configuration. Client is calling SCAN address to get another VIP address but cluster is still in that same state – a reconfiguration has been just started – and Oracle Cluster is returning a rac1-vip once again as it is only one VIP configured for database service.&lt;/span&gt; &lt;span style="font-family:arial;"&gt;&lt;br /&gt;Keep in mind that current, not committed transaction in that case will be rollback.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;&lt;a name="IDLE"&gt;Idle session&lt;/a&gt; &lt;/span&gt;  &lt;span style="font-family:arial;"&gt;&lt;br /&gt;When a session is in an idle state a failover will take place when a first SQL query will be executed.&lt;/span&gt; &lt;span style="font-family:arial;"&gt;See example&lt;/span&gt;  &lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;Connected to:&lt;br /&gt;Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production&lt;br /&gt;With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,&lt;br /&gt;Data Mining and Real Application Testing options&lt;br /&gt;&lt;br /&gt;SQL&gt; select to_char(sysdate,'hh24:mi') from dual;&lt;br /&gt;&lt;br /&gt;TO_CH&lt;br /&gt;-----&lt;br /&gt;15:30&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SQL&gt; select instance_name, host_name from v$instance;&lt;br /&gt;&lt;br /&gt;INSTANCE_NAME            HOST_NAME&lt;br /&gt;----------------         ----------------------------------------------------------------&lt;br /&gt;testone_2                rac1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SQL&gt; select to_char(sysdate,'hh24:mi') from dual;&lt;br /&gt;&lt;br /&gt;TO_CH&lt;br /&gt;-----&lt;br /&gt;15:38&lt;br /&gt;&lt;br /&gt;SQL&gt;&lt;br /&gt;SQL&gt; select instance_name, host_name from v$instance;&lt;br /&gt;&lt;br /&gt;INSTANCE_NAME            HOST_NAME&lt;br /&gt;----------------         ----------------------------------------------------------------&lt;br /&gt;testone_1                rac2&lt;br /&gt;&lt;br /&gt;SQL&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;As you can see a connection has been migrated between servers without any error. This is because a before a last query a new instance was up and running. If we take a look into client network trace file we will see following errors&lt;/span&gt; &lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;ORA- 12151&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;ORA- 3113&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;After that client is going to reconnect session to other nodes. Client is calling SCAN address to get another VIP address and cluster in returning a new VIP (rac2-vip) as a database service has been successfully migrated to other node.&lt;/span&gt; &lt;span style="font-family:arial;"&gt;&lt;br /&gt;Keep in mind that current, not committed transaction has to be rollback after session migration.&lt;/span&gt;     &lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a name="FIX"&gt;Fixing configuration&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; &lt;span style="font-family:arial;"&gt;&lt;br /&gt;After unexpected crash it is possible that RAC One Node configuration need to be fixed.&lt;/span&gt; &lt;span style="font-family:arial;"&gt;I have figure out two possible scenarios:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;After node crash and migration of instance and service the crashed node has been rebooted and there are two running instances&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;[oracle@rac1 grid]$ raconestatus&lt;br /&gt;&lt;br /&gt;RAC One Node databases on this cluster:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Database UP Fix Required        Current Server                    Candidate Server Names&lt;br /&gt;======== == ============ ==============================  ========================================&lt;br /&gt;testone  Y       Y                           rac1 rac2                                 rac1 rac2&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Available Free Servers:&lt;br /&gt;&lt;br /&gt;[oracle@rac1 grid]$&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Fixing of configuration will close one of instance (on rebooted node) and will clean a configuration.&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;[oracle@rac1 rac1]$ raconefix&lt;br /&gt;&lt;br /&gt;RAC One Node databases on this cluster:&lt;br /&gt;&lt;br /&gt;#      Database                    Server                      Fix Required&lt;br /&gt;===     ========        ==============================          ============&lt;br /&gt;[1]      testone                                  rac1                Y&lt;br /&gt;&lt;br /&gt;Enter number of the database to fix [1]:&lt;br /&gt;&lt;br /&gt;If database is up, it will be checked and cleaned after a previous fail over.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Very similar situation like in previous point but only one instance is working and there is a “mess” in RAC service configuration. Oracle RAC One Node fix will clean up a configuration.&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;At the end I want to mention that I have hit some strange behavior related to migration of instance between servers and starting and stopping servers. I’m not sure if it a bug or not but after whole cluster restart instances have been migrated across.&lt;br /&gt;First configuration was&lt;/span&gt; &lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;RAC1 – instance name : testone_2&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;RAC2 – instance name : testone_1&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;Yes I know it was my inconsequence in naming so Oracle decided to fix it. No, not at the beginning but after a week of testing and restarts. And now it looks like:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;RAC1 – instance name : testone_1&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;RAC2 – instance name : testone_2&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;Unfortunately after that I was unable to play with RAC One Node and I have to clear a whole configuration and create it from scratch.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Next part will be about FAN enabled clients and more about transactions.&lt;/span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-5100925140153057476?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/5100925140153057476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=5100925140153057476' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/5100925140153057476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/5100925140153057476'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/12/oracle-rac-one-node-part-2.html' title='Oracle RAC One Node – part 2'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-2459598023839068822</id><published>2009-12-07T07:25:00.007Z</published><updated>2009-12-07T08:04:52.500Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='11gR2'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle RAC'/><category scheme='http://www.blogger.com/atom/ns#' term='RAC One Node'/><title type='text'>Oracle RAC One Node – part 1</title><content type='html'>&lt;span style=";font-family:arial;font-size:100%;"  &gt;This post is about a installation and configuration of Oracle RAC 11gR2 in One Node configuration on VMWare. At the beginning I want describe a RAC One Node a little bit more – this is a new possible configuration with special licence and price which is very similar to fail over cluster configuration. During a normal work only one instance and up and running – like in failover cluster, a difference is in migration process. The following steps are performed during a migration:&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;Second instance in started on target node&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;All session are migrated to target instance – TAF has to be enabled on client configuration&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;Source instance in shutdown in transaction mode&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;After timeout a source instance in shutdown in abort mode&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;Installation and configuration in based on Linux CentOS 5.3 and Oracle 11g 11.2.0.1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;If you want to skip Grid Infrastructure configuration tips click &lt;a href="http://www.blogger.com/post-edit.g?blogID=7461233846321640962&amp;amp;postID=2459598023839068822#START"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:100%;"  &gt;Oracle Grid Infrastructure&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Oracle Grid Infrastructure has to be installed and configured on all nodes belongs to Oracle RAC (this is requirement for both RAC configuration – typical RAC and One Node RAC). In previous releases Oracle Grid Infrastructure was called an Oracle ClusterWare. In 11g R2 a name has been change to Grid Infrastructure and a lot of changes have been made. The most important are:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Oracle ASM is a part of Grid Infrastructure and not a part of Oracle Database&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Vote and cluster configuration can use ASM disk or cluster file system&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Raw or block devices for vote and cluster configuration are not supported during a installation time&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;More RAM is required ? &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Last change made me sad as I have only 4 GB RAM on my laptop so I can allocate about 3 GB for two VM. But why do not try. After a few tests  I have found a  working configuration for both nodes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;RAC1 – node number 1&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;1.5 GB of RAM allocated for VM&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;2.0 GB of swap &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;1 CPU&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;10 GB of free space for Oracle Homes (both infrastructure and database)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;RAC2 – node number 2&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;1.0 GB of RAM allocated for VM&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;2.0 GB of swap &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;1 CPU&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;10 GB of free space for Oracle Homes (both infrastructure and database)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Yes there is a difference between memory sizes in nodes – start OUI on node number 1 with more allocated memory.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Common configuration:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;/etc/hosts&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;10.10.20.129    rac1.localdomain rac1&lt;br /&gt;192.168.226.10  rac1-priv.localdomain rac1-priv&lt;br /&gt;10.10.20.130    rac2.localdomain rac2&lt;br /&gt;192.168.226.20  rac2-priv.localdomain rac2-priv&lt;br /&gt;10.10.20.200    rac-cluster&lt;br /&gt;10.10.20.210    rac1-vip.localdomain rac1-vip&lt;br /&gt;10.10.20.220    rac2-vip.localdomain rac2-vip&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family:arial;"&gt;RAC1-VIP and RAC2-VIP has to be assigned to public network and not configured during an installation. There is an additional entry for rac-cluster which is SCAN interface and has to be in same network as both VIP interfaces and not configured during a configuration time.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;SCAN interface is a single entry point for cluster – for more information you can see RAC documentation.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Now is time to start OUI and install a Grid Control infrastructure. Below some installation tips: &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Installation option – choose Install and configure Grid Infrastructure for Cluster&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Installation type – Choose Typical installation &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;SCAN name – type rac-cluster &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Add both nodes – RAC1 and RAC2 with proper VIP – note there is no need to private name anymore&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Test SSH connectivity between nodes and click Setup there are any problems &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Choose 10.10.20.x subnet as public and 192.168 as private&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Specify a Oracle Base and Software location (which is a Oracle Home for Grid Infrastructure) - note that Oracle Home for Grid has to be in different location that Oracle Base&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Select a disk for ASM group – it will be used for vote and configuration file too – if required change a Discovery Path to correct value (ex. /dev/sdc* for block devices or ORCL:* if you are using ASMLib)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;If there are any problem with kernel setting or missing packages solve it before installation start – you can ignore memory, swap and NTP – but you have to have at least memory size specified above.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt;After about 15 minutes there is a time for a last step – execute a root.sh to configure and start cluster infrastructure. Run root.sh on node with more memory first.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="START"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Oracle Database Oracle Home&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Just perform a standard installation of Oracle 11gR2 binaries without database creation.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;RAC One Node patch &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;This is a best time to install a patch which adds One Node support to our database Oracle Home. Why ? Because it has to be installed when DB is down, so before creation of database we don’t need any other actions. Patch number is RACONENODE_p9004119_112010_LINUX.zip and can be found on Oracle Support Pages.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Database creation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The most important thing is to create a database only on one node. On the first screen a RAC database has to be chosen and then only one node (ex. rac1) has to be selected.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The next important thing is storage for a database. In our example all database files will be placed in ASM disk group. This same used to keep Grid Infrastructure cluster configuration.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;All other configuration settings don’t have any impact on RAC One Node configuration.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Service configuration &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;A new service has to be added to support a RAC One Node configuration. This service will be used in our client configuration and will be entry point to our database.&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;srvctl add service -d testone -s serviceone -r testone1&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family:arial;"&gt;where&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;testone – is a database name&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;serviceone – is a service name&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;testone1 – is a instance name created in previous point&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;RAC One node configuration &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;When database and service are up there is a time to start a RAC One Node configuration.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;To do that a &lt;span style="font-family:courier new;"&gt;raconeinit&lt;/span&gt; has to be started.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;Candidate Databases on this cluster:&lt;br /&gt;#      Database        RAC One Node    Fix Required&lt;br /&gt;===     ========        ============    ============&lt;br /&gt;[1]      testone             NO              N/A&lt;br /&gt;Enter the database to initialize [1]:&lt;br /&gt;Database testone is now running on server rac1&lt;br /&gt;Candidate servers that may be used for this DB:   rac2&lt;br /&gt;&lt;br /&gt;Enter the names of additional candidate servers where this DB may run (space delimited): rac2&lt;br /&gt;&lt;br /&gt;Please wait, this may take a few minutes to finish.&lt;br /&gt;Database configuration modified.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;After that command a new configuration should be in place. Current status can be checked with following command:&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;raconestatus&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;RAC One Node databases on this cluster:&lt;br /&gt;&lt;br /&gt;Database UP Fix Required        Current Server                    Candidate Server Names&lt;br /&gt;======== == ============ ==============================  ========================================&lt;br /&gt;testone  Y       N                                rac1                                 rac1 rac2&lt;br /&gt;&lt;br /&gt;Available Free Servers:&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;RAC One node operations&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;      Main RAC One Node operation is moving an instance between nodes. That operation can be done using Omotion tool. Here is a example of Omotion execution&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;RAC One Node databases on this cluster:&lt;br /&gt;&lt;br /&gt;#      Database                    Server                      Fix Required&lt;br /&gt;===     ========        ==============================          ============&lt;br /&gt;[1]      testone                                  rac1                N&lt;br /&gt;Enter number of the database to migrate [1]:&lt;br /&gt;Specify maximum time in minutes for migration to complete (max 30) [30]: 5&lt;br /&gt;Available Target Server(s) :&lt;br /&gt;#            Server            Available&lt;br /&gt;===     ==================      =========&lt;br /&gt;[1]                   rac2          Y&lt;br /&gt;Enter number of the target node [1]:&lt;br /&gt;&lt;br /&gt;Omotion Started...&lt;br /&gt;Starting target instance on rac2...&lt;br /&gt;Migrating sessions...&lt;br /&gt;Stopping source instance on rac1...&lt;br /&gt;Omotion Completed...&lt;br /&gt;&lt;br /&gt;=== Current Status ===&lt;br /&gt;Database testone is running on node rac2&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;In that example database instance has been moved from node rac1 to node rac2. Instance on rac1 has been closed in transaction mode. In that scenario there was no remaining session on rac1 instance. When there are outstanding sessions/transactions on source node (in that case rac1) Omotion will shutdown that instance in transaction mode and then after time out will shutdown in abort mode – see example below.&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;RAC One Node databases on this cluster:&lt;br /&gt;&lt;br /&gt;#      Database                    Server                      Fix Required&lt;br /&gt;===     ========        ==============================          ============&lt;br /&gt;[1]      testone                                  rac1                N&lt;br /&gt;&lt;br /&gt;Enter number of the database to migrate [1]:&lt;br /&gt;Specify maximum time in minutes for migration to complete (max 30) [30]: 5&lt;br /&gt;Available Target Server(s) :&lt;br /&gt;#            Server            Available&lt;br /&gt;===     ==================      =========&lt;br /&gt;[1]                   rac2          Y&lt;br /&gt;&lt;br /&gt;Enter number of the target node [1]:&lt;br /&gt;Omotion Started...&lt;br /&gt;Starting target instance on rac2...&lt;br /&gt;Migrating sessions...&lt;br /&gt;Stopping source instance on rac1...&lt;br /&gt;Timeout exceeded, aborting instance...&lt;br /&gt;Omotion Completed...&lt;br /&gt;&lt;br /&gt;=== Current Status ===&lt;br /&gt;Database testone is running on node rac2&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Client configuration&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;How is look like from client perspective?&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;TAF not configured – session has to be reconnected after instance migration&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;TAF configured in client TNS – only current transaction has to be rollback.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family:arial;"&gt;TAF example:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;tnsnames.ora&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;testone =&lt;br /&gt;(DESCRIPTION =&lt;br /&gt;(ADDRESS_LIST =&lt;br /&gt;(ADDRESS = (PROTOCOL = TCP)(HOST = rac-cluster)(PORT = 1521))&lt;br /&gt;)&lt;br /&gt;(CONNECT_DATA =&lt;br /&gt;(SERVICE_NAME = testone)&lt;br /&gt; (FAILOVER_MODE=&lt;br /&gt;(TYPE=select)&lt;br /&gt;(METHOD=basic))&lt;br /&gt;)&lt;br /&gt;)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;Take a look on address - there is no VIP any more - now SCAN name has to be entered&lt;br /&gt;in TNS alias and resolved via DNA or hosts as well as all RAC VIP (rac1-vip and rac2-vip).&lt;br /&gt;SQL*Plus test&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;sqlplus system@testone&lt;br /&gt;SQL&gt; select instance_name, host_name from v$instance;&lt;br /&gt;&lt;br /&gt;INSTANCE_NAME      HOST_NAME&lt;br /&gt;----------------   ----------------------------------------------------------------&lt;br /&gt;testone_1          rac2&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SQL&gt; select * from test;&lt;br /&gt;&lt;br /&gt;  ID&lt;br /&gt;----------&lt;br /&gt;   1&lt;br /&gt;   2&lt;br /&gt;   3&lt;br /&gt;   4&lt;br /&gt;   5&lt;br /&gt;   6&lt;br /&gt;   7&lt;br /&gt;&lt;br /&gt;7 rows selected.&lt;br /&gt;&lt;br /&gt;SQL&gt; select instance_name, host_name from v$instance;&lt;br /&gt;&lt;br /&gt;INSTANCE_NAME      HOST_NAME&lt;br /&gt;----------------   ----------------------------------------------------------------&lt;br /&gt;testone_1          rac2&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Omotion has been started.&lt;br /&gt;&lt;br /&gt;SQL&gt; select instance_name, host_name from v$instance;&lt;br /&gt;select instance_name, host_name from v$instance&lt;br /&gt;*&lt;br /&gt;ERROR at line 1:&lt;br /&gt;ORA-25402: transaction must roll back&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SQL&gt; rollback;&lt;br /&gt;&lt;br /&gt;Rollback complete.&lt;br /&gt;&lt;br /&gt;SQL&gt; select instance_name, host_name from v$instance;&lt;br /&gt;&lt;br /&gt;INSTANCE_NAME      HOST_NAME&lt;br /&gt;----------------   ----------------------------------------------------------------&lt;br /&gt;testone_2          rac1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SQL&gt; select * from test;&lt;br /&gt;&lt;br /&gt;  ID&lt;br /&gt;----------&lt;br /&gt;   1&lt;br /&gt;   2&lt;br /&gt;   3&lt;br /&gt;   4&lt;br /&gt;   5&lt;br /&gt;   6&lt;br /&gt;&lt;br /&gt;6 rows selected.&lt;br /&gt;&lt;br /&gt;SQL&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;After migration there was two changes - instance name and host name has been changed - it's not like in typical failover clustre&lt;br /&gt;where instance is migrated from one host to other. In RAC One Node a new instance&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;is started on second node and during a migration time this configuration is working&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;as typical RAC.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;This is end of part one - next part with more test and operations soon.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-2459598023839068822?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/2459598023839068822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=2459598023839068822' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/2459598023839068822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/2459598023839068822'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/12/oracle-rac-one-node-part-1.html' title='Oracle RAC One Node – part 1'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-7829312387625285846</id><published>2009-12-03T21:27:00.004Z</published><updated>2009-12-03T21:47:09.004Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle RAC'/><category scheme='http://www.blogger.com/atom/ns#' term='11R2'/><category scheme='http://www.blogger.com/atom/ns#' term='vmware'/><title type='text'>Oracle RAC 11R2 and VMWare</title><content type='html'>&lt;span style="font-family:arial;"&gt;Hi,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Last week I spend on installation and configuration Oracle RAC 11R2 on VMWare.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;This nothing special but I want to do that on my laptop with Windows XP and 4 GB of RAM.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Until know it was enough RAM to install Oracle RAC in 9i, 10g and 11R1 but with 11R2 it is a more complicated.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;First of all Oracle required 1.5 GB for Grid infrastructure or 2.5 GB for Grid Infrastructure&lt;br /&gt;and database. If you multiple it by 2 - it is 8 GB as a minimum ;) Hmmm we have only half of it.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;First attempt was to install it with my original settings - 1 GB RAM and 1 GB swap for each of VM.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;It hung during root.sh script at the end of installation.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;After that I decided to increase memory one of VM and add swap for both. New configuration was&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;on node 1 - 1.5 GB RAM and 2 GB swap,&lt;br /&gt;on node 2 - 1.0 GB RAM and 2 GB swap.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;That was it. Node with bigger RAM was used to start OUI and was first in cluster.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;After successful installation of Grid Infrastructure I decided to decrease SGA size for ASM instances to required minimum (136 MB) and I have started a database installation and configuration. I have installed Oracle binaries and then I have started manually DBCA to create a database - of course SGA has been to required minimum (about 370 MB).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;After 25 minutes I have had a working environment.&lt;br /&gt;&lt;br /&gt;Next I have installed a patch for &lt;a href="http://www.oracle.com/database/rac-one-node.html"&gt;RAC One node&lt;/a&gt; - a new option for run Oracle in fail over cluster.&lt;br /&gt;A new post about that should appear in a few days.&lt;br /&gt;&lt;br /&gt;regards,&lt;br /&gt;Marcin&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-7829312387625285846?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/7829312387625285846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=7829312387625285846' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7829312387625285846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/7829312387625285846'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/12/oracle-rac-11r2-and-vmware.html' title='Oracle RAC 11R2 and VMWare'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-101449284315348992</id><published>2009-11-04T20:06:00.007Z</published><updated>2009-11-04T20:36:01.705Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='indexes'/><category scheme='http://www.blogger.com/atom/ns#' term='11g'/><category scheme='http://www.blogger.com/atom/ns#' term='CBO'/><category scheme='http://www.blogger.com/atom/ns#' term='links'/><title type='text'>Have to read and remember</title><content type='html'>&lt;span style="font-family:arial;"&gt;Hi,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Third post today (all very short) but I have to clean up my workspace and close all tab in Firefox.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;As I always has problem with bookmarks there is a list of interesting documents which I have read and kept open from some time to add it to blog.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Jonathan Lewis - old but very important about &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.dbazine.com/oracle/or-articles/jlewis13"&gt;indexes&lt;/a&gt;&lt;span style="font-family:arial;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;a style="font-family: arial;" href="http://jamesmorle.wordpress.com/"&gt;James Morle's blog&lt;/a&gt;&lt;span style="font-family:arial;"&gt; - new stuff is coming &lt;/span&gt;&lt;br /&gt;&lt;a style="font-family: arial;" href="http://optimizermagic.blogspot.com/"&gt;Oracle CBO development group blog&lt;/a&gt;&lt;span style="font-family:arial;"&gt; - some new papers ex. Upgrade from 10g to 11g - CBO changes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Uwe Hesses blog -&lt;/span&gt;&lt;a style="font-family: arial;" href="http://uhesse.wordpress.com/2009/10/29/is-countcol-better-than-count/"&gt; is count(col) better than count(*) &lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Miladin Modrakovic's blog - New &lt;/span&gt;&lt;a style="font-family: arial;" href="http://oraclue.com/2009/10/29/find-waiter-with-oradebug-11gr2/"&gt;Oradebug feature&lt;/a&gt;&lt;span style="font-family:arial;"&gt; in 11R2&lt;br /&gt;&lt;br /&gt;Update:&lt;br /&gt;I have forgot about Richard Foote's blog - two entries - &lt;a href="http://richardfoote.wordpress.com/2009/10/16/oracle-openworld-day-5-hightlights/"&gt;Open World Highlights &lt;/a&gt;&lt;br /&gt;and another entries about &lt;a href="http://richardfoote.wordpress.com/2009/10/28/rebuilding-indexes-every-sunday-afternoon/"&gt;index rebuilding&lt;/a&gt; - I'm on Richard side and I prefer to go out on Sunday afternoon ;)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-101449284315348992?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/101449284315348992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=101449284315348992' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/101449284315348992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/101449284315348992'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/11/have-to-read-and-remember.html' title='Have to read and remember'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-1014652280004183579</id><published>2009-11-04T19:59:00.003Z</published><updated>2009-11-04T20:04:27.221Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='indexes'/><category scheme='http://www.blogger.com/atom/ns#' term='centos'/><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><category scheme='http://www.blogger.com/atom/ns#' term='vmware'/><title type='text'>VMWare and CentOS - 2 virtual CPU</title><content type='html'>&lt;span style="font-family: arial;"&gt;If you want to run virtual machine with 2 virtual CPU and CentOS 5 (RedHat 5) as a guest OS just read that &lt;a href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1007020"&gt;note&lt;/a&gt;. Without a special settings a CentOS doesn't boot properly and will hung on UDEV service.&lt;br /&gt;I have tried it and now I can simulate a 2 CPU in my VMPlayer and test some Jonathan Lewis staff about &lt;a href="http://jonathanlewis.wordpress.com/2009/07/28/index-explosion/"&gt;index explosion&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-1014652280004183579?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/1014652280004183579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=1014652280004183579' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/1014652280004183579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/1014652280004183579'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/11/vmware-and-centos-2-virtual-cpu.html' title='VMWare and CentOS - 2 virtual CPU'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-363133254929550862</id><published>2009-11-04T19:56:00.001Z</published><updated>2009-11-04T19:57:35.150Z</updated><title type='text'>Naming Convention and Oracle Forms</title><content type='html'>&lt;span style="font-family: arial;"&gt;I have been asked to create a test / dev environment to migrate Oracle Forms application from Forms 6i (Windows based)  to Forms 10g on Linux box. There was about 30 files so whole operation looked very easy – just copy files and setup a Forms service.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;I was really surprised when I test a main form – it didn’t start at all – just blank screen in browser.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;I have compiled it and all related PL/SQL libraries once again in Forms Builder and there were no errors. So I decided to compile that same form and libraries on Linux box. Five from six libraries have been compiled without any errors but one has had an error message.  Very strange for me – that other library has been not found. I have left it for a while and I was trying to compile form itself. This same kind of error appears – some of PL/SQL functions have not been found. But why ? There were PLX and PLL files with “missing” PL/SQL procedures and functions. I have used “strace” tool and I have compiled a forms again. In “strace” output file I have found references to missing files – OK not missing but with a little bit different names – “p” instead of “P”.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;And this is a clue of this writing – developers didn’t use any naming convention for file names and links for that files – Windows is not case sensitive so if you call form “Form1” or “FORM1” this is still this same file – but not on case sensitive OS like Linux or other UNIX based systems. I have seen a lot of form which called other forms using not case sensitive names – don’t do that because in case of migration you will have a lot of additional work just to change forms names inside code.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Forms builder added his part too – if you attached a library it is using a file name as a reference to library and it is very important to keep file name case sensitive.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-363133254929550862?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/363133254929550862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=363133254929550862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/363133254929550862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/363133254929550862'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/11/naming-convention-and-oracle-forms.html' title='Naming Convention and Oracle Forms'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-8110195249184339205</id><published>2009-10-02T16:17:00.005+01:00</published><updated>2009-10-03T18:45:06.058+01:00</updated><title type='text'>What can happen if you have "\p" in your ORACLE_HOME</title><content type='html'>&lt;span style="font-family:arial;"&gt;Hi,&lt;/span&gt;  &lt;span style="font-family:arial;"&gt;Today I have hit very strange error when I was trying to install Grid Control 10.2.0.5 on Windows. This installation is split into two parts: installation of Grid Control 10.2.0.1 and then patch to 10.2.0.5. First part has been done without any problems but I have made a mistake. I have setup a beginning of all ORACLE_HOMEs to “e:\oracle\product\10.2.0\”. Grid Control creates itself 3 different ORACLE_HOME (one per DB, OMS and agent) using entered path as a prefix. A whole installation of 10.2.0.1 has been performed without any problems and I have started an upgrade to 10.2.0.5. During a configuration phase an OC4J deployment has been finished with error. I start to investigate and I was looked into OUI log file &lt;/span&gt; &lt;span style="font-family:arial;"&gt;C:\Program Files\Oracle\Inventory\logs\installAction&lt;...&gt;.log&lt;/span&gt;  &lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;Can't find unicode character property definition via main-&gt;r or r.pl at unicode/Is/r.pl line&lt;br /&gt;oracle.ias.sysmgmt.repository.plugin.advanced.apache.parser.ParserException: parsing e:\oracle\product\10.2.0\oms10g\Apache\Apache\conf\ssl.conf: &lt;!-- expected at line 39 column 44, but encounter &lt;eof:--&gt; &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Similar error is described in Metalink note 563468.1 but it is related to Oracle Application Server and OPatch utility. A cause of that error is a ORACLE_HOME value. Perl is interpreting the string "\p" in the Oracle home path as a regular expression. It is a little bit funny as Oracle is recommending an ORACLE HOME looking like ‘\oracle\product\’&lt;/span&gt; &lt;span style="font-family:arial;"&gt;I didn’t find any patch related to that error so I have just installed a Grid Control using a patch without “\p” string.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-8110195249184339205?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/8110195249184339205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=8110195249184339205' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/8110195249184339205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/8110195249184339205'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/10/what-can-happen-if-you-have-p-in-your.html' title='What can happen if you have &quot;\p&quot; in your ORACLE_HOME'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-719915528556165349</id><published>2009-09-23T13:56:00.003+01:00</published><updated>2009-09-23T20:49:55.632+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trace'/><category scheme='http://www.blogger.com/atom/ns#' term='errors'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Trace access errors in Oracle.</title><content type='html'>&lt;span style="font-family: arial;"&gt;There are several possible causes for object access error in application:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: arial;"&gt;Application upgrade&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: arial;"&gt; Deploying new rules for security &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: arial;"&gt;Hardcoded schema names&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family: arial;"&gt;Oracle common errors for those situations are:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;ORA-00942: table or view does not exist&lt;br /&gt;ORA-01031: insufficient privileges&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Depends of application those errors can appear in application log files or only on user screen. Sometimes it is very difficult to find out a root cause of that kind of error – especially when it is out of the box application without proper logging and tracing possibility.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Oracle logging interface is very powerful and it allow a system administrator to setup a logging of above errors into Oracle alert.log file and into sessions trace files. To enable that functionality a trace level for error has to be increased – it can be done on system or session level. Of course for application a system level is more useful.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Following steps has to be performed on system or session level to trace a ORA-00942 error.&lt;br&gt;&lt;br /&gt; - for all sessions&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;alter system set events '942 trace name errorstack level 1';&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;for current session&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;alter session set events '942 trace name errorstack level 1'; &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Test user is executing following SQL statement:&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;SQL&gt; select username from dba_users;&lt;br /&gt;select username from dba_users&lt;br /&gt;ERROR at line 1:&lt;br /&gt;ORA-00942: table or view does not exist&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Results in alter.log and trace files&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;Tue Sep 22 11:31:58 2009&lt;br /&gt;Errors in file /oracle/app/diag/rdbms/pioro/pioro/trace/pioro_ora_23409.trc:&lt;br /&gt;ORA-00942: table or view does not exist&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Trace file details&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;Trace file details&lt;br /&gt;*** 2009-09-22 11:31:58.607&lt;br /&gt;*** SESSION ID:(152.1313) 2009-09-22 11:31:58.607&lt;br /&gt;*** CLIENT ID:() 2009-09-22 11:31:58.607&lt;br /&gt;*** SERVICE NAME:(SYS$USERS) 2009-09-22 11:31:58.607&lt;br /&gt;*** MODULE NAME:(SQL*Plus) 2009-09-22 11:31:58.607&lt;br /&gt;*** ACTION NAME:() 2009-09-22 11:31:58.607&lt;br /&gt;&lt;br /&gt;----- Error Stack Dump -----&lt;br /&gt;ORA-00942: table or view does not exist&lt;br /&gt;----- Current SQL Statement for this session (sql_id=chvsmttqjzjkn) -----&lt;br /&gt;select username from dba_users&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Using above information from trace file DBA can figure out where a problem is and find a proper way to solve it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;regards&lt;br /&gt;Marcin&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-719915528556165349?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/719915528556165349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=719915528556165349' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/719915528556165349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/719915528556165349'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/09/trace-access-errors-in-oracle.html' title='Trace access errors in Oracle.'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-1833743965552599636</id><published>2009-08-30T17:03:00.015+01:00</published><updated>2009-08-30T17:46:10.422+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='11g'/><category scheme='http://www.blogger.com/atom/ns#' term='10g'/><title type='text'>SwingBench</title><content type='html'>&lt;span style="font-family:arial;"&gt;First time I have seen that tool a few years ago and I was really surprise how useful it was. Now I have come back to it and a new version (&lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.dominicgiles.com/swingbench/swingbench230422.zip"&gt;release 2.3&lt;/a&gt;&lt;span style="font-family:arial;"&gt;)  in my opinion  is very mature and can be used for many various performance tests.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Let me present show main features:&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt; Few different benchmark test&lt;br /&gt;&lt;ul&gt;&lt;li&gt; OLTP Order Entry PL/SQL version&lt;/li&gt;&lt;li&gt; OLTP Order Entry Java version&lt;/li&gt;&lt;li&gt; OLTP Calling Circle &lt;/li&gt;&lt;li&gt; Stress test&lt;/li&gt;&lt;li&gt; DSS Sales History&lt;/li&gt;&lt;li&gt;Custom &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Possible outputs&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Transaction per minute&lt;/li&gt;&lt;li&gt;Transaction Response time&lt;/li&gt;&lt;li&gt;DML operation per minute&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Many configuration options ex:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Number of concurrent users&lt;/li&gt;&lt;li&gt;Min and max delay time between transactions&lt;/li&gt;&lt;li&gt;Logon delays&lt;/li&gt;&lt;li&gt;Using of connection pooling&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Distributed client coordinator&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt;All features are described on &lt;a href="http://www.dominicgiles.com/"&gt;Dominic Giles&lt;/a&gt; (author) homepage in &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.dominicgiles.com/swingbench/swingbench22.pdf"&gt;documentation&lt;/a&gt;&lt;span style="font-family:arial;"&gt; section.  This document describe version 2.2 and a newest version is 2.3 and some additional configuration possibilities has been added from XML to GUI.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;There are a lot of possible configurations and tests covered by SwingBench. Combining a customer defined transactions in tool with application knowledge SwingBench can be used as a small brother of Oracle Real Application Testing – of course it required much more work to define a workload but it is for free.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;How to use it – it is very simple please take a look on my quick start guide.&lt;/span&gt;&lt;br /&gt;&lt;ol style="font-family: arial;"&gt;&lt;li&gt; Download a package &lt;/li&gt;&lt;li&gt;Unzip into target directory – ex. c:\SwingBench&lt;/li&gt;&lt;li&gt;Edit a SwingBenchenv.bat file – only path below should be changed&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;REM Set the following to reflect the root directory of your Java installation&lt;br /&gt;&lt;br /&gt;set JAVAHOME=C:\Program Files\Java\jre1.6.0_07&lt;br /&gt;&lt;br /&gt;REM Set the following to the directory where you installed swingbench&lt;br /&gt;&lt;br /&gt;set SWINGHOME=C:\swingbench&lt;br /&gt;&lt;br /&gt;REM Set the following to the location of your TimesTen install (optional)&lt;br /&gt;&lt;br /&gt;set TTHOME=C:\TimesTen\tt70&lt;br /&gt;&lt;br /&gt;REM If you don't have the ORACLE_HOME environment variable set uncomment the following and change it to reflect your environment&lt;br /&gt;&lt;br /&gt;set ORACLE_HOME=C:\oracle\product\10.2.0\db_1&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Go to C:\swingbench\winbin and start oewizard.bat - configuration wizard&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_04XcTwZsZtg/SpqmcUc6JrI/AAAAAAAAADU/McydYbiadrY/s1600-h/swing1.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 270px;" src="http://4.bp.blogspot.com/_04XcTwZsZtg/SpqmcUc6JrI/AAAAAAAAADU/McydYbiadrY/s400/swing1.JPG" alt="" id="BLOGGER_PHOTO_ID_5375792110676616882" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click next and choose a create schema&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_04XcTwZsZtg/SpqnAT4r9aI/AAAAAAAAADc/72I2Jd7s_yo/s1600-h/swing2.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 270px;" src="http://1.bp.blogspot.com/_04XcTwZsZtg/SpqnAT4r9aI/AAAAAAAAADc/72I2Jd7s_yo/s400/swing2.JPG" alt="" id="BLOGGER_PHOTO_ID_5375792728999982498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Enter a server IP, database name and sys password&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_04XcTwZsZtg/SpqnWIEIZaI/AAAAAAAAADk/19jS8awlYQI/s1600-h/swing3.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 270px;" src="http://1.bp.blogspot.com/_04XcTwZsZtg/SpqnWIEIZaI/AAAAAAAAADk/19jS8awlYQI/s400/swing3.JPG" alt="" id="BLOGGER_PHOTO_ID_5375793103783880098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Enter schema name and tablespace location - if you have a EE edition you can clik Use Partitioning option&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_04XcTwZsZtg/SpqnwLO1iDI/AAAAAAAAADs/7ybqpVxh5PY/s1600-h/swing4.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 270px;" src="http://2.bp.blogspot.com/_04XcTwZsZtg/SpqnwLO1iDI/AAAAAAAAADs/7ybqpVxh5PY/s400/swing4.JPG" alt="" id="BLOGGER_PHOTO_ID_5375793551310686258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Choose a size of demo schema using sliders&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_04XcTwZsZtg/SpqoC-uDKtI/AAAAAAAAAD0/lN8bxGlK2fE/s1600-h/swing5.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 270px;" src="http://3.bp.blogspot.com/_04XcTwZsZtg/SpqoC-uDKtI/AAAAAAAAAD0/lN8bxGlK2fE/s400/swing5.JPG" alt="" id="BLOGGER_PHOTO_ID_5375793874369456850" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Confirm all settings and click Finish&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_04XcTwZsZtg/SpqoS63kDDI/AAAAAAAAAD8/dpFyH3hwRpQ/s1600-h/swing6.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 270px;" src="http://4.bp.blogspot.com/_04XcTwZsZtg/SpqoS63kDDI/AAAAAAAAAD8/dpFyH3hwRpQ/s400/swing6.JPG" alt="" id="BLOGGER_PHOTO_ID_5375794148213525554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Wizard will display a additional window with Wizard log&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_04XcTwZsZtg/Spqo6aEM_NI/AAAAAAAAAEM/EZAit3gFwP8/s1600-h/swing7.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 200px;" src="http://2.bp.blogspot.com/_04XcTwZsZtg/Spqo6aEM_NI/AAAAAAAAAEM/EZAit3gFwP8/s400/swing7.JPG" alt="" id="BLOGGER_PHOTO_ID_5375794826602937554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click OK on confirmation screen&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_04XcTwZsZtg/SpqozyjUqbI/AAAAAAAAAEE/KUE-5PjUyhI/s1600-h/swing8.JPG"&gt;&lt;img style="cursor: pointer; width: 268px; height: 122px;" src="http://4.bp.blogspot.com/_04XcTwZsZtg/SpqozyjUqbI/AAAAAAAAAEE/KUE-5PjUyhI/s400/swing8.JPG" alt="" id="BLOGGER_PHOTO_ID_5375794712916830642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click Cancel in main Wizard Window&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_04XcTwZsZtg/SpqpV-mTeCI/AAAAAAAAAEU/7ortgp8X9fw/s1600-h/swing9.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 270px;" src="http://3.bp.blogspot.com/_04XcTwZsZtg/SpqpV-mTeCI/AAAAAAAAAEU/7ortgp8X9fw/s400/swing9.JPG" alt="" id="BLOGGER_PHOTO_ID_5375795300266113058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You can start now a SwingBench - c:\swingbench\winbin\swingbench.bat&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_04XcTwZsZtg/Spqp6RmXEeI/AAAAAAAAAEc/475o1qPlnZE/s1600-h/swing10.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 231px;" src="http://1.bp.blogspot.com/_04XcTwZsZtg/Spqp6RmXEeI/AAAAAAAAAEc/475o1qPlnZE/s400/swing10.JPG" alt="" id="BLOGGER_PHOTO_ID_5375795923841913314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And change a ConnectionString to proper one for your environment&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click Start button and enjoy a performance test&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_04XcTwZsZtg/SpqqTOyWf_I/AAAAAAAAAEk/qLvOjkBk-g0/s1600-h/swing11.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 231px;" src="http://3.bp.blogspot.com/_04XcTwZsZtg/SpqqTOyWf_I/AAAAAAAAAEk/qLvOjkBk-g0/s400/swing11.JPG" alt="" id="BLOGGER_PHOTO_ID_5375796352583630834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;This is all for a first time. Now I'm trying to find a fastest way to catch up&lt;br /&gt;a workload on existing database and transform it into a SwingBench tests.&lt;br /&gt;&lt;br /&gt;I hope it help some people to test a performance of existing and future installations.&lt;br /&gt;&lt;br /&gt;regards,&lt;br /&gt;Marcin&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-1833743965552599636?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/1833743965552599636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=1833743965552599636' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/1833743965552599636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/1833743965552599636'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/08/swingbench.html' title='SwingBench'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_04XcTwZsZtg/SpqmcUc6JrI/AAAAAAAAADU/McydYbiadrY/s72-c/swing1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-3393707924050283761</id><published>2009-08-19T21:00:00.007+01:00</published><updated>2009-08-19T23:32:59.720+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='11g'/><category scheme='http://www.blogger.com/atom/ns#' term='network'/><title type='text'>Slow network connection in 11g</title><content type='html'>&lt;span style="font-family:arial;"&gt;Today I found a thread on &lt;/span&gt;&lt;a style="font-family: arial;" href="http://forums.oracle.com/forums/click.jspa?searchID=-1&amp;amp;messageID=3700846"&gt;Oracle forum&lt;/a&gt;&lt;span style="font-family:arial;"&gt; about a slow connection and I recall that I solved it in past.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Now I have found a few notes on Metalink (ex. 803838.1) which confirm my investigation that Oracle 11g is using DNS to resolve names instead of /etc/hosts file on Unix box.&lt;/span&gt;&lt;span style="font-family:arial;"&gt; If your server is not registered in DNS or if there is no DNS server which was specified in &lt;span style="font-family:courier new;"&gt;/etc/resolv.conf&lt;/span&gt; you can have a connection problem.&lt;br /&gt;&lt;br /&gt;A fastest way to solve it on Linux is to remove "&lt;span style="font-family:courier new;"&gt;nameserver&lt;/span&gt;" entry from &lt;span style="font-family:courier new;"&gt;/etc/resolv.conf&lt;/span&gt; file if you don't need a DNS on the server otherwise you have to be sure that your Oracle server is registered in DNS.&lt;br /&gt;&lt;br /&gt;On Solaris a solution is a little bit different - change line in  /etc/nsswitch.conf into&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;ipnodes: files [NOTFOUND=continue] dns&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;and do not delete line starting with &lt;span style="font-family:courier new;"&gt;hosts&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;regards,&lt;br /&gt;Marcin&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-3393707924050283761?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/3393707924050283761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=3393707924050283761' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/3393707924050283761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/3393707924050283761'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/08/slow-network-connection-w-11g.html' title='Slow network connection in 11g'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-3014756088756379199</id><published>2009-08-13T00:10:00.005+01:00</published><updated>2009-08-13T20:07:26.808+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='iAS'/><category scheme='http://www.blogger.com/atom/ns#' term='trace'/><category scheme='http://www.blogger.com/atom/ns#' term='FORMS'/><category scheme='http://www.blogger.com/atom/ns#' term='application server'/><title type='text'>Application Server - Forms session monitoring</title><content type='html'>&lt;span style="font-family: arial;"&gt;Hi,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Oracle Application Forms server has some build in logging tools which allow a DBA to trace a performance or debug data. In Oracle &lt;/span&gt;&lt;a style="font-family: arial;" href="http://download-east.oracle.com/docs/cd/B14099_19/web.1012/b14032/tracing007.htm"&gt;documentation&lt;/a&gt;&lt;span style="font-family: arial;"&gt; you can find a example how to use that tools.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;If you check a URL you can notice that all examples are related to default forms environment&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code style="font-family: arial;"&gt;http://yourserver/forms/frmservlet?serverURL=/forms/lservlet/perf&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;span style="font-family: arial;"&gt;But how to use that if you have a few different environment deployed on server (ex. a few applications) and you are using URL which include a environment name&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code style="font-family: arial;"&gt;http://yourserver/forms/frmservlet?config=myconfig.env&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;You have to realize (I spend some time several times on it so I decide to create that post)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;that "serverURL" and config are a parameters in your URL and according to HTTP standard for GET method we can combine parameters using "&amp;amp;" character.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code style="font-family: arial;"&gt;http://yourserver/forms/frmservlet?config=myconfig.env&lt;/code&gt;&lt;code style="font-family: arial;"&gt;&amp;amp;serverURL=/forms/lservlet/perf&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;span style="font-family: arial;"&gt;That's all folks and I will try to remember that using my blog memory&lt;/span&gt;&lt;code style="font-family: arial;"&gt; :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;regards,&lt;br /&gt;Marcin&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-3014756088756379199?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/3014756088756379199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=3014756088756379199' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/3014756088756379199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/3014756088756379199'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/08/application-server-forms-session.html' title='Application Server - Forms session monitoring'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-5416458970122346124</id><published>2009-08-13T00:03:00.003+01:00</published><updated>2009-08-13T20:08:10.287+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='index'/><title type='text'>Oracle indexes</title><content type='html'>&lt;span style="font-family:arial;"&gt;Hello,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Jonathan Lewis just started a series of posts about indexes. This is one of these things which has a flag "must to read". Please find some examples&lt;/span&gt;:&lt;br /&gt;&lt;span style="font-family:arial;"&gt;- &lt;/span&gt;&lt;a style="font-family: arial;" href="http://jonathanlewis.wordpress.com/2009/08/07/index-fragmentation/"&gt;Index fragmentation&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;- &lt;/span&gt;&lt;a style="font-family: arial;" href="http://jonathanlewis.wordpress.com/2009/07/28/index-explosion/"&gt;Index explosion part 1&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;- &lt;/span&gt;&lt;a style="font-family: arial;" href="http://jonathanlewis.wordpress.com/2009/08/11/index-explosion-2/"&gt;Index explosion part 2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;regards,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Marcin&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-5416458970122346124?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/5416458970122346124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=5416458970122346124' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/5416458970122346124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/5416458970122346124'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/08/oracle-indexes.html' title='Oracle indexes'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-9211453550947669264</id><published>2009-08-10T21:52:00.008+01:00</published><updated>2009-08-11T08:35:58.802+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='copy'/><category scheme='http://www.blogger.com/atom/ns#' term='RMAN'/><category scheme='http://www.blogger.com/atom/ns#' term='10g'/><category scheme='http://www.blogger.com/atom/ns#' term='data file'/><category scheme='http://www.blogger.com/atom/ns#' term='ASM'/><title type='text'>ASM datafile operation in NOMOUNT</title><content type='html'>&lt;span style="font-family:arial;"&gt;Hi&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Several times I have been asked to manipulate with data files placed on ASM. In 11g there is a very nice feature – Oracle added a cp command to asmcmd tool but in 10g we have to use database instance to do all work.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;One of very common task is coping a data file from one ASM disk group to other one. It can be done via RMAN copy command but this command adds an entry to RMAN repository. There is another method to do that and I found it in &lt;a href="http://download.oracle.com/docs/cd/B19306_01/backup.102/b14191/dbxptrn.htm#CHDCFCIB"&gt;Oracle documentation&lt;/a&gt; (Yes, yes, &lt;a href="http://en.wikipedia.org/wiki/RTFM"&gt;RTFM&lt;/a&gt;). Convert command can be used not only to copy data file from ASM to file system and vice versa but to copy between ASM groups too.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Example&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;RMAN&gt; convert datafile '+DATA/PIORO/DATAFILE/ORABPEL.260.692892311' format '+DATA/PIORO/copyofORABPEL';&lt;br /&gt;Starting backup at 10-AUG-09&lt;br /&gt;using channel ORA_DISK_1&lt;br /&gt;channel ORA_DISK_1: starting datafile conversion&lt;br /&gt;input filename=+DATA/pioro/datafile/orabpel.260.692892311&lt;br /&gt;converted datafile=+DATA/pioro/ copyofORABPEL&lt;br /&gt;channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:25&lt;br /&gt;Finished backup at 10-AUG-09&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;ASM to file system &lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;RMAN&gt; convert datafile '+DATA/PIORO/DATAFILE/ORABPEL.260.692892311' format '/home/oracle/copyofORABPEL';&lt;br /&gt;Starting backup at 10-AUG-09&lt;br /&gt;using channel ORA_DISK_1&lt;br /&gt;channel ORA_DISK_1: starting datafile conversion&lt;br /&gt;input filename=+DATA/pioro/datafile/orabpel.260.692892311&lt;br /&gt;converted datafile=/home/oracle/copyofORABPEL&lt;br /&gt;channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:26&lt;br /&gt;Finished backup at 10-AUG-09&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Keep in mind that this command doesn’t add any information to control file so you want to rename a file you have to maintain it manually.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;This command is working in NOMOUNT state too but a additional parameter is required&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;[oracle@piorovm ~]$ rman target /&lt;br /&gt;Recovery Manager: Release 10.2.0.4.0 - Production on Mon Aug 10 22:15:44 2009&lt;br /&gt;Copyright (c) 1982, 2007, Oracle.  All rights reserved.&lt;br /&gt;connected to target database: pioro10 (not mounted)&lt;br /&gt;&lt;br /&gt;RMAN&gt; convert datafile '+DATA/PIORO/DATAFILE/ORABPEL.260.692892311' from platform 'Linux IA (32-bit)' format '/home/oracle/copyofORABPEL';&lt;br /&gt;Starting backup at 10-AUG-09&lt;br /&gt;using target database control file instead of recovery catalog&lt;br /&gt;allocated channel: ORA_DISK_1&lt;br /&gt;channel ORA_DISK_1: sid=154 devtype=DISK&lt;br /&gt;channel ORA_DISK_1: starting datafile conversion&lt;br /&gt;input filename=+DATA/pioro/datafile/orabpel.260.692892311&lt;br /&gt;converted datafile=/home/oracle/copyofORABPEL&lt;br /&gt;channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:26&lt;br /&gt;Finished backup at 10-AUG-09&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;If you need to copy archive log (ex. From flash recovery area) you can use a RMAN copy command - this is running only in MOUNT state.&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;RMAN&gt; copy archivelog '+data/PIORO/ARCHIVELOG/2009_07_28/thread_1_seq_58.266.693419455' to '/home/oracle/arch_1_58';&lt;br /&gt;Starting backup at 10-AUG-09&lt;br /&gt;using channel ORA_DISK_1&lt;br /&gt;channel ORA_DISK_1: starting archive copy&lt;br /&gt;input archive log thread=1 sequence=58 recid=1 stamp=694559795&lt;br /&gt;output filename=/home/oracle/ arch_1_58 recid=3 stamp=694560324&lt;br /&gt;channel ORA_DISK_1: archivelog copy complete, elapsed time: 00:00:07&lt;br /&gt;Finished backup at 10-AUG-09&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;But it can be a dangerous command because additional entry to control file is created and if you delete this file from a file system without sending that information to RMAN archive log backup could failed. To avoid it always CROSSCHECK ARCHIVELOG ALL before archive log backup or use option “skip inaccessible”.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;This is it for today but I have some additional ideas to check.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Marcin&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-9211453550947669264?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/9211453550947669264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=9211453550947669264' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/9211453550947669264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/9211453550947669264'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/08/asm-datafile-operation-in-nomount.html' title='ASM datafile operation in NOMOUNT'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-2412325660027336693</id><published>2009-08-03T20:05:00.004+01:00</published><updated>2009-08-03T20:13:40.185+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle 10g'/><category scheme='http://www.blogger.com/atom/ns#' term='installation'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='andLinux'/><category scheme='http://www.blogger.com/atom/ns#' term='nnfyboot'/><title type='text'>andLinux and Oracle</title><content type='html'>&lt;span style="font-family: arial;"&gt;Hi,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Please find my short &lt;/span&gt;&lt;a style="font-family: arial;" href="http://sites.google.com/site/piorotemp/Home/andlinux_1.pdf?attredirects=0"&gt;paper&lt;/a&gt;&lt;span style="font-family: arial;"&gt; about installation of &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.andlinux.org/"&gt;andLinux&lt;/a&gt;&lt;span style="font-family: arial;"&gt; and Oracle 10g.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;It can be a useful when you want to have a Linux version of Oracle on your Windows machine without any virtualization tool.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;andLinux is a Ubuntu distribution and is not officially supported but it is working fine. It was some problem with path to "&lt;span style="font-family: courier new;"&gt;basename&lt;/span&gt;" and "&lt;span style="font-family: courier new;"&gt;awk&lt;/span&gt;" during a linking (error related to &lt;span style="font-family: courier new;"&gt;nnfyboot&lt;/span&gt; file).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;regards,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Marcin &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-2412325660027336693?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/2412325660027336693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=2412325660027336693' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/2412325660027336693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/2412325660027336693'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/08/andlinux-and-oracle.html' title='andLinux and Oracle'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-3694214756934011684</id><published>2009-07-27T20:31:00.003+01:00</published><updated>2009-07-27T20:46:37.274+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='11g'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle performance 10g'/><category scheme='http://www.blogger.com/atom/ns#' term='ASH'/><title type='text'>Free version of ASH</title><content type='html'>&lt;span style="font-family:arial;"&gt;Hi,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;If you have a performance problem and don't have license to use Active Session History &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;you can use a free &lt;/span&gt;&lt;a style="font-family: arial;" href="http://ashmasters.com/"&gt;version&lt;/a&gt;&lt;span style="font-family:arial;"&gt; of it. It is not using a direct SGA access but it is designed by &lt;a href="http://www.perfvision.com/index.php"&gt;Kyle Hailey&lt;/a&gt;&lt;br /&gt;- one of OEM Performance tab designer.&lt;br /&gt;&lt;br /&gt;When I read about direct access to X$ table using a oradebug utility on&lt;br /&gt;&lt;a href="http://oraclue.com/2009/07/17/direct-path-reads-and-serial-table-scans-in-11g/"&gt;Miladin Modrakovic's&lt;/a&gt; blog I started to wonder if this two technologies can be combined.&lt;br /&gt;Unfortunately I have tested direct access using oradebug and CPU usage is unexpected high on my VM machine and in that case direct access can disrupt our observations.&lt;br /&gt;&lt;br /&gt;regards,&lt;br /&gt;Marcin&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-3694214756934011684?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/3694214756934011684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=3694214756934011684' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/3694214756934011684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/3694214756934011684'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/07/free-version-of-ash.html' title='Free version of ASH'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-1958167658313025257</id><published>2009-07-22T20:29:00.006+01:00</published><updated>2009-07-22T20:41:14.013+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='11g'/><category scheme='http://www.blogger.com/atom/ns#' term='active database'/><category scheme='http://www.blogger.com/atom/ns#' term='RMAN'/><category scheme='http://www.blogger.com/atom/ns#' term='error'/><category scheme='http://www.blogger.com/atom/ns#' term='redo'/><title type='text'>RMAN backup from active database</title><content type='html'>&lt;span style="font-family: arial;"&gt;Hello,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;During my test with ASM I have broken my database. I couldn’t restore an ASM structure and I had to recreate database. Because it was a test environment I hadn’t backup of it but I remembered that I hopefully had a standby database. It should be easy to duplicate standby and recreate my test DB once again.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;I decided to use a new feature of RMAN to restore database directly from standby. I created a script and I have started a RMAN.&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;run {&lt;br /&gt;set newname for datafile 1 to '+DATA';&lt;br /&gt;set newname for datafile 2 to '+DATA';&lt;br /&gt;set newname for datafile 3 to '+DATA';&lt;br /&gt;set newname for datafile 4 to '+DATA';&lt;br /&gt;set newname for datafile 5 to '+DATA';&lt;br /&gt;set newname for datafile 6 to '+DATA';&lt;br /&gt;set newname for tempfile 1 to '+DATA';&lt;br /&gt;duplicate target database to PIORO from active database;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;rman target sys/oracle@piorost auxiliary sys/oracle@pioro cmdfile=dup_back.txt msglog=dup_back.log&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;What was my surprise when I found following message in log file.&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;Starting backup at 22-JUL-09&lt;br /&gt;allocated channel: ORA_DISK_1&lt;br /&gt;channel ORA_DISK_1: SID=87 device type=DISK&lt;br /&gt;channel ORA_DISK_1: starting datafile copy&lt;br /&gt;input datafile file number=00002 name=/oracle/oradata/pioro/sysaux01.dbf&lt;br /&gt;RMAN-03009: failure of backup command on ORA_DISK_1 channel at 07/22/2009 10:01:58&lt;br /&gt;ORA-19504: failed to create file "+DATA/pioro/datafile/sysaux01.211&lt;br /&gt;channel ORA_DISK_1 disabled, job failed on it will be run on another channel&lt;br /&gt;RMAN-00571: ===========================================================&lt;br /&gt;RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============&lt;br /&gt;RMAN-00571: ===========================================================&lt;br /&gt;RMAN-03002: failure of Duplicate Db command at 07/22/2009 10:01:58&lt;br /&gt;RMAN-03015: error occurred in stored script Memory Script&lt;br /&gt;&lt;br /&gt;RMAN-03009: failure of backup command on ORA_DISK_1 channel at 07/22/2009 10:01:58&lt;br /&gt;ORA-19504: failed to create file "+DATA/pioro/datafile/sysaux01.211&lt;br /&gt;&lt;br /&gt;Recovery Manager complete.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;&lt;br /&gt;It was very strange because this configuration was running without any problems before my tests.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;&lt;br /&gt;After few tries with changing a script (adding a db_file_name_convert, changing a new name) I decided to check Metalink – unfortunately there is a note number 787753.1 that this is a bug in 11.1.0.7 and will be fixed in 11.2 ! My test case was a little bit different than Metalink example because my standby DB has been placed on file system and end results was identical. I have to backup a standby to disk than restore it on my test machine. &lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;&lt;br /&gt;After that I hit into another strange issue – because I have restored a control file from standby database there were standby logs and online redo logs had a wrong path. But it should be easy, isn’t? Just add new online logs on ASM and drop old one.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;SQL&gt; select group#, member from v$logfile;&lt;br /&gt;&lt;br /&gt;1 /oracle/oradata/pioro/redo01.log&lt;br /&gt;2 /oracle/oradata/pioro/redo02.log&lt;br /&gt;3 /oracle/oradata/pioro/redo03.log&lt;br /&gt;4 /oracle/oradata/pioro/standby01.log&lt;br /&gt;5 /oracle/oradata/pioro/standby02.log&lt;br /&gt;6 /oracle/oradata/pioro/standby03.log&lt;br /&gt;&lt;br /&gt;SQL&gt; alter database add logfile ('+DATA') size 50M;&lt;br /&gt;alter database add logfile ('+DATA') size 50M&lt;br /&gt;*&lt;br /&gt;ERROR at line 1:&lt;br /&gt;ORA-19528: redo logs being cleared may need access to files&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;&lt;br /&gt;Hmmm another nice issue – yes I have cleared logs due to reset logs option but DB is open now and I’m adding a new redo file not dropping it.&lt;br /&gt;Let’s try to drop something&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;SQL&gt; alter database drop logfile group 6;&lt;br /&gt;alter database drop logfile group 6&lt;br /&gt;*&lt;br /&gt;ERROR at line 1:&lt;br /&gt;ORA-19528: redo logs being cleared may need access to files&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;&lt;br /&gt;I have restarted DB in clear mode but it didn’t help. In my opinion it could be a problem with control file. So I have decided to force DB to recreated a control file using – alter database backup control file to trace – command.&lt;br /&gt;It was a solution – after that I could drop and add log files groups.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:sql"&gt;&lt;br /&gt;SQL&gt; alter database add logfile ('+DATA') size 50M;&lt;br /&gt;Database altered.&lt;br /&gt;&lt;br /&gt;SQL&gt;  alter database drop logfile group 2;&lt;br /&gt;Database altered.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;&lt;br /&gt;I’m not sure if similar problem with redo logs appear in previous version of Oracle but main old approach to don’t install a first release of Oracle DB on production systems seems to be still actual and it give me more safety.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;&lt;br /&gt;regards,&lt;br /&gt;Marcin&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-1958167658313025257?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/1958167658313025257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=1958167658313025257' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/1958167658313025257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/1958167658313025257'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/07/rman-backup-from-active-database.html' title='RMAN backup from active database'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-6912748341211956748</id><published>2009-07-02T22:08:00.004+01:00</published><updated>2009-07-02T22:15:24.066+01:00</updated><title type='text'>New performance papers from Method R</title><content type='html'>&lt;span style="font-family: arial;font-family:arial;" &gt;Cary Millsap public ate a new paper about software performance - &lt;/span&gt;&lt;a style="font-family: arial;" href="http://method-r.com/downloads/doc_details/12-fundamentals-of-software-performance-quick-reference-card"&gt;Fundamentals of Software Performance Quick Reference Card&lt;/a&gt;&lt;span style="font-family: arial;"&gt;. Check a other brilliant paper too - &lt;/span&gt;&lt;a style="font-family: arial;" href="http://method-r.com/downloads/doc_details/10-for-developers-making-friends-with-the-oracle-database-cary-millsap"&gt;Making Friends with the Oracle Database&lt;/a&gt;&lt;span style="font-family: arial;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;font-family:arial;" &gt;regards,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;font-family:arial;" &gt;Marcin&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-6912748341211956748?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/6912748341211956748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=6912748341211956748' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/6912748341211956748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/6912748341211956748'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/07/new-performance-papers-from-method-r.html' title='New performance papers from Method R'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-4891771787124919641</id><published>2009-06-30T22:38:00.002+01:00</published><updated>2009-06-30T22:46:58.804+01:00</updated><title type='text'>ASM and BBED</title><content type='html'>&lt;span style="font-family: arial;"&gt;As I mentioned in my previous &lt;/span&gt;&lt;a style="font-family: arial;" href="http://oracleprof.blogspot.com/2009/06/bbed-and-oracle-vault.html"&gt;post&lt;/a&gt;&lt;span style="font-family: arial;"&gt; I make some research with ASM and Oracle block edit.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Please find my short &lt;/span&gt;&lt;a style="font-family: arial;" href="http://sites.google.com/site/piorotemp/Home/ASMBBED.pdf?attredirects=0"&gt;paper&lt;/a&gt;&lt;span style="font-family: arial;"&gt; about that. This version doesn't include a table protected via Oracle Vault.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;If you have any remarks please don't hesitate and drop me a mail.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;regards,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Marcin&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-4891771787124919641?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/4891771787124919641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=4891771787124919641' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/4891771787124919641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/4891771787124919641'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/06/asm-and-bbed.html' title='ASM and BBED'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-6626713628273442908</id><published>2009-06-24T20:31:00.002+01:00</published><updated>2009-06-24T20:42:37.218+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='11g'/><category scheme='http://www.blogger.com/atom/ns#' term='db console'/><title type='text'>High CPU after DB Console start in 11g</title><content type='html'>&lt;span style="font-family: arial;"&gt;Hi,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;If you have a problem with Oracle sessions taking a high CPU load in 11g after you start a DB Console check if any of these session is executing following query:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;SELECT EXECUTION_ID, STATUS, STATUS_DETAIL FROM MGMT_JOB_EXEC_SUMMARY&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;WHERE JOB_ID = :B3 AND&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;TARGET_LIST_INDEX = :B2 AND EXPE&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;CTED_START_TIME = :B1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;If yes, you can fix it using that steps:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol style="font-family: arial;"&gt;&lt;li&gt;stop DB Console&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;emctl stop dbconsole&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;connect as sysman using SQL*Plus execute both procedures&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;SQL&gt; execute MGMT_PAF_UTL.STOP_DAEMON;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;SQL&gt; execute MGMT_PAF_UTL.START_DAEMON;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Start DB Console&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;emctl start dbconsole&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family: arial;"&gt;This is reported as bug number 7182962&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Marcin&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-6626713628273442908?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/6626713628273442908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=6626713628273442908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/6626713628273442908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/6626713628273442908'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/06/high-cpu-after-db-console-start-in-11g.html' title='High CPU after DB Console start in 11g'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-8912076252119931303</id><published>2009-06-24T20:08:00.003+01:00</published><updated>2009-06-24T20:43:25.430+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Data Guard'/><category scheme='http://www.blogger.com/atom/ns#' term='11g'/><category scheme='http://www.blogger.com/atom/ns#' term='Maximum Protection'/><title type='text'>Strange DataGuard behaviour</title><content type='html'>&lt;span style="font-family:arial;"&gt;I have been tested a new features of 11g Data Guard. During that I have change a database protection mode into Maximum Protection &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;and after that make some test with startup and shutdown of both databases. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;As expected when primary database was online I have got following error on console and warning in alert.log&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; shutdown immediate&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ORA-01154: database busy. Open, close, mount, and dismount not allowed now&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Alert.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Attempt to shut down Standby Database&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Standby Database operating in NO DATA LOSS mode&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Detected primary database alive, shutdown primary first, shutdown aborted&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;That’s expected results. But in next test case when I shutdown a primary database I still got that same error !&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; shutdown immediate&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ORA-01154: database busy. Open, close, mount, and dismount not allowed now&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;I have rerun disabling command for recovery process and checked if recovery mode is disabled &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Database altered.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; SELECT RECOVERY_MODE FROM V$ARCHIVE_DEST_STATUS;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;RECOVERY_MODE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-----------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;IDLE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;IDLE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;IDLE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;IDLE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;IDLE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;IDLE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;IDLE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;IDLE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;IDLE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;IDLE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;IDLE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;11 rows selected.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Hmmm .... of course I can shutdown that database using abort but I don’t want to.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Let’s check what else can prevent database to shutdown – a little check what processes are running and EUREKA – dataguard broker is still running. So:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; alter system set dg_broker_start=FALSE scope=memory;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;System altered.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; shutdown immediate&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ORA-01109: database not open&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Database dismounted.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ORACLE instance shut down.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Uffff ..... &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Other question is why ? If primary database was down, standby database should be stopped without any other circumstances.&lt;br /&gt;&lt;br /&gt;regards,&lt;br /&gt;Marcin &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-8912076252119931303?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/8912076252119931303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=8912076252119931303' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/8912076252119931303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/8912076252119931303'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/06/strange-dataguard-behaviour.html' title='Strange DataGuard behaviour'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-1463806624331890012</id><published>2009-06-17T14:17:00.002+01:00</published><updated>2009-06-17T14:20:30.947+01:00</updated><title type='text'>ASM and RedHat 5</title><content type='html'>&lt;span style="font-family:arial;"&gt;I’m really angry on me because I spend another 30 min fighting with problem which I have already solved several times. Oracle ASMLib is looking for a disks using /dev/dm-* devices which are not created by default in Red Hat 5. But if you manually map any device as Oracle ASM disk it will be working until next reboot.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So if after reboot in Red Hat 5 your ASM disks disappear check if you done following things:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Comment line in&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;/etc/udev/rules.d/ 90-dm.rules&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#KERNEL=="dm-[0-9]*", ACTION=="add", OPTIONS+="ignore_device"   &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;it creates a /dev/dm-* devices after system reboot&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Check in&lt;span style="font-family:courier new;"&gt; /etc/sysconfig/oracleasm&lt;/span&gt; if disk are not excluded&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# ORACLEASM_ENABELED: 'true' means to load the driver on boot.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ORACLEASM_ENABLED=true&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# ORACLEASM_UID: Default user owning the /dev/oracleasm mount point.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ORACLEASM_UID=oracle&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# ORACLEASM_GID: Default group owning the /dev/oracleasm mount point.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ORACLEASM_GID=oinstall&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# ORACLEASM_SCANBOOT: 'true' means scan for ASM disks on boot.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ORACLEASM_SCANBOOT=true&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# ORACLEASM_SCANORDER: Matching patterns to order disk scanning&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ORACLEASM_SCANORDER=""&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# ORACLEASM_SCANEXCLUDE: Matching patterns to exclude disks from scan&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ORACLEASM_SCANEXCLUDE=""&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li style="font-family: arial;"&gt;Check a file privileges&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;After that you should see your ASM disks.&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Marcin&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-1463806624331890012?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/1463806624331890012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=1463806624331890012' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/1463806624331890012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/1463806624331890012'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/06/asm-and-redhat-5.html' title='ASM and RedHat 5'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-6058068186205738222</id><published>2009-06-16T09:08:00.002+01:00</published><updated>2009-06-16T09:32:20.094+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BBED'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Vault'/><category scheme='http://www.blogger.com/atom/ns#' term='data protect'/><category scheme='http://www.blogger.com/atom/ns#' term='ASM'/><title type='text'>BBED and Oracle Vault</title><content type='html'>&lt;span style="font-family: arial;"&gt; Hi,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;I was always wondering how much Oracle Vault is preventing your data to avoid unauthorized accesses by DBA. To be honest I didn’t dig into Oracle code looking for security hole but after I recall about Block Editor I decided to try that tool.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;And it is working – I was able to read a data from data file based on file system without any problem. OK there was some work to do like find out a block number and so on but it wasn’t really hard.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;After that I tried to use BBED on ASM based file but without luck, but I’m a person who don’t give up so easy. I was thinking about some RMAN copy and it is required a additional disk space and we can deal only with copy of running DB. I have research a internet and I have found amazing stuff about ASM - &lt;a href="https://twiki.cern.ch/twiki//bin/view/PSSGroup/ASM_Internals"&gt;Luca Canali web site&lt;/a&gt;  - I read it and I found a solution how to read a data from running DB. It is possible to read a block from ASM into file system, edit it and copy back into running DB. Oracle Vault as expected didn’t recognize that block has been edited.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;So is it a possibility to protect data ? In my opinion data encryption is a good choice until someone don’t find a way how to encrypt and decrypt it ;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Working example of my work should be here in a few days.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;regards,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Marcin&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-6058068186205738222?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/6058068186205738222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=6058068186205738222' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/6058068186205738222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/6058068186205738222'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/06/bbed-and-oracle-vault.html' title='BBED and Oracle Vault'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-4110943837333194899</id><published>2009-06-08T15:02:00.003+01:00</published><updated>2009-06-08T15:08:09.954+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='editor'/><category scheme='http://www.blogger.com/atom/ns#' term='data corruption'/><category scheme='http://www.blogger.com/atom/ns#' term='block'/><title type='text'>BBED - Oracle Block Editor</title><content type='html'>&lt;span style="font-family: arial;"&gt;Hi,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;I just found that paper about Oracle Block Editor (BBED) in my old ebook directory.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;It can be very useful but very dangerous  too. Please read that document very careful &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;and never try it on production database.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Here is a link to that &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.orafaq.com/papers/dissassembling_the_data_block.pdf"&gt;paper&lt;/a&gt;&lt;span style="font-family: arial;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;regards,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Marcin&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-4110943837333194899?l=oracleprof.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oracleprof.blogspot.com/feeds/4110943837333194899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7461233846321640962&amp;postID=4110943837333194899' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/4110943837333194899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7461233846321640962/posts/default/4110943837333194899'/><link rel='alternate' type='text/html' href='http://oracleprof.blogspot.com/2009/06/bbed-oracle-block-editor.html' title='BBED - Oracle Block Editor'/><author><name>Marcin Przepiorowski</name><uri>http://www.blogger.com/profile/15133397892511680504</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7461233846321640962.post-872309507471483429</id><published>2009-05-28T09:34:00.002+01:00</published><updated>2009-05-28T09:37:20.113+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle performance 10g'/><title type='text'>New blogs</title><content type='html'>&lt;span style="font-family: arial;"&gt;Hi,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;I have found some interesting blogs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-family: arial;" href="http://blog.tanelpoder.com/%20"&gt;Tanel Poder Oracle blog&lt;/a&gt;&lt;br /&gt;&lt;a style="font-family: arial;" href="http://oraclue.com/"&gt;Miladin Modrakovic Oracle blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Take a look if you have a time.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Marcin&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7461233846321640962-872309507471483429?l=oracl
