Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1542 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL server]automatiser la supprimession des fichier de transaction

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL server]automatiser la supprimession des fichier de transaction

n°954492
weed
Posté le 17-01-2005 à 12:57:10  profilanswer
 

mes fichiers de transactions .ldf grossissent très rapidement.  
 
Pour supprimer il faut dans un premier temps, démonter la base de donnée et cela on peut supprimer le fichier dans l'explorer. Il faut remonter la base de donnée pour qu'elles puissent être exploitable.
 
J'aimerais donc automatiser ces 3 taches (démonter, effacer, remonter).
 
 
Je me suis renseigné, on m'a dit que l'on pouvait le faire au moyen de la procédure stocké système (base de donnée master) sp_detach_db.  
 
J'ai égallement vu sur 1 bouquin que l'on pouvait lancé une procédure à partir d'un script VB, C,  mais je n'ai pas eu plus de détail.  
 
 
Comment s'y prendre pour lancer une procédure stocké à partir d'un script C (ou VB)?
 
 
pour exécuter une procédure il faut utiliser la commande exec ou execute  :  
exec sp_detach_db 'ma_base_de_donnée'
 
mais à part ca, je ne vois toujours pas comment faire avec du C ou du VB pour supprimer le fichier.
 
Comment faire ?
 
il semble que je ne sois pas le seul à avoir ce problème.  
http://groups.google.com/groups?q= [...] com&rnum=2

mood
Publicité
Posté le 17-01-2005 à 12:57:10  profilanswer
 

n°954532
WhyMe
HFR ? Nan, connais pas ...
Posté le 17-01-2005 à 13:58:13  profilanswer
 

La réduction automatique des fichiers ne te suffit pas ?

n°954563
weed
Posté le 17-01-2005 à 14:35:50  profilanswer
 

Si mais comment fais tu alors ?
 
tu veux parler de clique droit sur la base de donnée -> propriété -> Onglet Journal des transactions -> Limiter la croissance du fichier (Mo).
 
Je l'ai limité mais cela a fait planter la base de donnée et donc je me suis mis en illimité.

n°954566
DjobaDjobi
Wanna turn up the heat?
Posté le 17-01-2005 à 14:39:11  profilanswer
 

sql server .. doit y avoir un service associé derriere non ?
si oui, dans .bat: net stop service, del des fichier, net start service

n°954583
weed
Posté le 17-01-2005 à 15:00:14  profilanswer
 

oui c'est ce que je pensais mais mon superieur m'a dit que c'etait un peu trop bourrin et qu'au mot du redémarrage du service ms_sql celui me dira qu'il n'arrive pas à trouver le fichier.

n°954591
WhyMe
HFR ? Nan, connais pas ...
Posté le 17-01-2005 à 15:08:58  profilanswer
 

Propriétés de la base > onglet options > réduire automatiquement
 
Cà marche mais je ne sais pas qd il le fait ...

n°954629
Arjuna
Aircraft Ident.: F-MBSD
Posté le 17-01-2005 à 15:30:12  profilanswer
 

Dès que mon serveur est re-up, je regarde le script que j'ai foutu dessus (si j'y ai accès, je sais plus si je suis encore admin de la base :D)

n°954654
WhyMe
HFR ? Nan, connais pas ...
Posté le 17-01-2005 à 15:41:18  profilanswer
 

Qd on cherche, on trouve :D
Plus de détails sur l'option de 'réduction automatique' :

Citation :

AUTO_SHRINK
 
Si cette option possède la valeur ON, les fichiers de base de données peuvent faire l'objet d'un compactage périodique. Les fichiers de données et journaux des transactions peuvent être, les uns comme les autres, compactés automatiquement par SQL Server. Si elle possède la valeur OFF, les fichiers de base de données ne sont pas compactés automatiquement lors des vérifications périodiques de l'espace inutilisé. Par défaut, cette option est activée pour toutes les bases de données avec SQL Server Édition Desktop, et désactivée dans toutes les autres éditions, quel que soit le système d'exploitation.
 
AUTO_SHRINK ne réduit la taille du journal des transactions que si le modèle de récupération SIMPLE est associé à la base de données ou que le journal est sauvegardé.  
 
L'option AUTO_SHRINK provoque le compactage dès qu'un fichier comprend plus de 25 % d'espace inutilisé. Le fichier est compacté pour que 25 % du fichier demeure inutilisé ou à sa taille initiale au moment de sa création, selon celle des deux valeurs qui est la plus grande.
 
Il est impossible de compacter une base de données en lecture seule.
 
L'état de cette option peut être déterminé en examinant la propriété IsAutoShrink de la fonction DATABASEPROPERTYEX.


n°954680
weed
Posté le 17-01-2005 à 15:49:02  profilanswer
 

Arjuna a écrit :

Dès que mon serveur est re-up, je regarde le script que j'ai foutu dessus (si j'y ai accès, je sais plus si je suis encore admin de la base :D)

WhyMe a écrit :

Qd on cherche, on trouve :D


merci. Je vais l'activer mais cela ne va pas suffire en effet. C'est pas mal du tout pour les fichiers de base de données mais pour les fichiers journaux de transaction, cela ne suffit pas. Les fichiers de transactions grossisent très tres rapidemment et donc une compression n'est pas suffisant.  
 
 

WhyMe a écrit :

Propriétés de la base > onglet options > réduire automatiquement
 
Cà marche mais je ne sais pas qd il le fait ...


 
yop
merci, c'est genial.
J'attends avec impatience.

n°954716
Arjuna
Aircraft Ident.: F-MBSD
Posté le 17-01-2005 à 16:01:27  profilanswer
 

