Forum Stats

  • 3,768,482 Users
  • 2,252,799 Discussions
  • 7,874,596 Comments

Discussions

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 Dec 19, 2019 11:36AM 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 Dec 19, 2019 11:36AM 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 Dec 20, 2019 12:52AM

    Thanks Brian for your detailed explanation.

  • Sunny kichloo
    Sunny kichloo Member Posts: 2,447 Gold Trophy
    edited Dec 24, 2019 3:42AM

    Do close this thread if your issue is  resolved.

  • Balajidba
    Balajidba Member Posts: 505 Blue Ribbon
    edited Dec 24, 2019 4:24AM

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

  • Sunny kichloo
    Sunny kichloo Member Posts: 2,447 Gold Trophy
    edited Dec 25, 2019 4:35AM

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

  • Balajidba
    Balajidba Member Posts: 505 Blue Ribbon
    edited Dec 25, 2019 5:04AM

    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