IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

SQL SERVER 2005 Attacher une BDD


Sujet :

MS SQL Server

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 8
    Points : 2
    Points
    2
    Par défaut SQL SERVER 2005 Attacher une BDD
    Bonjour à tous,

    Voila après plusieurs heures de recherche, je ne trouve pas solution à mon souci. En fait j'ai une BDD "fournisseurs" qui avait un log de 55 Go (fournisseurs_log.ldf) suite à des imports de données en masse. Effectivement je n'ai pas eu le tps de faire mes plans de maintenance qui vont bien etc... ni mes sauvegardes (bou c'est pas bien je sais). Je précise que je suis en dév mais qu'il est très important pour moi de récup la structure.

    Donc ce fameux log a saturé le disque (0 Ko d'espace libre) donc je ne pouvais plus faire aucune manip sur la SQL SERV Manager donc j'ai stopper le serveur puis j'ai supprimer le fichier de log à la main (qui ne passe pas par la corbeille sinon trop facile) et maintenant lorsque j'essiae de rattacher ma base il me dit impossible car la base n'a pas été correctement fermé....
    J'ai déjà fait cette manipulation mais là ben ca coince.... j'ai essayer create database FOR ATTACH etc.. mais rien y fait !! SI une personne a la soluce je suis preneur.

    EN vous remerciant par avance de vous pencher sur mon souci

  2. #2
    Membre habitué Avatar de GodGives
    Inscrit en
    Août 2007
    Messages
    456
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Août 2007
    Messages : 456
    Points : 161
    Points
    161
    Par défaut
    essaie cette commande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sp_attach_db "nom_de_la_base_",
    "chemin_complet_du_fichier_mdf",
    "chemin_complet_du_fichier_log"
    par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sp_attach_db "fournisseurs",
    "c:\fournisseurs\fournisseurs_data.mdf",
    "c:\fournisseurs\fournisseurs_log.ldf"

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 852
    Points : 52 992
    Points
    52 992
    Billets dans le blog
    6
    Par défaut
    NE FAITES SURTOUT PAS LA COMMANDE DONNEES VOUS RISQUEZ DE PERDE LA BASE DE DONNE

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 852
    Points : 52 992
    Points
    52 992
    Billets dans le blog
    6
    Par défaut
    Désolé, en faisant ce qu vous avez fait, vous avez tué votre base. Tout récupération est impossible !

    A +

  5. #5
    Candidat au Club
    Inscrit en
    Avril 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Non cette commande ne fonctionne pas de toute facon puisque SQL SERVER 2005 me dit que la base a été mal fermé et que le log est introuvable.... Je rapelle que je n'ai aps détacher la base mais j'ai arrete le serveur SQL et j'ai supprimer le log...

    SQL PRO vous dites de ne pas tapez cette commande mais avez vous une autre solution ?

  6. #6
    Candidat au Club
    Inscrit en
    Avril 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    oula ca y est tout es mort ...peut etre ne faut il pas etre aussi affirmatif ? je dis ca pusique avec des softs comme SQL recovery ou autre j'ai bien vu mes data mais bon il faut payer et ca n'est pas possible.. mais voila je me demander si une base aussi évoluer que SQL server ne pouvait pas récup maon fichier mdf avec une commande qui permet de ne pas tenir compte du log et d'en reconstruire un nouveau...

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 852
    Points : 52 992
    Points
    52 992
    Billets dans le blog
    6
    Par défaut
    Le journal des transaction contient toutes les transactions, c'est à dire INSERT, UPDATE, DELETE, CREATE, ALTER, DROP.... que vous faites.
    Les transactions sont immédiatement écrite dans le journal avant tout autre choses.
    Les données sont écrite dans les fichiers de données de temps à autre.
    Si le journal sature, alors c'est que des transactions en cours sont inachevées.
    En stoppant votre serveur avec des transactions inachevées et en supprimant le journal de transactions, vous avez rendu votre base de données incohérente.
    Désormais il n'y a plus aucun moyen de reprendre la main dessus, car le seul fichier de données ne suffit pas à la rendre cohérente.

    Comme vous venez de l'apprendre à votre dépend :
    Le journal de transaction est un élément VITAL de votre BD !

    Lisez l'article que j'ai écrit à ce sujet :
    http://sqlpro.developpez.com/cours/sqlaz/techniques/#L8

    Il aurait été souhaitable que vous vous formiez avant de commencez à travailler avec MS SQL Server.

    A +

  8. #8
    Candidat au Club
    Inscrit en
    Avril 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    entendu mais comme dans bien des cas nous mettons la charue avant les boeufs c'est pourquoi j'ai fait une connerie.... mais je suis certain qu'il est possible de récup la structure sans ce foutu fichier de log... pour preuve SQL data recovery voit mes procédures tables etc....Merci tout de même.

  9. #9
    Membre habitué Avatar de GodGives
    Inscrit en
    Août 2007
    Messages
    456
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Août 2007
    Messages : 456
    Points : 161
    Points
    161
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    NE FAITES SURTOUT PAS LA COMMANDE DONNEES VOUS RISQUEZ DE PERDE LA BASE DE DONNE

    Vous pouvez me donner de plus amples informations?

    J'ai une base de données que j'ai dupliquée, une pour la programmation et l'autre pour la formation des utilisateurs.

    Donc chaque fois, pour passer d'une étape à l'autre, je n'utilise que les commandes sp_detach_db et sp_attach_db.

    Et jusque là, je n'ai jamais eu de problèmes! encore plus qu'elles m'ont été conseillées sur ce forum

  10. #10
    Candidat au Club
    Inscrit en
    Avril 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Oui je vois pas non plsu en quoi cette commande peut flinguer une BDD...

    Cependant GodGives sachez que la commande SP_ATTACH n'estp lsu conseillé par Microsoft puisqu'elle va être supprimé dans les prochaines version, préférer le create databse for attach plutot.

    Moi en ce qui me concerne je suis parti me pendre... lol

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 240
    Points : 210
    Points
    210
    Par défaut
    Citation Envoyé par mickelo Voir le message
    Non cette commande ne fonctionne pas de toute facon puisque SQL SERVER 2005 me dit que la base a été mal fermé et que le log est introuvable.... Je rapelle que je n'ai aps détacher la base mais j'ai arrete le serveur SQL et j'ai supprimer le log...

    SQL PRO vous dites de ne pas tapez cette commande mais avez vous une autre solution ?
    Quelques petits conseils pour l'avenir :

    - met une limite à la taille de ta base de données (log et données)
    - met en place, grâce au plan de maintenance, un backup du jhournal de transaction (qui a pour effet de le vider)
    - en cas de saturation du journal, la commande est BACKUP LOG WITH NO_LOG
    - pour réduire la taille du journal, la commande est DBCC SHRINKFILE

  12. #12
    Candidat au Club
    Inscrit en
    Avril 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    merci philippe pour ses informations que je connais déjà mais merci quand meme.. en fait vu que c'est un serveur de dev je me suis fait avoir... j'ai pas eu le tps de mettre tout ca en place...

    Pas de souci la prochaine fois je ferai attention....

  13. #13
    Candidat au Club
    Inscrit en
    Avril 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 8
    Points : 2
    Points
    2
    Par défaut [RESOLU]
    Voila j'ai pu grâce à ce logiciel (Recovery for sql server) récupérer ma structure (http://www.officerecovery.com/products.htm)

    et grâce à KERNEL FOR SQL DATABSE récupérer ses données si on veux (mais moi je m'en fichais)

    EN espérant que cela pourra en aider certains.

    Et un petit mot pour SQL PRO -> Ce n'est pas le tout de se former il faut aussi exploiter les ressources à disponibilités et s'en servir, c'est que l'on appele l'autodidactie...@bon entendeur....

  14. #14
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 852
    Points : 52 992
    Points
    52 992
    Billets dans le blog
    6
    Par défaut
    Récupérer votre structure peut être. Mais probalement en partie seulement....
    Pour vos données aucune assurance de les avoir toutes et qu'elles soient intègres.

    Mais si cela vous suffit, tant mieux !

    A +

Discussions similaires

  1. [SQL server 2005]importer une BDD de Mysql vers SQL server
    Par Fadaflux dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 28/06/2007, 11h56
  2. [SQL SERVER 2005] Exporter une table en Access
    Par Golzinne dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/03/2007, 17h08
  3. [SQL SERVER 2005] Ouvrir une table en exclusif
    Par olbi dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 02/03/2007, 18h58
  4. [SQL SERVER 2005] Renvoyer une valeur
    Par diaboloche dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/02/2007, 11h18
  5. SQL Server - arret d'une bdd
    Par topolino dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 18/04/2006, 13h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo