PostgreSQL vs. soluções de alta disponibilidade da Oracle?
8
O PostgreSQL possui uma matriz de diferentes opções de alta disponibilidade, que representam muitas maneiras diferentes de criar replicação em um RDBMS.
A replicação do Data Guard da Oracle é semelhante ao "Hot / Warm Standby Using PITR" do PostgreSQL, embutido no banco de dados a partir do PostgreSQL 9.0. A versão 9.1 também adiciona replicação síncrona. Uma vantagem do PostgreSQL sobre o Oracle aqui é que o Sync Rep pode ser controlado por transação. Você pode ter um "Importante!" Totalmente síncrono Transação seguida por uma "OK para perder" assíncrona no Postgres.
O RAC da Oracle é semelhante ao que o PostgreSQL chama de "Failover de disco compartilhado" nessa grade. A principal diferença é que o RAC está totalmente integrado ao produto da Oracle, enquanto "Shared Disk Failover" apenas descreve um método de fazer alguma coisa. Você precisa montar o software de clusterware necessário para isso no PostgreSQL, e há uma variedade de coisas avançadas que o RAC faz para que você seja duplicado no PostgreSQL. Eu ouço regularmente que a maioria dessas coisas é tão complicada de configurar que poucas instalações Oracle as acertam - apenas porque o RAC está embutido não significa que ele se configura automaticamente.
A principal coisa que você pode fazer no Oracle que é muito difícil de duplicar também no PostgreSQL é a replicação multimestre. É possível fazer multi-master no PostgreSQL, mas apenas com softwares complementares como o Bucardo. E todos esses programas ainda têm mais restrições sobre o que você pode fazer com eles do que as instalações do Oracle Multi-Master.
Greg Gostei muito do seu vídeo "Replicação síncrona e ajuste de durabilidade, Greg Smith" Assistai ontem à noite! Isso realmente me ajudou a entender as várias opções. Não me importo com todas as opções de replicação no Postgres, apenas um tempo para descobrir qual é a certa para o meu aplicativo.
20911
Vale a pena notar que o multimestre às vezes é uma solução que procura um problema, após um discurso de vendas bem-sucedido da Oracle.
Rob Grant
4
Não sei se entendi a parte "suportada pelo Oracle" na sua pergunta. O Postgres não é "suportado" pela Oracle de forma alguma.
O StandBy físico da Oracle é equivalente à replicação de streaming do PostgreSQL.
Ao usar a replicação de streaming, a replicação assíncrona do PostgreSQL é equivalente à espera da Oracle usando o modo "Desempenho Máximo", enquanto a replicação síncrona (desde 9.1) do PostgreSQL é equivalente à espera da Oracle usando o modo "Disponibilidade máxima".
O Oracle tem outra opção chamada Real Application Cluster (RAC), algo que não está disponível no Postgres (também faz balanceamento de carga e redirecionamento automático da sessão para outro nó, se um for desativado)
Entendo perfeitamente que o postgres não é suportado pelo Oracle. O que estou tentando descobrir é quais abordagens de replicação são implementadas pelos dois produtos. Penso que, se uma abordagem de replicação é boa o suficiente para o Oracle, provavelmente é uma das melhores abordagens para replicação.
19411
2
A razão pela qual existem tantas opções de replicação por aí é que cada uma é adequada para um tipo diferente de aplicativo. A idéia de que alguns são "bons o suficiente" e outros não, não é verdadeira. Por exemplo, a abordagem de replicação baseada em acionador não é popular para o Oracle. Mas é no PostgreSQL e no MySQL, porque é adequado para tipos de aplicativos que a Oracle não visa.
Greg Smith
1
No Oracle, você basicamente tem a opção entre executar um hot standby e usar o RAC .
O principal objetivo da alta disponibilidade é remover pontos únicos de falha. O RAC faz isso no nível do servidor, permitindo a falha de um servidor sem interrupção do serviço. Você precisará obter algo semelhante no final do armazenamento usando ASM , espelhamento e dois ou mais pools de armazenamento fisicamente independentes (ou uma SAN).
Usar uma espera ativa significará a interrupção do serviço em caso de falha, mas é mais simples e possui menos "desvantagens de engenharia"
Um hardware de boa qualidade também é essencial, por exemplo, SAS não SATA, PSUs redundantes, UPSs etc.
Também há outros aspectos da alta disponibilidade que você precisa considerar (por exemplo, erro humano) - este white paper da Oracle os discute mais detalhadamente.
Não sei se entendi a parte "suportada pelo Oracle" na sua pergunta. O Postgres não é "suportado" pela Oracle de forma alguma.
O StandBy físico da Oracle é equivalente à replicação de streaming do PostgreSQL.
Ao usar a replicação de streaming, a replicação assíncrona do PostgreSQL é equivalente à espera da Oracle usando o modo "Desempenho Máximo", enquanto a replicação síncrona (desde 9.1) do PostgreSQL é equivalente à espera da Oracle usando o modo "Disponibilidade máxima".
O Oracle tem outra opção chamada Real Application Cluster (RAC), algo que não está disponível no Postgres (também faz balanceamento de carga e redirecionamento automático da sessão para outro nó, se um for desativado)
fonte
No Oracle, você basicamente tem a opção entre executar um hot standby e usar o RAC .
O principal objetivo da alta disponibilidade é remover pontos únicos de falha. O RAC faz isso no nível do servidor, permitindo a falha de um servidor sem interrupção do serviço. Você precisará obter algo semelhante no final do armazenamento usando ASM , espelhamento e dois ou mais pools de armazenamento fisicamente independentes (ou uma SAN).
Usar uma espera ativa significará a interrupção do serviço em caso de falha, mas é mais simples e possui menos "desvantagens de engenharia"
Um hardware de boa qualidade também é essencial, por exemplo, SAS não SATA, PSUs redundantes, UPSs etc.
Também há outros aspectos da alta disponibilidade que você precisa considerar (por exemplo, erro humano) - este white paper da Oracle os discute mais detalhadamente.
fonte