Oracle integrando com MySQL

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
ccguedes
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 13
Registrado em: Qua, 12 Ago 2009 1:42 pm
Localização: SP

Pessoal, bom dia.
É uma duvida, até mesmo se alguém souber detalhes, poderia não somente sanar minha duvida, como de outros membros aqui no forum.

Estava conversando com um amigo sobre a utilização de MYSQL nos e-commerce, facebook, e sites de grandes varejistas.. até aí, ok, mas surgiu as duvidas.

A arquitetura geralmente é feita da seguinte maneira:

MYSQL é o banco front-end.. banco que é solicitado primeiramente, feitas as solicitações é impresso na tela para o cliente/usuario, mas a massa propriamente dita esta no Oracle. Porque isto?. Como isso?
Não pode ser o Oracle o DB front? Existem limitações que o MYSQL atende melhor que o Oracle nesse sentido?.

Quem puder esboçar uma simples arquitetura desse sentido, e tvz, explicar detalhadamente porque um e não outro, custo, performance, tecnologia embarcadas e afins, agradeceria.

Muito Obrigado.
Avatar do usuário
adrianoturbo
Moderador
Moderador
Mensagens: 393
Registrado em: Qui, 20 Mar 2008 4:09 pm
Localização: Brasília
Adriano Alves
---Para cada problema dificil existe uma solução simples.----

Brother,para sanar as suas dúvidas :vamos dar uma pincelada no conceito de replicação de dados.
A replicação é exatamente esse processo que você descreveu ai no exemplo que tem um banco MySQL no front end e o Oracle no back end,ou seja, é feito uma replicação ou carga síncrona ou assíncrona no Oracle que trata o "grosso" dos dados.
A nível transacional o Oracle consegue tratar esse dados melhor que os bancos que estão no front end,nem vou entrar no mérito de algoritmos ,alta disponibilidade ,entre outros fatores.
Em ambientes de produção que trabalham com grandes massas de dados é interessantes que tenhamos bancos heterogêneos de diversos sabores,muitas das vezes os escolhidos para fazerem esses papel no front end é o MySQL e o Postgre .
Mas atente-se para n fatores que podem contribuir para utilização desses bancos diferentes :
-Performance ;
-Licenciamento ;
- Modelo de Negócio;
-$$$$$$$$$;
-Entre outros fatores .
Obviamente quando estamos falando de replicação ,estamos falando de alta disponibilidade.
Um caso de uso de replicação bem simples são aqueles PDVs dos supermercados,na frente normalmente tem um Postgre (na maioria dos casos por ser open source) e MySQL.
Quando devemos ter bancos de dados heterogêneos? A resposta é depende ,depende do seu modelo de negócio.
Quanto mais dados ,mais processamento e armazenamento vai precisar e isso não é barato.
Vou citar um pequeno exemplo dos bancos : a grande maioria dos bancos,senão todos,utilizam Mainframes para fazerem processamentos dos seus dados,até o onde sei ,esses mainframes são alugados e esse aluguel é cobrado CPU TIME ,normalmente por trás sempre tem um DB2 ou Oracle e na frente um banco que não exige tanta performance como MySQL e PostGre .
Como costuma dizer brother o Fábio Telles da comunidade Postgre : "O Postgre é igual amante ,todo mundo tem ,mas ninguém tem coragem de dizer que tem " rsrs ...
Bom é isso,espero ter ajudado de alguma forma.
ccguedes
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 13
Registrado em: Qua, 12 Ago 2009 1:42 pm
Localização: SP

Opa, muito obrigado pela resposta.
Vou pesquisar melhor sobre replicação de dados!

Li na net, sobre questao de que o Oracle é limitado o numero de conexões, enquanto os citados acima, já não tem essa restrição, procede?.. Um dos motivos seria este também?

