Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Administration
Administration Forum d'entraide sur l'administration du dataserver, via SSM ou ligne de commande, les tables système, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/07/2011, 11h53   #1
Membre habitué
 
Luis
Inscription : avril 2006
Messages : 436
Détails du profil
Informations personnelles :
Nom : Luis

Informations forums :
Inscription : avril 2006
Messages : 436
Points : 119
Points : 119
Par défaut erreur 9002 pendant backup

Bonjour a tous,

(SQL serveur 2005)

Lorsque j'execute cette commande:

Code :
BACKUP DATABASE [maBase] TO DISK = 'S:\naBase.bak' WITH NOFORMAT, INIT, SKIP, NOREWIND, NOUNLOAD
J'obtient cette erreur: (c'est traduit de l'espagnol avec google traductor)

Code :
1
2
3
4
5
6
7
8
9
10
11
Impossible de supprimer le "différentiel de base de données" du bitmap maBase
 avec l'erreur 9002. En conséquence, le bitmap différentielle ou journalisé en bloc
 surestime l'ampleur du changement qui se produira
 la sauvegarde différentielle suivante ou d'inscription.
 Cette différence peut ralentir les opérations de secours après avoir
 différentielle ou d'inscription et avoir les jeux de sauvegarde sont plus grandes que nécessaire.
La cause habituelle de cette erreur est le manque de ressources.
Enquêter sur l'erreur et résoudre la cause.
Si l'erreur s'est produite dans une sauvegarde des données
envisager d'utiliser une sauvegarde de données pour créer
une nouvelle base pour une sauvegarde différentielle supplémentaires
Je ne sais pas quoi faire.

J'ai lancé cette requete:

Code :
SELECT name, physical_name, size/128, case max_size when '-1' then max_size else max_size/128 end FROM ePO4_ATC-ANTIVIRUS.sys.database_files
mais j'ai une erreur :
Code :
Sintaxis incorrecta cerca de '-'.
D'avance merci si quelqu'un sait comment resoudre ce probleme.
ldiaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 13h55   #2
Membre chevronné
 
David BAFFALEUF
Inscription : février 2008
Messages : 612
Détails du profil
Informations personnelles :
Nom : David BAFFALEUF
Localisation : France

Informations forums :
Inscription : février 2008
Messages : 612
Points : 746
Points : 746
Merci de poster le résultat d'un dbcc sqlperf(logspace) + le contenu de l'errorlog (si trop gros mettre en PJ) merci,

max_size est un int, essayer sans simple quotes.
__________________
David B.
dbaffaleuf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 14h12   #3
Membre habitué
 
Luis
Inscription : avril 2006
Messages : 436
Détails du profil
Informations personnelles :
Nom : Luis

Informations forums :
Inscription : avril 2006
Messages : 436
Points : 119
Points : 119
Bonjour

Code :
1
2
name                     log size    log space used
ePO4_ATC-ANTIVIRUS	175,9922	100,0044
je dois creer un autre fichier de log?
ou agrandir le current?

le contenu de l'errorlog, je sais pas ou le trouver.
D'avance merci
ldiaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 16h24   #4
Membre chevronné
 
David BAFFALEUF
Inscription : février 2008
Messages : 612
Détails du profil
Informations personnelles :
Nom : David BAFFALEUF
Localisation : France

Informations forums :
Inscription : février 2008
Messages : 612
Points : 746
Points : 746
Pour l'errorlog:

il faudrait aussi le retour de

Code :
SELECT databasepropertyex('ePO4_ATC-ANTIVIRUS','recovery')
Et pour ta requête:

Code :
SELECT name, physical_name, size/128, case max_size when '-1' then max_size else max_size/128 end FROM [ePO4_ATC-ANTIVIRUS].[sys].(database_files]
Est-ce que tu fais des backups réguliers sur cette base ?
__________________
David B.
dbaffaleuf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 16h50   #5
Membre habitué
 
Luis
Inscription : avril 2006
Messages : 436
Détails du profil
Informations personnelles :
Nom : Luis

Informations forums :
Inscription : avril 2006
Messages : 436
Points : 119
Points : 119
Salut

alors j'ai realiser ça pour filtrer car la commande a sec ça affiche le log depuis 2010:

Code :
1
2
3
4
5
Declare @CurrentDate datetime
Declare @DatelessHour datetime
SET @CurrentDate = getdate()
SET @DatelessHour = DATEADD(hh,-1,@CurrentDate)
EXEC xp_ReadErrorLog 0, 1, NULL, NULL, @DatelessHour, @CurrentDate
Resultat:

Code :
2011-07-05 16:44:49.180	spid64	The transaction log FOR DATABASE 'ePO4_ATC-ANTIVIRUS' IS full. TO find out why space IN the log cannot be reused, see the log_reuse_wait_desc COLUMN IN sys.DATABASES
si l'on regarde la requete qu'ils proposent:

Code :
SELECT name,log_reuse_wait_desc FROM sys.DATABASES
ça donne:

Code :
ePO4_ATC-ANTIVIRUS	LOG_BACKUP
Le resultat de cette query:
Code :
SELECT databasepropertyex('ePO4_ATC-ANTIVIRUS','recovery')
FULL

et la derniere requete:

Code :
1
2
ePO4_ATC-ANTIVIRUS	F:\Archivos de programa\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\ePO4_ATC-ANTIVIRUS.mdf	15109	-1
ePO4_ATC-ANTIVIRUS_log	F:\Archivos de programa\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\ePO4_ATC-ANTIVIRUS_log.LDF	176	2097152
Donc clairement c'est le fichier de log qui est plein, il faut l'agrandir?
Ou c'est mieux d'en creer un autre?

