Oracle Database Express Edition (XE) è una versione gratuita del famoso database Oracle, progettata per sviluppatori, studenti e appassionati che desiderano sperimentare con le funzionalità di Oracle Database senza dover investire in licenze costose. Docker è una piattaforma di containerizzazione che semplifica il processo di distribuzione delle applicazioni, inclusi i database. In questo articolo, esploreremo come avviare rapidamente Oracle XE utilizzando Docker.
Prerequisiti
Prima di iniziare, assicurati di avere Docker installato sul tuo sistema. Puoi scaricare Docker dal sito ufficiale e seguire le istruzioni di installazione specifiche per il tuo sistema operativo. Se cerchi una soluzione gratuita alternativa a Docker Desktop puoi installare Rancher Desktop che include nel suo installer anche il docker-engine e fornisce un’interfaccia grafica semplice ed user-friendly.
Una volta installato docker sul tuo computer o server, puoi verificarne la corretta configurazione lanciando in console il comando:
docker --help
Avviare Oracle XE su Docker
Il primo passo è scaricare l’ultima versione dell’immagine Docker di Oracle XE dal repository delle immagini di Oracle. Per farlo è sufficiente eseguire il seguente comando:
docker pull container-registry.oracle.com/database/express:latest
L’immagine pesa circa 3 GB pertanto è necessario attendere il completamento del download. Al termine, è possibile procedere con l’avvio del DB:
docker run --name <container-name> \
-p <db-host-port>:1521 \
-e ORACLE_PWD=<your-database-password> \
container-registry.oracle.com/database/express:latest
In grassetto abbiamo evidenziato le variabili da sostituire all’interno del comando:
- container-name = Il nome che vogliamo dare al container. Se non specificato viene valorizzato di default dal sistema.
- db-host-port = Porta su cui esporre la connessione al database.
- your-database-password = Password per le utenze di default (SYS, SYSTEM e PDB_ADMIN).
Di seguito un esempio di comando già valorizzato:
docker run --name oracle-xe \
-p 1521:1521 \
-e ORACLE_PWD=testpwd \
container-registry.oracle.com/database/express:latest
Se il database si sarà avviato correttamente vedrete un messaggio come questo in console:
#########################
DATABASE IS READY TO USE!
#########################
Note per installazione su Apple Silicon
Se usate una macchina con processore Apple M1, potreste avere degli errori in avvio del container docker simili al seguente:
#####################################
########### E R R O R ###############
DATABASE SETUP WAS NOT SUCCESSFUL!
Please check output for further info!
########### E R R O R ###############
#####################################
The following output is now a tail of the alert.log:
Oracle instance running with ODM in SGA: FSDirect ODM Library Version 1.0
Broadcast on commit is enabled and is using Message mode.
Starting background process PMON
Process PMON died, see its trace file
USER (ospid: 70): terminating the instance due to ORA error 443
2024-04-25T19:44:15.979745+00:00
Instance terminated by USER, pid = 70
Questo si verifica in quanto, al momento, Oracle XE non è compatibile con i processori ARM. L’unico modo per risolevere il problema è utilizzare Colima. Si tratta di un software di virtualizzazione che emula i processori Intel.
E’ possibile installarlo e poi avviarlo lanciando in sequenza due comandi:
brew install colima
colima start --memory 4 --arch x86_64
Successivamente all’avvio di Colima è possibile eseguire il comando docker run senza ottenere errori.
Altri parametri di configurazione Oracle XE
Il comando lanciato in precedenza è minimale ma è possibile aggiungere altri parametri di configurazione in input. Di seguito alcuni dei più utili:
Esposizione Express Database Administration
Express Database Administration è un tool molto utile per il monitoraggio delle performance del DB. Per usarlo è necessario esporre la porta 5500:
-p <host-port>:5500
Impostazione charset
Il charset di default usato da Oracle XE è AL32UTF8. E’ possibile modificarlo mediante il seguente parametro:
-e ORACLE_CHARACTERSET=<your character set>
Mount volume esterno
Se volete che i dati salvati nel DB vengano persistiti anche in seguito allo spegnimento del container, è necessario montare un volume esterno usando il comando:
-v <host mount point>:/opt/oracle/oradata
Collegarsi al database Oracle XE
E’ finalmente arrivato finalmente il passo finale del nostro tutorial. Ovvero dobbiamo collegarci al database che abbiamo appena creato!
Per collegarsi al database è possibile usare un client a propria scelta. Nel nostro esempio useremo Oracle SQLDeveloper. Di seguito le configurazioni da impostare nel tool per creare la connessione:
La password da usare è quella impostata in precedenza sul parametro ORACLE_PWD. Da notare che questo parametro è facoltativo e se non specificato Oracle XE genererà delle password randomiche che è possibile modificare in un secondo momento mediante il seguente comando:
docker exec oracle-xe ./setPassword.sh <your_password>
Con le sue potenti funzionalità e la sua facilità d’uso, Oracle XE è una scelta popolare per coloro che desiderano sperimentare con Oracle Database senza dover investire in costose licenze. Se sei interessato a sviluppare applicazioni o imparare di più su Oracle Database, Oracle XE potrebbe essere la soluzione ideale per te.