Using Tuxedo with Oracle Real Application Clusters (RAC)

Hi all ,
Our present Producation environment is Tuxedo8.0 with Oracle 9i as database .
We are planning to implement oracle RAC .
Can any one tell us , with the current tuxedo version which is 8.0 ,can we for RAC Or we need to upgrade Tuxedo to 9.1 for RAC Implementation?
If anyone has Implemented Tuxedo and Oracle with RAC successfully
Pls share your experience.
Thanks In Adavance
Nadeer .

Subbu,
As I mentioned earlier in this thread, support for Oracle RAC has been
implemented in Tuxedo 9.1 and in the Tuxedo 8.1 and Tuxedo 9.0 rolling patch
streams. There are no plans to backport this feature to Tuxedo 8.0. If you
plan to use RAC transactionally and if it is possible for multiple services
that could be located on different RAC instances to be accessed in a single
transaction (which will be true for most applications), then you should
upgrade to a version of Tuxedo with support for Oracle RAC. The
documentation at http://e-docs.bea.com/tuxedo/tux91/ads/adorac.htm#248431
gives an overview of RAC support in Tuxedo.
Ed
<Subramonian Arumugom> wrote in message news:[email protected]..
Hello Nadeer, Hello Ed,
Has the implementation of Tuxedo8.0 with Oracle RAC was completed
successfully ?.
If it is done , I have few doubts. Could you please help me ?.
1) I hope your Tuxedo middleware connects to the oracle Database using
Oracle XA resource manager and the TMS server built using buildtms with
oracle as RM .As per the mail from Ed, migration of Tuxedo9.1 should be done
before moving to Oracle RAC.
Also from BEA documentation, Oracle RAC support was given as new feature in
Tuxedo9.1.
Our Application uses Oracle RM to connect to Oracle DB[ Oracle 10g] from
Tuxedo8.0. So do we need to upgrade to Tuxedo9.1. for using Oracle RAC ?.
Thanks for your help
Best Regards
Subbu
#9880278452
Edited by subramonian.a at 04/16/2007 12:15 AM
Edited by subramonian.a at 04/16/2007 12:19 AM
Edited by subramonian.a at 04/16/2007 1:37 AM
Edited by subramonian.a at 04/16/2007 8:20 AM

