1 votes

Est-ce que la réplication de SQL Server 2008 peut être utilisée avec NLB pour permettre un dimensionnement illimité des serveurs de reporting ?

Nous utilisons actuellement la réplication transactionnelle dans SQL Server 2008 pour maintenir un serveur de reporting secondaire synchronisé avec un serveur de base de données principal. Cela fonctionne bien et allège une partie de la charge du serveur principal. Serait-il possible de mettre à l'échelle cette solution pour plusieurs serveurs de reporting? Nous attendons une augmentation de la charge des requêtes en lecture seule et il serait utile de pouvoir ajouter des serveurs de reporting au besoin.

L'idée générale était la suivante:

  1. Chaque serveur de reporting utiliserait une souscription "pull" pour obtenir les données de la publication de la base de données principale. Ces bases de données de reporting pourraient avoir un retard de quelques minutes par rapport au serveur principal sans que cela pose problème.
  2. Les serveurs de reporting seraient regroupés en NLB. Toutes les requêtes en lecture seule seraient dirigées vers le NLB qui devrait répartir la charge entre les serveurs.

0 votes

Mise à l'échelle illimitée ? RIEN ne permet cela. Les gens se battent même pour beaucoup moins (voir : serveurs de facebook, fermes de google).

1voto

mfinni Points 35332

Cela me semble fonctionner, pour ma part. Tant que vous ne faites que des requêtes au nom du NLB. Cependant, je vous conseillerais de jeter un regard approfondi sur la documentation de déploiement et d'architecture de MS SQL pour voir s'il y a quelque chose qui dit "Construisez-le de cette manière, en prenant soin de faire X et de ne pas faire Y" ou "Cela ne fonctionnera pas du tout à cause de Frob".

0 votes

Oui, nous ne ferions que des requêtes en lecture seule sur le NLB donc il n'y a pas de problème de désynchronisation des données à cause de conflits de réplication. J'ai déjà emprunté cette voie auparavant!

0 votes

Ensuite, ça fonctionnerait définitivement.

0voto

Massimo Points 67633

Ne serait-il pas beaucoup mieux d'avoir plusieurs serveurs exécutant des Services de rapports, tous interrogeant un seul serveur moteur de base de données?

Il n'est vraiment pas nécessaire que RS utilise un DE sur la même machine.

À propos du NLBing Reporting Services: oui, c'est possible, mais cela comporte quelques inconvénients. Voir http://technet.microsoft.com/en-us/library/cc281307.aspx.

1 votes

Le problème avec cette approche est que vous auriez toujours un seul serveur de base de données supportant la charge. Cela permettrait de mettre à l'échelle le rendu des rapports, mais c'est un problème mineur par rapport à la contention E/S et CPU sur le serveur de base de données principal.

0 votes

Oh, eh bien, je suis que ta méthode pourrait fonctionner. Il n'y a aucune raison évidente pour que cela ne fonctionne pas...

0voto

Dr Zimmerman Points 136

Le goulot d'étranglement habituel est le distributeur. Assurez-vous que l'éditeur n'agit pas en tant que son propre distributeur, car avec de nombreux abonnés ('illimité'), la charge sur le distributeur devient assez significative. Une solution consiste à étager la distribution, en ayant l'un des abonnés (ou plus) agir en tant qu'éditeur/distributeur également. De cette façon, plus d'abonnés peuvent être ajoutés en tant qu'abonnés à cette publication d'occasion sans ajouter de charge supplémentaire sur le distributeur d'origine.

Mais étant donné les capacités de mise en cache des Services de rapports et les capacités intégrées étendues pour la montée en puissance (voir Planification du déploiement d'extension d'échelle), on peut se demander si une telle topologie de réplication est vraiment nécessaire.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X