SQL Server clustering vs. Oracle RAC

 

I did some research on SQL Server clustering a while ago to find out what high-availability and fail-over options does SQL Server provide. Below are my findings. In short SQL Server has fail-over but no high-availability as compared to Oracle RAC.

1. SQL Server 2008 Peer-to-Peer Replication

  • Multiple nodes running their own instances
  • Each node has its own copy of data
  • Every node is a publisher and subscriber at the same time
  • Not scalable because of complex architecture
  • Complex to modify schema
  • Conflicts may arise if two nodes update the same row
  • In case of conflict, the topology remains inconsistent until the conflict is resolved
  • Conflict is resolved manually using the method described in
    http://technet.microsoft.com/en-us/library/bb934199.aspx

2. SQL Server 2008 Mirroring

  • One primary server and more than one mirror instances
  • Periodic Log Shipping between primary and secondary servers
  • Failover process is manual
  • A separate ‘witness’ server can be deployed to automate the fail over
  • Secondary servers  do not participate in any transaction and just wait for the failover
  • Equivalent to Oracle standby database technology

3. SQL Server 2008 Failover Clustering

  • Two servers running on a shared storage
  • All data and logs reside on the SAN and is shared
  • One server performs all transactions and the other waits for the failover
  • Microsoft Cluster Server takes care of the fail over
  • Both instances have separate instance names and one cluster instance name
  • Clients connect to the cluster IP address and cluster instance name
  • Failover is transparent but a delay (in minutes) is required to mount the database on the failover instance and start it
  • There is an application blackout during fail over process
  • Reference (http://msdn.microsoft.com/en-us/library/aa479364.aspx)

4. SQL Server 2008 Active/Active Failover Clustering

  • Two instances running on a shared storage
  • Two different SQL Server databases setup on both servers
  • Active/Active Clustering is effectively two different failover clusters
  • Each node in the cluster is running one primary instance and one secondary instance of the other node
  • Both clusters run a synchronized copy of the database
  • Replication is setup between both clusters to keep them synchronized
  • Clients see two different databases available to connect to
  • In case of failure, one server runs both database instances which may cause performance overhead
  • Write cost may increase because of replication and database synchronization
  • Application blackout will only be for the clients connected to the failed instance
  • Peer-to-Peer replication has conflicts (See No. 1)

5. SQL Server 2008 Federated Database

  • Multiple instances running in a network connected to each other
  • Each instance carry part of the database
  • Complete table is formed always using VIEWS and distributed SQL
  • Each instance has a VIEW of the table using UNION ALL between all instances called DPV
  • Complex to scale up and manage
  • Complex to modify the schema because of multiple databases
  • May have HOT-NODE syndrome when one node carry most used data

6. Oracle 11g RAC

  • Multiple Nodes running on a shared storage
  • All nodes are participating
  • Nodes are connected to each other using inter-network
  • All nodes servicing the single database
  • Scalable because of single database
  • Entire cluster fails if SAN fails
  • Higher performance inter-connect required for cache fusion as nodes increase
  • Virtual IP Address is used to connect to all servers
  • In case of failure of one node, clients will connect to other nodes on the same IP address on subsequent requests
  • 30-60 seconds of delay required for failover
  • Application blackout will only be for the clients connected to the failed instance

 

Share this post : digg it! Facebook it! live it! reddit! technorati! yahoo!

Advertisements

5 thoughts on “SQL Server clustering vs. Oracle RAC

  1. Pingback: Anonymous

  2. Thank you very much for this consinse comparision. I am current in the process of suggesting a Migration from Oracle to SQL server and the customer wanted to know how well will their current RAC implementation get translated to on SQL server.

    From what I read above, it looks like SQL server will not matchup to RAC kind of performance. What I gather from the above comparision; SQL server is largerly a Failover Clustering rather than a load balancing one. So what do you suggest not opt for SQL server if Load balancing and seemless failover is the objective?

  3. SQL server will not match RAC, its a totally different kind of technology. I had a Microsoft consultant come in and accept it. You need to decide what you want and if you pocket allows that.

  4. Comparemos

    A. Oracle 11g RAC
    B. SQL Server 2008 Active/Active Failover Clustering &
    ——————————————–
    A •Multiple Nodes running on a shared storage
    B •Two instances running on a shared storage (Multiple Nodes too is supported)

    A •All nodes are participating
    B. •Active/Active Clustering is effectively two different failover clusters (All nodes are participating)

    A •Nodes are connected to each other using inter-network
    B.No lo dice but is the same

    A •All nodes servicing the single database
    B •Each node in the cluster is running one primary instance and one secondary instance of the other node
    (Toda la data se encuentra en el storage que es compartido. En Oracle tambien en cada node hay que instalar el software para la bd. Quiza a lo que se refiere es a la bd master que es el equivalente en Oracle a los control files que eso no pesa nada)

    A •Scalable because of single database
    B.No lo dice but is the same

    A •Entire cluster fails if SAN fails
    B.No lo dice but is the same

    A •Higher performance inter-connect required for cache fusion as nodes increase
    B Efectivamente mientras mayor cantidad de nodos mayor performance

    A •Virtual IP Address is used to connect to all servers
    B. Eso se configura en el DNS sin problemas igual que el RAC incluso en Windows existe Network Load Balancing que no necesita de DNS

    A •In case of failure of one node, clients will connect to other nodes on the same IP address on subsequent requests
    B.No lo dice but is the same

    A •30-60 seconds of delay required for failover
    B• Failover is transparent

    A •Application blackout will only be for the clients connected to the failed instance
    B •Application blackout will only be for the clients connected to the failed instance

    Friends..saquen your own conclusion

    thanks

    Daniel Garcia

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s