2008-09-16 6 views
9

Donc, notre SQL Server 2000 me donne l'erreur: "Le fichier journal de la base de données est plein Sauvegardez le journal des transactions de la base de données pour libérer de l'espace."Le fichier journal de la base de données est plein

Comment puis-je corriger cela sans supprimer le journal comme d'autres sites l'ont mentionné?

Informations supplémentaires: Activer AutoGrowth est activé en augmentant de 10% et est limité à 40 Mo.

Répondre

4

Scott, comme vous l'aurez deviné: tronquer le journal est un mauvais coup si vous vous souciez de vos données.

Les vidéos gratuites suivantes vous aideront à voir exactement ce qui se passe et vous montreront comment résoudre le problème sans tronquer les journaux. (Ces vidéos expliquent également pourquoi c'est un bidouille dangereux et pourquoi vous avez raison de chercher une autre solution.)

Ensemble, ces vidéos vous aider comprendre exactement ce qui se passe et vous montrera si vous voulez passer à la récupération SIMPLE, ou chercher à changer réellement vos routines de sauvegarde. Il y a aussi des vidéos pratiques qui vous montreront exactement comment configurer vos sauvegardes pour garantir la disponibilité tout en gérant la taille et la croissance des fichiers journaux.

-1

Renommez-le. par exemple:
old-log-16-09-08.log

Ensuite, le serveur SQL peut en utiliser un nouveau vide.

0

Eh bien, vous pouvez prendre une copie du journal des transactions, puis tronquer le fichier journal, qui est ce que le message d'erreur suggère.

Si l'espace disque est plein et que vous ne pouvez pas copier le journal sur un autre ordinateur via le réseau, connectez un lecteur via USB et copiez-le de cette façon.

2

Je ne pense pas que renommer ou déplacer le fichier journal fonctionnera tant que la base de données est en ligne.

La chose la plus simple à faire, IMO, est d'ouvrir les propriétés de la base de données et de passer au modèle de récupération simple. puis rétrécissez la base de données, puis revenez et réglez la base de données sur le modèle de récupération complète (ou le modèle dont vous avez besoin). La modification du mode de consignation oblige SQL Server à définir un point de reprise dans la base de données, après quoi la réduction de la base de données libère l'espace excédentaire.

+1

Une terminologie plus précise peut être "modèle de récupération simple". – SeaDrive

0

Vous avez la réponse à votre question: Sauvegardez le journal, puis il sera réduit. Faire un plan de maintenance pour sauvegarder régulièrement la base de données et ne pas oublier de sélectionner "Sauvegarder le journal des transactions". De cette façon, vous le garderez petit.

17

Pour tout videz-:

backup log <dbname> with truncate_only 

Pour enregistrer quelque part:

backup log <dbname> to disk='c:\somefile.bak' 

Si vous avez vraiment pas besoin de l'histoire des transactions, essayez de régler le mode de récupération de base de données simple.

+5

L'option TRUNCATE_ONLY sur la sauvegarde du journal est interrompue dans SQL 2008. – Sean

0

Si c'est un non environnement de production utilisation

dump tran <db_name> with no_log; 

Une fois cette opération terminée réduire le fichier journal pour libérer de l'espace disque. Enfin passer le mode de récupération de base de données à simple.

+0

Cette ancienne syntaxe est maintenant obsolète. BACKUP LOG est la méthode préférée. –

1

Mon ami qui fait face à cette erreur dans le passé recommande:

Essayez

  • Sauvegarde de la DB. Le plan de maintenance inclut la troncature de ces fichiers.
  • Essayez également de changer le « mode de récupération » pour la DB à simple (au lieu de pleine par exemple)

Cause: Le journal des transactions se gonfle en raison d'événements étant enregistrés (Peut-être que vous avez un certain nombre de transactions échouent et sont annulées .. ou un pic soudain dans les transactions sur le serveur)

0

Dès que vous effectuez une sauvegarde complète de la base de données et que la base de données n'utilise pas le modèle de récupération simple, SQL Server conserve un enregistrement complet de toutes les transactions jamais effectuées sur la base de données. Il le fait de sorte qu'en cas d'échec catastrophique où vous perdez le fichier de données, vous pouvez restaurer le point de défaillance en sauvegardant le journal et, une fois que vous avez restauré une ancienne sauvegarde de données, restaurer le journal pour rejouer le fichier perdu transactions.

Pour éviter cette accumulation, vous devez sauvegarder le journal des transactions. Ou, vous pouvez casser la chaîne au point actuel en utilisant les options TRUNCATE_ONLY ou NO_LOG de BACKUP LOG.

Si vous n'avez pas besoin de cette fonctionnalité, définissez le modèle de récupération sur Simple.

2

éther sauvegarder vos journaux de base de données régulièrement si vous avez besoin de récupérer à la minute ou faire d'autres choses amusantes comme l'envoi de journaux à l'avenir, ou définir la base de données en mode simple et réduire le fichier de données. NE PAS copier, renommer ou supprimer le fichier .ldf cela va casser votre base de données et après que vous en ayez récupéré, vous pourriez avoir des données dans un état incohérent le rendant invalide.

0

Mon cher ami, il est très important pour un DBA de vérifier son fichier journal assez fréquemment. Parce que si vous n'y accordez pas beaucoup d'attention un jour, cela va donner cette erreur. A cette fin, vous devez périodiquement reprendre la copie afin que le fichier de logs ne soit pas confronté à une telle erreur.Par ailleurs, les suggestions ci-dessus sont tout à fait exactes.

Questions connexes