Plsql Programming Guidelines within a RAC Environment

Hi Guys,
Are there any specific guidelines you would recommend for programming within a RAC environment, in addition to the usual best practices one would adopt for writing Plsql programs? ie guidelines that would take advantage of the performance boost from the high availability feature of the RAC environment, as well as the processing power?

There are realistically no guidelines that are specific to RAC (other than making sure if you're referencing V$ tables in code that you're using the GV$ version if you want data from all the nodes).
On the other hand, there are plenty of guidelines that are nice in single-node environments that potentially become necessities in a RAC environment. In particular, all the guidelines that reduce contention are useful in a single-node environment but can become critically important in a RAC environment. Anything that causes hot blocks in a single-node system can cause massive scaling problems in a RAC environment.
- If you are using permanent tables rather than global temporary tables to store temporary data, once load crosses a critical point, that can cause every session in the database to be queued up waiting for some other session to finish with the handful of blocks in this table to get sent over the interconnect from a different node in the cluster. That will bring your system to its knees.
- If you are inserting monotonically increasing keys into an index (i.e. a sequence generated primary key), you want as many of those primary key indexes to be reverse key indexes as possible (where "possible" takes into account the downside of no longer being able to do range scans on those indexes) to minimize index hot blocks and thus contention for those blocks over the interconnect.
- etc.
Justin

