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

Administration SQL Server Discussion :

Suppression de tables


Sujet :

Administration SQL Server

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Suppression de tables
    Bonsoir, dans enterprise manager (sql2000), en pensant travailler sur une base test j'ai supprimé des tables d'une base de données.
    Lorsque je restaure (pas restauration sql avec fichier bak mais via un robot de sauvegarde) le fichier *.mdf du jour précédent ma mauvaise manipulation, les tables supprimées n'apparaissent toujours pas.
    Je suis très ennuyée car j'ai perdu tout un historique de données.
    Si vous avez des conseils ils seront les bienvenues
    Merci d'avance et bonne soirée

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Malheureusement si vous n'avez pas de sauvegarde de votre base de données, cela est irrécupérable.
    Le fichier MDF est le fichier de données de votre base de données, et vous en avez un autre, donc l'extension est LDF, qui est le journal des transactions.
    C'est ce dernier fichier qui est le seul garant de l'intégrité de votre base de données.

    Dès lors, il vaut mieux que vous mettiez en place une stratégie de sauvegarde selon vos besoins (ce peut être par exemple une fois pas jour), de façon à pouvoir récupérer les petites erreurs

    @++

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Bonsoir,

    donc avec des sauvegardes de fichier MDF sur bandes, je ne peux pas récupérer mes tables?.
    Merci de me confirmer.
    et surtout merci de la prise en compte de ma demande.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Je dispose d'une ancienne sauvegarde bak, datant de...2007.
    Bon, je fais ce que je peux...
    Est-ce qu'elle serait exploitable pour mon problème?
    Merci encore et bonne nuit

  5. #5
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonsoir,

    -1-
    Comment restaurez vous le fichier mdf depuis votre robot ?

    -2-
    Avec votre ancienne sauvegarde (fichier bak) vous aller pouvoir restaurez vos tables. Il suffit de restaurer votre base sous un autre nom (base_backup par ex) et il vous suffit ensuite d'exporter vos tables depuis votre base "base_backup" vers votre base de production.

    ++

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    la sauvegarde est journalière et est effectuée sur un robot, J'ai donc restauré la base mdf à partir de la sauvegarde de la veille.

    Avec la manipulation que vous m'indiquez, j'ai bien récupéré les tables , le problème c'est que les données ne vont pas au-delà de 2007, j'ai donc perdu un historique de 2 ans.

    J'ai également tenté de recréer la base et les tables avec le script d'origine, ensuite exporté les tables de 2007 et en dernier, réinjecté la base mdf de la veille. Mais peut-être que je ne lance pas les procédures dans le bon ordre.

    Si je ne parviens pas à récupérer toutes les données, il me faudrait au moins trouver un éditeur pour en lire le contenu.

    Merci pour votre aide

  7. #7
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Citation Envoyé par Domi34 Voir le message
    Bonjour,
    la sauvegarde est journalière et est effectuée sur un robot, J'ai donc restauré la base mdf à partir de la sauvegarde de la veille.
    Prenez dans ce cas vos fichiers mdf (et ldf si vous l'avez) de votre sauvegarde (via le robot) et restaurez votre base en utilisant la commande CREATE DATABASE ... FOR ATTACH. Donnez un autre nom à votre base bien entendu. Il suffit ensuite de restaurer les tables qui vous concernent dans la base cible.

    Ex :

    Base resto | Base prod
    -----------------------------
    Table A ---> Table A
    Table B ---> Table B
    Table C ---> Table C

    Vous aurez donc les données de vos sauvegardes transférés + données récentes de la prod.

    ++

  8. #8
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Ou en utilisant sp_attach_db :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    EXEC sp_attach_db @dbname = N'maBaseDeDonnees', 
       @filename1 = N'c:\maBaseDeDonnees.mdf', 
       @filename2 = N'c:\maBaseDeDonnees.ldf'
    Ensuite pour restaurer les valeurs dans vos tables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    USE maBDCible
    GO
     
    UPDATE maTable
    SET maColonne1 = SOURCE.maColonne1,
    	maColonne2 = SOURCE.maColonne2,
    	maColonneN = SOURCE.maColonneN
    FROM maBDCible.dbo.maTable AS CIBLE
    INNER JOIN maBDSource.dbo.maTable AS SOURCE
    	ON CIBLE.clePrimaire = SOURCE.clePrimaire
    où la BD source est la base de données que vous venez de rattacher

    @++

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Prenez dans ce cas vos fichiers mdf (et ldf si vous l'avez) de votre sauvegarde (via le robot) et restaurez votre base en utilisant la commande CREATE DATABASE ... FOR ATTACH. Donnez un autre nom à votre base bien entendu. Il suffit ensuite de restaurer les tables qui vous concernent dans la base cible.

    Ex :

    Base resto | Base prod
    -----------------------------
    Table A ---> Table A
    Table B ---> Table B
    Table C ---> Table C

    Vous aurez donc les données de vos sauvegardes transférés + données récentes de la prod.

    ++

    Merci beaucoup, par cette procédure, j'ai enfin récupéré les données récentes.
    Je vais revoir sérieusement mon plan de sauvegarde

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Ou en utilisant sp_attach_db :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    EXEC sp_attach_db @dbname = N'maBaseDeDonnees', 
       @filename1 = N'c:\maBaseDeDonnees.mdf', 
       @filename2 = N'c:\maBaseDeDonnees.ldf'
    Ensuite pour restaurer les valeurs dans vos tables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    USE maBDCible
    GO
     
    UPDATE maTable
    SET maColonne1 = SOURCE.maColonne1,
    	maColonne2 = SOURCE.maColonne2,
    	maColonneN = SOURCE.maColonneN
    FROM maBDCible.dbo.maTable AS CIBLE
    INNER JOIN maBDSource.dbo.maTable AS SOURCE
    	ON CIBLE.clePrimaire = SOURCE.clePrimaire
    où la BD source est la base de données que vous venez de rattacher

    @++

    Merci à vous, je vais conserver toutes ces procédures.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Performances : création / suppression de tables
    Par arcane dans le forum Access
    Réponses: 1
    Dernier message: 04/10/2005, 17h53
  2. Requete suppression de table
    Par isa21493 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/07/2005, 09h13
  3. suppression de table
    Par donny dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 29/05/2005, 09h34
  4. [sybase] Suppression de tables par lot
    Par Higgins dans le forum Sybase
    Réponses: 2
    Dernier message: 30/09/2004, 16h42
  5. Suppression de tables en cascade
    Par Moah dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 16/07/2004, 15h36

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