Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Sous Oracle, il existe une méthode permettant de retourner à un instant T dans une base de donnée.
Savez-vous si il existe une methode équivalente sous PostgreSQL.
Merci d'avance.
Hors ligne
Le seul moyen est le log shipping mais cela n'apporte pas toutes les fonctionnalités proposées par Oracle à ma connaissance. Un autre moyen est d'utiliser le module contrib tablelog.
Pour vous en dire plus, il faudrait savoir exactement ce que vous voulez comme fonctionnalité.
Guillaume.
Hors ligne
En fait, ce qu'il faudrait savoir, c'est de quel type de flashback on parle.
Sous Oracle, il y a :
FLASHBACK Table. C'est deux choses à la fois :
- une corbeille des tables effacées. Quand on fait un drop table, la table est cachée mais toujours présente (pour peu qu'il y ait suffisamment de place libre).
- Il y a aussi moyen de ramener une table à un SCN (numéro de transaction, mais ca passe par datapump + flashback database je crois, c'est assez lourd)
FLASHBACK Database : ca permet de ramener la base à un point dans le passé. C'est comme le PITR, mais en plus rapide : on n'a pas besoin de restaurer la base puis appliquer les redo, on a une journalisation de plus, la flashback_database_log. Uniquement en version Entreprise
FLASHBACK Query : simplement pouvoir interroger les données telles qu'elles étaient dans le passé. On fait un SELECT xxxxxx AS OF TIMESTAMP('02-MAY-07 10.55.20.000000'). Ca nécessite que les données soient encore dans l'UNDO, ce qui n'est pas garanti.
Pour la 1, on n'a rien d'équivalent.
Pour la 2, on peut faire du PITR. C'est plus lent, mais ça fournit la même chose.
Pour la 3, on ne peut pas le faire aujourd'hui (et c'est dommage, il y a à peu près tout ce qu'il faut dans postgresql avec son implémentation MVCC )
Marc.
Hors ligne
Pour la 1, Simon Riggs en avait parlé lors du FOSDEM 2008 mais je pense qu'il a eu trop de boulot avec le HotStandby
Pour la 2, entièrement d'accord.
Pour la 3, il devrait être possible de faire ça avec tablelog.
Guillaume.
Hors ligne
Oui, mais la 3, ce qui serait classe, ca serait de pouvoir
- dire à vacuum : ne purge pas ce qui a moins de x heures
- dire ensuite à select : fais comme si tu étais la transaction xxx
Ce qui est frustrant, c'est qu'à mon avis, il n'y a pas grand chose à faire pour le rendre possible ... et qu'ils en parlent régulièrement sur hackers
Marc.
Hors ligne
Bien d'accord que ce serait intéressant.
Guillaume.
Hors ligne
C'est bien le choix 2 que je souhaite faire.
Par contre je ne connais pas PITR (je vais regarcer...)
De plus c'est possible de le faire avec table_log mais ne fonctionne pas si la clée primaire est positionnée sur plusieurs colonne.
Hors ligne
En fait, le flashback database d'Oracle, c'est un PITR amélioré : au lieu de revenir à la dernière sauvegarde, il applique sa log flashback jusqu'à revenir un peu avant le moment désiré, puis il réapplique de la redo log par dessus pour arriver exactement à l'adresse souhaitée. Donc ca reste du PITR, mais accéléré (et intégré).
Marc.
Hors ligne
Pages : 1