Creare un Database Oracle in 5 minuti con Docker [ITA]
Da qualche giorno ormai volevo scrivere un breve articolo su come installare sulla propria macchina un Database Oracle Enterprise completo. Dopo un po di ricerche ho scoperto che il modo più semplice è pulito è utilizzare Docker. Utilizzando Docker possiamo sfruttare le numerosissime “immagini” presenti sul Docker hub per sperimentare, testare, giocare o semplicemente smanettare con tantissimi prodotti nelle loro versioni originali o se vogliamo nelle versioni modificate e estese da altri sviluppatori.
Questa volta il mio scopo era semplicemente quello di installare in locale una versione completa di Oracle Database in modo da effettuare alcune prove. Finite le prove, voglio essere libero di arrestare il container e ripulire tutto.
Cosa serve?
La prima cosa che bisogna fare è assicurarsi di avere una versione installata e funzionante di Docker. Se non avete ancora installato docker, fatelo subito dal sito: docs.docker.com
Se volete verificare che docker sia funzionante, aprite una shell è lanciate il seguente comando:
Dovreste vedere scaricare l’immagine di hello world e successivamente l’output releativo all’esecuzione.
Successivamente sarà necessario creare un account per il DockerHub dal sito hub.docker.com effettua la registrazione. A questo punto, sarà possibile cercare l’immagine desiderata con il nome “Oracle Database Enterprise Edition”:
Come possiamo notare, l’immagine è creata e gestita direttamente da Oracle è Docker lo certifica. Possiamo notare anche che l’immagine è basata su Oracle Database Server 12.2.0.1 Enterprise Edition che verrà eseguito su Oracle Linux 7. Un’ altra cosa che possiamo notare è che sarà necessario effettuare il “checkout” dell’immagine e accettare i termini definiti da Oracle. Effettuato ciò, possiamo passare all’azione.
Come si fa?
A questo punto, dobbiamo scaricare l’immagine docker ed effettuare il pull, tuttavia per scaricare questa immagine ci è prima richiesto effettuare login:
successivamente scarichiamo l’immagine. Nota, proprio perchè il database è una versione “Enterprise Edition” su un Oracle Linux 7, la dimensione del’immagine risulta essere abbastanza ingombrante (4Gb per la versione base ), ho deciso di utilizzare per questo articola la variante slim dell’immagine “12.2.0.1-slim” che invece occupa solo 2Gb. La variante slim, non supporta le seguenti features: Analytics, Oracle R, Oracle Label Security, Oracle Text, Oracle Application Express and Oracle DataVault.
Terminato il download dell’immagine, siamo ad un passo dal poter finalmente eseguire il container contente il nostro Database utilizzando il seguente comando:
Nota: non ho specificato nessun volume per cui all’arresto dell’istanza perderò tutti i dati, per questo primo esempio può anche andare bene. Inoltre ho esposto la porta 1521 e non ho specificato nessun altro parametro per cui il database avrà tutto il setup di default.
Il container impiegherà un po di tempo per partire, per questo sarà importante comprendere se ha terminato l’inizializzazione e per fare ciò possiamo contultare i log:
Per concludere che il database è up e running, possiamo consultare lo stato del container e verificare che sia in “healty”:
Il container è in esecuzione e possiamo interagire con il nostro database.
Setup base del Database
Quello che abbiamo ora, è un database vuoto per cui abbiamo la necessità di creare delle configurazione base. Per fare questo, consiglio di accedere a sqlplus digitando il comando:
da qui siamo liberi di eseguire tutte leconfigurazioni che desideriamo all’interno del database. Io qui propongo una versione base per definire un utente che chiamerò “myuser”, assegnare all’utente i grant base e infine tablespace illimitato:
Da questo momento in poi possiamo accedere al database mediante un qualsiasi client, per esempio Oracle SQL Developer:
Stop e pulizia del container