OVH Cloud OVH Cloud

perte de données dans ma base

6 réponses
Avatar
JOnf
Bonjour,

Est il possible que lorsque le disque étant quasiment plein (pour ne
pas dire plein !), il y ai des lignes d'enregistrement qui
disparaissent ?

Ca me parait pas vraiment possible mais je pose la question quand même.
Depuis ce problème j'ai transférer sur disque de plus grande capacité
et il semblerait que je n'ai plus de perte de données... mais ca
m'ennuie de ne pas savoir d'où ca viens.

Y a t'il un moyen de savoir à quoi sont dues ces pertes dans SQL ?

Merci à tous

JOnat

6 réponses

Avatar
Philippe T [MS]
Bonjour,

Si un disque est plein, les transactions ne vont pas pouvoir s'enregistrer
dans le fichier de log et donc plus d'écriture en base possible.

----------------------------------------------------------------------
Philippe TROTIN - Microsoft Service France

"JOnf" wrote in message
news:
Bonjour,

Est il possible que lorsque le disque étant quasiment plein (pour ne pas
dire plein !), il y ai des lignes d'enregistrement qui disparaissent ?

Ca me parait pas vraiment possible mais je pose la question quand même.
Depuis ce problème j'ai transférer sur disque de plus grande capacité et
il semblerait que je n'ai plus de perte de données... mais ca m'ennuie de
ne pas savoir d'où ca viens.

Y a t'il un moyen de savoir à quoi sont dues ces pertes dans SQL ?

Merci à tous

JOnat




Avatar
Med Bouchenafa
Si SQL Server arrive a commiter la transaction, il est impossible que des
donnees soit perdues
Si SQL Server n'arrive pas a commiter pour des raisons d'espace, il t'averti
par un message d'erreur
Ce message est aussi reporte dans le fichier ErrorLog de SQL Server
Commence donc par regarder ce fichier de log

Une autre possibilite serait que le journal ait ete vide alors qu'il
contenait des transactions non encore transposees dans les data
Mais la aussi il y a un nessage d'avertissement (Je ne sais pas s'il est
reporte dans le errorlog par contre)

--
Bien cordialement
Med Bouchenafa


"JOnf" wrote in message
news:
Bonjour,

Est il possible que lorsque le disque étant quasiment plein (pour ne pas
dire plein !), il y ai des lignes d'enregistrement qui disparaissent ?

Ca me parait pas vraiment possible mais je pose la question quand même.
Depuis ce problème j'ai transférer sur disque de plus grande capacité et
il semblerait que je n'ai plus de perte de données... mais ca m'ennuie de
ne pas savoir d'où ca viens.

Y a t'il un moyen de savoir à quoi sont dues ces pertes dans SQL ?

Merci à tous

JOnat




Avatar
Patrice
Des lignes créées de longue date ou en cours de création ? Ma première
pensée serait qu'il y a eu effectivement un DELETE sur tes lignes.
Je serais très surpris que SQL Server ne réagisse pas à cette situation par
un message explicite (à moins que l'appli. ne remonte pas ce message ?)

A la limite une transaction echouée empêche la création de nouvelles lignes.
Les lignes existantes ne devraient jamais être perdues...

--
Patrice

"JOnf" a écrit dans le message de
news:
Bonjour,

Est il possible que lorsque le disque étant quasiment plein (pour ne
pas dire plein !), il y ai des lignes d'enregistrement qui
disparaissent ?

Ca me parait pas vraiment possible mais je pose la question quand même.
Depuis ce problème j'ai transférer sur disque de plus grande capacité
et il semblerait que je n'ai plus de perte de données... mais ca
m'ennuie de ne pas savoir d'où ca viens.

Y a t'il un moyen de savoir à quoi sont dues ces pertes dans SQL ?

Merci à tous

JOnat




Avatar
JOnf
Ce sont des lignes crées de longue date.
Je ne suis pas le programmeur de l'appli donc je ne sais pas vraiment
ce qu'il se passe dans le code mais je doute fortement d'une requete
DELETE sur les lignes étant donné que c'est un module d'ajout avec
lequel on ne peut même pas supprimer d'enregistrement. Je vais quand
même vérifier ce que me retourne l'appli (message d'erreur ou autre),
j'y avais pas pensé puisque pour un simple util, c'est transparent (pas
de mes.)

