É possível atender esta sua necessidade com pouco esforço.
Uma sugestão simples:
Vamos chamar o servidor com o banco de produção de PROD, e a máquina com o
banco de replicação de REP.
- crie um banco em REP, com o mesmo db_name de PROD
- crie as tablespaces em REP, com os mesmos nomes de PROD, os diretórios
onde ficarão os datafiles podem ser diferentes, não há problema
- exporte o owner de PROD que vc quer replicar
- crie no REP o owner com o mesmo nome de PROD
- importe o DMP de PROD para o owner criado em REP
- em REP, desabilite as constraints de CHECK e FK, mantenha apenas PK
- crie em PROD uma tabela TABREP que contenha:
- nome da tabela envolvida
- PK (id) do registro alterado
- tp_operacao (I p/ inserção, U p/ update, D p/ delete)
- crie tb em PROD uma trigger para cada tabela, que vigie INSERT,
UPDATE e DELETE
- esta trigger deverá gravar na tabela TABREP preenchendo os atributos
de acordo com a operação
- crie em PROD um DBLINK para o REP usando o owner que vc criou lá
- em REP, dê direitos ALL para public em todas as tabelas a serem replicadas
- faça em PROD uma procedure PRC_REP que pegue as linhas da tabela TABREP e
execute a operação em REP, dê commit e delete então as referidas linhas
de TABREP.
- em operações UPDATE, faça um delete na tabela em REP e em seguida faça
INSERT
- para montar os sqls dinâmicos, use EXECUTE IMMEDIATE.
- para rodar a procedure PRC_REP, agende um JOB com repetição no
intervalo desejado.
Outras opções seriam usar o Oracle Advanced Replication, Oracle Standby
Database, ou até mesmo um EXP em PROD e um IMP em REP.
Ederson Elias de Oliveira
DBA Oracle
Setransp - Goiânia-GO
-------------------------------------------------------------------
-----Mensagem original-----
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Marcelo Carvalho
Enviada em: sexta-feira, 12 de maio de 2006 12:36
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Replicação de Base
Pessoal,
Pode ser um pouco de loucura ... mas estou querendo fazer um
servidor/repositorio ... algo que ao final do dia ou em determinados
horarios meus bancos de dados Oracle 9i se conectem nesta outra maquina e
façam uma sincronização dos dados ... Assim sempre terei uma maquina de
reserva ... pode ser mais lenta, não estará 100% atualizada, mas em caso de
problemas na maquina server esta poderia ser acionada.
Não estou falando de alta disponibilidade ... com maquinas sincronizadas a
cada operação ... Seria algo como falei de tempos em tempos ... com se
fossem várias filiais se conectando na matriz para fazer atualização dos
dados.
Agora a pergunta que não quer calar ...... "Como fazer ???"
--
Marcelo Carvalho
MSN [EMAIL PROTECTED]
--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine
__________________________________________________________________
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário.
Yahoo! Grupos, um serviço oferecido por: | |
|
Links do Yahoo! Grupos
- Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/
- Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.