web-dev-qa-db-fra.com

Le groupe de fichiers principal est complet SQL Server 2008

J'ai une grande table (~ 50 millions de lignes) J'essaie d'insérer en bloc dans SQL Server et j'obtiens l'erreur:

Impossible d'allouer de l'espace pour l'objet 'myDB' dans la base de données 'I 3 Stroke' car le groupe de fichiers 'PRIMARY' est plein. Créez de l'espace disque en supprimant les fichiers inutiles, en supprimant des objets dans le groupe de fichiers, en ajoutant des fichiers supplémentaires au groupe de fichiers, ou en activant la croissance automatique pour les fichiers existants dans le groupe de fichiers.

Il existe une autre table dans la base de données avec environ 25 millions de lignes. Cette base de données ne sera utilisée que sur une seule machine, et elle sera conçue pour exploiter des données qui existent déjà et elle ne pourra en aucun cas dépasser sa taille actuelle.

Dans une situation comme celle-ci, quelle est la meilleure façon de résoudre ce problème afin que SQL Server ne se plaigne pas? La solution importera-t-elle que cette base de données ne soit pas exposée à plusieurs utilisateurs?

14
wootscootinboogie

Suivez ces étapes:

  1. Identifiez la quantité d'espace que vous souhaitez ajouter à l'allocation de stockage de base de données:
    1. Ouvrez l'Explorateur Windows
    2. Faites un clic droit sur le lecteur de disque sur lequel vos fichiers de base de données existent
    3. Sélectionnez les propriétés
    4. Vérifiez l'espace disque disponible et décidez de la quantité que vous souhaitez allouer à la base de données
      (Suggestion: Laissez au moins 20% d'espace disque libre si vous hébergez les fichiers de base de données sur le même disque que votre système d'exploitation {Sous-suggestion: Ne faites pas cela! Reconstruisez/migrez vos données vers son propre disque; vous vous brouillez sur les E/S.} Et laissez au moins 8% pour un disque de données pur; ces chiffres sont des estimations de ce que je pense que les suggestions de pourcentage sont. )
  2. Mettez à jour l'allocation de stockage pour la base de données.
    1. Ouvrir SSMS
    2. Cliquez sur l'onglet "Affichage"
    3. Sélectionnez "Explorateur d'objets"
    4. Développez le dossier "Bases de données"
    5. Cliquez avec le bouton droit sur la base de données dans laquelle vous essayez d'insérer en bloc
    6. Sélectionnez "Propriétés"
    7. Cliquez sur l'option de liste "Fichiers" dans la zone "Sélectionner une page" à gauche de la fenêtre des propriétés
    8. Recherchez la ligne "Fichiers de base de données" avec le "Groupe de fichiers" comme "PRIMAIRE"
    9. Ajoutez le nombre de mégaoctets que vous souhaitez ajouter à l'allocation de base de données au nombre "Taille initiale (Mo)"
    10. Appuyez sur "OK"
      ( Vous pouvez également prendre en compte vos valeurs de "croissance automatique" pendant que vous êtes ici. )

Vous voulez donner à votre base de données autant d'allocation de stockage que vous pouvez vous le permettre. S'il manque d'espace, vous recevrez cette erreur sans croissance automatique et si la croissance automatique est activée, vous obtiendrez un impact sur les performances à chaque fois qu'il doit croître automatiquement. Si vous manquez d'espace disque, c'est votre réponse et vous avez besoin d'un disque plus gros.

16
Eric J. Price

Express Edition 2014 a une limite de 10 Go par base de données. Si la croissance automatique d'une base de données atteint ce point, SQL Server génère le message d'erreur (obscur?), Sans mentionner la limite de licence. Il peut y avoir beaucoup d'espace disque mais vous voyez toujours ce message.

Solution si la conception permet: d'utiliser plusieurs bases de données sous cette licence.

12
RickC

Les bases de données manquent souvent d'espace lorsqu'elles sont en mode de récupération complète. Si vous n'effectuez pas de transactions et que les sauvegardes manuelles sont suffisantes, vous pouvez changer le mode de récupération en simple.

Vous devrez peut-être également récupérer de l'espace à partir du fichier journal. . . il peut être vidé mais utilise encore de l'espace.

Cependant, vous feriez mieux de poser cette question aux administrateurs de base de données qui peuvent proposer plus de solutions.

1
Gordon Linoff

D'après mon expérience, ce message se produit lorsque le fichier principal (.mdf) n'a pas d'espace pour enregistrer les métadonnées de la base de données. Ce fichier comprend les tables système et ils y enregistrent uniquement leurs données.

Faites de l'espace dans le fichier et les commandes fonctionnent à nouveau. C'est tout, profitez

1
FcoJavier99

Pour résoudre le groupe de fichiers principal est une erreur complète accédez à la propriété Base de données -> Fichiers -> Fichiers de base de données -> Groupe de fichiers "PRIMARY" -> Croissance automatique/Taille maximale et changez le groupe de fichiers Database_Name en mégaoctets à 1, vérifiez la taille maximale du fichier Illimité puis Ok.

0
Dimitilde