Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Administration
Administration Forum d'entraide sur l'administration du serveur Oracle
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 31/01/2011, 12h06   #1
Membre régulier
 
Homme Tij SEL
Inscription : mars 2010
Messages : 282
Détails du profil
Informations personnelles :
Nom : Homme Tij SEL
Localisation : Tunisie

Informations forums :
Inscription : mars 2010
Messages : 282
Points : 79
Points : 79
Par défaut Récupérer données hier

Bonjour,
Est ce que je peux revenir en arrière pour les enregistrements d'une table , je veux récupérer les données d'hier ou d'avant une heure.
Est ce que c'est possible?
Merci
DeveloppeurWeb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 12h18   #2
Membre habitué
 
Développeur informatique
Inscription : juillet 2002
Messages : 96
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2002
Messages : 96
Points : 120
Points : 120
Bonjour,

C'est eventuellement possible par exemple avec MySQL, si tu as les logs binaires activés. ainsi qu'un dump quotidien.


Commence par faire un dump pour être sur de ne rien perdre.
Ensuite, il te "suffira" de :
- Récupérer dans un fichier la totalité de tes logs binaires a partir du dump
- De virer toutes les requêtes que tu ne veux pas voir exécuter.
- Réintégrer un dump de la veille
- Faire passer tes logs binaires filtrés par tes soins pour qu'ils restituent tout ce qui a été faire depuis le dump de la veille a l'exceptions des requêtes que tu as préalablement enlevées.

Bien sur, il est évidemment conseillé de ne pas faire ceci en production, d'être très rigoureux sur le contenu du fichier que tu vas réintegrer apres ton dump.
Et bien sur cela peut être très fastidieux si tu as eu des millions de requêtes depuis ton dernier dump.

Ca peut etre long, mais avec quelques scripts bien ficelés, tu devrait t'en tirer sans trop de problèmes.

Alors attention, cette solution peut-être un peu bourrine, si quelqu'un en connait une meilleure, c'est toujours bon a prendre.


Cordialement.
__________________
Je connais des gens qui ne sont pas aware, il ne sont pas qu courant. il ne sont pas a l'attention de savoir qu'ils existent.
"J-C Van dam"
Lharuun est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 31/01/2011, 12h20   #3
Membre habitué
 
Développeur informatique
Inscription : juillet 2002
Messages : 96
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2002
Messages : 96
Points : 120
Points : 120
Désolé, mais j'avais pas vu que le message faisait parti du forum Oracle..



Ce post peut etre ? http://www.developpez.net/forums/d21...-apres-update/
__________________
Je connais des gens qui ne sont pas aware, il ne sont pas qu courant. il ne sont pas a l'attention de savoir qu'ils existent.
"J-C Van dam"
Lharuun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 12h27   #4
Membre régulier
 
Homme Tij SEL
Inscription : mars 2010
Messages : 282
Détails du profil
Informations personnelles :
Nom : Homme Tij SEL
Localisation : Tunisie

Informations forums :
Inscription : mars 2010
Messages : 282
Points : 79
Points : 79
Si je n'ai pas créé de mouvement de ligne , je ne peux pas faire de flashback.
Est ce que c'est vrai?
DeveloppeurWeb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 13h55   #5
Rédacteur
 
Inscription : décembre 2002
Messages : 2 385
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 385
Points : 3 261
Points : 3 261
Citation:
Envoyé par DeveloppeurWeb Voir le message
Si je n'ai pas créé de mouvement de ligne , je ne peux pas faire de flashback.
Est ce que c'est vrai?
Pour le FLASHBACK TABLE, c'est exact.
Mais l'activation du mouvement des lignes peut se faire à tout moment, donc ce n'est pas une grosse contrainte.
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 14h08   #6
Membre régulier
 
Homme Tij SEL
Inscription : mars 2010
Messages : 282
Détails du profil
Informations personnelles :
Nom : Homme Tij SEL
Localisation : Tunisie

Informations forums :
Inscription : mars 2010
Messages : 282
Points : 79
Points : 79
J'ai pas activé mouvement de ligne donc comment je peux récupérer les données d'une date ?
DeveloppeurWeb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 14h49   #7
Nouveau Membre du Club
 
Inscription : septembre 2008
Messages : 45
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2008
Messages : 45
Points : 39
Points : 39
Bonjour,

Pas beaucoup de possibilité dans ce cas précis.

Je ne voit personnellement que deux hypothèses : Le flashback database (si activé) ou rejouer les archiveslog jusqu'a la date et heure qui te convienne. Mais les inconvénients sont majeurs puisque cela implique de l'indisponibilité et que cela concernera l'intégralité de ta base de données, et donc potentiellement d'autres objets / tables

A tout hasard, si ton tablespace possède l'option RETENTION_GUARANTEE, essaie de récupérer le n° de SCN lié à la date et heure qui t'interesse , et tente

Code :
flashback TABLE mytable TO scn XXXXX ;
ou encore via le timestamp

Code :
flashback TABLE mytable TO_TIMESTAMP ('29/01/2011 12:00:00','DD/MM/YYYY HH24:MI:SS')
Par contre il te faut le privilege FLASHBACK TABLE ou FLASHBACK ANY TABLE si tu le fait depuis un user autre que system ou sys.
Mikl-Dba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 16h47   #8
Rédacteur
 
Inscription : décembre 2002
Messages : 2 385
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 385
Points : 3 261
Points : 3 261
Citation:
Envoyé par DeveloppeurWeb Voir le message
J'ai pas activé mouvement de ligne donc comment je peux récupérer les données d'une date ?
Réponse : L'activation du mouvement des lignes peut se faire à tout moment.

1) Il faut bien voir que l'historisation des anciennes valeurs est assurée automatiquement par le tablespace d'annulation, mais pendant une durée assez brève et un peu aléatoire.
Pour paramétrer la durée de rétention souhaitée (sans garantie) :
Code :
ALTER system SET undo_retention=nombre_de_secondes;
Pour être sûr que la rétention demandée sera réellement assurée :
Code :
ALTER tablespace mon_tbs_undo RETENTION GUARANTEE;
2) L'activation du mouvement de lignes pour une table n'a aucune influence sur la conservation des anciennes valeurs, et n'effectue aucun retour en arrière.
Il a juste pour effet d'autoriser que les lignes de données changent d'adresse, ce qui n'est pas permis par défaut.

Code :
ALTER TABLE ma_table ENABLE ROW MOVEMENT;
est exigé uniquement parce que le FLASHBACK TABLE va faire des DELETE suivis par des INSERT, ce qui va provoquer le changement d'adresse des données.
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h39.


 
 
 
 
Partenaires

Hébergement Web