Forum Stats

  • 3,723,857 Users
  • 2,244,635 Discussions
  • 7,850,737 Comments

Discussions

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Oracle RAC Concept

Balajidba
Balajidba Member Posts: 505 Blue Ribbon

Hi ,

Oracle Real Application clusters allow multiple instances to access a single database, the instances will be running on multiple nodes. In a standard Oracle configuration, a database can only be mounted by one instance but in a RAC environment, many instances can access a single database

I have a doubt here.

My understanding is that we use Oracle RAC database as similar to standalone oracle database? My question is are instances and nodes are same? Do we use them for login purpose.

My assumption is that they are used only for high availability. If one node goes down , other surviving node will take over the user connections.

What is the purpose of Oracle RAC instances here? Can someone please clarify my doubt?

Regards,

Balaji

Best Answer

  • BPeaslandDBA
    BPeaslandDBA Member Posts: 4,615 Blue Diamond
    edited December 2019 Accepted Answer

    Before you can understand all of this, I think its a good idea to take a step back and understand the differences between a database and an instance in Oracle terms.

    In Oracle, a database is the collection of files on disk. This includes the datafiles, temp files, online redo logs, and control files. That's it. Nothing more than the files on disk. If you shutdown the server, the database is what lives on disk. When you start the server, the database is still there.

    In Oracle, an instance is the collection of allocated memory and processes that are started to allow access to the database. When a server is first started up, the database is still there on disk, but no one can access it yet. The instance is started. Oracle allocates memory such as the Buffer Cache and the Shared Pool. Processes start such as SMON, PMON, etc.

    An application cannot connect to the database. Applications simply cannot access those datafiles directly. You will hear people say they "connected to the database" all the time throughout your career and if the database is Oracle, they are wrong every time. But that's ok. Know your audience. They aren't as skilled in Oracle as you are and let them say that because its not important that they understand the technical differences in how this all works. However, when you are talking to other Oracle DBA's, a different audience, we do understand the differences between the database and the instance and that can make a difference in what we need to say.

    An application can only connect to a running instance of Oracle. Only once the instance is started and opened for business can the application connect. It is through the instance, the application and its users can interact with the data in the database.

    So hopefully you know understand the difference between a database and an instance as far as Oracle is concerned.

    Most Oracle deployments are stand-alone Oracle. This means there can be only one instance for any given Oracle database. If you try to start a second instance to access that same database, an error will be raised.

    Stand-alone Oracle does not have the high availability or high scalability characteristics that some applications require. If you need high availability or scalability, then Oracle Real Application Clusters can be an option to use. With Oracle RAC, you can have multiple instances accessing the same database. One instance would run on one node (server) and another instance would run on another node. This way, we can survive the loss of a node and still access the database and the workload can be split over multiple nodes.

    Cheers,
    Brian

Answers

  • BPeaslandDBA
    BPeaslandDBA Member Posts: 4,615 Blue Diamond
    edited December 2019 Accepted Answer

    Before you can understand all of this, I think its a good idea to take a step back and understand the differences between a database and an instance in Oracle terms.

    In Oracle, a database is the collection of files on disk. This includes the datafiles, temp files, online redo logs, and control files. That's it. Nothing more than the files on disk. If you shutdown the server, the database is what lives on disk. When you start the server, the database is still there.

    In Oracle, an instance is the collection of allocated memory and processes that are started to allow access to the database. When a server is first started up, the database is still there on disk, but no one can access it yet. The instance is started. Oracle allocates memory such as the Buffer Cache and the Shared Pool. Processes start such as SMON, PMON, etc.

    An application cannot connect to the database. Applications simply cannot access those datafiles directly. You will hear people say they "connected to the database" all the time throughout your career and if the database is Oracle, they are wrong every time. But that's ok. Know your audience. They aren't as skilled in Oracle as you are and let them say that because its not important that they understand the technical differences in how this all works. However, when you are talking to other Oracle DBA's, a different audience, we do understand the differences between the database and the instance and that can make a difference in what we need to say.

    An application can only connect to a running instance of Oracle. Only once the instance is started and opened for business can the application connect. It is through the instance, the application and its users can interact with the data in the database.

    So hopefully you know understand the difference between a database and an instance as far as Oracle is concerned.

    Most Oracle deployments are stand-alone Oracle. This means there can be only one instance for any given Oracle database. If you try to start a second instance to access that same database, an error will be raised.

    Stand-alone Oracle does not have the high availability or high scalability characteristics that some applications require. If you need high availability or scalability, then Oracle Real Application Clusters can be an option to use. With Oracle RAC, you can have multiple instances accessing the same database. One instance would run on one node (server) and another instance would run on another node. This way, we can survive the loss of a node and still access the database and the workload can be split over multiple nodes.

    Cheers,
    Brian

  • Balajidba
    Balajidba Member Posts: 505 Blue Ribbon
    edited December 2019

    Thanks Brian for your detailed explanation.

  • Sunny kichloo
    Sunny kichloo Member Posts: 2,442 Gold Trophy
    edited December 2019

    Do close this thread if your issue is  resolved.

  • Balajidba
    Balajidba Member Posts: 505 Blue Ribbon
    edited December 2019

    How can I close this thread. I don't have access to close it.

  • Sunny kichloo
    Sunny kichloo Member Posts: 2,442 Gold Trophy
    edited December 2019

    You are not getting option to mark this thread as answered?

  • Balajidba
    Balajidba Member Posts: 505 Blue Ribbon
    edited December 2019

    Marked as answered.

  • Balajidba
    Balajidba Member Posts: 505 Blue Ribbon

    Hi Brian,

    With Oracle RAC, you can have multiple instances accessing the same database. One instance would run on one node (server) and another instance would run on another node. This way, we can survive the loss of a node and still access the database and the workload can be split over multiple nodes.

    Could you please explain this RAC concept in a diagram.

    Regards,

    Balaji

Sign In or Register to comment.