Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite, estou precisando copiar tabelas oracle, como são muitas tabelas só quero copiar somente aquelas que foram alteradas em seus registros ou estrutura no dia (diariamente).
desde já agradeço.
>
21 horas atrás, Motta disse:
Melhor fazer uma estrutura de backup , tipo rman .
Até seria possível fazer isto manualmente mascseria trabalhoso e haveria risco de perda de dados.
Sendo um ambiente simples um SqlDeveloper faz o trabalho.
Bom dia Motta faltou complementar o que perguntei o que eu preciso é fazer uma "replicação (diária) de um banco oracle para outro banco oracle de formar incremental.
Mas não seria copiar tabelas e sim replicar um Banco.
Então uma estrutura destas seria possível mas trabalhosa , envolveria tabelas de "log" , triggers para alimentar as alterações etc.
Uma forma pode ser , colunas de date/timestamp que registrariam alterações nas tabelas , colunas alimentadas por trigger , procedures leriam estas tabelas onde a data de alteração fosse posterior à última cópia , levaria os dados e gravaria a data destas carga em uma tabela de controle.
Qual o volume disto , tabelas , registros , alterações etc ?
Qual o intervalo de atualização ?
A pergunta fica semelhante a "preciso levar uma quantidade de mercadoria entre dois pontos" , pode ser um ifood no bairro ou uma turbina de hidrelétrica de Porto Alegre/RS até Manaus/AM.
Mas dá para pensar algo sim.
Pesquise por :
Dblinks.
Triggers.
Timestamp (data type).
Cursores.
Grants.
[]s
Em primeiro momento replicaria tudo depois só aquelas tabelas que foram alteradas seja na estrutura ou registros.
andei pesquisando e achei uma query para identificar que seria utilizando onde timestamp irá dizer quando a tabela foi alterada.
Seria por ai?
Agradeço desde já atenção dada,
select object_name,created,last_ddl_time,timestamp
2 from user_objects
3 where object_name='DATA_ATUAL';
OBJECT_NAME CREATED LAST_DDL_TIME TIMESTAMP
--------------- ------------------- ------------------- -------------------
DATA_ATUAL 02/05/2011 12:59:00 02/05/2011 13:04:00 2011-05-02:13:00:00Qual o volume disto , tabelas , registros , alterações etc ?
185 tabelas primeiro momento, como posso ver isso no oracle para saber quando foi alterada a tabela?
Qual o intervalo de atualização ?
R:diário
"como posso ver isso no oracle para saber quando foi alterada a tabela?"
Uma solução é criar uma coluna DATE ou TIMESTAMP que sinalize a data de alteração do registro , INSERT ou UPDATE , algo como você falou
*, uma procedure lendo estas tabelas e replicando alteração do registro , um problema seria a deleção talvez precise de uma tabela auxiliar.
O que seria exatamente a replicação ?
Uma cópia ?
Sistemas paralelos ?
* caso da alteração da estrutura.
Melhor fazer uma estrutura de backup , tipo rman .
Até seria possível fazer isto manualmente mas seria trabalhoso e haveria risco de perda de dados.
Sendo um ambiente simples um SqlDeveloper faz o trabalho.