Em 5 de agosto de 2016 12:50, Tiago José Adami <adam...@gmail.com> escreveu:

> Em 5 de agosto de 2016 10:49, Angelo A. Frozza (Gmail)
> <fro...@gmail.com> escreveu:
> > Olá,
> >
> > Gostaria da opinião sobre como está sendo feito na prática a gerência de
> > BD no caso de aplicações SaaS.
> >
> > Vamos a um estudo de caso: imagine uma aplicação (Comércio
> > Eletrônico/Controle de estoque etc.), que o cliente contrata através da
> > Web e utiliza via SaaS - Software as a Service. O BD é PostgreSQL.
> >
> > A pergunta é como fazer a distribuição do BD e quais
> > vantagens/desvantagens da solução proposta.
> >
> >
> > Algumas opções foram levantadas:
> >
> > a) Para cada novo cliente, é atribuída uma instância própria do
> PostgreSQL;
> >
> > b) Servidor compartilhado, cada cliente tem seu próprio BD;
> >
> > c) Servidor compartilhado, BD compartilhado, mas cada cliente acessa um
> > Schema diferente;
> >
> > d) Outras opções...
>
> Olá prof. Angelo.
>
> Em 2015 fiz uma pergunta semelhante aqui no grupo e recebi várias
> sugestões. Acho interessante partir do que foi discutido nesta thread
> [1] antiga.
>
> [1] https://listas.postgresql.org.br/pipermail/pgbr-geral/2015-
> April/040386.html
>
> TIAGO J. ADAMI
> http://www.adamiworks.com
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>

Tenho uma aplicação meio que no estilo de SaaS como você esta querendo.

Tenho 1 banco (chamado MASTER) com o cadastro de clientes e os dados de
acesso ao banco do cliente (host, schema, etc).
E tenho 1 banco com os dados dos clientes, sendo cada cliente um schema
diferente neste mesmo banco.
E para alguns clientes maiores, tenho um banco distinto ou até um servidor
distinto para os mesmos, guardando as referencias no banco MASTER.

As conexões aos bancos são totalmente controladas na aplicação.
Em todos os bancos há um pool de conexões.
No banco onde tem vários clientes separados somente pelo schema, existe
somente 1 pool de conexões, que ao conectar neste banco executo um "SET
search_path TO schemaDoCliente", assim aproveito o pool de conexões a este
banco e tenho acesso a somente os dados do respectivo cliente.
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a