Similar Messages

  • Converting to Oracle Real Application Clusters from Single-Instance Oracle

    Is there any notes at metalink for
    Converting to Oracle Real Application Clusters from Single-Instance Oracle Databases
    We should have 10g DB on ASM to make it RAC?

    With Oracle Database 10g Release 2, $ORACLE_HOME/bin/rconfig tool can be used to convert Single instance database to RAC. This tool takes in a xml input file and convert the Single Instance database whose information is provided in the xml. You can run this tool in "verify only" mode prior to performing actual conversion. This is documented in the RAC admin book and a sample xml can be found $ORACLE_HOME/assistants/rconfig/sampleXMLs/ConvertToRAC.xml. Grid Control 10g Release 2 provides a easy to use wizard to perform this function.

  • Install Real Application Clusters (RAC) and Automated Storage Management (A

    Do I have to install Real Application Clusters (RAC) and Automated Storage Management (ASM) for ETL
    I have installed Oracle 10g Release 1 on WIndows 2000 with datawarehousing option.
    Is it ok
    Or do I need to install Oracle database again.
    Please help

    Greg,
    From what you describe you did exactly the right thing. The runtime platform service will by default run on DWH01, but you can shut it down on that node and have it run on DWH02 (in case you wanted to bring down DWH01 but still run Warehouse Builder processes). Note that we strongly recommend using the net service name in the location registration in the deployment manager (so that you automatically take advantage of the client-side load balancing feature of RAC (as well as the server-side load balancing)).
    Thanks,
    Mark.

  • Oracle Real Application Clusters

    hi all
    i am using oracle database 11g Release2 and Oracle Linux enterprise edition.
    can anyone guide me why we need to use Oracle Real Application Clusters and plz
    guide me how to install or configure all these?
    and someone told me we needed 10Gb Gigabyte Ethernet.
    how to go for 10GB by using LoopBack?
    i am using vertualbox and i checked the loopback is only 1GB so how to go for 10GB
    i posted my thread here
    Oracle Real Application Clusters
    but someone suggested me to for this forum so i posted here.
    so if i am wrong plz forgive me.

    nisha wrote:
    hi all
    i am using oracle database 11g Release2 and Oracle Linux enterprise edition.
    can anyone guide me why we need to use Oracle Real Application Clusters and plz
    guide me how to install or configure all these?
    and someone told me we needed 10Gb Gigabyte Ethernet.
    how to go for 10GB by using LoopBack?
    i am using vertualbox and i checked the loopback is only 1GB so how to go for 10GB
    i posted my thread here
    Oracle Real Application Clusters
    but someone suggested me to for this forum so i posted here.
    so if i am wrong plz forgive me.You can check the following link to learn why RAC is used:
    http://download.oracle.com/docs/cd/E11882_01/rac.112/e16795/admcon.htm#i1058057
    Moreover, I've a step by step RAC installation guide on vmware, but it's for 10gR2. However, you can check it and have a basic knowledge of the main steps
    http://kamranagayev.wordpress.com/2011/04/05/step-by-step-installing-oracle-10g-rac-on-vmware/

  • Oracle Clusterware and Oracle Real Application Clusters Install Guide

    I've downloaded the latest "Oracle Database - Oracle Clusterware and Oracle Real Application Clusters Install Guide - 10g Release 2 (10.2) for HP-UX PA-RISC" (part no. B14202-01) dated August 2005 from OTN. I'm getting the following error when opening the pdf file in Adobe Reader:
    "Cannot extract the embedded font 'PEPPLC+Palatino-Italic'. Some characters may not display or print properly."
    When I print the manual, I get blank pages throughout the document which, in my opinion, should contain text and don't. Specifically pages 1-11, 2-5, 2-19, 2-24, 2-33, 3-5, 3-19 to name a few. When I go to those pages within the pdf file in Adobe Reader, I get the error: "There was a problem reading this document (114)."
    Can you verify this problem on your end. Also, how do I get a good copy of this document?

    Hi!
    Apologies for the delay in responding to you. Please try the documentation library, part B19306-01 at URL: http://www.oracle.com/technology/documentation/database10gR2.html. Search for the part B14202-01 and click: pdf at top right. Part B14202-01 documentation pdf is currently displaying and printing on this end. The blank pages at the end of each main topic are inserted on purpose.
    Another link to part B14202-01, on OTN is under the OEM, Oracle Enterprise Manager 10g Release 2 (10.2): http://www.oracle.com/pls/db102/portal.portal_db?selected=21
    Thank you for your comments and feedbacks. Its much appreciated.
    Main OTN, documentation URL: http://www.oracle.com/technology/documentation/index.html
    Regards,
    Chao

  • Using XA with Oracle ERP application

    Hi,
    We have two Tuxedo Domains that we need to establish global transaction:
    First Domain - Tuxedo 6.4 with Oracle 8.0.6 database.
    Second Domain - Tuxedo 6.4 with Oracle ERP application (Oracel version 8.0.5)
    A Client that calls a Tuxedo server in the first domain this service doing some work
    on the database and then calls another service in the second domain (using Domain
    connection).
    The service in the second Domain activate a Oracle API (package) from the ERP application.
    The Rollback works but we problem with the commit. We recieve the following Oracle
    Error - ORA-06574: Function "VIEW_ALL" references package state can not execute remotly.
    Revital Bloom
    [email protected]

    Subbu,
    As I mentioned earlier in this thread, support for Oracle RAC has been
    implemented in Tuxedo 9.1 and in the Tuxedo 8.1 and Tuxedo 9.0 rolling patch
    streams. There are no plans to backport this feature to Tuxedo 8.0. If you
    plan to use RAC transactionally and if it is possible for multiple services
    that could be located on different RAC instances to be accessed in a single
    transaction (which will be true for most applications), then you should
    upgrade to a version of Tuxedo with support for Oracle RAC. The
    documentation at http://e-docs.bea.com/tuxedo/tux91/ads/adorac.htm#248431
    gives an overview of RAC support in Tuxedo.
    Ed
    <Subramonian Arumugom> wrote in message news:[email protected]..
    Hello Nadeer, Hello Ed,
    Has the implementation of Tuxedo8.0 with Oracle RAC was completed
    successfully ?.
    If it is done , I have few doubts. Could you please help me ?.
    1) I hope your Tuxedo middleware connects to the oracle Database using
    Oracle XA resource manager and the TMS server built using buildtms with
    oracle as RM .As per the mail from Ed, migration of Tuxedo9.1 should be done
    before moving to Oracle RAC.
    Also from BEA documentation, Oracle RAC support was given as new feature in
    Tuxedo9.1.
    Our Application uses Oracle RM to connect to Oracle DB[ Oracle 10g] from
    Tuxedo8.0. So do we need to upgrade to Tuxedo9.1. for using Oracle RAC ?.
    Thanks for your help
    Best Regards
    Subbu
    #9880278452
    Edited by subramonian.a at 04/16/2007 12:15 AM
    Edited by subramonian.a at 04/16/2007 12:19 AM
    Edited by subramonian.a at 04/16/2007 1:37 AM
    Edited by subramonian.a at 04/16/2007 8:20 AM

  • How to install Oracle Real Application Clusters on Aix

    I am running a 64 bit kernel AIX 5.2 on IBM RISC Based p-series sever(7028-6C4).Clustered has already been configured. How can i check the clustered has configured successfully (software & hardware) for oracle installation?
    What is the procedure to install oracle real application custer on AIX ?
    Can Any body Help me......
    Arif

    Here you have books related to that theme:
    http://otn.oracle.com/pls/db92/db92.docindex?remark=homepage
    Joel Pérez

  • Oracle Streams & Oracle Real Application Clusters

    Hello...i'am developing a new replication system to my company using Oracle Streams. I have already achieved data replication to a downstream database but now i would like to do it but in an RAC environment. So, i will appreciate any help you can give me. Best regards, walny

    I've been researching but now i have another doubt, i have a cluster of five instances, two of them donwstream, one primary and one secundary, i don't now if the standby redo log files configured for the primary instance will be the same for the secundary instance, what i want to achieve is the HA of the replication environment, so if i configured standby redo log files in both instances and with just one group the problem is solved, i'll be wasting resources.
    i hope you can help me
    regards
    Edited by: walny on 08-abr-2010 10:45
    Edited by: walny on 08-abr-2010 10:46

  • How to connect to Oracle "real application cluster" RAC?

    Hello,
    I don't know how the dbUrl-Parameter should look like to connect to an Oracle RAC.
    normally I use:
    jdbc:oracle:thin:@(Server):(port):(servicename)
    e.g.:
    jdbc:oracle:thin:@frxxx7....world.com:1521:kfics
    but what should I use if I want to connect to an RAC? In this case I don't have a single server?
    Thanks for your help.
    Regards.
    Matthias

    Hello again,
    I found out half of the solution.
    Normally you use a serverUrl like:
    jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)
    (ADDRESS=(PROTOCOL=TCP)(HOST=host1) (PORT=1521))
    (ADDRESS=(PROTOCOL=TCP)(HOST=host2) (PORT=1521))
    (CONNECT_DATA=(SERVICE_NAME=service)))
    normally you can also add other information like failover_mode etc.
    BUT: MII (12.0.6) only alows a string of 200 characters. Here is a part of the error-log:
    Exception of type com.sap.sql.log.OpenSQLException caught: Cannot assign a java.lang.String object of length 309 to host variable 3 which has JDBC type VARCHAR(200)..
    so if I have more than two servers or additionally information for failover_mode etc. I'm not able to use the oracle RAC, because the serverUrl is too long.
    Any suggestions?
    Regards
    Matthias

  • Need help on using Tuxedo with Oracle 8

    Hi friends,
    I wrote a simple tuxedo server with embedded sql that has only the task to insert
    a string passed by the client into a table in oracle DB.
    The Server is logged on to the database correctly during tmboot. When I start the
    client the service function will be invoked and it returns TPSUCCESS. But somehow
    my sql statements are ignored. No record is added to the table and I got no sql errors.
    Here is my service function (AUTOTRAN=Y):
    void INSERT(TPSVCINFO *msg){
    EXEC SQL insert into ABC values ('some data');
    EXEC SQL COMMIT WORK;
    if (SQLCODE != SQL_OK){
    tpreturn(TPFAIL, 0, msg->data, 0L, 0);
    tpreturn(TPSUCCESS, 0, msg->data, 0L, 0);
    Thanks in advance.
    Kevin

    Thanks for your help.
    Kevin
    "Manoj SASIDHARAN" <[email protected]> wrote:
    >
    Hi Kevin,
    Oracle Docs has the following to say abt SQL Error -36:
    ORA-00036 maximum number of recursive SQL levels (string)
    exceeded
    Cause: An attempt was made to go more than the specified
    number
    of recursive SQL levels.
    Action: Remove the recursive SQL, possibly a recursive
    trigger.
    Pl check if u have some triggers on the table... and also
    determine
    the level of their nesting... That shld probably solve
    ur probs.
    Good Luck
    MS
    "Kevin" <[email protected]> wrote:
    Hi, thanks for your answer.
    But I am not sure of the error message...is the error
    code what
    I got an ORA error code or something else (e.g. why -36
    and not
    36)?
    Please have a look to my source code.
    Hope you can give me more information.
    Thanks in advance
    Kevin
    #include <stdio.h> /*operation system*/
    #include <Uunix.h> /*Tuxedo*/
    #include <errno.h> /*operation system*/
    #include <atmi.h> /*TPSVCINFO, TPFAIL, TPSUCCESS,
    etc.*/
    #include <sqlcode.h> /*SQL related*/
    #include <sqlca.h>
    void
    #if defined(__STDC__) || defined(__cplusplus)
    MSK2MANTA(TPSVCINFO *msg)
    #else
    MSK2MANTA(msg)
    TPSVCINFO *msg;
    #endif
    printf("MSK2MANTA Service started\n");
    if(msg->data == NULL){
    printf("received message is NULL!\n");
    tpreturn(TPFAIL, 0, msg->data, 0L, 0);
    printf("Transaction-Status = %d\n", tpgetlev());
    EXEC SQL insert into BUF values ('sysdate', 'msk2manta
    data');
    if ((sqlca.sqlcode != 0) || (SQLCODE != SQL_OK)){
    printf("Failed to insert! SQLCODE1 = %d\n", SQLCODE);
    printf("Failed to insert! sqlca.sqlcode = %d\n",sqlca.sqlcode);
    printf("Failed to insert! sqlca.sqlerrm.sqlerrmc=
    %s\n", sqlca.sqlerrm.sqlerrmc);
    tpreturn(TPFAIL, 0, msg->data, 0L, 0);
    EXEC SQL COMMIT WORK;
    if (SQLCODE != SQL_OK){
    printf("Failed to commit! SQLCODE2 = %d\n", SQLCODE);
    tpreturn(TPFAIL, 0, msg->data, 0L, 0);
    tpreturn(TPSUCCESS, 0, msg->data, 0L, 0);
    Output: tpgetlev()=1, SQLCODE=-36, sqlca.sqlcode=0, sqlerrmc=""
    Scott Holland <[email protected]> wrote:
    Also... print out the remainder of the sqlca structure.
    You will have
    error text in that structure describing what the actual
    error is.
    sdh
    Kevin wrote:
    Hi Manoj,
    thanks for your answer.
    I added an extra SQLCODE check after the insert andget following
    error:
    "SQLCODE = -36"
    Do you know how to find out what the error is stangfor?
    Thanks
    Kevin
    "Manoj SASIDHARAN" <[email protected]>
    wrote:
    Hi Kevin,
    Could u pl put an extra SQLCODE (or sqlca.sqlcode)check
    after the INSERT statement
    as shown in the modified code and try...
    Currently the check verifies the sqlcode of the COMMIT
    statement and not the INSERT
    statement executed just before.
    HTH
    Regards
    /MS
    "Kevin" <[email protected]> wrote:
    Hi friends,
    I wrote a simple tuxedo server with embedded sql
    that
    has only the task
    to insert
    a string passed by the client into a table in oracleDB.
    The Server is logged on to the database correctly
    during
    tmboot. When I
    start the
    client the service function will be invoked and
    it
    returns
    TPSUCCESS. But
    somehow
    my sql statements are ignored. No record is added
    to
    the table and I got
    no sql errors.
    Here is my service function (AUTOTRAN=Y):
    void INSERT(TPSVCINFO *msg){
    EXEC SQL insert into ABC values ('some data');
    //// MS CHANGES - START
    printf("SQLCODE = %ld", sqlca.sqlcode);
    if (sqlca.sqlcode != 0) {
    ////// Handle the case
    //// MS CHANGES - STOP
    EXEC SQL COMMIT WORK;
    if (SQLCODE != SQL_OK){
    tpreturn(TPFAIL, 0, msg->data, 0L, 0);
    tpreturn(TPSUCCESS, 0, msg->data, 0L, 0);
    Thanks in advance.
    Kevin

  • Real Application Clusters (RAC) install

    We have a 2 node RAC environment and are in the process of installing OWB 9.2.0.8
    I have read through the documentation and am a little confused on how exactly the process for installing the runtime repository.
    Our situation:
    RAC net serice name: dwh
    Node 1
    Host: dwh01
    instance name: dwh01
    service Name: dwh
    Node 2
    Host: dwh02
    instance name: dwh02
    service Name: dwh
    Here is what we have done so far. We installed the server side software on dwh01 and then created the runtime repository(run from dwh01) using dwh01 as the server and dwh01 as the instance. Then we installed the server side software on dwh02, but when we tried to register this node (running the runtime assistant from dwh02) let us use the host of dwh02, but we had to put in the instance name of dwh. According to my understanding in the manual you are supposed to register every node in the cluster, did we do this correctly?
    TNS entries for our RAC environment are below:
    DWH.world =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dwh01)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = dwh02)(PORT = 1521))
    (LOAD_BALANCE = on)
    (FAILOVER = on)
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = dwh)
    (FAILOVER_MODE =
    (TYPE = SELECT)
    (METHOD = BASIC)
    (BACKUP = dwh)
    (RETRIES = 60)
    (DELAY = 60)
    dwh02.world =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dwh02)(PORT = 1521))
    (CONNECT_DATA =
    (SERVICE_NAME = dwh)
    (INSTANCE_NAME = dwh02)
    dwh01.world =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dwh01)(PORT = 1521))
    (CONNECT_DATA =
    (SERVICE_NAME = dwh)
    (INSTANCE_NAME = dwh01)

    Greg,
    From what you describe you did exactly the right thing. The runtime platform service will by default run on DWH01, but you can shut it down on that node and have it run on DWH02 (in case you wanted to bring down DWH01 but still run Warehouse Builder processes). Note that we strongly recommend using the net service name in the location registration in the deployment manager (so that you automatically take advantage of the client-side load balancing feature of RAC (as well as the server-side load balancing)).
    Thanks,
    Mark.

  • Oracle Real Application Clusters Guard

    Is that separate install different from RAC install ?
    Is Cluster Guard is mandatory for Oracle 9i RAC environments ?

    Is that separate install different from RAC install ?No. Installation of RAC RDBMS on top of cluster software should be good enough.
    Is Cluster Guard is mandatory for Oracle 9i RAC environments ? RAC Guard is a part or a component of RAC, meaning if you RAC environment, it can be changed to RAC Guard environment.
    Please see http://download.oracle.com/docs/cd/B10501_01/rac.920/a96601/glossary.htm#434683
    and http://download.oracle.com/docs/cd/B10501_01/rac.920/a96601/opfsarch.htm#39724
    for more information
    HTH
    Chandra Pabba

  • [RAC] 9I REAL APPLICATION CLUSTERS의 CACHE FUSION 에 대한 이해

    제품 : ORACLE SERVER
    작성날짜 : 2004-08-13
    [RAC] 9I REAL APPLICATION CLUSTERS의 CACHE FUSION 에 대한 이해
    ==========================================================
    PURPOSE
    이 문서는, 오라클 리얼 애플리케이션 클러스터 환경의 캐쉬 퓨전의 기능과 장점을
    설명하는 것을 목적을 한다.
    SCOPE
    Real Application Clusters(RAC) Option은 9i Standard Edition에서는
    지원하지 않는다.
    Explanation
    Oracle 8i OPS에서 캐쉬 퓨전의 개념이 소개 되었다. 이 기능은, 원격 인스턴스가 관장하는
    블럭에 대한 읽기 일관성 있는 뷰를 위해 디스크를 통한 블럭의 pinging을 감소 시키는 목적으로
    추가되었다. 이 기능은, 다른 인스턴스에 의해 lock이 걸린 데이터를 select하는데 필요한 시간을
    현격하게 감소 시켜 주었다.
    lock을 건 인스턴스가 변경 사항을 기록하도록 강제 하여 (I/O 발생을 강제 발생) 원격 인스턴스가
    읽을 수 있게 하는 대신, 캐쉬 퓨전은 버퍼의 사본을 생성하여, 노드간 고속 연결 라인을 통해
    데이터를 조회하는 측에 전달 시켜준다. 이 개념은, 읽기/쓰기 경합에 따른 성능상의 문제를
    경감시켜 주기는 하나, 블럭의 내용을 변경시켜야 한다면, 원격 인스턴스에서 해당 블럭에 대해 쓰기를
    하도록 한 후 읽어 들여 사용하는 기존 방식과 동일한 ping 메카니즘을 사용 해야 했다.
    9i 리얼 애플리케이션 클러스터에서는, 쓰기/쓰기 경합 문제를 해결할 수 있도록 캐쉬 퓨전이
    설계되었으므로, 성능 향상 및 확장성이 개선 되었다. RAC cache fusion을 통해 Oracle 에서는
    다른 인스턴스에서 lock이 걸린 블럭에 대해 디스크를 통한 'ping'이 개념상으로는 더이상
    발생하지 않도록 함으로써, I/O의 양을 더 줄여 주게 되었다. 대신 RAC 인스턴스는, 더티
    버퍼의 사본에 대해 원격 인스턴스에서 쓰기 권한을 가질 수 있게 해 주었다. 이 기능은
    dba (1:1) 를 사용하는 realesable locking (특정 데이터 파일에 gc_files_to_locks 값을
    0으로 지정하거나, gc_files_to_locks 값을 아예 설정하지 않을 경우 사용 가능) 에서만
    적용되는 기능이다. Hashed lck은 ping 메카니즘을 이전 방식과 동일하게 사용하며, fixed lock은
    9i RAC에서는 더이상 사용 할 수 없게 되었다. (잇점이 없기에)
    앞에서 언급한 바와 같이 RAC 캐쉬 퓨전에서는 인스턴스가 dirty buffer의 사본을 사용할 수 있게
    해 준다. RAC 캐쉬 퓨전에서 새로 등장한 개념은 past image라는 개념인데 이것은 버퍼의 이전
    사본이 디스크게 기록되지 않은 상태를 말한다. 이 past image를 추적하기 위해 오라클에서는 전역
    락과 로컬 락의 role과 BWR (block written redo)를 사용한다. global 과 local lock의 role을 명확히
    하기 위해 Oracle 8i의 lock을 local lock으로 생각해보자. 이 경우 오라클 8i에서는 3가지 종류의
    락 모드가 존재한다 :
    N - Null
    S - Shared
    X - Exclusive
    오라클 9i RAC의 lock모드를 언급할 때는 3 글자로 lock의 종류를 구분한다. 첫번째 글자는 lock mode를
    나타내고, 두번째 글자는 lock의 role, 세번째 글자는 (숫자) 로컬 인스턴스에 past image가 있는지
    여부를 나타낸다. 이와 같은 방식으로 lock의 종류는 다음과 같이 나타낼 수 있다 :
    NL0 - Null Local 0 - 8i의 N과 동일 (past image 없음)
    SL0 - Shared Local 0 - 8i의 S와 동일 (past image 없음)
    XL0 - Exclusive Local 0 - 8i의 X와 동일 (past image 없음)
    SG0 - Shared Global 0 - 글로벌 S 락, 인스턴스에 current block image 소유
    XG0 - Exclusive Global 0 - 글로벌 X 락, 인스턴스에서 current block image 소유
    NG1 - Null Global 1 - 글로벌 N 락, 인스턴스에서 past image 소유
    SG1 - Shared Global 1 - 글로벌 S 락, 인스턴스에서 past image 소유
    XG1 - Exclusive Global 1 - 글로벌 X 락, 인스턴스에서 past image 소유
    lock이 최초로 획득된 경우, 로컬 role로 획득된다.만약 lock이 획득된 시점에 원격 인스턴스에 더티
    버퍼가 존재한다면, 글로벌 락 role을 가지고 획득하며, 이 경우, 더티 버퍼를 모든 원격 인스턴스에서는
    버퍼의 'past image'로 취급한다. 리커버리를 위해 past image를 가지고 있는 인스턴스에서는
    lock을 점유하고 있는 마스터 인스턴스에서 lock을 해재했다고 알려 오기 전 까지는 past image를
    버퍼 캐쉬에 저장한다. 버퍼내의 블럭이 폐기 될 때는 past image를 관리하는 인스턴스에서 DBR
    또는'block written redo'를 redo 스트림에 기록하게 되는데 이것은, 블럭이 이미 디스크에
    기록되었으므로, 이 인스턴스를 recovery하는데는 필요하지 않다는 것을 나타낸다.
    RAC 클러스터의 3번 노드가 EMP 테이블의 블럭을 관장하는 락 엘리먼트 123을 소유하고 있다고
    가정해 보자 :
    사용자 C가 인스턴스 3에 연결된 상태에서 EMP 테이블에 대한 select를 하면서 SL0 락이
    오픈 되었다 :
    | Instance 1 | | Instance 2 | | Instance 3 |
    | | | | | |
    | Lock Held | | Lock Held: | | Lock Held: |
    | on LENUM 123: | | on LENUM 123: | | on LENUM 123: |
    | | | | | SL0 |
    | | | | | |
    Shared lock을 획득하는 것은 락 role에 아무런 영향을 미치지 않는다. 따라서 만약 인스턴스
    2번에 연결된 사용자 B가 동일한 EMP 테이블에 대해 select를 하더라도, 인스턴스 2의 락
    엘리먼트 123의 락 모드는 동일하다. ( S 락이기 때문임 ) 그리고 락의 role 또한 동일한데
    버퍼 내용에 더티 상태로 변경된 내용이 없기 때문이다 :
    | Instance 1 | | Instance 2 | | Instance 3 |
    | | | | | |
    | Lock Held | | Lock Held | | Lock Held |
    | on LENUM 123: | | on LENUM 123: | | on LENUM 123: |
    | | | SL0 | | SL0 |
    | | | | | |
    첫번째 exclusive 락을 획득하는 것은 락의 role에 영향을 미치지 않는데 이 경우에도
    락 엘리먼트에 대한 더티 버퍼가 없기 때문이다. 따라서 만약 사용자 B가 EMP 테이블의 락
    엘리먼트 123에 속하는 row를 update 하더라도, XL0이 획득되고, 이미 획득된
    SL0 락은 제거된다. 이것은 8i OPS와 동일한 동작이다.
    | Instance 1 | | Instance 2 | | Instance 3 |
    | | | | | |
    | Lock Held | | Lock Held | | Lock Held |
    | on LENUM 123: | | on LENUM 123: | | on LENUM 123: |
    | | | XL0 | | |
    | | | | | |
    원격 노드상에 더티 버퍼가 존재하는 락 에리먼트에 대해 exclusive 락을 회극하는 것은 캐쉬
    퓨전에서 2단계로 넘어가도록 한다. 이 경우 인스턴스 1번에 연결된 사용자 A가
    락 엘리먼트 123번에 속하는 EMP 테이블의 row를 update 할 때, 인스턴스 2번의 블럭은
    버퍼 캐쉬 내에서 더티 상태로 존재하므로, 인스턴스는 블럭에 대한 사본을 생성 하여 인스턴스
    1번에 전달 한 후, 인스턴스는 null 글로벌 락을 같는다 (page image)*. 동시에
    인스턴스 1은 exclusive, globally dirtied lock을 획득하며, 인스턴스 2는 past
    image를 유지한다.
    * 인스턴스에서 블럭에 대한 자신만의 page image를 갖는 것은, 블럭이 디스크에 게록되지 않고
    또, 마스터 노드에서 알려주기 전 까지는 이미지를 폐기 하지 않기 위해서이다.
    | Instance 1 | | Instance 2 | | Instance 3 |
    | | | | | |
    | Lock Held | | Lock Held | | Lock Held |
    | on LENUM 123: | | on LENUM 123: | | on LENUM 123: |
    | XG0 | | NG1 | | |
    | | | | | |
    이제 인스턴스 3에 연결된 사용자 C가 EMP 테이블을 select 하려고 하며, EMP 테이블이
    락 엘리먼트 123에 속해있는 경우를 살펴보자. 사용자 C가 select 명령을 수행 시키면
    인스턴스 1의 락은, S 락으로 하향 조정되며, 가장 최근의 buffer 내 사본을 갖고 있으며
    인스턴스 2번은 그 이전의 버퍼에 대한 past image를 유지하게 된다.
    | Instance 1 | | Instance 2 | | Instance 3 |
    | | | | | |
    | Lock Held | | Lock Held | | Lock Held |
    | on LENUM 123: | | on LENUM 123: | | on LENUM 123: |
    | SG1 | | NG1 | | SG0 |
    | | | | | |
    이제 인스턴스 2번의 사용자 B가 EMP 락 엘리먼트 123에 대해 select를 하는 경우를 가정해
    보자. 인트넛느 2는 다른 인스턴스로 부터 읽기 일관성 있는 버퍼의 사본을 요청하게 된다.
    인스턴스 2번에 버퍼 내용을 전달해 줄 인스턴스는 다음과 같은 순서에 의해 결정된다:
    1. lock에 대한 마스터 인스턴스.
    2. 가장 최후의 page image를 S lock으로 점유하고 있는 인스턴스.
    3. Shared local 상태로 lock을 점유한 인스턴스.
    4. 가장 최근에 S lock를 부여 받은 인스턴스.
    인스턴스 1번이 락에 대한 마스터 인스턴스라고 가정해 보자 ( 그리고 가장 최근의 past image를 소유 )
    이 경우 인스턴스 2는 인스턴스 1번의 버퍼 캐쉬에 저장된 블럭 사본을 전달 받고, 인스턴스 2번이
    SG1 (past image에 대한 일기 일관성을 갖춘 사본) lock을 획득한다. 나머지 노드는 동일한 상태가
    유지된다:
    | Instance 1 | | Instance 2 | | Instance 3 |
    | | | | | |
    | Lock Held | | Lock Held | | Lock Held |
    | on LENUM 123: | | on LENUM 123: | | on LENUM 123: |
    | SG1 | | SG1 | | SG0 |
    | | | | | |
    이제 인스턴스 3번에 연결된 사용자 C가 테이블의 락 엘리먼트 123의 row를 upate 하고자 한다고
    가정해 보자. 사용자 C는 exclusive lock을 요청하며, 인스턴스 1번과 2번은 소유하고 있던 lock이
    하향 조정된다. 결과적으로는 인스턴스 3번이 XG0 lock을 점유하게 되고 인스턴스 1, 2번은
    NG1을 각각 점유 하게 된다:
    | Instance 1 | | Instance 2 | | Instance 3 |
    | | | | | |
    | Lock Held | | Lock Held | | Lock Held |
    | on LENUM 123: | | on LENUM 123: | | on LENUM 123: |
    | NG1 | | NG1 | | XG0 |
    | | | | | |
    인스턴스 3번에서 체크 포인트가 발생하는 경우, 모든 더티 버퍼의 내용을 디스크에 기록하게 된다.
    이 때 인스턴스 3은 마스터노드가 기록을 하였음을 다른 노드에게 알려주게 된다. 이 경우 인스턴스
    1, 2번은 past image를 폐기 처분할 수 있게 되며 인스턴스 3번만 XL0 락을 점유하게 된다.
    유의해야 할 점은 인스턴스 1, 2가 BWR(block written redos)을 각각의 리두 스트림에 기록하여
    해당 블럭이 이미 디스크에 기록되었으며, 인스턴스 리커버리에는 필요하지 않음을 기록한다는 점이다.
    | Instance 1 | | Instance 2 | | Instance 3 |
    | | | | | |
    | Lock Held | | Lock Held | | Lock Held |
    | on LENUM 123: | | on LENUM 123: | | on LENUM 123: |
    | | | | | XL0 |
    | | | | | |
    Example
    Reference Documents
    Note:139436.1 - Understanding 9i Real Application Clusters Cache Fusion
    Note 144152.1 - Understanding 9i Real Application Clusters Cache Fusion Recovery
    Note 139435.1 - Fast Reconfiguration in 9i Real Application Clusters

    Hi, how are you ?
    Well, Oracle8i greatly improved scalability for read/write applications through the introduction of Cache Fusion. Oracle9i improved Cache Fusion for write/write applications by further minimizing much of the disk write activity used to control data locking.
    It�s this.
    If you still having doubt, please call me.
    Regina Vidal

  • How to Install 9i real application clusters on a PC!

    How to install and deploy Oracle Real Application Clusters on a single Linux
    server with a minimal configuration (less than $1000 worth of harware):
    First of all to install Oracle cluster database you DON'T HAVE to have a cluster, but a
    single PC may do as well (of course thi kind of installation will not be of
    much use for a production DB). A minimal server that I HAVE TESTED is: Celeron 750 MhZ,
    512 Mb of RAM, 2 IDE HD, Linux Suse 7.2
    This document contains the steps needed to deploy a working Oracle 9i Database with a
    minimal comment. For a complete discussion refer to Oracle documentation, namely:
    Oracle 9i administrator's reference part number A90347-02
    Oracle 9i Linux release notes part number A90356-01
    Oracle 9i Real Application Clusters Administration part numebr A89869-01
    1) set up the partitions to user for Oracle software and the ones to use as raw devices
    for the cluster DB. Soppose you want to you use an HD mounted as the 3rd IDE device
    (/dev/hdc) for the cluster DB. Then you have to partition it with fdisk with a large
    extended partition (say hdc1). Create a large number of logical partitions inside hdc1
    (say hdc5 till hdc20) of about 300 Mb in size (all of the same size for simplicity).
    2) Real application clusters wants to store the DB strutures into raw devices or a
    cluster filesystem. Create the raw devices using the following command (as superuser):
    raw /dev/raw1 /dev/hdc5
    raw /dev/raw2 /dev/hdc6 ... etc till /dev/hdc20
    you will need to repeat these steps after every boot
    3) Set up the Oracle user (already done with the Suse distribution), environment variables
    and mount point.
    Install Oracle software enterprise edition
    4) Complete the installation with a custom install of the real application cluster option.
    This will add a directory called oracm under your oracle home, which contains the
    cluster manager software
    5) edit $ORACLE_HOME/oracm/admin/nmcfg.ora, it contains 3 lines for the set-up of the
    cluster manager sofware:
    DefinedNodes=localhost
    CmDiskFiles=/dev/raw2
    CmHostName=localhost
    6) edit /var/opt/oracle/srvConfig.loc. It contains 1 line with the location of a raw device
    used to sync the cluster nodes:
    srvconfig_loc=/dev/raw1
    7) start the cluster manager software (as superuser):
    $ORACLE_HOME/oracm/bin/ocmstart.sh
    8) as the oracle user start the global cache service:
    gsd
    9) you can now create a cluster db. to use the configuration assistant you need to set
    an extra environment variable:
    export THREADS_FLAG=native
    10) start the configuration assistant: dbca
    expect some errors in the script the dbca generates, best is to review them before
    execution
    11) after the db creation you'll be able to start two instances on the same DB,
    which means you will have a cluster DB!
    12) the environment variable ORACLE_SID will determine the instance to which you can
    connect by means of a special syntax: SID.parameter=value
    this is used for example for paramters like instance_number, thread, etc
    also the parameter cluster_database must be set to true
    All these problems are normaly handled by the dbca.
    Have fun,
    Luca Canali
    OCP-DBA

    RedHat 7.1 with the some configuration I run a production 9.0.1
    database: Compaq Proliant Hardware with a RA4100 storage.
    The script created from the dbca seems fine, but the dbca give
    me the
    some error I get from:
    srvconfig -init
    [...]stop all daemons and oracle programs on both machines, then
    start only $ORACLE_HOME/oracm/bin/ocmstart.sh,
    then run the line
    srvconfig -init
    you can check it by running
    srvconfig -version
    it should output something like "9.0.0.0.0"
    before running dbca, make sure ocmstart.sh and gsd are
    running on both machines ("lsnodes -v" should putput sbshadow1
    and dbshadow2).
    BTW - I cant run clusca... Can somenome give a sample nmcfg.ora,
    just to check my parameters? for dbshadow1:
    DefinedNodes=dbshadow1 dbshadow2
    CmDiskFiles=/dev/raw/raw2
    CmHostName=dbshadow1
    for dbshadow2:
    DefinedNodes=dbshadow1 dbshadow2
    CmDiskFiles=/dev/raw/raw2
    CmHostName=dbshadow2
    Saludos
    --Marcos.
    Ps: can you contact me by e-mail? i have some questions regarding
    your HW

  • Required hardware for a oracle real application cluster

    hello i´m a newbie and have a question:
    We want to migrate a DB2 database to Oracle database. This database will run in the cluster network. What hardware do I need a prerequisite to set up an Oracle Real Application Clusters (10g)?
    thank a lot for help!

    Hi,
    HW sizing depends on lot of information like the Size of the Database, Average load on the Database, Number of DB users, what application is using the database... could you please let us know all these information and oracle license depends on the number of CPU you on the server. Kindly let us know the OS on which you want to run the oracle RAC.
    Regards,
    Satya.

Maybe you are looking for

  • Applescript: insert string in filter or check item in list

    Friends and experts: I'm trying to get my script to check for particular system voice and if it not found, to prompt the user to install it before the main body of the script runs. From everything I've read, it seems that I'm going to have to do this

  • Creating entry in table COSS

    Hi All, I want to create an entry in table COSS.. if any transaction please tell me.... or any other ways.... Please help me... Thnx Rohit

  • LaserJet CP1525nw says "Memory Low" and will not print

    I cannot get my HP LaserJet BP1525nw to print.  It says "memory low".  So when I click the OK button then it prints one page that says PCL XL Error and Error:  InsufficientMemory. How do I clear the memory?  And if I do clear it; how can I keep my wi

  • Multi-monitor window wont stay put :(

    so i have 4 monitors, 3 of which are together and 1 off in another area for other stuff. this is done w 2 standard apple video (Nvivia GT120) cards and a few monitors. the middle one has a higher res than the others but not so much to need the dual d

  • Re-installing Muse

    I can't re-install Muse. The Apps manager says it is up to date. However, it is no longer on my system. I need it. william lere