Realmente é difícil justificar o uso de bancos de dados separados. Em geral, utilizar schemas é sempre mais indicado. Vale a pena lembrar que existem 3 níveis de compartilhamento num mesmo servidor:
* Cluster, que compartilham a mesma porta, os mesmos processos e a mesma configuração global (postgresql.conf e pg_hba.conf); * Bancos de Dados, que compartilham o mesmo cluster mas podem ter codificação de caracteres distintos e dependendo da configuração, podem ter usuários distintos (se 'db_user_namespace' for configurado como ON); * Shemas, que compartilham o mesmo banco de dados; Em geral, utilizar mais de um banco de dados pode ser uma boa se: - Você realmente precisa ter usuários com poderes plenos num banco de dados sem afetar outras aplicações. Isto é muito incomum, pois é normal você dar permissões para um usuário em um schema específico. Mas se você quiser soltar seu estagiário para brincar no seu servidor... esta pode ser uma opção (mas eu instalaria o PostgreSQL localmente na máquina dele) - Você precisa de ambientes de teste, homologação e/ou produção na mesma máquina. Em geral é melhor deixar seu ambiente de teste em outro servidor. Você vai descobrir que uma única consulta mal feita no ambiente de teste pode sentar todo o servidor... melhor evitar isso a todo o custo! Você também pode criar ambientes isolados em clusters separados e garantir mais recursos para o ambiente de testes ao ambiente de produção e ainda deixar os ambientes mais isolados, utilizando portas distintas. - Você precisa de bancos de dados com codificações de caracteres diferentes. Bom... seria ideal você pensar em utilizar utf-8 para todas as bases se você está nesta situação. Mas isto é uma looooonga conversa, para lá de complicada. - Você precisa de configurações de desempenho diferentes para diferentes aplicações (OLTP x BI por exemplo). Bom, você pode fazer isso com schemas também... especificando parâmetros por usuário, ao invés de parâmetros por banco de dados, mas se você quer levar isto realmente a sério, é melhor criar clusters distintos e melhor ainda, utilizar servidores distintos. Conclusão: Se mais de uma aplicação podem conviver no mesmo servidor e no mesmo clustrer, então elas podem estar no mesmo banco de dados. Existem raras casos em que isto não se aplique... mas são exceções e não a regra. Criei um pequeno tutorial explicando como unificar vários bancos de dados distintos utilizando schemas... vide: http://www.midstorm.org/~telles/2006/09/28/unificando-bases-de-dados-com-schemas/ Atenciosamente, Fábio Telles Em 22/08/07, Jorge Vilela<[EMAIL PROTECTED]> escreveu: > Olá pessoal! > > Onde trabalho temos hoje 3 servidores (não conheço bem a configuração deles, > sei que não são tão bons se comparados a muitos por aí), e agora estamos com > uma v40 com 8gb mem sobrando. > > Então surgiu a idéia de migramos os bancos dessas 3 máquinas para essa v40 > para unificar o maior número possível de tabelas que são usadas em vários > sistemas sem precisar de replicação. > > Para programação usamos PHP e um pouco de JAVA, mas ficariam em um servidor > separado, deixaríamos a v40 somente para o postgres. > > Minha dúvida é: Seria melhor separar uma database para cada sistema e > abandonar os schemas, ou colocar tudo logo em schemas já que estariam no > mesmo servidor? Assim eu usaria um schema/db só para as tabelas usadas por > várias sistemas também. > > > Algum de vocês já passou por isso? > Schemas podem ser mais fáceis de se usar mas dbs são melhores para se > gerenciar separadamente não é? Me corrijam se estiver falando abobrinha... > > > []'s > Jorge Vilela > -- blog: http://www.midstorm.org/~telles/ e-mail / jabber: [EMAIL PROTECTED] _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
