Ce message rejoins ma série permettant d’optimiser les performances pour un moteur de base de données, mais pour une question spécifique que vous pouvez être amené à rencontrer.
En effet, bien que le moteur relation SQL Server 2000 soit totalement hors support depuis plusieurs années (il a plus de 13 ans maintenant), il existe encore de nombreuses instances actives dans nos réseaux.
Pour mon cas, ce sont les anciennes fermes SharePoint qui possèdent encore ces moteurs, de ce fait, les projets de changement permettent de revoir cela :
- Migration de ferme
- Remplacement matériel (car passage en hors support)
- Passage de physique au virtuel
- …
Tous ces cas, permettent de réfléchir autour de la partie spécifique à SQL Server, voyons comment procéder simplement. Ce message n’est pas destiné au DBA chevronné mais plus aux administrateurs SharePoint qui se retrouvent un peu seul dans ce travail.
Cette phase n’a rien de complexe, mais il convient de voir les étapes simples.
Processus de Backup sur le moteur SQL Server 2000
Il faut sélectionner la sauvegarde dans le menu de l’outil SQL Server 2000 :
On choisit “DataBase - Complete” et le chemin pour la sauvegarde
Dans les options, il faut sélectionner la vérification du backup en fin, puis on clique sur OK pour lancer la sauvegarde
Au bout d’un teps qui dépend de votre solution, la sauvegarde et la vérification du fichier se termine avec succès.
Mise de la base d’origine en Read-Only
Cette étape n’est pas obligatoire, mais permet simplement d’éviter de se retrouver avec la base d’origine modifiée alors que l’on transfere l’0ensemble dans un nouvel environnement.
Pour cela, nous allons dans un premier temps couper toutes les connextions existantes encore sur la base de données, via le menu “Detach Database”
On clicke ensuite sur “Clear” pour couper les connexions
Après deux alertes que l’on confirme et un temps dépendant de votre solution, Les connexions sont mises à 0, ce qui nous permet d’aller changer le mode. Il faut annuler cet écran pour aller dans les propriétés
Pour cela, il faut aller dans les propriétés de la base de données
Dans l’onglet “Options”, on trouve une ligne “Read-only” qu’il faut cocher et cliquer sur OK
A la fin de ce transfert, l’ensemble des bases sont en mode “Read-Only” :
Chargement sur le moteur SQL Server 2008 R2
Le chargement de la base en question est un simple RESTORE, soit sur une base de données existante, soit sur une nouvelle base de données. Il faut donc copier (ou déplacer) le fichier de backup sur le nouveau serveur, puis lancer une restoration via l’outil de gestion “SQL Server Management Studio”), en se connectant sur le serveur SQL Server, puis bouton droit sur “DataBases” (sous le nom du serveur)
Il faut ensuite aller chercher le fichier de Backup depuis le menu “From Device”
Il faut cocher la ligne de la base à restaurer (dans notre cas, il n’y a qu’une sauvegarde dans ce fichier BAK), puis aller dans les Options de notre restauration, pour fixer les paramètres
Dans ces options, il faut cocher la première ligne et contrôler le “Path” des fichiers de la base de données (Fichier de données et fichiers de logs), il arrive que ces valeurs affichées soient celles du serveur d’origine et non celle applicable dans notre nouveau serveur (particulièrement si vous avez séparé les logs de transaction des données). Il est alors possible de cliquer sur OK pour lancer la restauration.
Au bout d’un certain temps qui dépend de votre configuration, vous aurez un message de succès vous confirmant que les données sont bien restaurées sur votre nouveau serveur.
Cette base est alors maintenant gérée par le nouveau moteur SQL, mais continue à fonctionner avec des options qui ne sont plus du tout adaptées à SQL Server 2008 R2.
Modification des paramètres de la base
Il faut donc aller dans les options de notre base de données, via le menu contextuel sur la base (bouton droit), en choissant “Properties”
Accroissement Automatique des fichiers
Il faut tout d’abord cliquer dans les options des fichiers de la base afin de configurer correctement l’accroissement automatique de ceux-ci. Les valeurs par défaut de ces fichiers sont rarement corrects, et il convient de les modifier.
Ainsi, la croissance par bloc de 10% de la taille en cours est toujours une mauvaise chose, que vos fichiers soient gros ou petit :
- 10% de 10 MB = 1 MB : Cela va exploser la fragmentation sur vos disques
- 10% de 100 GB = 10 GB : Cela peut exploser vos disques
Ainsi, pour une base de quelques GB, je prèfère fixer un accroissement par bloc fixe de 1000 GB, ainsi le temps d’allocation est raisonnable.
Attention:
Même si je sais que certains sont partisant de brider les base dans la taille maximale possible, évitez cela, car c’est toujours quand vous ne serez pas disponible que cela se présentera (loi de Pareto oblige).
Options
Il faut maintenant aller dans les options de la base de données, car cette partie est définie sur des options de SQL Server 2000 qui sont maintenant obsolètes. Il faut donc changer le mode de compatibilité pour appliquer le mode SQL Server 2008 (et non SQL Server 2000).
Attention:
Ce changement doit tout de même être validé avec l’éditeur de la solution utilisant cette base de données. Même si c’est relativement rare, il existe des applications qui utilisent des options ne supportant pas ce changement. IUl est donc possible de conserver le niveau de compatibilité 2000, en cas de besoin spécifique.
Toujours dans cet écran, mais plus bas, se trouve l’option de vérification des “Page” qui est définie "avec une valeur obsolète depuis SQL Server 2000 “TORN_PAGE_DETECTION”. Il faut absolument prendre l’option “CHECKSUM”.
On valide ces changements par OK.
Il ne reste plus qu’à modifier les paramètres au niveau de l’application utilisant cette base de données pour valider ce transfert.
Conclusion
SQL Server 2000 a un gros avantage, qui est aujourd’hui une de ses principales faiblesses, sa stabilité. Ainsi, un grand nombre d’organisations ont décidé, consciemment ou non, de conserver les solutions utilisant ce moteur afin de ne pas ajouter de risque dans le fonctionnement de ces applications.
C’est un parti pris qui se défend jusqu’une certaine limite. Plus de 13 ans après sa livraison et 4 ans après la fin de son support, ce temps est arrivé. La migration des serveurs faisant fonctionner ce moteur est, selon moi, à placer dans les urgences.
Romelard Fabrice [MVP]
Commentaires
Enregistrer un commentaire