web-dev-qa-db-fra.com

SQL Server équivalent à la fonctionnalité de Oracle RAC?

J'ai fait des googles et je n'ai pas trouvé de réponse à cette question plus récente il y a quelques années, alors je pensais demanderais. La fonction RAC d'Oracle offre un équilibrage de la charge pour les transactions de lecture et d'écriture, ainsi que de la mise hors tension et de la haute disponibilité sans temps d'arrêt (au moins, si je le comprends - nous sommes sur le point de déployer nos premières bases de données utilisant la RAC, donc nous Je vais voir comment ça se passe).

Existe-t-il un ensemble de fonctions SQL Server (ou composant tiers que vous pouvez installer sur le dessus) qui fournit des fonctionnalités équivalentes? Nous avons toujours utilisé la clustering Windows, où un événement de basculement provoque environ 20 à 30 secondes de temps d'arrêt SQL - toujours tolérable, mais pas idéal. Maintenant, avec toujours en SQL 2012, SQL Server rétrécit cela à environ 15 secondes et ajoute le concept de bases de données Lecture seule-Secondaire, mais il est toujours nécessaire que les transactions d'écriture soient étouffées par un seul point de connexion (beaucoup amélioré, car de nombreuses transactions sont Il suffit de lire, mais toujours pas vraiment un équilibrage de chargement), et dans le cas d'une défaillance d'un nœud ou de la nécessité de patcher, il y a encore temps d'arrêt.

Je suppose que c'est juste plus de curiosité - je me sens comme c'est la seule zone que SQL Server tombe derrière Oracle (au moins parmi les fonctionnalités que j'ai personnellement vues utilisées). Je voulais voir s'il existe des options pour fermer cet écart et éventuellement améliorer notre propre déploiement SQL Server pendant que nous attendons la fonctionnalité équivalente de Microsoft à ajouter - peut-être dans SQL 2014/2015?

11
SqlRyan

Non, rien dans SQL Server ne peut vous donner la même chose hors de la boîte .

Actuellement, la seule technologie SQL Server qui permet aux écrivies simultanées sur plusieurs nœuds est réplication par pair à pair . Notez que je ne voulais pas dire "écriture écrite", car il fonctionne de manière à ce que l'ensemble du système ait la capacité d'écriture d'un seul noeud. Le paragraphe introductif de cette page est libellé avec soin pour inclure le terme "échelle" sans dire "écriture écoulée". Yay pour le marketing-parler.

De ce que j'ai l , Oracle RAC est la même à cet égard. Fonctionnellement, la seule chose qui manque à SQL Server dans cette configuration est une solution d'équilibrage de charge, qui est à la fois un avantage (vous pouvez la mettre en oeuvre de votre choix) et un inconvénient (ce n'est pas dans la case ni prise en charge par Microsoft) lorsque comparer contre des produits concurrents.

Inversement, Oracle RAC ne vous donne pas la même chose que SQL Server de la boîte . Par exemple, le RAC est recommandé d'être mis en œuvre avec des nœuds à moins de 100 km les uns des autres en raison de la latence de réseau en temps réel, alors que la réplication entre pairs à égal n'a aucune restriction. (Je ne dis pas qu'une solution est meilleure que l'autre: je souligne juste qu'ils sont différents. L'entreprise devrait choisir une solution qui correspond le mieux à leurs besoins spécifiques.)

8
Jon Seigel

La réponse directe à votre question est non, SQL Server n'a pas de fonctionnalité équivalente. Il existe des aspects du serveur SQL qui vous donnent le type de tolérance de défaillance que vous souhaitez (même aussi loin que SQL Server 2005 lors de la mise en miroir DB et une application au miroir), mais il n'y a pas de 1: 1 avec Oracle RAC.

5
Eric Higgins