Par ailleur, pour contourner ce problème dans l'urgence, j'avais
développé un petit module sous access (avec liaison des tables)
reprenant le même principe : ajout d'un enregistrement. car je pensais
effectivement à un problème de l'appli. Le Hic, c'est que des lignes
ont aussi disparues en utilisant mon module access. Donc j'ai changé de
piste.

Je reviens vers ma première analyse, il semblerait qu'avec un espace
libre normal (c'est à dire pas saturé comme je l'avais !), ces
problèmes n'apparaissent plus ! J'attend d'autres tests pour confirmer.
Ca me parait incroyable que des anciennes lignes disparaissent !!!

En tout cas merci

Jonat



Des lignes créées de longue date ou en cours de création ? Ma première
pensée serait qu'il y a eu effectivement un DELETE sur tes lignes.
Je serais très surpris que SQL Server ne réagisse pas à cette situation par
un message explicite (à moins que l'appli. ne remonte pas ce message ?)

A la limite une transaction echouée empêche la création de nouvelles lignes.
Les lignes existantes ne devraient jamais être perdues...

--
Patrice

"JOnf" a écrit dans le message de
news:
Bonjour,

Est il possible que lorsque le disque étant quasiment plein (pour ne
pas dire plein !), il y ai des lignes d'enregistrement qui
disparaissent ?

Ca me parait pas vraiment possible mais je pose la question quand même.
Depuis ce problème j'ai transférer sur disque de plus grande capacité
et il semblerait que je n'ai plus de perte de données... mais ca
m'ennuie de ne pas savoir d'où ca viens.

Y a t'il un moyen de savoir à quoi sont dues ces pertes dans SQL ?

Merci à tous

JOnat




Avatar
Patrice
Dans ce module ok mais n'y a t'il aucun moyen dans l'appli. de supprimer ces
lignes (attention aussi aux triggers qui sont facilement oubliés) ? Je
serais très surpris qu'un problème de place disque puisse supprimer
"proprement" des anciennes lignes par exemple en "perdant" une page de
données.

Si cela nedoit jamais se produire il serait peut-être possible :
- de supprimer le droit de destruction
- et/ou de mettre en place un trigger pour tracer les éventuelles
destructions

Après je n'ai pas l'expérience concrète du fonctionnement avec un disque
plein. Un des admins qui fréquente ce groupe pourra sans doute nous dire ce
qu'il en est mais en première approche il me parait probable que cela soit
assez "blindé" de ce côté là...

--
Patrice

"JOnf" a écrit dans le message de
news:
Ce sont des lignes crées de longue date.
Je ne suis pas le programmeur de l'appli donc je ne sais pas vraiment
ce qu'il se passe dans le code mais je doute fortement d'une requete
DELETE sur les lignes étant donné que c'est un module d'ajout avec
lequel on ne peut même pas supprimer d'enregistrement. Je vais quand
même vérifier ce que me retourne l'appli (message d'erreur ou autre),
j'y avais pas pensé puisque pour un simple util, c'est transparent (pas
de mes.)

Par ailleur, pour contourner ce problème dans l'urgence, j'avais
développé un petit module sous access (avec liaison des tables)
reprenant le même principe : ajout d'un enregistrement. car je pensais
effectivement à un problème de l'appli. Le Hic, c'est que des lignes
ont aussi disparues en utilisant mon module access. Donc j'ai changé de
piste.

Je reviens vers ma première analyse, il semblerait qu'avec un espace
libre normal (c'est à dire pas saturé comme je l'avais !), ces
problèmes n'apparaissent plus ! J'attend d'autres tests pour confirmer.
Ca me parait incroyable que des anciennes lignes disparaissent !!!

En tout cas merci

Jonat



> Des lignes créées de longue date ou en cours de création ? Ma première
> pensée serait qu'il y a eu effectivement un DELETE sur tes lignes.
> Je serais très surpris que SQL Server ne réagisse pas à cette situation


