Procédure : réduire le temps d'indisponibilité des bases de données mises en miroir lors de la mise à niveau d'instances de serveur
Lorsque de la mise à niveau d'instances de serveur de SQL Server 2005 vers SQL Server 2008, vous pouvez réduire le temps mort de chaque base de données mise en miroir à un seul basculement manuel en effectuant une mise à niveau séquentielle, également appelée mise à niveau propagée. Une mise à niveau propagée est un processus en plusieurs étapes qui, dans sa forme la plus simple, consiste à mettre à niveau l'instance de serveur qui agit actuellement en tant que serveur miroir dans une session de mise en miroir, puis à basculer manuellement la base de données mise en miroir, à mettre à niveau l'ancien serveur principal et à reprendre la mise en miroir. En pratique, le processus exact dépend du mode d'opération, du nombre et de la disposition de sessions de mise en miroir qui s'exécutent sur les instances de serveur que vous mettez à niveau.
[!REMARQUE]
Pour plus d'informations sur la façon d'effectuer une mise à niveau propagée pour installer un Service Pack ou un correctif logiciel, consultez Procédure : installer un Service Pack sur un système avec un temps mort minimal pour les bases de données mises en miroir.
Préparation recommandée (Meilleures pratiques)
Avant de commencer une mise à niveau propagée, nous recommandons d'effectuer les opérations suivantes :
Procédez à un essai de basculement manuel sur au moins une de vos sessions de mise en miroir :
[!REMARQUE]
Pour plus d'informations sur le fonctionnement du basculement manuel, consultez Basculement manuel.
Protégez vos données :
Effectuez une sauvegarde complète de chaque base de données principale :
Procédure : sauvegarder une base de données (SQL Server Management Studio).
Procédure : créer une sauvegarde complète de base de données (Transact-SQL)
Exécutez la commande DBCC CHECKDB sur chaque base de données principale.
Étapes d'une mise à niveau propagée
Les étapes spécifiques d'une mise à niveau propagée dépendent du mode d'opération de la configuration de mise en miroir. Toutefois, les étapes de base sont les mêmes.
[!REMARQUE]
Pour plus d'informations sur les modes d'opération, consultez Mise en miroir asynchrone de bases de données (mode hautes performances) et Mise en miroir synchrone de bases de données (mode Haute sécurité).
L'organigramme suivant illustre les étapes de base d'une mise à niveau propagée pour chaque mode d'opération. Les procédures correspondantes sont décrites après l'illustration.
Important
Une instance de serveur peut remplir différents rôles de mise en miroir (serveur principal, serveur miroir ou témoin) dans des sessions de mise en miroir simultanées. Dans ce cas, vous devez adapter le processus de mise à niveau propagée de base en conséquence. Pour plus d'informations, consultez Sessions de mise en miroir de bases de données.
Pour faire passer une session du mode Haute performance en mode Haute sécurité
Si une session de mise en miroir s'exécute en mode Haute performance, avant d'effectuer une mise à niveau propagée, convertissez le mode d'opération en mode Haute sécurité sans basculement automatique.
Important
Si le serveur miroir est géographiquement distant du serveur principal, une mise à niveau propagée peut être inappropriée.
Dans SQL Server Management Studio : attribuez la valeur Haute sécurité sans basculement automatique (synchrone) à l'option Mode d'opération à partir de la page Mise en miroir de la boîte de dialogue Propriétés de la base de données. Pour plus d'informations sur la façon d'accéder à cette page, consultez Procédure : démarrer l'Assistant Configuration de la sécurité de mise en miroir de bases de données (SQL Server Management Studio).
Dans Transact-SQL : attribuez la valeur FULL à la sécurité des transactions. Pour plus d'informations, consultez Procédure : modification de la sécurité des transactions dans une session de mise en miroir de bases de données (Transact-SQL)
[!REMARQUE]
Pour plus d'informations, consultez Paramètres Transact-SQL et modes d'opération de mise en miroir de bases de données.
Pour supprimer un témoin d'une session
Si une session de mise en miroir fait intervenir un témoin, nous vous recommandons de le supprimer avant d'effectuer une mise à niveau propagée. Sinon, lorsque l'instance de serveur miroir est mise à niveau, la disponibilité de la base de données dépend du témoin qui reste connecté à l'instance de serveur principal. Après avoir supprimé un témoin, vous pouvez le mettre à niveau à tout moment pendant le processus de mise à niveau propagée sans risquer un temps mort de la base de données.
[!REMARQUE]
Pour plus d'informations, consultez Quorum : effets d'un témoin sur la disponibilité de la base de données.
Pour effectuer la mise à niveau propagée
Pour réduire le temps mort, nous vous recommandons d'appliquer la procédure suivante : démarrez la mise à niveau propagée en mettant à jour tout serveur partenaire de mise en miroir qui fait actuellement office de serveur miroir dans toutes ses sessions de mise en miroir. Vous pourriez devoir mettre à jour plusieurs instances de serveur à ce stade.
[!REMARQUE]
Un témoin peut être mis à niveau à tout moment au cours du processus de mise à niveau propagée. Par exemple, si une instance de serveur est un serveur miroir dans la session 1 et un témoin dans la session 2, vous pouvez la mettre à niveau dès maintenant.
L'instance de serveur à mettre à niveau en premier dépend de la configuration actuelle de vos sessions de mise en miroir, à savoir :
Si une instance de serveur est déjà le serveur miroir dans toutes ses sessions de mise en miroir, mettez-la à niveau vers la nouvelle version.
Si toutes vos instances de serveur sont actuellement le serveur principal dans toutes les sessions de mise en miroir, sélectionnez une instance de serveur à mettre à niveau en premier. Puis, basculez manuellement chacune de ses bases de données principales et mettez à niveau cette instance de serveur.
Après sa mise à niveau, une instance de serveur réintègre automatiquement chacune de ses sessions de mise en miroir.
Attendez la synchronisation de chaque session de mise en miroir dont l'instance de serveur miroir vient d'être mise à niveau. Puis, connectez-vous à l'instance de serveur principal, et basculez manuellement la session. Lors du basculement, l'instance de serveur mise à niveau devient le serveur principal pour cette session, et l'ancien serveur principal devient le serveur miroir.
Le but de cette étape est de permettre à une autre instance de serveur de devenir le serveur miroir dans chaque session de mise en miroir dans laquelle elle est un serveur partenaire.
Restrictions après le basculement sur une instance de serveur mise à niveau.
Après un basculement à partir d'une instance de serveur SQL Server 2005 vers une instance de serveur SQL Server 2008, la session de base de donnée est interrompue. Elle ne peut pas reprendre tant que l'autre serveur partenaire n'a pas été mis à niveau. Toutefois, le serveur principal accepte encore des connexions et autorise l'accès aux données et des modifications sur la base de données principale.
[!REMARQUE]
L'établissement d'une nouvelle session de mise en miroir requiert que toutes les instances de serveur exécutent la même version de SQL Server.
Après avoir effectué le basculement, nous vous recommandons d'exécuter la commande DBCC CHECKDB sur la base de données principale.
Mettez à niveau chaque instance de serveur qui est désormais le serveur miroir dans toutes les sessions de mise en miroir dans lesquelles elle est un serveur partenaire. Vous pourriez devoir mettre à jour plusieurs serveurs à ce stade.
Important
Dans une configuration de mise en miroir complexe, certaines instances de serveur pourraient encore être le serveur principal d'origine dans une ou plusieurs sessions de mise en miroir. Répétez les étapes 2 à 4 pour ces instances de serveur jusqu'à ce que toutes les instances concernées soient mises à niveau.
Reprenez la session de mise en miroir.
[!REMARQUE]
Le basculement automatique ne fonctionne pas tant que le témoin n'a pas été mis à niveau et de nouveau ajouté à la session de mise en miroir.
Mettez à niveau toute instance de serveur restante qui est le témoin dans toutes ses sessions de mise en miroir. Une fois qu'un témoin mis à niveau a réintégré une session de mise en miroir, il est de nouveau possible d'effectuer un basculement automatique. Vous pourriez devoir mettre à jour plusieurs serveurs à ce stade.
Pour rétablir le mode Haute performance d'une session
Rétablissez éventuellement le mode Haute performance en appliquant l'une des méthodes suivantes :
Dans SQL Server Management Studio : affectez la valeur Haute performance (asynchrone) à l'option Mode d'opération à partir de la page Mise en miroir de la boîte de dialogue Propriétés de la base de données.
Dans Transact-SQL : utilisez l'instruction ALTER DATABASE pour désactiver la sécurité des transactions.
Pour ajouter de nouveau un témoin dans une session de mise en miroir
En mode Haute sécurité, rétablissez éventuellement le témoin sur chaque session de mise en miroir.
Pour réintégrer un témoin
Voir aussi