|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre actif
![]() |
Bonsoir à tous,
J'espère que vous allez bien. Voilà j'ai malentreusement effectué un drop table sur une base, je me suis donc dit pas de souci je vais faire un restore à partir des logs. Alors j'ai fait un backup complet de la base puis un bakup du fichier de log et ensuite j'ai joué cette instruction SQL pour restaurer ma base : Code :
Lorsque cette instruction se termine ma base se met en mode Restauration, j'ai déjà effectué ce genre de manip à deux reprises auparavant et tout avait bien fonctionné. Qu'ai-je manqué ce coup ci ? Comment remettre ma base en ligne sans mon erreur ? Merci pour votre aide |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Votre script n'est pas bon. Dans la première phase vous effectuez une restauration complète en mode WITH RECOVERY. Il faut le faire en WITH NO RECOVERY pour pouvoir ensuite restaurer la partie du journal qui vous intéresse.
Code :
|
||
|
00
|
|
|
#3 |
|
Membre actif
![]() |
Bonjour,
Merci mikedavem, mais j'avais déjà essayé avec NORECOVERY, et le résultat est le même. Je ne vois toujours pas pourquoi ma base est en mode récupération. Aurais-tu une autre piste ? |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Que donne la commande suivante après restauration des sauvegardes :
Code :
RESTORE DATABASE <maBase> WITH RECOVERY; |
|
00
|
|
|
#5 |
|
Membre actif
![]() |
Merci encore une fois,
Code :
RESTORE DATABASE <maBase> WITH RECOVERY; Aurais-tu une idée sur ce point si ce n'est pas abusé de ma part ? |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Est ce qu'avec la sauvegarde complète seulement vous retrouvez votre table ?
++ |
|
00
|
|
|
#7 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 953 ![]() |
Utilisez un outil comme le log explorer que Apex pour voir ou est la table dans les JT.
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#8 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 668 ![]() |
Bonjour,
N'est-il pas possible de le trouver dans fn_dblog (Colonne AllocUnitName) ? @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
00
|
|
|
#9 |
|
Membre actif
![]() |
non je ne la retrouve pas avec ma sauvegarde complète. Mais ma sauvegarde complète a été faite après le drop de la table, car je n'avais pas de sauvegarde récente en fait.
MAis une fois j'avais eu le même souci et j'avais réussi avec cette façon, mais je n'avais pas fait de drop table, juste un delete. Merci de ton aide encore. |
|
|
00
|
|
|
#10 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Si vous avez fait votre sauvegarde après le DROP TABLE il n'est normal de ne pas la retrouvez.
Si vous voulez retrouver votre table il va falloir partir d'une sauvegarde antérieure à ce DROP plus les journaux nécessaires (si vous en avez) ++ |
|
00
|
|
|
#11 | ||
|
Membre actif
![]() |
Citation:
Citation:
Donc conclusion il n'y aurai aucun moyen de retrouver ma table ? Pourtant lorsque j'avais effectué un delete sur l'ensemble de mes tables j'ai pu tout retrouver avec les logs. Alors que je n'avais pas de sauvegarde récente; j'avais fais la même manipulation. Dans le cas d'un drop ce n'est pas le même mécanisme ? |
||
|
|
00
|
|
|
#12 | ||||
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Votre point de référence ici est la sauvegarde complète de votre base.
Celle-ci ne contient pas votre table puisqu'elle a été supprimée antérieurement à votre sauvegarde. Les sauvegardes de journaux que vous appliquez rejouent les transactions à partir de votre sauvegarde complète. Celles-ci ne peuvent donc pas retrouver votre table comme par miracle ... Code :
Il faudrait avoir le scénario suivant : Code :
++ |
||||
|
00
|
|
|
#13 | |
|
Membre actif
![]() |
Merci mikedavem pour cette explication.
Néanmoins il reste quand même une zone d'ombre dans ma tête. Lorsque je fais un delete de ma table comme ceci Citation:
|
|
|
|
00
|
|
|
#14 | ||
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Je vois pas comment vous arrivez à ce résultat.
Voici ce que j'obtiens avec le script suivant en suivant votre démarche : Code :
|
||
|
00
|
|
|
#15 |
|
Membre actif
![]() |
Tel que vous faites le restaure de la base de données en effet on ne récupère pas la ligne supprimée. Mais si vous utilisez l'instruction STOPAT tel que le l'ai fait dans la commande sql que j'ai écrite au début on arrive à récupérer la ligne supprimée.
Je met le STOPAT avant l'heure supposée de la suppression. Je le fais avec SSMS, mais je suppose que c'est la même intruction qui est jouée. |
|
|
00
|
|
|
#16 | |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Citation:
++ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com