Si une base de données est détachée d'une instance de manière permanente, y a-t-il des tâches de nettoyage à effectuer?
10
Si une base de données est détachée d'une instance de manière permanente, y a-t-il des tâches de nettoyage à effectuer?
Réponses:
Si vous détachez une base de données d'une instance, vous devrez effectuer une suppression du fichier au niveau du système d'exploitation. L'approche la plus sûre consiste à supprimer la base de données à la place.
Ce que je suggère, c'est de faire une sauvegarde finale de la base de données après l'avoir mise en mode lecture seule (car cela garantira qu'aucune activité ne se produit pendant la sauvegarde), après quoi la supprimer de votre système au moyen d'une commande Drop Database .
L'ensemble complet des commandes ressemblerait à ce qui suit:
Après cela, vous voudrez rechercher tous les travaux qui ont exécuté des scripts sur la base de données. Je vous suggère d'attendre pour voir ce qui échoue (après quoi vous pouvez créer un script / supprimer le travail) car il existe de nombreuses façons qu'un travail peut référencer une base de données (qui ne sont pas toutes faciles à identifier).
Enfin, vous souhaiterez supprimer tous les utilisateurs de l'instance qui n'avaient accès qu'à cette base de données. Ce script devrait identifier qui sont ces utilisateurs, bien que la version de Max soit beaucoup plus propre (je n'ai réalisé qu'il a posté une approche qu'après avoir modifié ma réponse pour l'inclure):
la source
J'ai surévalué la réponse de John; Je voudrais juste ajouter quelques détails sur d'autres éléments que vous voudrez peut-être nettoyer.
Les tâches et les alertes de l'Agent SQL Server peuvent référencer la base de données. Les nettoyer empêchera de signaler des erreurs inutiles.
Supprimez toutes les connexions créées spécifiquement pour la base de données. Le T-SQL suivant identifiera les éventuelles connexions candidates que vous pourriez étudier pour voir si elles sont utilisées. Le code identifie les connexions qui ne sont référencées par aucune base de données.
Des périphériques de sauvegarde peuvent exister pour cette base de données. Bien qu'il ne soit pas strictement nécessaire de les supprimer, s'ils ne sont pas utilisés, ils devraient permettre d'éliminer toute confusion future potentielle.
Les déclencheurs au niveau du serveur peuvent référencer la base de données.
Recherchez les plans de maintenance qui font référence à la base de données - ceux-ci échoueront s'ils ne sont pas mis à jour pour supprimer la base de données manquante.
la source
Tous les points majeurs ont déjà été traités. Voici mes 2 cents:
Le détachement d'une base de données n'est jamais une solution permanente car il était destiné à être utilisé pour déplacer les fichiers de base de données au sein du serveur ou vers un autre serveur. La suppression définitive d'une base de données peut être effectuée par l'option Supprimer dans SSMS ou la commande DROP database comme mentionné ci-dessus.
Habituellement, les bases de données qui sont intentionnellement gardées hors ligne et continuent de générer des alertes sont celles que nous détacherons et conserverons jusqu'à ce qu'elles puissent être définitivement supprimées (Supprimé).
Tâche préalable au détachement: exécutez
sp_helpdb dbname
pour connaître les emplacements des fichiers.Tâches de nettoyage:
Outre les connexions, les travaux d'agent, les déclencheurs et les points déjà mentionnés par Max, ces 2 peuvent également être examinés.
la source