Replicação fast refresh

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
vicentemaia
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Qui, 12 Jul 2007 9:32 am
Localização: Curitiba - PR

Olá a todos.
Estou com um problema em replicação fast refresh. Criei uma replicação em dois servidores Windows 2000 com Oracle 9i Release 9.0.1.1.1 e não consigo fazer as atualizações acontecerem automáticamentes no intervalo definido no parâmetro NEXT. Simplesmentes não atualiza. Não posso usar atualização manual nesse caso.
Fiz os seguinte passos em cada um dos servers.

Server Remoto -------

Selecionar tudo

Create table teste (a number primary key, b varchar2(20));

insert into teste (a, b) values (1, 'weqwuqeui');

create materialized view log on teste with  primary key;
Server Local --------

Selecionar tudo

create materialized view admin.teste_mv
build immediate
refresh fast start with sysdate next sysdate + 1/1440
with primary key as
select * from teste@servidor1;
Server Remoto -------

Selecionar tudo

insert into teste (a, b) values (2, 'qwerty');
A primeira linha aparece na materialized view teste_mv mas a segunda linha nunca aparece.
Sei que deve ser uma coisa estúpidamente simples mas não está atualizando. Se alguém pudesse me dar uma dica do que está errado agradeceria muito.
Um abraço
gilbertoca
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 372
Registrado em: Ter, 24 Jan 2006 3:33 pm
Localização: Palmas - TO
Contato:

Lamento Vicente, parece que este é um assunto avançando!

Eu tenho pouca experiência e ainda não tive a oportunidade de usar essa característica.

Eu estou chutando aqui: você já executou essa consulta fora da
materialized view? E a mesma funciona com as atualizações realizadas?

Gilberto
vicentemaia
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Qui, 12 Jul 2007 9:32 am
Localização: Curitiba - PR

Gilberto,
funciona sim, todas as estruturas, links tudo está certinho. O problema, acredito, está em configurar o Oracle pra executar essas tarefas de atualização em background. Ainda não cheguei a uma conclusão mas vou chegar.
Valeu pela atenção.
Um abraço

Vicente
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Não sei se é o seu caso, mas encontrei o seguinte:
http://www.cit.uws.edu.au/docs/oracle/e ... iewbug.php
Enterprise Database: Materialized View Refresh Bug

Materialized View Refresh Bug
Please note that the two Oracle 9i databases (ora9edb1 and ora9edb2) setup for Enterprise Database do not appear to be automatically performing materialized view refreshes. The work arounbd for this is to execute the following statement to manually perform a materialised view refresh:

Selecionar tudo

      EXECUTE DBMS_MVIEW.REFRESH([VIEW],[REFRESH TYPE]); 
For example, to do a fast refresh on the materialized view EmpView, you would issue the command:

Selecionar tudo

      EXECUTE DBMS_MVIEW.REFRESH('EMPVIEW','F'); 
I hope this helps you in your tutorials and assignment!

CIT DBA 2004-05-17
Talvez tenha alguma coisa no metalink sobre isso.
Diego Bilhalva
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Ter, 11 Mar 2008 5:06 pm
Localização: Esteio
Contato:
Diego Bilhalva

Selecionar tudo

create materialized view admin.teste_mv 
[tablespece] [nome da tablespace]
refresh fast
with primary key
next (sysdate + 1/1440)
as 
select * from teste@servidor1;
Espero que funcione!
ruevers
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 324
Registrado em: Sex, 02 Jun 2006 1:48 pm
Localização: sp
Contato:

Amigo, faz o refresh manual, como digo no post acima, mais garantido.
Bruno
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Qua, 26 Mar 2008 6:06 pm
Localização: Cataguases

Acredito que o refresh não está sendo feito porque o refresh fast atualiza a materialized view baseado no log das atualizações ocorridas na tabela origem. Portanto, é necessário criar materialized view log na tabela de origem dos dados e suas respectivas permissões de acesso. E a partir de então, quando for dado o refresh fast ele ira atualizar a materialized view apenas com os dados log que ainda não foram atualizados.

Ex: create materialized view log on teste;
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 19 visitantes