Nous avions vu dans un précédent message comment supprimer une collection de sites orpheline, c’est-à-dire une collection de sites qui est présente dans la base de données de contenu mais pas dans la base de données de configuration :
Pour faire simple, la collection de site existe bien dans la base de contenu, mais n’est pas référencée dans le “SiteMap” et donc pas accessible par les utilisateurs.
Il existe aussi le cas inverse, c’est à dire une collection de site qui est référencée dans la base de données de configuration, mais qui n’existe plus dans la base de données de contenu. Cela arrive généralement quand le processus de suppression n’a pas été jusqu’au bout de son travail.
Le problème dans ce type de situation est qu’il est alors impossible de recréer une collection de sites avec la même URL, on obtient le message tel que le suivant :
Error creating site Collection: Un site existe déjà à l'adresse http://MySharePointFarm/sites/MySiteCollection. Supprimez ce site avant de créer un site avec la même URL, choisissez une autre URL ou créez une inclusion dans le chemin spécifié.
En utilisant la “centrale administration” pour visionner la liste des collections de sites, on trouve bien la collection en erreur, mais on ne voit aucune information sur celle-ci :
Techniquement, la collection est uniquement présente dans la base de données de configuration de votre ferme, il convient de la nettoyer.
Or il est impossible d’utiliser la commande STSADM –O DELETESITE pour cela, ni l’interface d’administration, on le voit dans la capture suivante :
Il existe deux solutions pour corriger ce problème.
Solution N°1
- Supprimer la base de contenu de la ferme, puis la rajouter.
Cela va forcer le système à lister réellement toutes les collections de sites présentes dans la base de données de contenu.
Cette solution est effectivement utilisable, mais difficilement en pleine journée d’utilisation, car elle crée un temps de non fonctionnement.
Solution N°2
- Utiliser la procédure stockée de suppression de l’Item dans la table SiteMap
Cette solution revient à chercher dans la base de configuration de la ferme la référence à cette collection de sites pour la supprimer manuellement via une Procédure Stockée interne à la base de configuration.
Dans un premier temps, il faut trouver l’Item en cause, via la requête à exécuter sur le serveur SQL :
- SELECT Id FROM dbo.SiteMap WHERE Path Like '%sites/mySiteCollectio%'
On obtient alors le GUID de la collection en erreur dans la base de données de configuration. On peut alors jouer la procédure stockée suivante avec la valeur du GUID obtenue précédemment :
- EXEC [dbo].[proc_dropSiteMap] '4E316FCB-65BB-4ED5-A0A9-9DF856DC942F'
Cette commande s’exécute avec succès et la collection de sites n’apparaît plus dans la liste.
On peut donc recréer celle-ci sans risque :
Il faut tout de même exécuter ces commandes avec une grande prudence.
Romelard Fabrice [MVP]
Commentaires
Enregistrer un commentaire