Quali caratteristiche di Oracle lo rendono una scelta attraente per piccoli progetti?


13

Data la gestione delle licenze di Oracle [a] (e, in misura minore, i costi) mi sono sempre chiesto quali fossero i fattori decisivi per la scelta di Oracle su PostgreSQL o MySQL.

La mia azienda sceglie quasi sempre Oracle (ove possibile XE), anche per i piccoli progetti in cui esiste un unico box server Windows che esegue il database senza alcuna amministrazione DB dedicata. (Si noti che piccolo non non significa che i dati saranno sempre adattarsi alle piuttosto piccole vincoli di dimensione di Oracle XE.)

Ho sempre messo in dubbio questa scelta, ma ha il vantaggio che almeno siamo esposti a un solo prodotto di database.

Tuttavia, dato un nuovo progetto, in cui è necessario un RDBMS, ma il progetto e l'ambito del database sono piuttosto piccoli, in base a quali caratteristiche uniche di Oracle in esecuzione su semplici server box Windows (senza troppa amministrazione dedicata) sceglieresti Oracle un altro RDBMS?

Contesto aggiuntivo : molte delle nostre implementazioni di database vengono eseguite nei siti dei clienti in modalità "low-administration". Cioè, il database viene impostato una volta. Esistono alcuni test iniziali sul comportamento e le prestazioni corretti sul sito. Successivamente, il database è appena avviato. Nessuna amministrazione regolare eseguita. Solo in caso di problemi, un tecnico (non un DBA dedicato) controllerà il database, cercando di capire cosa succede. Il backup viene eseguito principalmente come backup offline. In alcuni progetti, ai clienti non importa nemmeno che sia coinvolto un RDBMS. Vedono semplicemente la loro app come una scatola nera che funziona (o no).

[a]: dove lavoro, ci sono voluti mesi e mesi diversi responsabili di progetto per ottenere le licenze adeguate per piccoli progetti poiché i rappresentanti Oracle locali non sono molto interessati a vendere il loro prodotto se le entrate sono limitate.


Come scelgono XE per i dati che "non sempre si adattano ai vincoli di dimensioni piuttosto ridotte di XE"?
Jack dice di provare topanswers.xyz

@Jack: se va bene usiamo XE, se non ... beh no :-)
Martin

L'edizione 11.2 Express è in versione beta e il limite dei dati utente è stato esteso da 4 GB a 11 GB. Vedi oracle.com/technetwork/database/express-edition/…
Leigh Riffel

Oracle ha PIVOT, MySQL e Postgres no. Questo è un grande vantaggio in alcune situazioni.
Phil Lello,

1
@ Phil Lello: PostgreSQL ha PIVOT, controlla il contributo: postgresql.org/docs/current/static/tablefunc.html
Frank Heikens,

Risposte:


12

Posso solo tentare di rispondere per Oracle e Postgres. Dopo aver usato Oracle esclusivamente per anni e postgres solo negli ultimi due anni circa, adoro postgres. Ci sono così tanti piccoli modi che è più conveniente da usare rispetto a Oracle e condivide molti dei vantaggi cruciali (come MVCC). È più facile da amministrare, affidabile, ha una documentazione eccellente e, naturalmente, è gratuito.

Tuttavia, in alcuni settori Postgres non corrisponde a Oracle, ad esempio:

  • RAC - per quanto ne so non esiste una tecnologia di clustering migliore per nessun database
  • RMAN - di gran lunga superiore alle funzioni di base di backup e ripristino di Postgres, in particolare con il rilevamento delle modifiche ai blocchi e backup incrementali (che è possibile applicare ad altri backup per mantenere un backup completo aggiornato)
  • Supporto Oracle - esiste. supporto postgres? Non così tanto
  • molte altre funzionalità come IOT, 'Secure Files' e tecnologia di compressione che non hanno analoghi nel mondo postgres

È interessante notare che quasi tutte queste funzionalità sono assenti o paralizzate in XE. Penso che sceglierei postgres su XE, tutto il resto è uguale, ma ...