Similar Messages

  • Transaction Recovery within an Oracle RAC environment

    Good evening everyone.
    I need some help with Oracle 11gR1 RAC transaction-level recovery issues. Here's the scenario.
    We have a three(3) node RAC Cluster running Oracle 11g R1. The Web UI portion of the application connects through WLS 9.2.3 with connection pooling set. We also have a command-line/SQL*Developer component that uses a TNSNAMES file that allows for both failover and load balancing. Within either the UI or the command line portion of the application, a user can run a process by which invokes one or more PL/SQL Packages to be invoked. The exact location of the physical to the database is dependent on which server is chosen from either the connection pooling or the TNSNAMES.ORA Load Balancing option.
    In the normal world, the process executes and all is good. The status of the execution of this process is updated by the Packages once completed. The problem we are encountering is when an Oracle Instance fails. Here's where I need some help. For Application-level (Transaction Level) recovery, the database instances are first recovered by the database background proccesses and then Users must determine which processes were in flight and either re-execute them (if restart processing is part of the process) or remove any changes and restart from scratch. Given that the database instance does not record which processes are "in flight" it is the responsibility of the application to perform its own recovery processing. Is this still true?
    If an instance fails, are "in flight" transactions/connections moved to other instances in the Grid/RAC environment? I don't think this is possible but I don't remember if this was accomplished through a combination of Application and Database Server features that provide feedback between each other. How is the underlying application notified of the change if such an issue occurs? I remember something similar to this in older versions of Oracle but I cannot remember what it was callled.
    Any help or guidance would be great as our client is being extremely difficult in pressing this issue.
    Thanks in advance
    Stephen Karniotis
    Project Architect - Compuware
    [email protected]
    (248) 408-2918

    You have not indicated whether you are using TAF or FCF ... that would be the first place to start.
    My recommendation would be to let Oracle roll back the database changes and have the application resubmit the most recent work.
    If the application knows what it did since the last "COMMIT" then you should be fine with the possible exception of variables stored
    in packages. Depending on packages retaining values is an issue best solved with PRAGMA SERIALLY_REUSABLE ... in other words
    not using the retention feature.

  • Would you recommend a RAC environment

    We are getting ready to implement OBIEE 11g (HR Analytics) for a relatively large user base. As we plan out our infrastucture we are getting mixed messages regarding RAC vs. standalone for our database environment. Our plan was RAC, but we are being warned away from it. I would be very interested in hearing from existing RAC customers, as to whether you feel this approach has been problematic.

    There are realistically no guidelines that are specific to RAC (other than making sure if you're referencing V$ tables in code that you're using the GV$ version if you want data from all the nodes).
    On the other hand, there are plenty of guidelines that are nice in single-node environments that potentially become necessities in a RAC environment. In particular, all the guidelines that reduce contention are useful in a single-node environment but can become critically important in a RAC environment. Anything that causes hot blocks in a single-node system can cause massive scaling problems in a RAC environment.
    - If you are using permanent tables rather than global temporary tables to store temporary data, once load crosses a critical point, that can cause every session in the database to be queued up waiting for some other session to finish with the handful of blocks in this table to get sent over the interconnect from a different node in the cluster. That will bring your system to its knees.
    - If you are inserting monotonically increasing keys into an index (i.e. a sequence generated primary key), you want as many of those primary key indexes to be reverse key indexes as possible (where "possible" takes into account the downside of no longer being able to do range scans on those indexes) to minimize index hot blocks and thus contention for those blocks over the interconnect.
    - etc.
    Justin

  • How to create a wallet in oracle RAC environment

    How to create a wallet in oracle RAC environment.
    While running following command "alter system set encryption key identified by "thalesdata4";
    I am getting error message "cannot auto create wallet" or "failed to open wallet.
    Please suggest correct way to create a wallet in RAC environment.
    Thanks
    Sudhir

    hi,
    please refer for detailed explanation
    Master Note for SSL Configuration in Fusion Middleware 11g [ID 1218695.1]
    regards

  • Instnce name in non-RAC environment

    Hi!
    In non-RAC environment V$INSTANCE.INSTANCE_NAME does not actually displays the name of the instance,that was set in INSTANCE_NAME parameter.
    It always displays DB_NAME instead.
    Is it any way to get instance_name that has service user connected to in this environment?
    LSNRCTL for 32-bit Windows: Version 10.2.0.4.0 - Production on 28-JAN-2010 09:16:25
    Copyright (c) 1991, 2007, Oracle. All rights reserved.
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=vegas)(PORT=1524)))
    STATUS of the LISTENER
    Alias LISTENER
    Version TNSLSNR for 32-bit Windows: Version 10.2.0.4.0 - Production
    Start Date 28-JAN-2010 09:15:36
    Uptime 0 days 0 hr. 0 min. 48 sec
    Trace Level off
    Security ON: Local OS Authentication
    SNMP OFF
    Listener Parameter File D:\oracle\db\product\10.2.0\network\admin\listener.ora
    Listener Log File D:\oracle\db\product\10.2.0\network\log\listener.log
    Listening Endpoints Summary...
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=vegas)(PORT=1524)))
    Services Summary...
    Service "EMCOR" has 1 instance(s).
    Instance "INST0", status READY, has 1 handler(s) for this service...
    Service "EMCOR_XPT" has 1 instance(s).
    Instance "INST0", status READY, has 1 handler(s) for this service...
    Service "PLSExtProc" has 1 instance(s).
    Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Service "RESXDB" has 1 instance(s).
    Instance "INST0", status READY, has 1 handler(s) for this service...
    Service "SRV1" has 1 instance(s).
    Instance "INST0", status READY, has 1 handler(s) for this service...
    Service "SRV2" has 1 instance(s).
    Instance "INST0", status READY, has 1 handler(s) for this service...
    The command completed successfully
    And SQLPLUS said
    C:\Documents and Settings\oradba>sqlplus
    SQL*Plus: Release 10.2.0.4.0 - Production on Thu Jan 28 09:44:59 2010
    Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
    Enter user-name: emcos@emcor_srv2
    Enter password:
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    09:45:04 EMCOS@emcor_srv2 >select name from v$database;
    NAME
    EMCOR
    Elapsed: 00:00:00.00
    09:45:07 EMCOS@emcor_srv2 >select instance_name from v$instance;
    INSTANCE_NAME
    emcor
    Elapsed: 00:00:00.01
    09:45:21 EMCOS@emcor_srv2 >select service_name from v$session where sid=(select unique sid from v$mystat);
    SERVICE_NAME
    SRV2

    Hemant K Chitale wrote:
    The documentation on INSTANCE_NAME in the 10gR2 Reference says :
    "In a single-instance database system, the instance name is usually the same as the database name."
    (this after
    "In a Real Application Clusters environment, multiple instances can be associated with a single database service. Clients can override Oracle's connection load balancing by specifying a particular instance by which to connect to the database. INSTANCE_NAME specifies the unique name of this instance.")
    This would imply that setting INSTANCE_NAME in non-RAC is ignored. The usage of the word "usually" is weak.
    Hemant K ChitaleBut what do says lsnrctl - it says that it is not weak
    11:33:28 SYS@EMCOR_SRV1 >show parameter instance_name
    NAME TYPE VALUE
    instance_name                        string      INST0
    11:33:36 SYS@EMCOR_SRV1 >host lsnrctl status
    LSNRCTL for 32-bit Windows: Version 10.2.0.4.0 - Production on 28-JAN-2010 11:33:50
    Copyright (c) 1991, 2007, Oracle. All rights reserved.
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=vegas)(PORT=1524)))
    STATUS of the LISTENER
    Alias LISTENER
    Version TNSLSNR for 32-bit Windows: Version 10.2.0.4.0 - Production
    Start Date 28-JAN-2010 09:15:36
    Uptime 0 days 2 hr. 18 min. 14 sec
    Trace Level off
    Security ON: Local OS Authentication
    SNMP OFF
    Listener Parameter File D:\oracle\db\product\10.2.0\network\admin\listener.ora
    Listener Log File D:\oracle\db\product\10.2.0\network\log\listener.log
    Listening Endpoints Summary...
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=vegas)(PORT=1524)))
    Services Summary...
    Service "EMCOR" has 1 instance(s).
    Instance "INST0", status READY, has 1 handler(s) for this service...
    Service "EMCOR_XPT" has 1 instance(s).
    Instance "INST0", status READY, has 1 handler(s) for this service...
    Service "PLSExtProc" has 1 instance(s).
    Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Service "RESXDB" has 1 instance(s).
    Instance "INST0", status READY, has 1 handler(s) for this service...
    Service "SRV1" has 1 instance(s).
    Instance "INST0", status READY, has 1 handler(s) for this service...
    Service "SRV2" has 1 instance(s).
    Instance "INST0", status READY, has 1 handler(s) for this service...
    The command completed successfully
    11:33:50 SYS@EMCOR_SRV1 >select sys_context('USERENV','INSTANCE_NAME') from dual;
    SYS_CONTEXT('USERENV','INSTANCE_NAME')
    emcor
    Elapsed: 00:00:00.00
    11:34:42 SYS@EMCOR_SRV1 >select service_name from v$session where sid=sys_context('USERENV','SID');
    SERVICE_NAME
    SRV1
    Best regards, Sergey

  • ABAP Programming Guidelines not showing in ABAP Keyword Documentation

    We are currently in the process of upgrading to Netweaver 7.0 EhP2
    I have seen mentioned that the ABAP Keyword Documentation and ABAP Examples are now all provided in an improved ABAPDOCU transaction.  In addition, the ABAPDOCU transaction is meant to also have a section on ABAP Programming Guidelines. 
    I have seen a screen example of what the ABAPDOCU screen now looks like (as shown in the mockup below).  Our ABAPDOCU screen looks very similar except that there is no node for ABAP Programming Guidelines.
    That is an area that I would like to have a closer look at.  Have we missed something.  Is this available as part of the standard 7.0 EhP2 install or does it need to be installed separately (or perhaps is this only available in a higher EhP).  I've tried finding further information on this option but have not been able to come across anything.  Does anyone know what would be involved (or if it is possible) to make this available in EhP2 
    Greg Milici
    ABAP Developer
    ...V...ABAP Keyword Documentation
    .......>...ABAP Overview
    .......>...ABAP - Reference
    .......>...ABAP - Short Reference
    .......>...ABAP - Release-Specific Changes
    .......>...ABAP Programming Guidelines
    ............ABAP Glossary
    ............ABAP Index
    ............ABAP Subject Directory
       etc.

    Hi Greg,
    When [searching|http://help.sap.com/search/sap_trex.jsp] the [documentation for NW 7.0.2|http://help.sap.com/nw702/] for ABAP keyword there are several documents that mention how you can find more details about ABAP keywords. For example, [Data Consistency|http://help.sap.com/saphelp_nw70ehp2/helpdata/en/41/7af4b6a79e11d1950f0000e82de14a/frameset.htm] mentions a menu in the ABAP Editor, and [New Features in Web Dynpro ABAP for Enhancement Package 2 (EhP2)|http://help.sap.com/saphelp_nw70ehp2/helpdata/en/54/07ec96bd5a4764be4996fff231b4de/frameset.htm] mentions the ABAPHELP transaction.
    I suppose you could try to find if the documentation you need is installed on your system. Perhaps the [how do I Install SAP Document CD and SAP Library|how do I Install SAP Document CD and SAP Library; thread might be of help.
    Best regards,
    Rossen

  • How to call Operating System commands / external programs from within APEX

    Hi,
    Can someone please suggest how to call Operating Systems commands / external programs from within APEX?
    E.g. say I need to run a SQL script on a particular database. SQL script, database name, userid & password everything is available in a table in Oracle. I want to build a utility in APEX where by when I click a button APEX should run the following
    c:\oracle\bin\sqlplusw.exe userud/password@database @script_name.sql
    Any pointers will be greatly appreciated.
    Thanks & Regards,

    Hi Guys,
    I have reviewed the option of using scheduler and javascript and they do satisfy my requirements PARTIALLY. Any calls to operating system commands through these features will be made on the server where APEX is installed.
    However, here what I am looking at is to call operating systems programs on client machine. For example in my APEX application I have constructed the following strings of commands that needs to be run to execute a change request.
    sqlplusw.exe user/password@database @script1.sql
    sqlplusw.exe user/password@database @script2.sql
    sqlplusw.exe user/password@database @script3.sql
    sqlplusw.exe user/password@database @script4.sql
    What I want is to have a button/link on the APEX screen along with these lines so that when I click that link/button this entire line of command gets executed in the same way it would get executed if I copy and paste this command in the command window of windows.
    Believe me, if I am able to achieve what I intend to do, it is going to save a lot of our DBAs time and effort.
    Any help will be greatly appreciated.
    Thanks & Regards,

  • How to create DIR/File on a raw device in RAC environment.

    Hi all,
    I use a shell script to create DIR and File on a raw device also it creates schema and tablespaces.
    I am facing problem in creating DIR and Files on raw device.
    One more thing, can multiple tablespaces be created on a raw device.
    Thanks & regards,
    Sanjeev

    Thanks for the response. Please help me further.
    About the Script - It asks for the path for creating DIR and uses shell command to create DIR. Later same path and DIR name is used to create Oracle DIR. Now in place of absolute path raw device name is passed. The same script is also used for creating tablespaces and schema.
    There is second script that is .sql script that creates external table in the newly created schema. All this has been working fine on single instance Oracle server. we have tested many times but fails in RAC environment when we use raw device.
    Question is - If I use filesystem will the external table's flat files and Directories be accessible to all the instances.
    I have one application written in java that would be clustered and running on these oracle servers. This application would be accessing those external tables and their flat files. Will there be a problem accessing these flat files accross the instances.
    Regards,
    Sanjeev.

  • Calculating total memory in oracle RAC environment

    I have to calculate total memry in RAC environment.
    For shared and buffer pool I execute show sga.
    For UGA and PGA I execute statement that have two different values.
    This is my two different methot for calculating total memory in oracle RAC environment.
    Why I have very different value in this 2 statements on pga values?
    first stat
    with vs as
    select 'PGA: ' pid
    ,iid
    ,session_pga_memory + session_uga_memory bytes
    from (select inst_id iid
    ,(select ss.value
    from gv$sesstat ss
    where ss.sid = s.sid
    and ss.inst_id = s.inst_id
    and ss.statistic# = 20) session_pga_memory
    ,(select ss.value
    from gv$sesstat ss
    where ss.sid = s.sid
    and ss.inst_id = s.inst_id
    and ss.statistic# = 15) session_uga_memory
    from gv$session s)
    union all
    select 'SGA: ' || name pid
    ,s.inst_id iid
    ,value bytes
    from gv$sga s
    select distinct iid, pid, sum(bytes) over (partition by iid, pid) bytes from vs
    IID PID BYTES
    1 PGA: 196764792 <=====
    1 SGA: Database Buffers 318767104
    1 SGA: Fixed Size 733688
    1 SGA: Redo Buffers 811008
    1 SGA: Variable Size 335544320
    2 PGA: 77159560 <=====
    2 SGA: Database Buffers 318767104
    2 SGA: Fixed Size 733688
    2 SGA: Redo Buffers 811008
    2 SGA: Variable Size 335544320
    second stat
    with vs as
    select 'PGA: ' pid
    ,p.inst_id iid
    ,p.pga_alloc_mem bytes
    from gv$session s
    ,gv$sesstat pcur
    ,gv$process p
    where pcur.statistic# in ( 20 -- = session pga memory
    ,15 -- = session uga memory
    and s.paddr = p.addr
    and pcur.sid = s.sid
    and pcur.INST_ID = s.INST_ID
    and pcur.INST_ID = p.INST_ID
    union all
    select 'SGA: ' || name pid
    ,s.inst_id iid
    ,value bytes
    from gv$sga s
    select distinct iid, pid, sum(bytes) over (partition by iid, pid) bytes from vs
    IID PID BYTES
    1 PGA: 342558636 <=====
    1 SGA: Database Buffers 318767104
    1 SGA: Fixed Size 733688
    1 SGA: Redo Buffers 811008
    1 SGA: Variable Size 335544320
    2 PGA: 186091416 <=====
    2 SGA: Database Buffers 318767104
    2 SGA: Fixed Size 733688
    2 SGA: Redo Buffers 811008
    2 SGA: Variable Size 335544320

    I'm sorry but it is not clear to me.
    - From v$session (1th stmt) I have
    nearly 196MB of PGA mem on instance 1
    and
    nearly 77MB of PGA mem on instance 2
    - From v$process (2th stmt) I have
    nearly 342MB of PGA mem on instance 1
    and
    nearly 186MB of PGA mem on instance 2
    then...
    342+186 - 196+77 = nearly 255MB of memory allocated by oracle processes but free?
    if I want calculate the total thing of the amount of the allocated memory from Oracle...It is more correct 2th statement that query v$process...it is true?

  • DBMS_SCHEDULER behavior in a RAC environment

    What is the behavior of DBMS_SCHEDULER in a RAC environment (say 2 nodes, N1 and N2):
    Is the behavior of a DBMS_SCHEDULER job created using a connection to the RAC service name be the same as if the job were created using a connection to N1 iusing the SID of N1?
    If multiple jobs are created at N1 using the SID in the connection, will the RAC environment manage these in parallel across N1 and N2?
    Thanks.

    Hi,
    Is the behavior of a DBMS_SCHEDULER job created using
    a connection to the RAC service name be the same as
    if the job were created using a connection to N1
    iusing the SID of N1?Yes there is no difference.
    If multiple jobs are created at N1 using the SID in
    the connection, will the RAC environment manage these
    in parallel across N1 and N2?Yes. However, jobs have a slight preference to run on the instance they ran on previously (for performance reasons due to caching). So if both nodes are lightly loaded then a job will stick to running on the node it ran on the first time. However if that node gets loaded the Scheduler will start running the job on the other node (i.e. simple load-balancing) .
    Thanks,
    Ravi.

  • IS IT SUPPORTED TO CENTRALLY MOUNT THE ORACLE_HOME IN A NON-RAC ENVIRONMENT

    SR 7250090.993 : (http://qmon.oraclecorp.com/qmon3/quickpicks.pl?t=t&q=7250090.993)
    Technical Summary:
    Customer is planing to install Oracle 10.2.0.4 and 11.1.0.x software on a Red Hat5 with NetApp storage.
    Customer came across the following :
    For single instance installations (as opposed to RAC installations), you must create a separate Oracle home directory for each installation. Run the software in this Oracle home directory only from the system that you used to install it. For Oracle Real Application Clusters (RAC) installations, you can use a single Oracle home directory mounted from each node in the cluster. You must mount this Oracle home directory on each node so that it has the same directory path on all nodes.
    mentioned in the 10gR2 documentation link :
    http://download.oracle.com/docs/cd/B19306_01/install.102/b15667/app_nas.htm#BCFIDEJA
    Requirements/Expectations:
    As the above statements, that customer came across is not present in 9i documentation, customer wants to understand if it is actually supported to centrally mount the 10g/11g ORACLE_HOME to many servers that are not RAC enabled.
    Also, I would like to understand if the statements in documentation indicate that it is not generally recommended centrally mount the 10g/11g ORACLE_HOME or does it mean that it is not supported to centrally mount the ORACLE_HOME in a non RAC environment?
    Please advice.

    The binaries (executables) in an Oracle home are "linked" (link edited?) to the OS libraries on each server where the software is installed.
    Unless the OS is IDENTICAL on each of the IDENTICAL(HW) servers -- that would share the Oracle home--, you could be in trouble.
    The only supported configuration (I know of) where the Oracle binaries are shared between servers is 9i RAC. On 10g RAC the binaries are installed on each server.
    Other wise I'd say it's NOT recommended, besides you don't save anything (execpt a cooupl of Gigs disk space).
    :p

  • Genclntst fail in oracle10g RAC environment

    After installation of oracle 10gR2 RAC on two-node solaris10 environment ,we need to run $ORACLE_HOME/bin/genclntst to generate the Client Static Library(libclntst10.a) but it failed .We copy another successfully generated libclntst10.a file from a non-RAC oracle10g environment running on solaris10.
    and it seems to work correctly. is it really OK ?,is there any difference between the libclntst10.a file in a RAC environment and in a non-RAC environment ?
    thanks a lot.
    ----------------------------the error message--------------------------------------------------------
         (file /opt/lib/cobol/lib/libcobrts.so value=LOCL);
    ld: warning: global symbol `' has non-global binding:
         (file /opt/lib/cobol/lib/libcobrts.so value=LOCL);
    ld: warning: global symbol `' has non-global binding:
         (file /opt/lib/cobol/lib/libcobrts.so value=LOCL);
    ld: warning: global symbol `' has non-global binding:
         (file /opt/lib/cobol/lib/libcobrts.so value=LOCL);
    ld: warning: global symbol `' has non-global binding:
         (file /opt/lib/cobol/lib/libcobrts.so value=LOCL);
    ld: warning: global symbol `' has non-global binding:
         (file /opt/lib/cobol/lib/libcobcrtn.so value=LOCL);
    ld: warning: global symbol `' has non-global binding:
         (file /opt/lib/cobol/lib/libcobmisc.so value=LOCL);
    ld: warning: global symbol `' has non-global binding:
         (file /opt/lib/cobol/lib/libcobscreen.so.2 value=LOCL);
    Undefined               first referenced
    symbol                in file
    lms_fblang /oracle/oracle/product/10.2.0.1/lib32/libclntst10.a(lmsai.o)
    lms_pmlang /oracle/oracle/product/10.2.0.1/lib32/libclntst10.a(lmsai.o)
    ld: fatal: Symbol referencing errors. No output written to olcp
    *** Error code 1
    make: Fatal error: Command failed for target `olcp'

    Hi,
    In 11g you can use the instance_id job attribute to do this.
    In 10g you can do this using services.
    - create a service for each instance
    - create a job class pointing to each service
    - grant execute on the job classes to all job owners that need to use them
    - when creating a job point to the job class for the service for the instance it should run on
    Oracle recommends using services instead of instances since services are more flexible and can provide high-availability and fail-over in case one instance goes down.
    Hope this helps,
    Ravi.

  • ASM in a non-RAC environment

    Gurus,
    what are the advantages, if any, of running ASM in a non-RAC environment?
    Thanks.

    Any raid (that actually provides multiple disks in a
    LVM) will nullify the performance gains of raw that
    are associated with disk head contention.
    Any disk subsystem with front-end RAM cache will
    nullify the rest of the performance gains of raw
    disk.
    Any 'RAID-5 is good' argument under a database
    assumes large and efficient cache.Unfortunately, we can't just discount RAID-5, since it is far too cost-efficient an option these days, with 10, 20, 30+ TB databases. Plus, the storage vendors actually make it efficient enough that it performs almost as well as RAID 1+0.
    Multiple disks on the storage subsystem and RAM caches (for reads and writes) are still important and valuable performance enhancements. Remember that your storage subsystem is much more efficient at this than your database or server (since it's designed to do it!). True, it doesn't have knowledge of the database files, their content, and their usage, but you do, and can therefore intelligently configure the subsystem and place the data files.
    ASM does nothing more intelligent than stripe the data across all of the available disks. The best part about it is the ability to dynamically grow the groups. The problem with it is that it thwarts the read-ahead cache of the storage subsystem. And, while Oracle will intelligently 'read-ahead', it can't optimize where the heads are on the disk, or take into consideration the 10 other servers accessing the same storage subsystem.
    The problem with ASM doing the striping is that, for large databases, you will typically have hundreds of disks underneath the covers. If you gave the OS and then Oracle that many devices, what do you think would happen? It would step all over itself and seriously impair your ability to access the devices in parallel. Whereas, if you group 4 or 8 devices together, the storage subsystem will access them together in parallel for the OS.
    So, don't discount your storage box... But yeah, use RAID 1+0 rather than RAID-5 (4,3) when possible!

  • Cssd does not start in non-RAC environment Thus we can not bring up ASM

    Non-RAC environment
    ASM version = 11.1.0.7
    HP-UX Itanium 11.23
    After power outage, CSSD does not start on non-RAC environment
    Running as root "/sbin/init.d/init.cssd start" does not start cssd
    Oracle support tried "$ASM_HOME/bin/localconfig delete" and "$ASM_HOME/bin/localconfig add"
    but it did not start CSS
    Oracle support tried "$ASM_HOME/bin/localconfig reset $ASM_HOME"
    It started the CSSD and the "crsctl check css" came back with CSS is healthy
    But around 1 minute later it rebooted the server and when it came up again CSS does not start.
    They checked /etc/inittab and it looked fine.
    Before the reboot we saw this message in the /var/adm/syslog/OLDsyslog.log:
    Cluster Ready Services completed waiting on dependencies
    Again it is a NON-RAC environment. We only need CSSD for ASM. We do not have CRS installed on this server.
    Our test system has been down for a week and we did not get the resolution from Oracle support yet !
    Any pointers are greately appriciated.
    Thanks,
    Dzung

    Here is the message in $ASM_HOME/log/<hostname>/alert<hostname>.log :
    2010-07-16 09:42:02.956
    [client(11930)]CRS-1006:The OCR location /db/app/oracle/product/11.1/cdata/localhost/local.ocr is inacce
    ssible. Details in /db/app/oracle/product/11.1/log/rmodbd01/client/clscfg10.log.
    2010-07-16 09:42:02.971
    [client(11930)]CRS-1006:The OCR location /db/app/oracle/product/11.1/cdata/localhost/local.ocr is inacce
    ssible. Details in /db/app/oracle/product/11.1/log/rmodbd01/client/clscfg10.log.
    2010-07-16 09:42:03.054
    [client(11930)]CRS-1013:The OCR at /db/app/oracle/product/11.1/cdata/localhost/local.ocr was successfull
    y formatted using version 2. Ignore earlier CRS-1006 messages if any.
    2010-07-16 09:42:46.379
    [cssd(12297)]CRS-1601:CSSD Reconfiguration complete. Active nodes are rmodbd01 .
    Here is the message in $ASM_HOME/log/<hostname>/cssd/cssdOUT.log:
    setsid: failed with -1/1
    s0clssscGetEnvOracleUser: calling getpwnam_r for user oracle
    s0clssscGetEnvOracleUser: info for user oracle complete
    07/16/10 09:42:36: CSSD starting
    Here is the message in $ASM_HOME/log/<hostname>/cssd/ocssd.log:
    [    CSSD]2010-07-16 09:42:46.378 [18] >TRACE: clssgmCompareSwapEventValue: changed CmInfo State val 7, from 6, changes 6
    [    CSSD]2010-07-16 09:42:46.378 [18] >TRACE: clssgmSetVersions: properties common to all peers: 1,2,3,4,5,6,7
    [    CSSD]2010-07-16 09:42:46.378 [18] >TRACE: clssgmEstablishMasterNode: MASTER for 174732166 is node(0) birth(174732166)
    [    CSSD]2010-07-16 09:42:46.378 [18] >TRACE: clssgmChangeMasterNode: requeued 0 RPCs
    [    CSSD]2010-07-16 09:42:46.378 [18] >TRACE: clssgmCompareSwapEventValue: changed CmInfo State val 8, from 7, changes 7
    [    CSSD]2010-07-16 09:42:46.378 [18] >TRACE: clssgmMasterCMSync: Synchronizing group/lock status
    [    CSSD]2010-07-16 09:42:46.378 [18] >TRACE: clssgmMasterSendDBDone: group/lock status synchronization complete
    [    CSSD]2010-07-16 09:42:46.378 [18] >TRACE: clssgmCompareSwapEventValue: changed CmInfo State val 9, from 8, changes 8
    [    CSSD]2010-07-16 09:42:46.378 [18] >TRACE: clssgmCompareSwapEventValue: changed CmInfo State val 10, from 9, changes 9
    [    CSSD]CLSS-3000: reconfiguration successful, incarnation 174732166 with 1 nodes
    [    CSSD]CLSS-3001: local node number 0, master node number 0
    [    CSSD]2010-07-16 09:42:46.378 [18] >TRACE: clssscSAGEInitFenceCompl: Completing kgzf fence initialization
    [    CSSD]2010-07-16 09:42:46.394 [12] >TRACE: clssgmUpdateEventValue: Client listener incarn val 174732166, changes 1
    [    CSSD]2010-07-16 09:42:46.395 [12] >TRACE: clssgmAllocProc: (60000000003c7120) allocated
    [    CSSD]2010-07-16 09:42:46.395 [12] >TRACE: clssgmAllocProc: (60000000003c73a0) allocated
    [    CSSD]2010-07-16 09:42:46.396 [14] >TRACE: Connect request from user oracle
    [    CSSD]2010-07-16 09:42:46.396 [14] >TRACE: Connect request from user root
    [    CSSD]2010-07-16 09:42:46.397 [12] >TRACE: clssgmClientConnectMsg: properties of cmProc 60000000003c7120 - 1,2,3
    [    CSSD]2010-07-16 09:42:46.397 [12] >TRACE: clssgmClientConnectMsg: Connect from con(60000000003b2810) proc(60000000003c7120) pid(12350) version 11:1:1:4
    [    CSSD]2010-07-16 09:42:46.397 [12] >TRACE: clssgmClientConnectMsg: properties of cmProc 60000000003c73a0 - 1,2,3
    [    CSSD]2010-07-16 09:42:46.397 [12] >TRACE: clssgmClientConnectMsg: Connect from con(60000000003b2990) proc(60000000003c73a0) pid(12131) version 11:1:1:4
    [    CSSD]2010-07-16 09:42:46.402 [12] >TRACE: clssgmRegisterClient: proc(1/60000000003c7120), client(1/600000000096e7c0)
    [    CSSD]2010-07-16 09:42:46.402 [12] >TRACE: clssgmExecuteClientRequest: GRKJOIN recvd from client 1 (600000000096e7c0)
    [    CSSD]2010-07-16 09:42:46.402 [12] >TRACE: clssgmJoinGrock: local grock CSS_INTERNAL_NODE_GROUP new client 600000000096e7c0 with con 60000000003b2b10, requested num 0
    [    CSSD]2010-07-16 09:42:46.402 [12] >TRACE: clssgmAddNodeGrpMember: member (60000000009e0030) added
    [    CSSD]2010-07-16 09:42:46.403 [12] >TRACE: clssgmGroupState: requested group state of group localhost_NG, member count 0
    [    CSSD]2010-07-16 09:42:46.403 [12] >TRACE: clssgmGroupState: requested group state of group localhost_NG, member count 0
    [    CSSD]2010-07-16 09:42:46.404 [12] >TRACE: clssgmDeadProc: proc 60000000003c73a0
    [    CSSD]2010-07-16 09:42:46.404 [12] >TRACE: clssgmDestroyProc: cleaning up proc(60000000003c73a0) con(60000000003b2990) skgpid ospid 12131 with 0 clients, refcount 0
    [    CSSD]2010-07-16 09:42:46.425 [12] >TRACE: clssgmGroupState: requested group state of unknown group MASTER#DISKMON#GROUP
    [    CSSD]2010-07-16 09:42:46.425 [12] >TRACE: clssgmGroupState: requested group state of group MASTER#DISKMON#GROUP, member count 0
    [    CSSD]2010-07-16 09:42:46.425 [18] >TRACE: KGZF: context successfully initialized, API version 1.4, using pipe default
    [    CSSD]2010-07-16 09:42:46.425 [18] >TRACE: clssscSAGEInitFenceCompl: kgzf fence initialization successfully completed
    [    CSSD]2010-07-16 09:42:46.425 [18] >TRACE: clssgmReconfigThread: CSS/GM open for global group registrations
    [    CSSD]2010-07-16 09:42:46.425 [18] >TRACE: clssgmReconfigThread: completed for reconfig(174732166), with status(1)
    [    CSSD]2010-07-16 09:42:46.425 [18] >TRACE: clssgmUpdateEventValue: Reconfig Event val 2, changes 2
    [    CSSD]2010-07-16 09:42:46.425 [1] >TRACE: clssgmWaitOnEventValue: after Reconfig Event val 2, eval 2 waited 47
    [    CSSD]2010-07-16 09:42:46.425 [12] >TRACE: clssgmRegisterClient: proc(1/60000000003c7120), client(2/600000000096e870)
    [    CSSD]2010-07-16 09:42:46.425 [1] >TRACE: clssgmUpdateEventValue: Reconfig Event val 0, changes 3
    [    CSSD]2010-07-16 09:42:46.425 [1] >TRACE: clssgmStartNMMon: previous reconfig complete, incarnation(174732166)
    [    CSSD]2010-07-16 09:42:46.425 [12] >TRACE: clssgmExecuteClientRequest: GRKJOIN recvd from client 2 (600000000096e870)
    [    CSSD]2010-07-16 09:42:46.425 [12] >TRACE: clssgmJoinGrock: global grock MASTER#DISKMON#GROUP#MX new client 600000000096e870 with con 60000000003b2990, requested num -1
    [    CSSD]2010-07-16 09:42:46.425 [12] >TRACE: clssgmAddGrockMember: adding member to grock MASTER#DISKMON#GROUP#MX
    [    CSSD]2010-07-16 09:42:46.425 [12] >TRACE: clssgmAddMember: granted member(0) flags(0x2) node(0) grock (6000000000989e50/MASTER#DISKMON#GROUP#MX)
    [    CSSD]2010-07-16 09:42:46.425 [12] >TRACE: clssgmQueueGrockEvent: lockName(MASTER#DISKMON#GROUP#MX) type(3) count (1/1) xwaiters(1) event(1) to memberNo(0)
    [    CSSD]2010-07-16 09:42:46.425 [12] >TRACE: clssgmCommonAddMember: global lock grock MASTER#DISKMON#GROUP#MX member(0/Local) node(0) flags 0x2 0x2
    [    CSSD]2010-07-16 09:42:46.425 [12] >TRACE: clssgmRegisterClient: proc(1/60000000003c7120), client(3/600000000096e920)
    [    CSSD]2010-07-16 09:42:46.425 [12] >TRACE: clssgmExecuteClientRequest: GRKJOIN recvd from client 3 (600000000096e920)
    [    CSSD]2010-07-16 09:42:46.425 [12] >TRACE: clssgmJoinGrock: global grock MASTER#DISKMON#GROUP new client 600000000096e920 with con 60000000003b2bd0, requested num 0
    [    CSSD]2010-07-16 09:42:46.425 [12] >TRACE: clssgmAddGrockMember: adding member to grock MASTER#DISKMON#GROUP
    [    CSSD]2010-07-16 09:42:46.425 [12] >TRACE: clssgmAddMember: new master 0 for group(MASTER#DISKMON#GROUP)
    [    CSSD]2010-07-16 09:42:46.426 [12] >TRACE: clssgmAddMember: Adding fencing for member 0, group MASTER#DISKMON#GROUP, death 1, SAGE 0
    [    CSSD]2010-07-16 09:42:46.426 [12] >TRACE: clssgmAddMember: member (0/60000000009e0230) added. pbsz(72) prsz(0) flags 0x0 to grock (600000000098a170/MASTER#DISKMON#GROUP)
    [    CSSD]2010-07-16 09:42:46.426 [12] >TRACE: clssgmQueueGrockEvent: groupName(MASTER#DISKMON#GROUP) count(1) master(0) event(1), incarn 1, mbrc 1, to member 0, events 0x78, state 0x0
    [    CSSD]2010-07-16 09:42:46.426 [12] >TRACE: clssgmCommonAddMember: global group grock MASTER#DISKMON#GROUP member(0/Local) node(0) flags 0x0 0x1e00
    [    CSSD]2010-07-16 09:42:46.426 [12] >TRACE: clssgmExecuteClientRequest: GRKEXIT recvd from client 2 (600000000096e870)
    [    CSSD]2010-07-16 09:42:46.426 [12] >TRACE: clssgmExitGrock: client 2 (600000000096e870), grock MASTER#DISKMON#GROUP#MX, member 0
    [    CSSD]2010-07-16 09:42:46.426 [12] >TRACE: clssgmUnregisterPrimary: Unregistering member 0 (60000000009e0130) in global grock MASTER#DISKMON#GROUP#MX
    [    CSSD]2010-07-16 09:42:46.426 [12] >TRACE: clssgmRemoveMember: grock MASTER#DISKMON#GROUP#MX, member number 0 (60000000009e0130) node number 0 state 0x14 member refcnt 0 grock type 3
    [    CSSD]2010-07-16 09:42:48.405 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:42:48.405 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:42:52.444 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:42:52.444 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:42:56.484 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:42:56.484 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:43:00.516 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:43:00.516 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:43:04.563 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:43:04.563 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:43:08.603 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:43:08.603 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:43:12.643 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:43:12.643 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:43:16.676 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:43:16.676 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:43:20.723 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:43:20.723 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:43:24.762 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:43:24.762 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:43:28.802 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:43:28.802 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:43:32.842 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:43:32.842 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:43:36.882 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:43:36.882 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:43:40.922 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:43:40.922 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:43:44.964 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:43:44.964 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:43:49.002 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:43:49.002 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:43:53.043 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:43:53.043 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:43:57.085 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:43:57.085 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:43:58.354 [12] >TRACE: clssgmAllocProc: (60000000003c7ee0) allocated
    [    CSSD]2010-07-16 09:43:58.355 [14] >TRACE: Connect request from user oracle
    [    CSSD]2010-07-16 09:43:58.356 [12] >TRACE: clssgmClientConnectMsg: properties of cmProc 60000000003c7ee0 - 1,2,3
    [    CSSD]2010-07-16 09:43:58.356 [12] >TRACE: clssgmClientConnectMsg: Connect from con(60000000003b2990) proc(60000000003c7ee0) pid(13157) version 11:1:1:4
    [    CSSD]2010-07-16 09:43:58.360 [12] >TRACE: clssgmRegisterClient: proc(2/60000000003c7ee0), client(1/600000000096e870)
    [    CSSD]2010-07-16 09:43:58.360 [12] >TRACE: clssgmExecuteClientRequest: GRKJOIN recvd from client 1 (600000000096e870)
    [    CSSD]2010-07-16 09:43:58.360 [12] >TRACE: clssgmJoinGrock: global grock CLSSSCHECK_GROUP new client 600000000096e870 with con 60000000003b2c90, requested num -1
    [    CSSD]2010-07-16 09:43:58.360 [12] >TRACE: clssgmAddGrockMember: adding member to grock CLSSSCHECK_GROUP
    [    CSSD]2010-07-16 09:43:58.360 [12] >TRACE: clssgmAddMember: new master 0 for group(CLSSSCHECK_GROUP)
    [    CSSD]2010-07-16 09:43:58.360 [12] >TRACE: clssgmAddMember: Adding fencing for member 0, group CLSSSCHECK_GROUP, death 1, SAGE 0
    [    CSSD]2010-07-16 09:43:58.360 [12] >TRACE: clssgmAddMember: member (0/60000000009e0130) added. pbsz(8) prsz(8) flags 0x0 to grock (6000000000989e50/CLSSSCHECK_GROUP)
    [    CSSD]2010-07-16 09:43:58.360 [12] >TRACE: clssgmQueueGrockEvent: groupName(CLSSSCHECK_GROUP) count(1) master(0) event(1), incarn 1, mbrc 1, to member 0, events 0x0, state 0x0
    [    CSSD]2010-07-16 09:43:58.360 [12] >TRACE: clssgmCommonAddMember: global group grock CLSSSCHECK_GROUP member(0/Local) node(0) flags 0x0 0x0
    [    CSSD]2010-07-16 09:43:58.361 [12] >TRACE: clssgmExecuteClientRequest: GRKEXIT recvd from client 1 (600000000096e870)
    [    CSSD]2010-07-16 09:43:58.361 [12] >TRACE: clssgmExitGrock: client 1 (600000000096e870), grock CLSSSCHECK_GROUP, member 0
    [    CSSD]2010-07-16 09:43:58.361 [12] >TRACE: clssgmUnregisterPrimary: Unregistering member 0 (60000000009e0130) in global grock CLSSSCHECK_GROUP
    [    CSSD]2010-07-16 09:43:58.361 [12] >TRACE: clssgmRemoveMember: grock CLSSSCHECK_GROUP, member number 0 (60000000009e0130) node number 0 state 0x14 member refcnt 0 grock type 2
    [    CSSD]2010-07-16 09:43:58.361 [12] >TRACE: clssgmRegisterClient: proc(2/60000000003c7ee0), client(2/600000000096e870)
    [    CSSD]2010-07-16 09:43:58.361 [12] >TRACE: clssgmExecuteClientRequest: GRKJOIN recvd from client 2 (600000000096e870)
    [    CSSD]2010-07-16 09:43:58.361 [12] >TRACE: clssgmJoinGrock: global grock CLSSSCHECK_LOCK new client 600000000096e870 with con 60000000003b2c90, requested num -1
    [    CSSD]2010-07-16 09:43:58.361 [12] >TRACE: clssgmAddGrockMember: adding member to grock CLSSSCHECK_LOCK
    [    CSSD]2010-07-16 09:43:58.361 [12] >TRACE: clssgmAddMember: granted member(0) flags(0x2) node(0) grock (6000000000989e50/CLSSSCHECK_LOCK)
    [    CSSD]2010-07-16 09:43:58.361 [12] >TRACE: clssgmQueueGrockEvent: lockName(CLSSSCHECK_LOCK) type(3) count (1/1) xwaiters(1) event(1) to memberNo(0)
    [    CSSD]2010-07-16 09:43:58.361 [12] >TRACE: clssgmCommonAddMember: global lock grock CLSSSCHECK_LOCK member(0/Local) node(0) flags 0x2 0x2
    [    CSSD]2010-07-16 09:43:58.361 [12] >TRACE: clssgmExecuteClientRequest: GRKEXIT recvd from client 2 (600000000096e870)
    [    CSSD]2010-07-16 09:43:58.361 [12] >TRACE: clssgmExitGrock: client 2 (600000000096e870), grock CLSSSCHECK_LOCK, member 0
    [    CSSD]2010-07-16 09:43:58.361 [12] >TRACE: clssgmUnregisterPrimary: Unregistering member 0 (60000000009e0130) in global grock CLSSSCHECK_LOCK
    [    CSSD]2010-07-16 09:43:58.361 [12] >TRACE: clssgmRemoveMember: grock CLSSSCHECK_LOCK, member number 0 (60000000009e0130) node number 0 state 0x14 member refcnt 0 grock type 3
    [    CSSD]2010-07-16 09:43:58.362 [12] >TRACE: clssgmDeadProc: proc 60000000003c7ee0
    [    CSSD]2010-07-16 09:43:58.362 [12] >TRACE: clssgmDestroyProc: cleaning up proc(60000000003c7ee0) con(60000000003b2990) skgpid ospid 13157 with 0 clients, refcount 0
    [    CSSD]2010-07-16 09:44:01.125 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:44:01.125 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:44:05.164 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:44:05.164 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:44:09.196 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:44:09.196 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:44:13.236 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:44:13.236 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:44:17.284 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:44:17.284 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:44:21.322 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:44:21.322 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:44:25.316 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:44:25.316 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    [    CSSD]2010-07-16 09:44:30.333 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:44:30.333 [8] >TRACE: clssnmSendingThread: sent 5 status msgs to all nodes
    [    CSSD]2010-07-16 09:44:34.324 [8] >TRACE: clssnmSendingThread: sending status msg to all nodes
    [    CSSD]2010-07-16 09:44:34.324 [8] >TRACE: clssnmSendingThread: sent 4 status msgs to all nodes
    Here is the message in $ASM_HOME/log/<hostname>/diskmon/client.log:
    [ DISKMON] 07/16/2010 18:33:32.050 dskm_send_command: process 23246 sending command 8 to master diskmon listening on default pipe
    [ DISKMON] 07/16/2010 18:33:32.080 dskm_send_command3: skgznp_connect failed with error 56815
    [ DISKMON] 07/16/2010 18:33:32.080 dskm_send_command3: error 56815 at location skgznpcon6 - connect() - Connection refused
    Here is the message in $ASM_HOME/log/<hostname>/diskmon/diskmonOUT.log:
    setsid: failed with -1/1
    dskm_getenv_oracle_user: calling getpwnam_r for user oracle
    dskm_getenv_oracle_user: info for user oracle complete
    07/16/10 18:33:31: Master Diskmon starting
    Here is the message in $ASM_HOME/log/<hostname>/diskmon/diskmon.log:
    [ DISKMON] 07/16/2010 09:42:35.573 dskm main: starting up
    [ DISKMON] 07/16/2010 09:42:35.588 [12350:3] dskm_rac_thrd_main: running
    [ DISKMON] 07/16/2010 09:42:35.588 [12350:1] dskm_rac_thrd_creat2: got the post from the css event handling thread
    [ DISKMON] 07/16/2010 09:42:35.589 [12350:1] dskm main: startup complete
    [ DISKMON] 07/16/2010 09:42:35.589 [12350:1] listening on -> default pipe
    [ DISKMON] 07/16/2010 09:42:35.792 clsc_connect: (6000000000700420) no listener at (ADDRESS=(PROTOCOL=ipc)(KEY=OCSSD_LL_rmodbd01_))
    [ DISKMON] 07/16/2010 09:42:36.385 clsc_connect: (6000000000700420) no listener at (ADDRESS=(PROTOCOL=ipc)(KEY=OCSSD_LL_rmodbd01_))
    [ DISKMON] 07/16/2010 09:42:36.906 clsc_connect: (6000000000700420) no listener at (ADDRESS=(PROTOCOL=ipc)(KEY=OCSSD_LL_rmodbd01_))
    [ DISKMON] 07/16/2010 09:42:37.426 clsc_connect: (6000000000700420) no listener at (ADDRESS=(PROTOCOL=ipc)(KEY=OCSSD_LL_rmodbd01_))
    [ DISKMON] 07/16/2010 09:42:37.945 clsc_connect: (6000000000700420) no listener at (ADDRESS=(PROTOCOL=ipc)(KEY=OCSSD_LL_rmodbd01_))
    [ DISKMON] 07/16/2010 09:42:38.465 clsc_connect: (6000000000700420) no listener at (ADDRESS=(PROTOCOL=ipc)(KEY=OCSSD_LL_rmodbd01_))
    [ DISKMON] 07/16/2010 09:42:46.376 [12350:1] dskm_slave_thrd_creat: thread created
    [ DISKMON] 07/16/2010 09:42:46.376 [12350:11] dskm_slave_thrd_main1: slave 0 running
    [ DISKMON] 07/16/2010 09:42:46.376 [12350:11] dskm_process_msg5: received msg type KGZM_IDENTIFY (0x0001)
    [ DISKMON] 07/16/2010 09:42:46.389 [12350:11] dskm_proc_identify8: client kgzf/12297, version 0x01020000, slave 0, reid cid=3e0391f05e06cfafbf7419d7cf085a44,icin=174732166,nmn=0,lnid=174732166,gid=0,gin=0,gmn=0,umemid=0,opid=0,opsn=0,lvl=node
    [ DISKMON] 07/16/2010 09:42:46.389 [12350:11] dskm_send_version1:
    [ DISKMON] 07/16/2010 09:42:46.389 [12350:11] dskm_send_version4: done
    [ DISKMON] 07/16/2010 09:42:46.389 [12350:11] dskm_process_msg7: processed msg 0 type KGZM_IDENTIFY (0x0001), retcode 0
    [ DISKMON] 07/16/2010 09:42:46.389 [12350:11] dskm_process_msg5: received msg type KGZM_KGZF_HANDSHAKE (0x0010)
    [ DISKMON] 07/16/2010 09:42:46.389 [12350:11] dskm_proc_kgzf_handshake3: client kgzf/12297, kgzf version 0x00010004, slave 0
    [ DISKMON] 07/16/2010 09:42:46.401 [12350:3] dskm_clss_ini2: successful clsssinit(), clssvers 2.1
    [ DISKMON] 07/16/2010 09:42:46.402 [12350:3] dskm_clss_ini12: node rmodbd01 (0) registered in cluster
    [ DISKMON] 07/16/2010 09:42:46.403 [12350:3] dskm_reid_ini12: diskmon reid cid=3e0391f05e06cfafbf7419d7cf085a44,icin=174732166,nmn=0,lnid=174732166,gid=-1,gin=-1,gmn=-1,umemid=-1,opid=12350,opsn=1279291355,lvl=process
    [ DISKMON] 07/16/2010 09:42:46.424 [12350:3] dskm_sage_config: CELL storage configuration file cellinit.ora not found
    [ DISKMON] 07/16/2010 09:42:46.425 [12350:3] dskm_nfy_kgzf1: notified thread kgzf enabled
    [ DISKMON] 07/16/2010 09:42:46.425 [12350:11] dskm_proc_kgzf_handshake5: got the post from the hb thread
    [ DISKMON] 07/16/2010 09:42:46.425 [12350:11] dskm_proc_kgzf_handshake9: done, kgzf enabled
    [ DISKMON] 07/16/2010 09:42:46.425 [12350:11] dskm_process_msg7: processed msg 0 type KGZM_KGZF_HANDSHAKE (0x0010), retcode 0
    [ DISKMON] 07/16/2010 09:42:46.426 [12350:3] dskm_rac_ini22: CELL storage not configured in the cluster; registered in group MASTER#DISKMON#GROUP as memno 0 (GSDGRPSZ 512)

  • Are multiple PHYSICAL databases supported in one Oracle 10g RAC environment

    Hi alls,
    as of  Metalink 220970.1 Oracle RAC is also supporting different databases in one cluster installation. RAC handles any resource as a service and it doesn't matter if these services belongs to only one or to different databases. You install the Oracle Clusterware only once and you create any service you want to make high available.
    So is technically possible to install multiple databases on same Oracle Rac environment.
    My doubts are related to  SAP , does SAP certify such environments ?? we could have  one SAP R/3 database  and SAP BW database co-exist in a single Oracle RAC environment. or also co-exist SAP database with a non-SAP database (an already existing application) in the same Oracle Rac environment.
    Any comment would be higly appreciated.
    Silvio Brandani

    We have ECC, BI, PI and Portal running on same Oracle RAC environment.  We have one RAC for QA systems and one for PRD systems. We are not running any SAP applications along with Non-SAP applications on RAC.  Keeping SAP and non-SAP apps separate would be a way to go.
    Hope this helps.
    Thanks,
    Naveed

Maybe you are looking for

  • Camera not recognized!  Green image only.

    Here's a mystery for ya... I've got a brand new Powerbook G4, 1.67GHz, 2GB of RAM with a 120G harddrive. A few of the applications I can hook up my DV camera to via firewire freeze up, freak out or just plain don't work. On my older Powerbook (1GHz,

  • Linking in progress doesn't respond during silent install of oracle db 10g

    I performed all required settings for installing oracle database 10g on my remote server (redhat), I set the values of the response file for a silent install of enterprise edition. The installation works fine till the prompt says --- Linking in progr

  • Very basic questions about how Airport Express works

    I'm using a non-Apple wireless router at home. I'd like to stream music from my iBook to my stereo. Will an Airport Express do that? Will it get confused that there's another access point? Can my iBook receive streaming radio via the non-Apple wirele

  • Record Count In report Builder

    Hi Folks, In Report Builder I want serial number with each record being fectched from the database in such a way that on each page of the report, the count should always start from 1. Any ideas? TIA Hassan

  • MacBook Pro is booting up but stuck before booting up the Finder

    Dear all, My MacBook Pro is causing me a huge lot of trouble today as it is failing to complete the boot-up process. It completes the boot-up until the login screen appears, and when I pick the account and enter my password it enters the desktop/home