2009-01-20 10 views
2

J'ai une base de données qui a été restaurée depuis une instance SQL 2000 vers une instance SQL 2005 il y a quelque temps. L'instance SQL 2000 a défini d'anciennes recherches de texte intégral inutilisées.Comment supprimer des fichiers hors connexion d'une base de données SQL Server 2005

Il semble que lorsque le fichier a été restauré, les recherches en texte intégral n'ont pas été restaurées mais simplement supprimées. Cela a laissé la base de données dans un état amusant, avec les fichiers FTS toujours associés à la base de données mais les fichiers de la base de données sont répertoriés comme HORS LIGNE. Ce qui, il s'avère, empêche la base de données d'avoir une sauvegarde complète. Donc, est-ce que quelqu'un sait comment supprimer les fichiers de la base de données? ALTER DATABASE REMOVE FILE retours

Msg 5009, niveau 16, état 2, ligne 1 Un ou plusieurs fichiers répertoriés dans la déclaration n'a pu être trouvée ou n'a pas pu être initialisés.

La commande de sauvegarde réelle lance l'une des erreurs suivantes pour chaque fichier qui n'existe pas:

Msg 9987, niveau 16, état 1, ligne 1 La sauvegarde du catalogue de texte intégral '' n'est pas autorisé car il n'est pas en ligne. Vérifiez le fichier journal des erreurs pour la raison que le catalogue de texte intégral est devenu hors ligne et le mettre en ligne. Soit BACKUP peut être exécuté en utilisant les clauses FILEGROUP ou FILE pour restreindre la sélection afin d'inclure uniquement les données en ligne.

Quelqu'un sait-il comment résoudre ce problème?

Répondre

4

La réponse à cette énigme s'avère très simple, du moins si vous ne vous souciez pas de vos indices FTS, ce que je ne fais pas.

EXEC master.dbo.sp_detach_db @dbname = N'dbname', @keepfulltextindexfile=N'false' 

La clé ici est le deuxième drapeau, @keepfulltextindexfile, qui par défaut à true. En définissant cela sur false, puis en rattachant la base de données, toutes les données FTS sont supprimées et les sauvegardes peuvent fonctionner comme elles le devraient.

0

Vous devriez avoir repeuplé vos catalogues de texte intégral. Par défaut, SQL Server 2005 ne le fait pas pour améliorer le processus d'installation.

+0

Doit avoir un point discutable. Cela s'est passé il y a environ 2 ans et les fichiers sont maintenant bien et hors ligne. SQL Server ne sait même pas que les catalogues de texte intégral existent, ce lien semble avoir été coupé, mais la base de données pense toujours que le fichier physique doit être présent. – Josef

2

Je fixe la question du rapport comme suit

  1. Mettre la base de données en mode mono-utilisateur.
  2. Détachez la base de données. Mais avant de cliquer sur OK pour le détacher, UNCHECK conserve les catalogues de texte intégral.
  3. Rattacher la base de données
Questions connexes