Définition du problème
Notre serveur de base de données doit être transféré vers un autre centre de données. Il fonctionne sur Microsoft SQL Server 2012 Enterprise (64 bits) et contient deux bases de données d'environ 2 To et 1 To.
Avoir peu ou pas de temps d'arrêt pour cela serait idéal.
Charge de travail
Ces bases de données sont utilisées pour un site Web .NET et sont constamment mises à jour.
Ne pas l'avoir disponible le week-end serait cependant acceptable. La base de données actuellement utilisée resterait la seule utilisée jusqu'à ce que vous passiez à la nouvelle.
Ce changement serait idéalement effectué simplement en modifiant les entrées DNS pour pointer vers le nouveau serveur de base de données tout en s'assurant que la base de données n'est pas mise à jour.
De plus, le temps pris par cette opération n'a pas vraiment d'importance tant que le passage d'un serveur à l'autre (temps d'arrêt) est maintenu faible.
Approches envisagées
Sauvegarde et restauration
Cela a été fait dans le passé mais a impliqué un temps d'arrêt élevé même si cela a été fait via un réseau interne, donc plus efficacement que via Internet
Expédition des journaux
Pour autant que je comprends, cette approche minimiserait les temps d'arrêt en configurant un maître / esclave et en transférant une copie exacte de la base de données maître à son esclave en lecture seule. Comme mentionné ci-dessus, aucun accès à l'esclave ne serait nécessaire et nous avons juste besoin d'un moyen d'avoir une réplique de la base de données maître sans corruption de données.
Il semble également être assez efficace en termes d'utilisation des ressources et n'affecterait pas trop les performances du maître.
Je peux me tromper sur cette approche alors n'hésitez pas à me corriger.
Mise en miroir de bases de données
Je ne suis pas trop au courant de cette approche mais cela semble être une option valable. Il n'est pas nécessaire d'avoir une synchronisation en temps réel et les performances du maître sont très importantes, donc l'asynchrone serait la voie à suivre si cette approche était choisie.
Autres options?
Ce serveur fonctionne directement sur du matériel nu, donc les solutions de niveau inférieur ne sont malheureusement pas une option. Peut-être existe-t-il une meilleure façon de procéder?
Contraintes
Comme décrit, ces bases de données sont assez grandes au point qu'elles sont difficiles à maintenir, mais c'est un autre problème.
Les versions de SQL Server seront les mêmes (Microsoft SQL Server 2012 Enterprise 64 bits).
Il devra être transféré sur le réseau entre deux centres de données, donc très probablement sur Internet. Avoir des disques envoyés d'un site à l'autre pour une synchronisation initiale n'est malheureusement pas une option. Il serait idéal d'avoir une sorte de sécurité pour le transfert, mais nous ferons de notre mieux.
Cela devrait donner un assez bon aperçu de nos besoins pour cette tâche et j'espère que certains d'entre vous ont dû faire face à cette situation auparavant.