Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Administration
Administration Forum d'entraide sur l'administration du dataserver, via SSM ou ligne de commande, les tables système, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/06/2008, 20h57   #1
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Par défaut Restauration des dernière transactions

Bonjour,

J'ai un soucis avec la restauration SQL Server. J'ai restauré les fichiers mais en précisant NORECOVERY.

La question est : comment on ouvre la base quand on a mis NORECOVERY plutôt que RECOVERY

Autre question : comment restaurer le fichier de data seulement et rejouer tout le contenu du log en cours pour arriver à la dernière transaction possible ?

orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2008, 21h23   #2
Membre Expert
 
Inscription : août 2002
Messages : 1 249
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 1 249
Points : 1 512
Points : 1 512
Envoyer un message via Yahoo à ylarvor
Citation:
Bonjour,

J'ai un soucis avec la restauration SQL Server. J'ai restauré les fichiers mais en précisant NORECOVERY.

La question est : comment on ouvre la base quand on a mis NORECOVERY plutôt que RECOVERY

Autre question : comment restaurer le fichier de data seulement et rejouer tout le contenu du log en cours pour arriver à la dernière transaction possible ?
En principe, on choisit WITH NORECOVERY si on a un log à restaurer derrière...
Je ne me suis jamais trouvé dans votre situation, je suppose que l'on peut réappliquer la même restauration par dessus en choisissant WITH RECOVERY pour débloquer la situation, je ne vois pas en quoi, deux restaurations full successive poserait un quelqueconque problème...

concernant votre deuxieme question, vous restaurez la restauration full puis le log avec la commande point in time

reference : http://www.databasejournal.com/featu...le.php/3530616
ylarvor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2008, 21h31   #3
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
le souci c'est que je passe par TSM donc j'ai une copie des fichiers et pas un backup... du coup, pour le moment je ne sais restaurer que jusqu'au dernier log sauvé et pas celui qui est en cours
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2008, 21h42   #4
Membre Expert
 
Inscription : août 2002
Messages : 1 249
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 1 249
Points : 1 512
Points : 1 512
Envoyer un message via Yahoo à ylarvor
Moi aussi, je restaure que jusqu'au dernier backup de log sauve mais il existe une technique:
Je ne connais que la théorie mais il me semble que l'on sauvegarde le dernier log juste apres le crash, le fichier journal de queue et on restaure avec point in time.
ylarvor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2008, 10h27   #5
Membre Expert
 
Inscription : juin 2007
Messages : 1 056
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 056
Points : 1 078
Points : 1 078
Bonjour,

J'ai un peu de mal à comprendre précisément votre soucis :

Pourquoi ne pas sauvegarder le journal (backup log) de la base (elle est cours d'utilisation là ?) puis restaurer votre dernier backup complet (datafiles ou backup) et rejouer vos journaux + le journal fraîchement sauvé ?
__________________
Emmanuel T.
kagemaru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2008, 11h14   #6
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Imaginons le scénario suivant :
Sauvegarde FULL le dimanche
Sauvegarde du log tous les jours à 14h

Ma base s'éclate à 20h, je dois restaurer juste avant l'incident.

Deux exemples concrets :
1) J'ai essayé de déplacer les fichiers de données mais j'ai pas réussi à attacher la base avec le nouvel emplacement... je ne sais plus comment je m'étais débrouiller exactement mais l'instance était complètement inaccessible
2) J'ai eu une erreur d'IO sur un fichier de données

Dans le 1er cas, impossible de voir la base dans l'explorateur, donc pas moyen de faire un BACKUP LOG.

De 2 choses l'une : soit on est pas obligé de lancer Studio pour exécuter un backup log mais je ne connais pas la méthode, soit lorsque la base n'est pas visible le backup log est impossible et donc les dernières transactions perdus.

En fait, j'arrive pas à comprendre pourquoi SQL Server ne peut pas "tout simplement" réattacher le log courant plutôt que faire appel à une sauvegarde. Sous Oracle, il est possible de rejouer les redos courant sans soucis (redo = transaction log)... je suis surpris que SQL Server ne propose pas une telle possibilité
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2008, 22h37   #7
Membre confirmé
 
Inscription : novembre 2007
Messages : 426
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 426
Points : 218
Points : 218
Pour ouvrir la base, en faisant detache/attache de la base tu peux ouvrir la base.
Cordialement
agdid04 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2008, 09h18   #8
Membre Expert
 
Inscription : juin 2007
Messages : 1 056
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 056
Points : 1 078
Points : 1 078
Citation:
Ma base s'éclate à 20h, je dois restaurer juste avant l'incident.
si, il est possible de sauvegarder les transactions de ce journal (même si la base est out) :
Code :
backup log mabase TO disk='fichier.bak' WITH no_truncate
avec l'option NO_TRUNCATE, sql server essaie par tous les moyens de récupérer le journal résiduel, quel que soit l'état de la base.

ensuite tu restaures comme n'importe quelle autre base :

restauration du backup full, du ou des logs de 14h et de ce dernier bout de journal (with stopat='date heure').

tu peux tout faire avec SQLCMD ou OSQL (command line), nul besoin de management studio (même si c'est bien confortable).
__________________
Emmanuel T.
kagemaru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2008, 11h13   #9
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Bon bah c'est très clair Enfin, je trouve quand même dommage de devoir faire un fichier de sauvegarde pour restaurer des données qu'on a dans le fichier original... ils ne doivent pas payer les disques chez Microsoft

Reste plus qu'à voir comment faire ça avec TSM

Merci
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h49.


 
 
 
 
Partenaires

Hébergement Web