Update dans logging (oracle)

Update dans logging (oracle) - SQL/NoSQL - Programmation

Marsh Posté le 15-01-2014 à 08:34:44    

Bonjour a tous,
Je suis débutant en base de donnée sql oracle et j'utilise toad comme logiciel.
Ma question est sans doute bete mais lorsque je fais une commande "update" d'une valeur, y a t il une trace quelconque de cette modification dans un fichier log ou autre ?
Un grand merci d'avance pour vos lumières
A+

Reply

Marsh Posté le 15-01-2014 à 08:34:44   

Reply

Marsh Posté le 15-01-2014 à 13:19:11    

Ca dépend comment sont paramétrées la base de données et la table, et comment l'update est réalisé.
 
Une solution, pour avoir une trace des modifications, est d'utiliser un trigger before/after update.


Message édité par olivthill le 15-01-2014 à 13:19:39
Reply

Marsh Posté le 15-01-2014 à 14:23:11    

cela fait quoi le trigger before/ after? comme trace? rien...
sauf si tu lui dit de faire implicitement avec une instruction de svg sur ton before...
tu as essayé l'écriture transactionnelle? et l'exploitation des journaux?
 
sinon, la vielle méthode, qui marche tjs: la table de test et / la table de svg
 
 
 

Reply

Marsh Posté le 15-01-2014 à 14:28:07    

gpl73 a écrit :

cela fait quoi le trigger before/ after? comme trace? rien...
sauf si tu lui dit de faire implicitement avec une instruction de svg sur ton before...
tu as essayé l'écriture transactionnelle? et l'exploitation des journaux?
 
sinon, la vielle méthode, qui marche tjs: la table de test et / la table de svg
 
 
 


 
Merci Gpl73,
Non, je n'ai rien essayé, je suis completement débutant et il s'agit d'une database qui tourne et qui a ete mise en place mais nous nous retrouvons seuls.
Nous mettons parfois a jour des valeurs (avec update comme on me l'a expliqué) mais j'aimerais retrouver les modifications de valeur et voir si quelqu'un d'autre en fait.
Merci bcp.
A plus

Reply

Marsh Posté le 15-01-2014 à 17:21:35    

Si c'est uniquement ça, regarde alors la mise en place de la journalisation d'une table. Et l'exploitation des journaux ...c'est pas super à lire mais tu as tout (en fonction de ton paramétrage, bien sur).
Sinon, après il faut taper dans la BD,  la modifier , faire des alter tables et ajouter et maintenir des champs de maintenance du style user_de_creation, timestamp_de_creation (ou datetime), pareil pour la modifi...
4 champs par tables,  les + sensibles.
NB: vérifier que cela ne plante pas ton appli qd même :)
 
Mais cela veut dire aussi, qu'il faut les gérer ces 4 champs:
Modif de ton appli si tu as les sources...
Modif de ta BD, via la mise en place de 2 triggers / tables :
un sur un after insert, un sur after update (ou before, il y a quelques subtilités dont je me rappelles plus...à lire...)
 
un truc simple du style :
set aft_user_creation = user;
set aft_timestamp_creation = now();
 
Pleins de gens te diront que tu es fou, de mettre des triggers, cela va te faire perdre de la performance... (si tu fais n'importe quoi, oui...)
 
J'attends tjs une compaison chiffrée entre un temps d'écriture complete via une appli, et une écriture via triggers.
 
Avantages des triggers:
Tu peux attaquer ta base de données sans passer par ton appli, tu as les regles que tu as écrites qui se feront ...
tu peux en théorie changer d'applicatif et concerver tes regles métiers et le fonctionnement de ta base...
 
Desavantages: cf dessus :)
C'est le soucis de mettre les règles super bas... c'est le manque de souplesse lié à l'évolutivité.  
Il faut que la table soit libre pour passer un trigger et pareil si tu veux le modifier... si production 24/24 => pb...
sauf si tu passes par une procedure appelée par ton trigger :)...
 
Les programmeurs préféront les modifs dans les appli, car ils peuvent changer facilement les régles de gestions et ainsi "bidouiller" les données plus facilement
les DBA préféront les règles dans les triggers, pas de modif hors règles métiers...
De plus, tu peux blinder ta base de données avec des contraintes... là aussi, cela peut être chaud.... il faut connaitre sa base et son applicatif(surtout si tu les passes après)...
 
C'est à voir et à étudier :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed