Ambiente di sviluppo per gestire più database Oracle

3

Sono in un ambiente aziendale in cui sono presenti applicazioni che devono essere eseguite su più database Oracle. Gli sviluppatori potrebbero dover gestire più annate di questi database per supportare diversi dati di test o diagnosticare bug contro versioni diverse del codice.

Al momento, abbiamo un set limitato di ambienti di test configurati su server Oracle "reali" all'interno del data center. Diamo un'occhiata a questi gruppi di sviluppo e controllo qualità e ci sono molti conflitti e inefficienze che ne derivano.

Sto dando un'occhiata a Oracle Express Edition che mi consentirà di creare un database Oracle locale. Questo è simile al flusso di lavoro che vedo più spesso con SQL Server. Gli sviluppatori lavorano sul loro dispositivo di localizzazione fino a quando non sono pronti per l'integrazione e quindi trasferiscono le loro modifiche ai DB in ambienti di integrazione / QA.

Tuttavia, da quello che ho letto sembra che Oracle XE supporti solo un'istanza di database alla volta. Quindi, se ho un'applicazione che utilizza due database diversi, non posso averli entrambi in esecuzione sul mio computer locale. È corretto?

Le edizioni Oracle Standard o Personal aggirano questa limitazione? Se avessi uno di quelli installati localmente, quanto sarebbe difficile ottenere più database lavorando sullo stesso computer di sviluppo? In che modo i negozi di sviluppo gestiscono lo sviluppo rispetto a Oracle dove devono utilizzare diverse istanze Oracle per le loro applicazioni?

    
posta RationalGeek 26.06.2012 - 21:21
fonte

2 risposte

5

Hai ragione che XE è limitato a un database per server. Tecnicamente, dovresti essere in grado di eseguire più VM sulla tua casella di sviluppo con diversi database XE installati su ognuno di essi e collegarti a quei database dall'applicazione. Naturalmente, entrambi i database sarebbero limitati dalle altre restrizioni su XE (1 core CPU, 11 GB di dati supponendo che stiamo parlando di Oracle 11g XE, 1 GB di RAM). Dovrei passare un po 'di tempo a guardare attraverso la licenza per determinare se questo si scontrerà con i termini di licenza per XE - d'altra parte, probabilmente non è qualcosa a cui Oracle si preoccuperà di presumere che il resto della tua licenza sia kosher .

Sia le versioni standard che quelle personali di Oracle ti permetteranno di installare più database su una singola macchina. Il processo non è troppo difficile. Dovrai determinare se vuoi che i database siano eseguiti dalla stessa Oracle Home (nel qual caso condivideranno gli stessi eseguibili, verranno rattoppati, ecc.) O se vuoi che siano installati in Oracle Case separate (nel qual caso useranno diversi eseguibili, possono essere aggiornati e rattoppati in modo indipendente, ecc.). Quindi si tratta semplicemente di eseguire due installazioni se si desidera creare Oracle Case separate o eseguire DBCA (Database Creation Assistant) due volte se si desidera una singola Oracle Home con più database.

Dal momento che sembra provenire da uno sfondo di SQL Server, sei sicuro di utilizzare il termine "database" nel senso di Oracle piuttosto che nel senso di SQL Server? È raro che Oracle stia sviluppando applicazioni che accedono a più database diversi. È molto più comune lo sviluppo di applicazioni che accedono a più schemi nello stesso database. Uno schema Oracle equivale approssimativamente a un database SQL Server. Quindi sarebbe molto più comune in Oracle avere semplicemente più schemi in un singolo database Oracle.

    
risposta data 26.06.2012 - 21:33
fonte
1

Ci siamo imbattuti in un problema simile sul mio posto di lavoro. Abbiamo lo standard di sviluppo, controllo qualità, configurazione di produzione. Ogni sviluppatore sviluppato contro lo stesso database Dev e per l'80% delle volte tutto va bene. Abbiamo davvero incontrato dei problemi quando volevamo aggiungere test di integrazione. Come potremmo essere sicuri che i dati sarebbero corretti senza cancellare interi tavoli? La risposta su cui ci siamo basati è stata l'utilizzo di VM come suggerisce @Justin Cave.

Ogni sviluppatore del mio team è in esecuzione su Windows 7 Pro, il che significa che tutti noi abbiamo la modalità XP, che si occupa di alcune fastidiose licenze che possono generare VM in esecuzione (a meno che tu non stia utilizzando Linux). Oracle Express 11G per Windows è ancora a 32 bit, quindi impostarlo in modalità XP non è stato un grosso problema. Ecco un paio di lezioni che abbiamo imparato ad aiutarti.

  • Imposta un file .vhd comune che chiunque può copiare da un file server. Il file .vhd conterrà l'istanza di Oracle e la struttura del database di base e i dati statici (paesi, stati, ecc.)
  • Ogni volta che viene modificata una struttura dati in un ambiente come Dev, è possibile utilizzare lo strumento di diffusione del database SQL Developer 3.1 (o superiore) per determinare le differenze nella struttura. Aggiorna il file .vhd localmente e copialo nel percorso condiviso.
  • Il collegamento a Oracle Express tramite una VM non è così semplice come si potrebbe pensare, almeno con Virtual PC e XP. Devi installare la scheda Loopback di Microsoft sull'host e vm. Una volta installato, è possibile selezionare l'adattatore loopback come connessione di rete per la VM. Sarà necessario configurare gli adattatori su ciascuna macchina. Ad esempio, l'indirizzo IP sull'host è 192.168.1.1 mentre l'indirizzo IP sulla VM è 192.168.1.2. Le istruzioni per installare l'adattatore Loopback possono essere trovate qui .
  • Non ho notato una grande differenza tra l'esecuzione nativamente vs su una VM. L'unica cosa è assicurarsi di aver impostato la memoria per la VM almeno a 1,5 GB prima di installare Oracle Express 11G. Il setup di Oracle ha una strana stranezza in cui imposterà il massimo limite di memoria di Oracle a 100 MB invece di 1 GB, il che ha causato un enorme calo di prestazioni (le query che impiegano un secondo all'improvviso impiegano 10 secondi). Cambiarlo dopo l'installazione è un vero dolore.
risposta data 27.06.2012 - 00:09
fonte

Leggi altre domande sui tag