D'avance merci
ldiaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 17h05   #6
Membre chevronné
 
David BAFFALEUF
Inscription : février 2008
Messages : 612
Détails du profil
Informations personnelles :
Nom : David BAFFALEUF
Localisation : France

Informations forums :
Inscription : février 2008
Messages : 612
Points : 746
Points : 746
Et le disque F:\ n'est pas plein ? Je ne pense pas que le journal soit à l'origine du problème, 175 Mb ce n'est pas ça qui va bloquer. Il peut y avoir un autre fichier sur le F:\ qui a grossi et qui empêche le journal de ta base de grossir. Tu peux essayer ça:

Code :
DOS>forfiles /S /P "F:\Archivos de programa\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\" /C "cmd /c echo @file @fsize"
__________________
David B.
dbaffaleuf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 17h24   #7
Membre habitué
 
Luis
Inscription : avril 2006
Messages : 436
Détails du profil
Informations personnelles :
Nom : Luis

Informations forums :
Inscription : avril 2006
Messages : 436
Points : 119
Points : 119
Si le disque F:\ est plein...
Alors ok c'est ça l'erreur.

Je peux le bouger a S: en utilisant la solution de la derniere fois (sur ce meme forum)
base offline et ensuite rename en donnant le nouveau lecteur...
ldiaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 23h02   #8
Membre chevronné
 
David BAFFALEUF
Inscription : février 2008
Messages : 612
Détails du profil
Informations personnelles :
Nom : David BAFFALEUF
Localisation : France

Informations forums :
Inscription : février 2008
Messages : 612
Points : 746
Points : 746
1) alter database modify file d'abord
2) alter database set offline
3) déplacement des fichiers
4) alter database set online

Il ne faut pas de connexion sur la base au moment du alter database set offline ou alors utiliser with rollback immediate.
__________________
David B.
dbaffaleuf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 23h09   #9
Membre habitué
 
Luis
Inscription : avril 2006
Messages : 436
Détails du profil
Informations personnelles :
Nom : Luis

Informations forums :
Inscription : avril 2006
Messages : 436
Points : 119
Points : 119
ok
comme la derniere fois... Demain j'essaie et j'informerais sur le forum.
Merci encore !
ldiaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 10h54   #10
Membre habitué
 
Luis
Inscription : avril 2006
Messages : 436
Détails du profil
Informations personnelles :
Nom : Luis

Informations forums :
Inscription : avril 2006
Messages : 436
Points : 119
Points : 119
Bonjour a tous
voici les nouvelles en reference a ce probleme de log.

Etant donné que le volume F:\ etait plein, on ne pouvait meme pas mettre la base OFFLINE. Vue que le serveur est une machine virtuelle, nous avons arreter la machine ajouté de l'espace disque, et la clairement tout marche...On a pu faire un backup etc.
Ce que j'ai vu c'est que la taille du fichier LDF est passée de 180M a 220M.
Donc le probleme reste entier vue que petit a petit ce fichier va remplir de nouveau ce volume.
D'ou ma question: Peut on gerer la taille de ce fichier LDF? existe t'il une commande pour lui donner une taille max?
Ou faut il l'eliminer et laisser un nouveau se creer?

D'avance merci pour vos precieux conseils.
ldiaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 11h36   #11
Membre chevronné
 
David BAFFALEUF
Inscription : février 2008
Messages : 612
Détails du profil
Informations personnelles :
Nom : David BAFFALEUF
Localisation : France

Informations forums :
Inscription : février 2008
Messages : 612
Points : 746
Points : 746
Le journal de transactions est un fichier circulaire. Il réutilise l'espace à l'intérieur de lui-même, donc il faut recycler cet espace régulièrement.

Deux façons d'y arriver, qui dépende essentiellement de la stratégie de backup et d'une option de base : le mode de récupération (select databasepropertyex('ePO4_ATC-ANTIVIRUS','recovery') )

Si ce mode est à FULL, toutes les transactions restent toujours dans le journal, la seule façon de la recycler est de les sauvegarder. Avantage: faire des backups de journaux permet de pouvoir restaurer à tout point dans le temps. Inconvénient: il faut faire des backups de journaux, et il faut de la place sur disque pour les stocker.

Si ce mode est à SIMPLE, le recyclage est effectué automatiquement à intervalles réguliers, et les transactions validées sont supprimées du fichier LDF. Avantage: la gestion se fait toute seule. Inconvénient: comme les transactions sont supprimées, on ne peut plus les sauvegarder, donc on ne peut pas restaurer à un point dans le temps.

Donc la question essentielle à se poser c'est: est-ce que tu as besoin de revenir à un point dans le temps en cas de problème sur ta base ?
- Oui: alors il faut laisser le mode sur FULL et programmer des backups de transactions.
- Non: alors il faut passer la base en mode SIMPLE:

Code :
1
2
ALTER DATABASE [ePO4_ATC-ANTIVIRUS] SET RECOVERY SIMPLE
GO
cf:
- http://blog.capdata.fr/index.php/mod...ons-episode-1/
- http://blog.capdata.fr/index.php/mod...ons-episode-2/
__________________
David B.
dbaffaleuf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 12h02   #12
Membre habitué
 
Luis
Inscription : avril 2006
Messages : 436
Détails du profil
Informations personnelles :
Nom : Luis

Informations forums :
Inscription : avril 2006
Messages : 436
Points : 119
Points : 119
Salut,
ok la base en en FULL, je l'ai passé a SIMPLE.
Demain je jetterais un coup d'oeil pour voir sa taille, normalement le fichier ne devrait plus grandir.

Merci pour toutes ces explications. Passez une bonne semaine et surtout un bon week end.

Ciao
ldiaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h30.


 
 
 
 
Partenaires

Hébergement Web