... nessuno di questi risolve i due principali motivi per scegliere Oracle:

  1. Stai già utilizzando Oracle e hai un enorme investimento (l'indipendenza del database è un mito sciocco)
  2. I tuoi sviluppatori e amministratori di database conoscono Oracle e sfruttano appieno le sue funzionalità (perché l'indipendenza del database non dovrebbe comunque essere un mito sciocco?)

MODIFICARE:

L'unica situazione in cui sceglierei postgres su XE ogni volta è se la sicurezza è un problema. Se il tuo database o una qualsiasi delle sue applicazioni sono esposti a Internet pubblico, non sono sicuro che XE sia una buona idea.


RGD. RMAN - Quindi diresti che le funzionalità di backup di Oracle sono "migliori" di quelle di Postgre? Questo rimarrebbe in un ambiente a bassa amministrazione (vedi la mia modifica Q)?
Martin,

@Martin - RMAN è potente e molto maturo, mi fido di come mi ha visto in diverse situazioni di recupero. Una cosa che non è è "semplice". Sembra che tu stia facendo a meno di costosi DBA, stai usando RMAN per i tuoi backup offline al momento? Come spedite i vostri backup Gb multipli (giornalieri) dai siti client?
Jack dice di provare topanswers.xyz

Il server SQL ha un clustering HA che sarebbe l'equivalente del RAC di Oracle.
Stanley John

@stan the dba Da quello che ho letto delle opzioni di clustering per SQL Server, non sono affatto paragonabili a RAC, la maggior parte dei quali sono failover su soluzioni, non soluzioni di ridimensionamento come rac.
Matthew Watson,

Il tuo secondo motivo per scegliere Oracle è praticamente lo stesso del primo, IMO. Fondamentalmente che sei impegnato. - Per quanto riguarda il supporto, questo esiste sicuramente anche per Postgres. Se non sei soddisfatto delle eccellenti mailing list, consulta questo elenco per le aziende che offrono supporto a pagamento nella tua regione.
Eevar

9

Apex Oracle . Un ambiente di applicazioni Web pratico e facile da usare integrato nel database. Molto semplicemente rende molto semplice distribuire applicazioni "single-box" con l'interfaccia utente web / la logica dell'applicazione / database in un unico pacchetto integrato.

PS. 11g XE (attualmente in versione beta) espande lo spazio di archiviazione a oltre 10 GB.


+1 per APEX. Sebbene abbia i suoi problemi e le sue gremlin, ADORO questo per far decollare le applicazioni rapidamente e facilmente. Penso che sia RAD per Oracle quanto si può ottenere.
Kerri Shotts,

5

Sebbene le altre opzioni di flashback di Oracle non siano disponibili in Express Edition, Flashback Query lo è. In base alla domanda , nessun altro database ha questa funzione che consente a un'istruzione select di interrogare i dati a partire da un momento nel passato. I dati di flashback possono essere uniti ai dati correnti e inseriti nelle tabelle correnti rendendoli utili per annullare le operazioni sui tipi, le modifiche temporanee e il confronto delle modifiche apportate da un metodo in un unico posto.

Alcune altre cose che alcuni altri database non hanno Oracle Express Edition.


5
postgres seleziona "Utente corrente AuthID vs. Definer", "Controlla vincoli", "Vincoli differibili", "Aggiunta e sottrazione di date", "Query gerarchiche", trigger non schema, la maggior parte delle "Funzioni analitiche", alcune "Funzioni di raccolta" , "Funzioni XML", ostruisci fino a 1 GB, anche le caselle "Crea o sostituisci" e "Multipiattaforma" (almeno)
Jack dice di provare topanswers.xyz

@JackPDouglas È difficile creare un elenco di professionisti quando la competizione è "tutto il resto". Grazie per le informazioni.
Leigh Riffel,

@Leigh - d'accordo, suppongo che la tua lista sia un utile riferimento per Martin. Non menzioni RMAN, almeno nell'attuale XE (v10) è incluso anche se non utilizzato di default. Solo un nit-pick: se XE è limitato a 4 o 11Gb, Clobs fino a 128Tb non sono realmente supportati :)
Jack dice che prova topanswers.xyz

@JackPDouglas Avevi già menzionato RMAN e non avevo intenzione di soppiantare la tua risposta (o altre).
Leigh Riffel,

@JackPDouglas Buona presa sul clob. L'ho lasciato nell'elenco perché clob più piccoli possono essere utili in XE e se il database cresce potrebbe essere utile trovarsi su una piattaforma che supporta clob estremamente grandi.
Leigh Riffel,

4

Prima di tutto, penso che non dovresti sottovalutare il fattore che è già presente Oracle Know-How ma non per altri RDBMS. Sviluppare conoscenza per gli altri richiede tempo e denaro e può anche essere accompagnato da alcuni errori all'inizio.

Inoltre, non si sa mai se un piccolo progetto non crescerà in qualche modo. Quindi, puoi eseguire l'aggiornamento senza intoppi e velocemente da XE a Standard Edition One a Standard Edition a Enterprise Edition. Una migrazione da un altro RDBMS richiederà di nuovo molto più tempo e denaro. In conclusione: penso che la tua azienda lo faccia bene - ok, potrei essere un po 'di parte :-)


