2010-05-08 14 views
1

J'essaye de réduire le journal d'une base de données ET définir la récupération au simple, mais toujours il y a une erreur, quoi que j'essaie.problèmes de gestion de la taille du journal SQL Server 2008

USE 4_o5; 
GO 
ALTER DATABASE 4_o5 
SET RECOVERY SIMPLE; 
GO 
DBCC SHRINKFILE (4_o5_log, 10); 
GO 

la sortie de sp_helpfile dit que le fichier journal est situé sous (solution hébergée):

I:\dataroot\4_o5_log.LDF 

s'il vous plaît me aider à effectuer cette opération que le fichier journal a grande lors de l'importation d'un grand nombre de données et maintenant cette information n'est plus nécessaire, avoir plusieurs (nombreuses) sauvegardes depuis lors.

le message d'erreur exacte lors de l'exécution de la requête ci-dessus est:

incorrect syntax near '4'. 
RECOVERY is not a recognized SET option. 
incorrect syntax near _5_log'. 

J'utilise Visual Studio 2010 (également SQL Server Express installé localement, SQL Server 2008 appropriée installée au fournisseur (partagé))

tHNX beaucoup

Répondre

2

Il suffit de faire

USE [4_o5] --need brackets with this DB name, as marc_s commented 
GO 
DBCC SHRINKFILE (2, 10) 

DBCC prend également le numéro d'identification de fichier interne et je vois que vous rencontrez des problèmes séparant les noms de fichiers logiques et physiques. .. ce qui me conduit à supposer que vous n'avez pas plusieurs fichiers journaux ou NDF etc et le fichier journal sera toujours être 2

Cependant, pourquoi faire tu veux rétrécir quand même?

Pour modifier le modèle de récupération: ALTER DATABASE [4_o5] SET RECOVERY SIMPLE

+0

ouais, shrink travaillé avec: ** USE [4_o5]; DBCC SHRINKFILE (2, 10) ** alors merci.pouvez-vous également peut-être s'il vous plaît conseiller sur la façon de définir la journalisation à simple. La raison est liée à la façon dont le fournisseur alloue l'espace pour la base de données, car il peut atteindre la limite d'expansion disponible - il était très proche. parler avec eux pour nous améliorer bientôt. juste eu à faire face à ce premier. – b0x0rz

+1

l'USE ne fonctionnera pas si le nom de la base de données commence par une valeur numérique - vous devez utiliser 'USE [4_o5]' –

+0

@marc_s, @ b0x0rz: réponse mise à jour – gbn

1

Essayez ceci:

USE [4_o5]; 
GO 
ALTER DATABASE [4_o5] SET RECOVERY SIMPLE; 
GO 
DBCC SHRINKFILE ([4_o5_log], 10); 
GO 

Le nom de votre base de données commençant par une valeur numérique est un peu inhabituel - essayez de le mettre entre crochets.

MISE À JOUR: pour le DBCC SHRINKFILE, vous avez besoin du nom logique du fichier journal - c'est la propriété name de l'appel sp_helpfile. Et vous avez aussi besoin de le mettre entre crochets:

USE [4_o5] 
GO 
DBCC SHRINKFILE ([4_o5_log], 10) 
GO 
+0

oui, exigence de fournisseur pour le début numérique. – b0x0rz

+0

maintenant je reçois une erreur légèrement modifiée: ** syntaxe incorrecte près de '4'. syntaxe incorrecte près de 'GO'. syntaxe incorrecte près de 'GO'. ** – b0x0rz

+0

@ b0x0rz: désolé, vous avez également besoin de crochets autour du nom de la base de données dans l'instruction USE. –