Pular para o conteúdo
  • Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 18 anos, 4 meses atrás por Marcio68Almeida.
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #76496
    Anônimo

      Depois de muito bater a cabeça… veio a ideia de voltar para o SQL Server… Então vamos a minha última esperança, pois não encontro solução para esse caso em lugar nenhum.

      Instalei o Oracle 10g Express (tudo Ok)
      Criei as Tablespaces… usuarios… etc… etc…

      create tablespace TESTE logging datafile ‘c:oraclexeteste.dbfF’ size 40m autoextend on next 20m
      create temporary tablespace TESTETEMP tempfile ‘c:oraclexetestetemp.dbf’ size 20m autoextend on next 20m
      create user TESTE identified by SENHA default tablespace TESTE temporary tablespace TESTETEMP

      Fui pelo APEX e coloquei todas as liberações para o usuário TESTE

      Criei uma tabela simples…

      PRODUTOS
      CODPRO – CHAR(5)
      NOME – VARCHAR(40)
      VALOR – NUMBER (18,4)

      Incluir alguns registros…

      Sai do Apex

      Fiz uma exportação…

      EXP SYSTEM FILE=BACKUP.DMP LOG=BACKUP.LOG FULL=Y

      Desmontei a base…

      Fui na pasta c:oraclexe e compiei os arquivos TESTE.DBF e TESTETEMP.DBF

      Montei a base e incluir mais alguns registros na minha tabela de produtos.

      Desmontei a base… e copiei de volta os arquivos TESTE.DBF e TESTETEMP.DBF
      Montei a base e já era!!!
      Nada mais funciona…

      O que faço para voltar tudo ao normal com a base que copiei???
      Como recuperar os arquivos TESTE.DBF e TESTETEMP.DBF copiados anteriormente???

      Alguem pode me ajudar????

      #76497
      Marcio68Almeida
      Participante

        Bom… como sempre digo, vamos por partes.
        Primeiro de tudo, o banco de dados Oracle é composto de várias tablespaces e outros arquivos como redolog, control files, etc, que trabalham em plena sincronia, quando você trouxe os arquivos anteriores, você quebrou essa sincronia, por isso o banco não subiu…
        Para você restaurar, basta aplicar o recover que ele (banco Oracle) vai pegar os archives e restabelecer o sincronismo…
        Se você não tem os archives, então você tem um pequeno problema…
        Quanto à tablespace temporária, é simples de se recuperar, para a outra existem algum passos para a recuperação…
        Mas tente primeiro o recover.
        Caso você não possua os archives, poste novamente que te passamos o passo a passo para remover as tablespaces inválidas…
        Mas tenha sempre em mente que o banco de dados Oracle não pode ser manipulado separadamente, é necessário um conceito básico de funcionamento para trabalhar com ele, diferente do SQL Server, por exemplo…

        #76507
        Anônimo

          Marcio,
          Agradeço muito a sua ajuda… o que quero realmente é uma forma de trazer a base de dados de um local para outro na integra. Através do IMP e EXP não deu bons resultados, pois ele não apaga os dados das tabelas destino.
          Vou tentar o recover… mas acho que já fiz isso e ele dá a msg que ainda esta montando.

          #76511
          Marcio68Almeida
          Participante

            Se você quer um backup on line, pode usar o seguinte script…
            set pages 0
            set lines 1000
            Spool backup.txt
            Select comando
            From (
            Select '00' ordem, tablespace_name, 'Alter tablespace ' || tablespace_name || ' begin backup;' comando
            From dba_tablespaces
            Where contents = 'PERMANENT'
            Union
            Select '02' ordem, tablespace_name, 'Alter tablespace ' || tablespace_name || ' end backup;' comando
            From dba_tablespaces
            Where contents = 'PERMANENT'
            Union
            Select '01' ordem, a.tablespace_name, '!scp ' || file_name || ' 192.168.0.216:/oradata/PD01/backup/' comando
            From dba_data_files a,
            dba_tablespaces b
            Where a.tablespace_name = b.tablespace_name
            and b.contents = 'PERMANENT'
            Union
            Select '04' ordem, a.tablespace_name, '!scp ' || file_name || ' 192.168.0.216:/oradata/PD01/backup/' comando
            From dba_data_files a,
            dba_tablespaces b
            Where a.tablespace_name = b.tablespace_name
            and b.contents 'PERMANENT'
            Union
            Select '10' ordem, 'zzzzz' tablespace_name, '!scp ' || name || ' 192.168.0.216:/oradata/PD01/backup/' comando
            From v$controlfile
            Union
            Select '11' ordem, 'zzzzz' tablespace_name, '!scp ' || member || ' 192.168.0.216:/oradata/PD01/backup/' comando
            From v$logfile
            Union
            Select '12' ordem, 'zzzzz' tablespace_name, '!scp ' || name || ' 192.168.0.216:/oradata/PD01/backup/' comando
            From v$tempfile
            Union
            Select '80' ordem, 'zzzzz' tablespace_name, 'Archive Log Current;' comando From dual
            Union
            Select '91' ordem, 'zzzzz' tablespace_name, 'Alter System Switch Logfile;' comando From dual
            Union
            Select '99' ordem, 'zzzzz' tablespace_name, 'Exit;' comando From dual
            )
            Order by tablespace_name, ordem
            ;
            Spool execucao.txt
            @backup.txt
            Spool off
            set pages 50

            Este script irá copiar todos os datafiles para outra máquina, no meu caso 192.168.0.216 e você poderá recupera-lo quando necessário…
            Isto serve para o Linux/Unix, se você usa Windows, pode usar o comando OCOPY, que é até mais prático.

            Caso o teu processo de recuperação continue dando erros, coloque aqui o erro para que possamos ajuda-lo.

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