In Dataguard, the Standby database is a physically distinct database from the primary database, running on a different server and storage. Therefore, it protects you from site failure -- server and storage failure where the primary is running.
RAC, normally, has all the nodes in the same site accessing a single database on shared storage. If the storage or site goes down, the database becomes unavailable.
Hemant K Chitale
So, We can say that the RAC is to increase the performance (high-availablity) and Dataguard is for fail-over?
RAC is for
a) Protection from node failure (database instance keeps running and is available on other nodes in the cluster)
b) horizontal scaling (distributing load across multiple nodes in the cluster)
DataGuard is for
a) Protection from site failure (server and/or storage failure, data centre failure)
Thus, your Primary site could be running RAC for the RAC advantages but be protected from site failure with DataGuard running at another site (some X kilometres away)
Hemant K Chitale
Agree with Hemant about benefits of RAC, can only add that drawbacks are that if you place badly written application on the RAC the performance may get worst. So the application should be designed for RAC. Its good idea to check other users experience of you application running on RAC (I dont have experience with PeopleSoft)
Also pls check articles on oracle-base, they are very good written and very helpful
Dataguard is guarding the data from disasters by placing it in different server/storage far from the production.
RAC is the cluster solution form oracle for which is used to connect a database from different nodes (load balancing and scale up with out down time)