par
> un message explicite (à moins que l'appli. ne remonte pas ce message ?)
>
> A la limite une transaction echouée empêche la création de nouvelles


lignes.
> Les lignes existantes ne devraient jamais être perdues...
>
> --
> Patrice
>
> "JOnf" a écrit dans le message de
> news:
>> Bonjour,
>>
>> Est il possible que lorsque le disque étant quasiment plein (pour ne
>> pas dire plein !), il y ai des lignes d'enregistrement qui
>> disparaissent ?
>>
>> Ca me parait pas vraiment possible mais je pose la question quand même.
>> Depuis ce problème j'ai transférer sur disque de plus grande capacité
>> et il semblerait que je n'ai plus de perte de données... mais ca
>> m'ennuie de ne pas savoir d'où ca viens.
>>
>> Y a t'il un moyen de savoir à quoi sont dues ces pertes dans SQL ?
>>
>> Merci à tous
>>
>> JOnat




Avatar
GNocent
Evidemment, la saturation d'espace disque entraine des problèmes, à savoir si
c'est sur les filegroups de data, l'impossibilité d'insérer, et si c'est sur
les tlogs, l'impossibilité de toute modif (insert/delete/update).
Par contre il est rigoureusement impossible d'avoir un effet de bord tel que
tu le décris (des lignes qui disparaissent).

Je penche plutôt soit pour un trigger mal placé / au comportement peu
tolérant aux erreurs, soit pour un code qui effectue certaines opérations en
plusieurs étapes (suppr puis réinsertion) mais qui n'englobe pas cela dans
une transaction, donc risque d'une exécution partielle potentiellement
destructrice ...

Guillaume.

"JOnf" a écrit :

Ce sont des lignes crées de longue date.
Je ne suis pas le programmeur de l'appli donc je ne sais pas vraiment
ce qu'il se passe dans le code mais je doute fortement d'une requete
DELETE sur les lignes étant donné que c'est un module d'ajout avec
lequel on ne peut même pas supprimer d'enregistrement. Je vais quand
même vérifier ce que me retourne l'appli (message d'erreur ou autre),
j'y avais pas pensé puisque pour un simple util, c'est transparent (pas
de mes.)

Par ailleur, pour contourner ce problème dans l'urgence, j'avais
développé un petit module sous access (avec liaison des tables)
reprenant le même principe : ajout d'un enregistrement. car je pensais
effectivement à un problème de l'appli. Le Hic, c'est que des lignes
ont aussi disparues en utilisant mon module access. Donc j'ai changé de
piste.

Je reviens vers ma première analyse, il semblerait qu'avec un espace
libre normal (c'est à dire pas saturé comme je l'avais !), ces
problèmes n'apparaissent plus ! J'attend d'autres tests pour confirmer.
Ca me parait incroyable que des anciennes lignes disparaissent !!!

En tout cas merci

Jonat



> Des lignes créées de longue date ou en cours de création ? Ma première
> pensée serait qu'il y a eu effectivement un DELETE sur tes lignes.
> Je serais très surpris que SQL Server ne réagisse pas à cette situation par
> un message explicite (à moins que l'appli. ne remonte pas ce message ?)
>
> A la limite une transaction echouée empêche la création de nouvelles lignes.
> Les lignes existantes ne devraient jamais être perdues...
>
> --
> Patrice
>
> "JOnf" a écrit dans le message de
> news:
>> Bonjour,
>>
>> Est il possible que lorsque le disque étant quasiment plein (pour ne
>> pas dire plein !), il y ai des lignes d'enregistrement qui
>> disparaissent ?
>>
>> Ca me parait pas vraiment possible mais je pose la question quand même.
>> Depuis ce problème j'ai transférer sur disque de plus grande capacité
>> et il semblerait que je n'ai plus de perte de données... mais ca
>> m'ennuie de ne pas savoir d'où ca viens.
>>
>> Y a t'il un moyen de savoir à quoi sont dues ces pertes dans SQL ?
>>
>> Merci à tous
>>
>> JOnat