- Este tópico contém 5 respostas, 4 vozes e foi atualizado pela última vez 16 anos, 2 meses atrás por
JamirJr.
-
AutorPosts
-
1 de abril de 2009 às 12:52 am #86026
JamirJr
ParticipanteEstou com a mesma dúvida do colega em
http://glufke.net/oracle/viewtopic.php?t=382ou seja, Última atualização da tabela? não de DDL, mas de DML. Acredito que tenha sim esta informação em alguma tabela do oracle, pq esta é uma informação muito importante até para o próprio Oracle. Alguem sabe onde está? Pode ser lá no fundão do oracle, hehehe…
SYS.user$ u, SYS.ts$ ts, SYS.seg$ s, SYS.obj$ co, SYS.tab$ t, SYS.obj$ o, SYS.obj$ cx, etc
1 de abril de 2009 às 1:04 am #86027Marcio68Almeida
Participantepesquise log miner
1 de abril de 2009 às 1:18 am #86028Regis Araujo
ParticipanteFala Jamir… ble…
Então mano..
Acho que para isto vc pode ativar o monitoring na tabela e depois dar select na tabela user_tab_modifications..
SQL> alter table TB_CLIENTES monitoring;
Table altered
SQL> select * from user_tab_modifications;
TABLE_NAME INSERTS UPDATES DELETES TIMESTAMP
---------- -------- -------- -------- ---------
TB_CLIENTES 0 2 6 31/3/2009 18:05:02Bom.. eu pelo menos faço assim.. se houver outra maneira mais facil será otimo…
Abraços…
1 de abril de 2009 às 4:32 pm #86030David Siqueira
ParticipanteOla rapaziada, desconheço que o Oracle armazene isso automaticamente, porém há algumas features que poderiam ser usadas para sanar sua necessidade :
1- Logminer ( Como o colega disse)
2 – Criar um Trigger de Audit em cima da Tabela desejada, onde faria um insert em uma table auxiliar com data, usuário e comando de alteração ( se necessário)
3 – Habilitar auditoria na base de Dados
4- Via monitorig table, não é muito eficiente dependendo do que você realmente precise como forma de auditoria, mas é um paleativo interresante, fácil e rápido de implementar.Abcs.
David
2 de abril de 2009 às 5:52 pm #86048Marcio68Almeida
ParticipanteLembrando sempre que toda facilidade tem um custo, às vezes muito alto para ser implementado…
Colocar uma auditoria pode custar muito tempo, espaço e recursos…
Veja muito bem qual o seu objetivo final…2 de abril de 2009 às 10:11 pm #86063JamirJr
ParticipanteÉ isso ai galera, vamos no fundo do oracle!!! (ou não, hehehehe é pq quase não se acha documentação e comentários sobre isso!)
…a view citada pelo colega (user_tab_modifications) é um bom começo…
segundo o http://www.ss64.com/orad/USER_TAB_MODIFICATIONS.html
existe o campo TIMESTAMP(Timestamp of last time this row was modified)esse campo vem da tabela SYS.mon_mods_all$, além dessa, a view user_tab_modifications lê as tabelas: SYS.obj$, SYS.tab$, SYS.tabsubpart$
filtrando por usuario:
SELECT *
FROM SYS.user$ u, SYS.mon_mods_all$ m, SYS.obj$ o, SYS.tab$ t
WHERE u.NAME = ‘XPTO’
AND o.obj# = m.obj#(+)
AND u.user# = o.owner#
AND o.obj# = t.obj#consegui pegar todas as tabelas de XPTO
Porém fiz alguns testes(insert, update) e não apareceu nada novo em SYS.mon_mods_all$.
Será q estamos no caminho certo? o q está faltando? gerar estatisticas?
obs. esta com monitoring = yes
Muito obrigado
-
AutorPosts
- Você deve fazer login para responder a este tópico.