Citation:
Envoyé par
o.fermy
Il faut redéfinir l'objectif. Notre objectif est d'obtenir une meilleure disponibilité dans une configuration multi-site aux quatre coins du globe, il ne s'agit pas de répondre à une problématique de merge entre bases de données. Nous souhaitons éviter les problématiques de merge car elles sont très compliquées à résoudre, nous avons plus de 80 tables avec des relations complexes. Nous disposons déjà de notre propre système de transport des données de base de données à base de données, ce système permet d'effectuer les merges, c'est un système compliqué, le recoder sous la forme d'un merge SQL serait une sacré travail. D'autant plus que la problématique n'est pas "SQL Server only", le merge a des conséquences sur les fichiers fonctionnant en parallèle de la base de données. SQL Server ne peut pas gérer en même temps les conséquences en terme de merge sur des fichiers qui sont stockés sur des serveurs de fichiers distants (en accès TCP, FTP).
Je pense que vous n'avez pas compris et
Citation:
L'objectif principal est de s'affranchir des problématiques de latence qu'impose une connexion sur de grandes distances, un ping défavorable de 200ms nous pose problème pour assurer de bonnes performances dans le logiciel. D'où la solution de haute disponibilité consistant à avoir une base primaire en écriture sur un site et x bases secondaires en lecture seule disponibles sur les autres sites (Always on Availability Groups - groupes de disponibilité). Ceci permet de faire disparaître le problème de la latence sur plus de >80% des requêtes, car >80% des requêtes sont en lecture.
Votre latence va sans doute disparaître pour les lectures, mais vos lectures ne verrons que les données acquises ce qui risque de conduire à des problématiques plus grave encore...
Citation:
Pour les requêtes en écriture nous acceptons de payer le coût du ping au site lointain. La question que nous nous posons, c'est le prix de SQL Server Enterprise pour obtenir les groupes de disponiblités (10,000 $ à rajouter par rapport à SQL Server Standard). C'est peut-être non bloquant car nous allons adresser des multi-nationales qui ont les moyens. Mais nous commençons à nous demander s'il ne faudrait pas envisager en plus un autre système de réplication moins cher, en développant notre propre SQL Agent de réplication par exemple (une réplication basique des tables, strictement à l'identique, sans merge). Sachant qu'il faudra que cette réplication s'effectue rapidement, nous pouvons accepter un certain décalage de 1 minute dans la réplication, mais il faut pas que ça aille au delà, après ça deviendra trop pénalisant car les utilisateurs travaillent en collaboratif.
Le mode de réplication de fusion peut descendre jusqu'à "au fil de l'eau". mais cela n'est pas conseillé si vous avez beaucoup de trafic. Personnellement j'invite à y mettre 10 à 15 secondes.