Pular para o conteúdo
Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #97391
    Doids
    Participante

      Pessoal,
      são 3 duvidas:

      1 – Como transformo as sqls da coluna REDO para a forma original?
      ex:
      tenho no log consultando a V$LOGMNR_CONTENTS:
      update “UNKNOWN”.”OBJ# 31755″ set “COL 11” = HEXTORAW(‘c103’) where “COL 11” = HEXTORAW(‘c102’) and ROWID = ‘AAAIJyAAfAAAxjKAAN’;

      Tem alguma maneira facil de passar a linha acima para algo entendivel?
      Sei apenas passar os valores um de cada vez.

      2 – As sqls que estao no log de update são examente iguais as que aparecem na V$LOGMNR_CONTENTS?
      Pelo que eu pode constatar fica igual ate a clausula where. Dpois do where o log vem todo modficado do real update executado no banco.
      ALguem confirma isso ou tem alguma explicacao?
      Falo isso pq a aplicacao tem um update de uma forma e no log esta de outra forma (apenas a clausula WHERE).

      3 – Tenho a sessao e usuario que fez o acesso, mas ela não existem mais no Banco na v$session. Onde posso verificar isso?Tem algum log de sessoes?

      Toda esta analise é no oracle 9i!

      Obrigado.

      #97411
      Doids
      Participante

        Ninguem sabe me responder?

        #97430
        vieri
        Participante

          Para passar isso ai pra forma original você precisa
          fazer consultas na dba_objects e dba_tab_columns,
          para ver quem é o OBJ# 31755 e COL11 e demais.

          ex:

          select owner,object_name from dba_objects where object_id=31775 ;

          depois

          select column_name from dba_tab_columns where table_name in ( select object_name from dba_objects where object_id=31775 )
          and COLUMN_ID = 11;

          Estará de posse da tabela e coluna que fora alterada.

          Para audar a pesquisar o processo que vc quer descubrir,
          adapte as queryes abaixo.

          select timestamp, username, session_info, sql_redo, info
          from v$logmnr_contents
          where operation=’DDL’;

          select xid, substr(sql_redo,1,100)
          from v$logmnr_contents
          where operation=’DDL’ and lower(sql_redo) like ‘create%procedure%’;

          select sql_undo from v$logmnr_contents where xid=’ 07002100D8850600′ and table_name=’SOURCE$’ and operation=’DELETE’;

          set pagesize 1000 linesize 150 heading off feedback off verify off trimspool on trimout on
          undef xid
          select timestamp from v$logmnr_contents where xid=’&&xid’ and operation=’DDL’;
          column txt format a150
          select REGEXP_REPLACE(
          REGEXP_REPLACE(sql_undo,
          ‘insert into “SYS”.”SOURCE$”(“OBJ#”,”LINE”,”SOURCE”) values (”[0-9]+”,”[0-9]+”,”’,”
          ),”’);$’,”
          ) txt
          from v$logmnr_contents where xid=’&&xid’ and table_name=’SOURCE$’ and operation=’DELETE’;

          Para iniciar o processo de leitura de arquives:

          alter session set nls_date_format=’yyyy-mm-dd hh24:mi:ss’;

          begin
          dbms_logmnr.start_logmnr(
          startTime => ‘2007-04-16 00:00:00’,
          endTime => ‘2007-04-20 00:00:00’,
          options => dbms_logmnr.DICT_FROM_ONLINE_CATALOG + dbms_logmnr.CONTINUOUS_MINE);
          end;
          /

          De posse disso vc descobre oque quiser.

          Caso seja um update indevido, restaure um backup da base em outro lugar, faça um recuperação pint in time até um LOGSEQ ou until time do update. E faça o update ajustando os dados corretos via database link para base que foi alterada.

          #97431
          vieri
          Participante

            vc postar no forum e não obter resposta em um dia naum significa que ninguem sabe te responde, significa que ninguem ainda se prontificou ou está com paciencia para ajudar… vai estudando o assunto enquanto não for respondido. Não jogue a responsabilidade de aprender no forúm,
            é apenas uma ferramenta de ajuda mutua e não um DBA senior do seu lado sempre a sua disposição..

            😉

            #97432
            vieri
            Participante

              log se sessões somente o listener.log

              #97713
              Doids
              Participante

                Obrigado Pela ajuda.
                Sobre a msg ‘ninguem sabe responder’ é que estava precisando urgente da informação.
                De qualquer forma fica no forum um otima fonte de informação para todos os usuários.

              Visualizando 6 posts - 1 até 6 (de 6 do total)
              • Você deve fazer login para responder a este tópico.