1

This might be a dump question, but I've been reading so much different things, that I'm not sure anymore. I tried to understand the concept of the Oracle RAC, so I've been reading the datasheet form Oracle. I thought I did understand the concept, but then I googled and I found some pictures wich were confusing, and now I'm not sure anymore.

The RAC concept is based on, that multiple (physical) servers share their memory (HD) and appear as one logical database. The data isn't stored in additional (physical) devices, like a nas? Am I right?

enter image description here

Thanks

  • RAC is multiple instances against the same physical database, so you are correct. Check out the diagram here - it's virtually identical to yours. – Vérace Jul 17 '14 at 19:03
  • Thank you Vérace. I've been already reading this page. It is similar like the one I posted. If you say: "RAC is multiple instances against the same physical database..." so that means database is one, additional, physical device where is written from multiple instances. Therefore I wouldn't be correct. I thought the data is stored at the harddisk from the different nodes. – reneton Jul 17 '14 at 19:09
  • Sorry - I misread your English - I thought that you had got the many instance to one physical db - your diagram said you had. The main thing is that it's clear now! :-) – Vérace Jul 17 '14 at 19:29
  • Thank you! This means, it is a very expensive solution. I need the hardware for the rac and an disk array. But how is high availability provided? The single point of failure aren't the servers, but the disk storage. If I disconnect the disk storage from the power link, no data is available. – reneton Jul 17 '14 at 19:51
  • Yes, the storage array is an SPOF. BUT the question you've got to ask yourself is "how much do I want to pay for my system?". With UPS, RAID and battery backed caches, storage failures are rare - for every 9 in the 5 9's, you have to add a 0 to the cost. You will never achieve a 100% perfect system - try reading what Dave Ensor says about RAC (book Tales of the Oak Table - he's not impressed). I would scale horizontally with cheaper servers and cheaper database software - a la Facebook or Google. – Vérace Jul 17 '14 at 20:52
2

Yes, Oracle RAC is built using multiple servers sharing their memory - Cache Fusion - and they all access the same shared storage where the database resides. In Oracle an Instance is just the collection of processes that acts as an interface between client connections and the actual database.

Since all storage is shared, when a server crashes, a surviving Instance can perform the crash recovery on behalf of the crashed Instance[s].

You could call the storage a single point of failure but also one that can be taken away using for example Oracle Active Data Guard, where all transactions are transported to a remote standby database that is open for read access. Doing so allows you to build a very scalable system that has also a very high availability because you can activate your primary database in whatever datacenter that is part of your configuration and every datacenter normally has it's own power and storage.

  • Thank you very much ik_zelf. Now I got it (...collection of process.. was the important sentence for me).. Would't it be less expensive an easier (I read RAC is very complex and difficult to install) to use two single database and data guard instead of RAC? Of course the scalability is... well there is no scalability, but you have a (pysical) redundant database. – reneton Jul 17 '14 at 20:42
  • Depends on what you want. If you want M's of users that mostly browse and 5% make transactions, you can make them read the standby databases and perform the updates in the primary database. With Active Data Guard, the TX will be copied to all standby's (with real time apply). That certainly scales better than RAC. That would be my choice. As with many technologies, you need to know how to handle it. – ik_zelf Jul 17 '14 at 20:57
  • The use of an Oracle database was considered for a power plant in addition to a SCADA system. In these application reading from the database is less. Only if a user wants to see some chart, or a list of alarms, there are reading requests. It is written all the time in the database due the changes of values / measurements. Furthermore the availability of the database should be very high. If one database crashes, the new values must be stored in the redundant database. – reneton Jul 17 '14 at 21:29
  • In that case, normally we build local standby's with sync replication and one - or more - remote standby's that get their data in a more efficient way, so it does not hurt the transactions, but still very close to sync. Still a single point of truth. – ik_zelf Jul 18 '14 at 10:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.