- Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 18 anos, 4 meses atrás por Marcio68Almeida.
-
AutorPosts
-
14 de setembro de 2006 às 2:58 pm #76451Anô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 TESTETEMPFui 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????
14 de setembro de 2006 às 3:37 pm #76453Marcio68AlmeidaParticipanteBom… 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…14 de setembro de 2006 às 10:21 pm #76462AnônimoMarcio,
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.15 de setembro de 2006 às 3:33 pm #76466Marcio68AlmeidaParticipanteSe 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.
-
AutorPosts
- Você deve fazer login para responder a este tópico.