- Este tópico contém 7 respostas, 4 vozes e foi atualizado pela última vez 15 anos, 3 meses atrás por
Ishii.
-
AutorPosts
-
24 de novembro de 2010 às 5:59 pm #96995
huntersc
ParticipanteBom Dia pessoal,
Estou a procura da melhor forma de fazer uma replicação de dados, se utilizo recurso do proprio oracle ou ferramentas terceiras.
Cliente tem Escritorio com banco dados 10g, e 2 lojas com Frente de Caixa,
a ideia seria instalar oracle xe nas lojas e no final do dia enviar os dados para a central.. e a matriz enviar novos produtos para as filiais..Pergunto consigo fazer isso no XE? O que devo utilizar? Estava vendo Oracle Lite , oracle streams…
Alguem tem algum ambiente assim?
Valeu
Jr
24 de novembro de 2010 às 8:31 pm #96998Regis Araujo
ParticipanteOla Hunter..!
Bom.. atualmente trabalho com 2 tipos de replicação de dados, Oracle Streams e Oracle Replication.. Ambas atendem a necessidade da empresa.. mas vc precisa ver qual a sua real necessidade, pois a implementação do Streams pelo q eu vejo, não é interessante, pois é um custo muito alto..!
Primeiro, qual a massa de dados que vc precisa atualizar?
De quanto em quanto tempo vc precisa destes dados atualizados?
Se a atualização for constante, ela precisa ser sincrona ou assincrona ?Aqui trafegamos milhoes de dados por hora e os dados precisam estar sempre sincronizados, então utilizamos para esta situação o Oracle Streams Bi-Direcional..
Em outra situação, podemos atualizar os dados a cada 10 ou 20 minutos, então utilizamos o Oracle Replication que é via Materialized Views e pode ser Bi-Direcional..
Tudo depende da sua regra de negócios..!!
As vezes um JOB que rode a cada 12 hras e atualize suas tabelas em ambos os SITES, pode ser o suficiente..!!!
Qualquer dúvida.. posta ai…!!
Abraços..!
24 de novembro de 2010 às 8:43 pm #97000huntersc
ParticipanteOpa…
A minha necessidade é que os caixas PDV tenham um banco de reta-guarda para caso falhe a conexao com a matriz.. e que em tempos x atualizasse as vendas no servidor principal.. algumas tabelas sao bi-direcionais outras somente direcionais..
A Massa de dados seriam as vendas e produtos, hoje de produtos sao +/- 19 mil itens.. a quantidade de vendas por hora nao levantei mais são 3 caixas em cada filial..
Algumas tabelas podem ser feitas atualizações em Hora. Tipo venda, Estoque.. As de produtos no começo da manhã e no final..
O Oracle Lite que é gratuito fornecesse essa possibilidade vc saberia me dizer?
Com Materialized views, preciso alterar alguma coisa na aplicação?
Gostaria algo mais inteligente e se possivel uma solucao gratuita, talvez o JOB , como as minhas tabelas tem Numeração automatica podem coincidir com a matriz e dar algum problema?
Tem algum site que tenha exemplo que possa me indicar?
Obrigado
Junior
24 de novembro de 2010 às 9:57 pm #97007Regis Araujo
ParticipanteOla Jr..!!
Então.. aqui é a mesma situação…!!
Então como sua atualização pode ser assincrona.. te aconselho a fazer via Advanced Replication mesmo.. que é bi-direcional..!!
Da uma lida neste site..!!
http://dbataj.blogspot.com/2007/11/adva … ction.html
Qualquer coisa.. avisa ai..!
Abraços..!
25 de novembro de 2010 às 2:22 pm #97009Peterson
ParticipanteJr,
A solução que o Thunder propoz é bacana, mas não sei se seria o caso de descentralizar o banco de dados da empresa. Lembre-se que você está impondo mais complexidade ao seu ambiente. Além disso você precisará manter um hardware em cada filial para esses bancos de dados adicionais, backups, administrar 3 instâncias ao invés de apenas 1 etc etc etc.
Minha sugestão é: Se o calcanhar de Aquiles é o link de comunicação, contrate um link mais confiável ou contrate 2 de operadoras diferentes, atentando sempre para o SLA contratado.
Não sei se nas lojas vc possui link dedicado… rede Frame Relay ou MPLS, ou se usa um ADSL convencional. Mesmo no caso do ADSL há equipamentos como o roteador Linksys RV02 que suporta 2 links WAN e trabalham muito bem, com esse equipamento você poderia estabelecer uma VPN entre a sede e as lojas com uma redundância de links.Pensa nisso, talvez a solução esteja mais para investimento na rede do que no banco.
25 de novembro de 2010 às 3:15 pm #97012Regis Araujo
ParticipanteOpa…
Concordo com o Peterson..!! Vai ter um curso elevado.. pois se vcs aumentarem mais lojas.. terá que criar mais bancos e tal..!
A solução do link é realmente a melhor.. mas creio que o um link “exclusivo” de 512k´s já seria o suficiente.. pois será apenas para a comunicação entre a loja e a matriz..
Desta maneira vc terá sempre suas lojas com dados atuais e também terá como emitir relatórios de vendas e tal em tempo real..!! No máximo um Oracle XE nas lojas para caso o link caia.. mas a atualização destes dados vc pode fazer de X em X horas.. e com relação a conflitos de sequence, vc vai precisar criar a sequence diferenciada para cada loja.. ou montar uma rotina que faz uma comparação entre a loja e a matriz e faça um insert usando a sequence da matriz..
É tudo como falei antes.. depende da sua regra de negócios.. infelizmente mesmo que vc tenha N links redundantes.. pode ocorrer da loja ficar sem acesso a matriz.. mas se tiver o XE instalado local.. com sua tabela de preços e tal.. já vai dar para realizar as vendas.. no final do dia vc faz a sincronização…
Bom.. ficam as dicas..!!
Abraços..!
25 de novembro de 2010 às 3:35 pm #97013huntersc
ParticipanteValeu,
Tambem pensei em fazer uma VPN. Acho que até a legislacao fiscal fala em ter redundancia caso a comunicação para.
Com relação a numeração como existe chave numero,codempresa acredito q nao de problema..
Obrigado pelas dicas..
25 de novembro de 2010 às 5:38 pm #97017Ishii
ParticipanteOlá,
Apenas para deixar minha opinião:
Já tive um ambiente como o apresentado aqui. Só que com 15 Filiais no Brasil inteiro e pode ocorrer os seguintes problemas: Falta de link adequado na região, instabilidade de sinal (pois em alguns lugares do Brasil apenas o Rádio funciona), Grande Volume de Dados que necessitavam de sincronização bidirecional. Como o PDV estava em diversos Ambientes de BD (Firebird, Postgree e Oracle XE) partimos para o seguinte desenho:
Schema no Servidor Central para a Sincronização;
Rotina de Sincronização (insert select mesmo) desenvolvida em Java agendada via Servidor Central;
JOBS (Scheduler) para complementar as verificaçõesO Agendamento da Sincronização era de 10 minutos em 10 minutos,caso a Filial estivesse sem link, era gerado um alerta e um log,no próximo agendamento eram verificados todos as tabelas dessa filial para evitar a redundância e falta de sincronização.
Hoje mudamos o PDV apenas para Firebird por questões de manutenção de Infra mesmo, e estamos iniciando a sincronização por Web Service, e o Agendamento está em 5 minutos (testamos com 1 minuto, mas por causa da lentidão de algumas localidades gerou alguns locks desnecessários).
Posso apenas dizer que foi o método mais simples que encontramos e como sempre, o simples funciona bem. Temos nas lojas um movimento de PDV variando de 30-100 NF/hora sendo que algumas estão distribuídas ao longo do dia e outras tendo picos elevados no final do dia apenas. Para não dizer que tudo são flores, temos em média um erro de sincronização de cerca de 1 NF por mês que está sendo investigado para determinar sua causa, mas ainda sem sucesso pois é muito intermitente…
[]s Ishii
-
AutorPosts
- Você deve fazer login para responder a este tópico.