Entendo que, enquanto a compra não foi efetivada, os dados estão sendo tratado no MySQL/PostG.. depois de efeitvadas vão para a base mestre... correto?
Avatar do usuário
adrianoturbo
Moderador
Moderador
Mensagens: 393
Registrado em: Qui, 20 Mar 2008 4:09 pm
Localização: Brasília
Adriano Alves
---Para cada problema dificil existe uma solução simples.----

Brother ,o número de conexões é limitado pelo número de licenciamento,isso não quer dizer que o Oracle é limitado por número de conexões,o que vai definir isso é o número de licenças e o poder de processamento do servidor,pra se ter uma idéia o engine do Oracle consegue fazer 2048 conexões simultaneamente.
O TSE nas eleições não faz replicação de dados das urnas sincronicamente,os dados são armazenados num cartão de memória e depois é feito uma carga no Oracle desses dados,imagina todos os milhões votos de brasileiros sendo replicados em tempo real ,teria que ter um servidor da Nasa para transacionar tantos dados em tempo real.
"Entendo que, enquanto a compra não foi efetivada, os dados estão sendo tratado no MySQL/PostG.. depois de efeitvadas vão para a base mestre... correto?"
Estão sendo pré- armazenados para depois desafogarem no rio Oracle.
ccguedes
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 13
Registrado em: Qua, 12 Ago 2009 1:42 pm
Localização: SP

Show, então veja minha afirmação, e se esta correta ou errada.

Tenho 500 tabelas no ORACLE, estas mesmas 500 tabelas tem que estar no MySQL/Postgre?.Ou só algumas, as principais... copia

Se um cliente que a ultima compra dele foi em 2000 e ele só voltou a comprar agora em 2015, estes dados são recuperados de onde...? do Oracle? pois é um cliente antigo, e como a base do banco front é a "fresca", não terá ele lá, tvz.. talvez.
Avatar do usuário
adrianoturbo
Moderador
Moderador
Mensagens: 393
Registrado em: Qui, 20 Mar 2008 4:09 pm
Localização: Brasília
Adriano Alves
---Para cada problema dificil existe uma solução simples.----

Brother,vou responder suas questões separadamente por tópicos:
"Entendo que, enquanto a compra não foi efetivada, os dados estão sendo tratado no MySQL/PostG.. depois de efeitvadas vão para a base mestre... correto?"

Brother,seguindo as propriedades ACID ,os dados foram salvos e commitados sim com a compra efetivada nos bancos front ends ,entenda que os bancos front ends são banco temporários de armazenamento para posteriormente serem replicados no Oracle ,DB2 outro banco que consiga trabalhar com grandes massas de dados.

"Tenho 500 tabelas no ORACLE, estas mesmas 500 tabelas tem que estar no MySQL/Postgre?.Ou só algumas, as principais... copia"

Não necessariamente todas 500 essas tabelas.


"Se um cliente que a ultima compra dele foi em 2000 e ele só voltou a comprar agora em 2015, estes dados são recuperados de onde...? do Oracle? pois é um cliente antigo, e como a base do banco front é a "fresca", não terá ele lá, tvz.. talvez."


Aqui entraremos em outro conceito:o conceito de Datawarehouse(DW) que armazena dados históricos,fazendo um produto cartesiano entre a tabela fato e a tabela dimensão.
Normalmente essas informações poderão ser extraídas diretamente do Banco de Dados Oracle em produção ou através de um ambiente separado de Datawarehouse que é o mais aconselhável.
souldeath
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 48
Registrado em: Qua, 25 Ago 2010 9:39 am
Localização: Limeira

Olhando do ponto de vista de arquitetura do banco de dados, sei que no Oracle é mais custoso abrir e fechar centenas ou milhares de conexões simultâneas, cada conexão representa um conjunto de processos que são criados no sistema operacional, no MySQL são várias threads, cada conexão aberta é criada uma nova thread, no caso de um sistema de e-commerce é mais rápido.
ccguedes
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 13
Registrado em: Qua, 12 Ago 2009 1:42 pm
Localização: SP

Obrigado pelas explicações
Responder
  • Informação
  • Quem está online

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