PostgreSQL vs Oracle Soluzioni ad alta disponibilità?


8

PostgreSQL ha una matrice di diverse opzioni di alta disponibilità che rappresentano molti modi diversi di costruire la replica in un RDBMS.

Ecco la matrice delle caratteristiche PostgreSQL ad alta disponibilità, bilanciamento del carico e replica

Domande

  • Quali degli approcci nella matrice ad alta disponibilità PostgreSQL sono supportati da Oracle?
  • Oracle fa alta disponibilità con tecniche che non sono disponibili con PostgreSQL?

Risposte:


7

La replica di Oracle Data Guard è simile a "Hot / Warm Standby Using PITR" di PostgreSQL, che è integrata nel database a partire da PostgreSQL 9.0. La versione 9.1 aggiunge anche la replica sincrona. Un vantaggio che PostgreSQL ha su Oracle qui è che Sync Rep può essere controllato in base alla transazione. Puoi avere un "Importante!" Completamente sincrono Transazione seguita da una "OK per perdere" asincrona in Postgres.

Il RAC di Oracle è simile a quello che PostgreSQL sta etichettando "Failover del disco condiviso" in quella griglia. La differenza principale è che RAC è completamente integrato nel prodotto Oracle, mentre "Failover del disco condiviso" descrive solo un metodo per fare qualcosa. Devi assemblare il software clusterware necessario attorno a quello per PostgreSQL, e ci sono una varietà di cose avanzate che RAC fa e sarà difficile duplicare in PostgreSQL. Sento regolarmente che molte di queste cose sono così complicate da configurare che poche installazioni Oracle riescono a risolverle, anche perché RAC è integrato non significa che si configuri automaticamente.

La cosa principale che puoi fare in Oracle che è molto difficile da duplicare anche in PostgreSQL è la replica multi-master. È possibile fare multi-master in PostgreSQL, ma solo con software aggiuntivo come Bucardo. E tutti questi programmi hanno ancora più restrizioni su ciò che puoi fare con loro rispetto alle installazioni Oracle Multi-Master.


Greg Ho davvero apprezzato il tuo video "Synchronous Replication and Durability Tuning Greg Smith" L'ho visto ieri sera! Mi ha davvero aiutato a capire le varie opzioni. Non mi dispiace tutte le opzioni di replica in Postgres ci vuole solo un po 'di tempo per capire qual è quella giusta per la mia app.
ams

Vale la pena notare che il multi-master a volte è una soluzione alla ricerca di un problema, a seguito di un successo delle vendite Oracle.
Rob Grant,

4

Non sono sicuro di aver compreso la parte "supportata da Oracle" nella tua domanda. Postgres non è "supportato" da Oracle in alcun modo.

Lo StandBy fisico di Oracle equivale alla replica di streaming PostgreSQL.

Quando si utilizza la replica in streaming, la replica asincrona di PostgreSQL equivale allo standby di Oracle utilizzando la modalità "Prestazioni massime", mentre la replica sincrona di PostgreSQL (dal 9.1) equivale allo standby di Oracle utilizzando la modalità "Disponibilità massima".

Oracle ha un'altra opzione che si chiama Real Application Cluster (RAC) che è qualcosa che non è disponibile in Postgres (fa anche il bilanciamento del carico e il reindirizzamento automatico della sessione su un altro nodo, se uno scende)


Capisco perfettamente che Postgres non è supportato da Oracle. Quello che sto cercando di scoprire è quali approcci di replica sono implementati da entrambi i prodotti. I miei pensieri sono se un approccio di replica è abbastanza buono per Oracle, quindi è probabilmente uno dei migliori approcci alla replica.
ams

2
La ragione per cui ci sono così tante scelte di replica là fuori è che ognuna è adatta per un diverso tipo di applicazione. L'idea che alcuni siano "abbastanza buoni" e altri non lo sono. Ad esempio, l'approccio di replica basato su trigger non è popolare per Oracle. Ma è in PostgreSQL e MySQL, perché è adatto a tipi di applicazioni a cui Oracle non punta.
Greg Smith,

1

Su Oracle, in pratica, puoi scegliere tra eseguire un hot standby e utilizzare RAC .

L'obiettivo principale dell'alta disponibilità è rimuovere singoli punti di errore. RAC esegue ciò a livello di server consentendo guasti a un server senza alcuna interruzione del servizio. Sarà necessario ottenere qualcosa di simile a livello di archiviazione utilizzando ASM , mirroring e due o più pool di archiviazione fisicamente indipendenti (o una SAN).

L'uso di un hot standby significherà l'interruzione del servizio in caso di guasto, ma è più semplice e ha meno "compromessi di ingegneria"

Anche l'hardware di buona qualità è essenziale, ad esempio SAS non SATA, alimentatori ridondanti, UPS ecc.

Ci sono anche altri aspetti dell'alta disponibilità che potresti dover prendere in considerazione (ad es. Errore umano): questo white paper di Oracle li esamina in modo più approfondito.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.