'backup' falando precisamente é algo que permite a RECUPERAÇÂO de um banco de 
dados, vc o aplicando teria um banco Ativo, e isso vc NÂO OBTÉM com dumps ou 
cópias de dados, que é o que resulta de EXPs e similares : sendo assim, assumo 
que vc usou a palavra 'backup' de uma forma beeem 'livre' e genérica, o que vc 
quer é só os dados que vão NECESSARIAMENTE ser introduzidos num banco que já 
existe .... dump/cópia dos dados ** NÂO ** podem ser restaurados enquanto a 
instância e o database destino não forem recriados MANUALMENTE ou por outros 
processos, NÂO criam os objetos internos do banco (como os do SYS), entre 
outras razões...

 Isso estando claro, em realmente vc já possuindo o BANCO destino ok, só quer 
os dados mesmo, aí sim vc pode usar qquer tools de cópia/dump de dados, os mais 
comuns são :
 
 a) o exp tradicional : há uma cláusula QUERY que vc pode adicionar para 
filtro, mas ela será aplicada a TODAS as tabelas sendo exportadas e é limitada 
a referenciar colunas da própria tabela sendo exportada. Assim, se vc tiver, 
digamos, uma coluna COD_EMPRESA e só quer exportar as tabelas aonde 
COD_EMPRESA=1 perfeito, vc usaria isso como QUERY. Já se as colunas são 
diferentes pra cada tabela (digamos, pra tabela EMP vc quer só os registros 
aonde SAL > 1000 , pra tabela DEPT aonde departamento = 10, tipo assim), com o 
exp tradicional vc teria que gerar um .dmp pra cada condição
  
 b) o datapump (expdp), disponível a partir do banco 10g : ele é extremamente 
mais flexível, permite que se escreva como QUERY condições complexas com OR, e 
específicas para cada tabela, no exemplo acima poderíamos ter algo como 
query=employees:"where salary >10000 order by salary" dept:"where deptno = 10"
 
 c) usar um programa pronto que permita exportar (pra texto ou outros formatos) 
um resultset qquer, o freeware Oracle SQL Developer é um - se for texto a 
introdução pode ser feita com sql*loader ou external tables
 
 d) se os bancos estão ligados via rede/dblink, usar o comando COPY FROM banco 
INSERT tabeladestino USING select com WHERE e filtro , ou fazer INSERTs de um 
banco para outro via INSERT INTO tabela (select from ori...@dblink WHERE 
condiçõesdefiltro)
 
 e)  criar as tabelas desejadas com CREATE TABLE nomedatabela_BKP as (select * 
from nomedatabela WHERE condição) e usar qquer método para dump com elas
 
 f) escrever um programinha que faça o dump, em qquer linguagem que se tenha 
conhecimento e permita conexão no banco e geração de arquivos : pode ser C, 
Java, PL/SQL, delphi, VB, entre outras
 
 Todas as opções tem vantagens e desvantagens, dê uma pesuisada na documentação 
que as tools Oracle são documentadas, e as não-Oracle, ou 
customizadas/programadas por vc dê uma googlada que vc acha uns exemplos...
 
  []s
  
   Chiappa
   
--- Em oracle_br@yahoogrupos.com.br, "Fabiano P." <fabiano...@...> escreveu
>
> Preciso fazer um backup de partes dos dados do banco, exportar todas as
> tabelas mais em algumas fazer um filtro para vim só uma parte dos dados, tem
> como fazer isso via EXP ou de alguma outra forma.
> 
> Oracle 10gR2
> 
> Obrigado
> 
> -- 
> Fabiano P.
> Fone: (46) 9113-6731
> E-Mail: fabiano...@...
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>


Responder a