Weeell. Direi che Oracle sa come qui intorno ... hmm ... probabilmente avrei bisogno di 3 ore a giocare con Postgre più un po 'di googleing per arrivare al punto in cui potrei fare tanto quanto me possibile con Oracle. (Tranne PL / SQL) E mi piace pensare di essere uno degli utenti esperti di Oracle qui :-) - Ma la tua discussione su un percorso di aggiornamento è sicuramente valida.
Martin,

@Martin: non è un buon segno ... Sto usando Postgres per uno dei nostri progetti (come parte di un'applicazione in pacchetto) per ~ 2 anni, e ancora non riesco a farlo funzionare bene (in parte perché le parti dell'applicazione che sto usando fanno molto affidamento count(), che sembra essere il tallone d'Achille di Postgres). Ho dovuto chiedere a StackOverflow come influenzare il pianificatore
Joe,

2

Una delle belle funzionalità di Oracle sono quelle come Oracle Resource Manager che rendono molto più semplice il consolidamento delle applicazioni in un database piuttosto che un database separato per ogni applicazione. Sembra che questo non sia usato nella tua organizzazione. Ho progettato database consolidati in passato per progetti come hai menzionato.

  • Ogni progetto aveva il suo hardware
  • Ogni progetto aveva le sue licenze
  • Ogni progetto aveva il proprio archivio

Ciò ha causato che anche il più semplice di tutti i progetti ha impiegato mesi per persino iniziare e in un momento in cui il time to market è estremamente importante, questo sta uccidendo. Per qualche motivo questo è mancato a molti, spesso addirittura trascurato per motivi politici.

La soluzione per questo è abbastanza semplice. Crea un database serio, assegna a ogni progetto / applicazione i propri schemi e accedi agli utenti e inizia a funzionare in poche ore, anziché mesi. Se hai intenzione di fare qualcosa del genere, potrebbe essere utile combinare applicazioni con requisiti di uptime simili. Oracle ottiene sempre più opzioni di manutenzione on-line, ma a volte, ottenere qualche ora di inattività è molto più semplice. Avere finestre temporali per questo definite in anticipo potrebbe prevenire molti problemi. Avrai bisogno di un po 'di tempo libero.

Non consentire alle applicazioni di connettersi al database, collegale ai servizi dedicati all'applicazione utilizzando i propri tns-aliasses. Ciò consente di spostare l'applicazione su un altro database, senza dover riconfigurare l'applicazione.

A proposito: le società che hanno utilizzato questo modo di consolidamento hanno risparmiato un sacco di soldi ogni anno, più delle licenze necessarie per iniziare a girare.


Grazie per questo input. Si noti che molti progetti hanno il database in esecuzione nei siti dei clienti, quindi non ha senso consolidarli. (Se ho capito bene fino al consolidamento.)
Martin,

Potrebbe comunque essere consigliato di farlo consolidare dal cliente nel punto in cui il pacco sta per finire. Se si suppone che sia un database incorporato, potrebbe essere leggermente diverso.
ik_zelf,

Per essere chiari, Oracle XE non ha la funzione Resource Manager, quindi sarebbe utile solo consolidarsi in un server con licenza. @ik_zelf So che non era tua intenzione indicare diversamente.
Leigh Riffel,

@Leigh Riffel sì, stavo supponendo che fosse disponibile un'installazione Oracle, in uno scenario così consolidato preferirei EE. La domanda sembrava guardare più verso una soluzione integrata.
ik_zelf,
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.