Pular para o conteúdo
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #104222
    gazioli
    Participante

      Senhores, tenho uma dúvida e gostaria da ajuda de vocês por favor.

      Uma sessão X esta executando várias atualizações (sem commit) o Oracle vai proteger os dados gerando um segmento de Undo. Em outra sessão dou KILL na sessão X, no entanto a sessão fica marcada como KILLED e acredito que o PMON (ou SMON não tenho certeza) irá desfazer as transações liberando os dados da UNDO. (O script para verificar quantos blocos precisam ser desfeitos esta abaixo). Enquanto a Sessão X permanece como KILLED o processo SPID ainda existe, o que acontece ao eu dar KILL (# KILL -9 SPID) no Sistema Operacional? sei que a sessão X será removida (disconnect) e o script utilizado acima para verificar os blocos de undo sumiram.

      A discussão surge ai: isso pode corromper de alguma forma a consistência do Banco? ou o Banco vai continuar em background desfazendo as alterações? da mesma forma quando é feito um shutdown abort ao iniciar o Oracle executa o processo de recovery se necessário?

      espero que tenha ficado claro minha dúvida! agradeço aos comentários.

      abaixo script:

      SELECT s.username,
      s.sid,
      s.serial#,
      t.used_ublk,
      t.used_urec,
      rs.segment_name,
      r.rssize,
      r.status
      FROM v$transaction t,
      v$session s,
      v$rollstat r,
      dba_rollback_segs rs
      WHERE s.saddr = t.ses_addr
      AND t.xidusn = r.usn
      AND rs.segment_id = t.xidusn
      ORDER BY t.used_ublk DESC;

      Att.,
      _____________
      Gazioli

      #104230
      Fábio Prado
      Participante

        gazioli,

        Se vc matar a sessão com kill -9 o PMON irá desfazer as alterações. Já precisei usá-lo várias vezes e nunca tive problemas com dados corrompidos, porém acredito que sempre há risco, mesmo que mínimo , de corromper os dados!

        Qto ao shutdown abort evite este comando, eu já precisei usá-lo e não tive problemas, mas conheço DBAs que usaram e que tiveram objetos corrompidos no dicionário de dados! Use como última opção para parar o BD, qdo nenhuma das outras alternativas irá te ajudar!

        []s

        Fábio Prado
        http://www.fabioprado.net

        #104231
        gazioli
        Participante

          Fala Fábio!

          Realmente foi da forma como eu pensei que o Oracle iria resolver a situação, mas estava na dúvida e queria a opinião de mais alguém. O KILL -9 no processo teria o mesmo efeito que uma conexão desconectar do banco de forma Anormal (como uma queda na rede ou energia no client)
          Quanto ao Shutdown abort eu só uso e já precisei, somente em ultimo caso.

          Agradeço sua ajuda!

          abs,


          Gazioli

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