Bah. Moi c'est pas une compression que je fais hein !
C'est un shrink (bourinnage dans le fichier pour le vider comme un goret), mais disons qu'il est fait proprement dans mon script de maintenance, avec backup et tout le bordel avant (parceque c'est bien de vider le fichier des transactions, mais bon, si y'a une coupure de courant avant le prochain backup et qu'il y a des erreurs d'écriture sur le disque, t'as l'air fin :/)


Message édité par Arjuna le 17-01-2005 à 16:02:01
mood
Publicité
Posté le 17-01-2005 à 16:01:27  profilanswer
 

n°954725
weed
Posté le 17-01-2005 à 16:05:56  profilanswer
 

Arjuna a écrit :

Bah. Moi c'est pas une compression que je fais hein !
C'est un shrink (bourinnage dans le fichier pour le vider comme un goret), mais disons qu'il est fait proprement dans mon script de maintenance, avec backup et tout le bordel avant (parceque c'est bien de vider le fichier des transactions, mais bon, si y'a une coupure de courant avant le prochain backup et qu'il y a des erreurs d'écriture sur le disque, t'as l'air fin :/)


 
bahh normallement il y a des sauvegardes tous les jours donc je peux sans problèmes effacer ou vider les fichiers toutes les 2-3 jours sans problème.  
 
C'est quoi le shrink ? Ton script, comment l'as tu fais ? en procédure stockée ?


Message édité par weed le 17-01-2005 à 16:06:35
n°954743
WhyMe
HFR ? Nan, connais pas ...
Posté le 17-01-2005 à 16:15:18  profilanswer
 

C'est pas une compression non plus la 'réduction automatique', c'est bien un shrink
Attention, pas Shrek hein :D

n°954836
Arjuna
Aircraft Ident.: F-MBSD
Posté le 17-01-2005 à 17:05:56  profilanswer
 

weed a écrit :

bahh normallement il y a des sauvegardes tous les jours donc je peux sans problèmes effacer ou vider les fichiers toutes les 2-3 jours sans problème.  
 
C'est quoi le shrink ? Ton script, comment l'as tu fais ? en procédure stockée ?


-> Ben, oui et non; Si tu shrink juste après un backup, y'a pas de souci. Mais si tu shrink n'importe quand, entre le dernier backup et le moment où tu shrink, en cas de plantage du serveur, tu pers toutes ces données. L'intérêt du log des transactions (outre bouffer 200 Go en 3 jours) c'est d'être capable de rejouer à la milliseconde près tout ce qui a été fait dans la base entre le moment du dernier backup et le moment où le serveur s'est arrêté.
Où la récupération après plantage, ce type de fichier est aussi grandement utilisé par les DBA pour retrouver un état stable de la base de données après une "méga connerie" d'un utilisateur, style : tiens, et si je fais un "delete societe cascade constraint" ça fait quoi ?
Les DBA peuvent restaurer le dernier backup qui date de la veille au soir, puis rejouer le fichier des transactions depuis ce moment jusqu'à la ligne en question : ça éviter à tout le monde de resaisir tout ce qu'ils ont fait la matinée.

n°954837
Arjuna
Aircraft Ident.: F-MBSD
Posté le 17-01-2005 à 17:06:39  profilanswer
 

Sinon, j'ai créé un job (dans le truc "agent" ) et je lance un lot d'instructions T-SQL. Il me semble que j'ai noyé ça dans la masse de mon plan de maintenance, juste après le backup du fichier des transactions.


Message édité par Arjuna le 17-01-2005 à 17:06:59
n°954926
weed
Posté le 17-01-2005 à 18:24:11  profilanswer
 

Voilou j'ai la syntaxe de toutes les fonctions qui me sont necessaire, mais comment les utiliser ?
 
Poour détacher la base de donnée :
EXEC sp_detach 'nom_base_de_donnée', 'true'
 
Pour effacer le fichier en VbScript:
 
Set objFSO = CreateObject("Scripting.FileSystemObject" )
objFSO.DeleteFile("C:\FSO\toto.ldf" )
 
 
Pour détacher  
EXEC sp_detach_db 'nom_base_de_donnée' 'path_fichier_base_de_donnée' 'patch_fichier_de_transaction'

n°954930
weed
Posté le 17-01-2005 à 18:32:13  profilanswer
 

Faut il creer un lot DTS, et utiliser l'icone "Tache de Script ActiveX"

n°954957
Arjuna
Aircraft Ident.: F-MBSD
Posté le 17-01-2005 à 19:26:26  profilanswer
 

Non non, pas besoin de passer pas là :o

n°954958
Arjuna
Aircraft Ident.: F-MBSD
Posté le 17-01-2005 à 19:26:45  profilanswer
 

Bon, c'est con, mon serveurs est toujours en rade :/

n°954998
weed
Posté le 17-01-2005 à 20:17:02  profilanswer
 

oki, esperons que ton serveurs fonctionne demain ;)

n°955204
HappyHarry
Posté le 18-01-2005 à 00:48:23  profilanswer
 

backup log <nom de la base> with no_log
puis un compactage, et ca roule
 
 
a ne pas faire en prod hein [:cupra]
(je précise, des fois que ...)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL server]automatiser la supprimession des fichier de transaction

 

Sujets relatifs
java-sql-interface swingDate système + création de fichier batch MSDOS
Faire un editeur de fichier XML en C#[Resolu] JDBC => Requete SQL (Delete)
mettre la date et l heure dans un fichier log créé par un batchimportation d'un fichier css
SQL(server) optimisation d'une requêteUtilisation de sql en php + problème php
[T-SQL] Curseur et procédure stockée récursive 
Plus de sujets relatifs à : [SQL server]automatiser la supprimession des fichier de transaction


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR