Dalla creazione del database Oracle alla configurazione degli utenti Primavera e alla prima connessione funzionante.
Nel [precedente articolo] ho illustrato come realizzare un ambiente Primavera P6 con database Oracle centralizzato, accessibile sia dalla rete locale sia attraverso una VPN.
In questa seconda parte entreremo nel dettaglio della procedura di installazione, prendendo come riferimento la configurazione che ho realizzato sul mio computer Windows 11.
L’obiettivo è installare Primavera P6 Professional 25.12 utilizzando Oracle Database 21c Express Edition, anziché il database SQLite normalmente utilizzato nelle installazioni standalone.
Si tratta di una configurazione utile per chi gestisce diversi progetti e vuole disporre di un archivio centralizzato, accessibile da più postazioni.
1. Software necessario
Per l’installazione ho utilizzato:
| Software | Versione |
|---|---|
| Sistema operativo | Windows 11 a 64 bit |
| Database | Oracle Database 21c Express Edition |
| Applicativo | Primavera P6 Professional 25.12 |
| Java Development Kit | JDK 17 |
| SQL*Plus | Incluso negli strumenti Oracle |
| Pacchetto database P6 | P6_R2512_Database |
È importante distinguere il pacchetto di installazione di Primavera P6 Professional dal pacchetto necessario alla creazione del suo database.
Quest’ultimo contiene gli script SQL e le utility per predisporre gli oggetti applicativi all’interno di Oracle.
Nel mio caso il pacchetto database è stato estratto nella directory:
E:\DOWNLOADS\V1053388-01\P6_R2512_Database
All’interno sono presenti, tra gli altri:
P6_R2512_Database
│
├── data
├── docs
├── lib
├── scripts
├── dbsetup.bat
└── databaselogins.bat
Le due utility che ci interessano maggiormente sono dbsetup.bat, per l’installazione del database Primavera, e databaselogins.bat, per la successiva configurazione delle credenziali applicative.
Nota sulla compatibilità: prima di replicare questa installazione su un sistema di produzione occorre controllare la matrice di compatibilità Oracle relativa alla specifica release P6. Il fatto che una combinazione di versioni funzioni in un ambiente reale non implica automaticamente che sia supportata ufficialmente in ogni configurazione.
2. Installazione di Oracle Database 21c XE
Per prima cosa installiamo Oracle Database 21c Express Edition.
Durante l’installazione vengono configurati un database contenitore e un pluggable database.
Nell’ambiente realizzato ho utilizzato:
| Parametro | Valore |
|---|---|
| Oracle SID | XE |
| Pluggable Database | XEPDB1 |
| Listener | TCP 1521 |
| Oracle Home | C:\app\Andrea\product\21c\dbhomeXE |
Una volta terminata l’installazione, apriamo il Prompt dei comandi di Windows e verifichiamo la presenza degli strumenti Oracle.
sqlplus -v
Se il comando non viene riconosciuto, possiamo richiamarlo direttamente dalla directory di installazione:
"C:\app\Andrea\product\21c\dbhomeXE\bin\sqlplus.exe" -v
Il percorso cambierà naturalmente in funzione dell’utente Windows e della directory scelta durante l’installazione.
Prima connessione amministrativa
Sul computer che ospita Oracle, apriamo SQL*Plus:
sqlplus / as sysdba
Questo tipo di connessione utilizza l’autenticazione amministrativa locale di Oracle e richiede che l’utente Windows disponga dei necessari privilegi.
Al prompt SQL eseguiamo:
SHOW PDBS;
Il comando permette di verificare la presenza dei pluggable database.
Dovremmo trovare:
XEPDB1
Se il PDB non risulta aperto, possiamo eseguire:
ALTER PLUGGABLE DATABASE XEPDB1 OPEN;
Per chiedere a Oracle di ricordarne lo stato di apertura:
ALTER PLUGGABLE DATABASE XEPDB1 SAVE STATE;
A questo punto selezioniamo il database destinato a Primavera:
ALTER SESSION SET CONTAINER = XEPDB1;
Verifichiamo:
SHOW CON_NAME;
Il risultato deve essere:
XEPDB1
Questo è uno dei passaggi più importanti dell’intera procedura.
Oracle Database 21c utilizza un’architettura multitenant: creare gli utenti o eseguire gli script nel container sbagliato significa predisporre un ambiente differente da quello che Primavera tenterà di utilizzare.
3. Controllare il listener Oracle
Il listener è il servizio che permette ai client di collegarsi al database.
Da un nuovo Prompt dei comandi:
lsnrctl status
Verifichiamo che il listener sia attivo sulla porta:
1521
e che tra i servizi disponibili sia presente:
XEPDB1
Se il servizio non compare immediatamente, possiamo richiedere la registrazione dei servizi dal database:
ALTER SYSTEM REGISTER;
Successivamente ripetiamo:
lsnrctl status
È importante utilizzare il service name XEPDB1, non confonderlo con il SID XE.
La stringa di connessione che utilizzeremo sarà:
localhost:1521/XEPDB1
Oppure, nella sintassi Oracle Easy Connect:
//localhost:1521/XEPDB1
4. Installazione e configurazione di Java
Il programma dbsetup.bat utilizza Java per avviare l’interfaccia di installazione del database Primavera.
Nella configurazione realizzata ho utilizzato JDK 17.
Dopo l’installazione, verifichiamo:
java -version
Occorre inoltre controllare la variabile d’ambiente JAVA_HOME.
Per visualizzarla:
echo %JAVA_HOME%
Questa deve riferirsi alla directory di installazione del JDK, ad esempio:
C:\Program Files\Eclipse Adoptium\jdk-17...
Il percorso esatto dipende dalla distribuzione Java installata.
Se necessario, è possibile impostare temporaneamente la variabile nel Prompt dei comandi:
set "JAVA_HOME=C:\Percorso\Del\JDK17"
Sostituendo il percorso con quello effettivamente presente sul computer.
È importante non confondere JAVA_HOME con la directory bin: la variabile deve indicare la cartella principale del JDK.
5. Preparazione degli script SQL di Primavera
Prima di avviare l’installazione vera e propria, Oracle prevede l’esecuzione di uno script preliminare per assegnare al database administrator i privilegi necessari alla creazione degli oggetti Primavera.
Il file è denominato:
manual_script_before_install.sql
Si trova all’interno della struttura degli script del pacchetto database P6, nella sottodirectory relativa alla release.
Attenzione: il percorso effettivo deve essere individuato all’interno del pacchetto 25.12. Non bisogna utilizzare script provenienti da release differenti.
Per cercare il file possiamo utilizzare il Prompt dei comandi:
cd /d E:\DOWNLOADS\V1053388-01\P6_R2512_Database
dir /s /b manual_script_before_install.sql
Il comando restituirà il percorso completo.
Prima di eseguirlo occorre aprirlo con un editor di testo e controllare i riferimenti agli utenti Oracle, in particolare all’account amministrativo utilizzato per l’installazione.
La documentazione Oracle prevede infatti che i privilegi preliminari siano assegnati all’utente DBA che eseguirà la procedura.
Esecuzione dello script
Apriamo SQL*Plus come amministratore:
sqlplus / as sysdba
Selezioniamo il PDB:
ALTER SESSION SET CONTAINER = XEPDB1;
Quindi eseguiamo lo script utilizzando il percorso completo restituito dalla ricerca precedente:
@"PERCORSO_COMPLETO\manual_script_before_install.sql"
Il percorso riportato è un segnaposto: va sostituito con quello effettivo del file.
Prima di proseguire bisogna controllare l’output SQL*Plus e verificare che lo script abbia terminato correttamente.
Non è consigliabile correggere eventuali errori attraverso assegnazioni indiscriminate di privilegi DBA agli utenti applicativi.
6. Creazione del database Primavera con dbsetup.bat
A questo punto possiamo avviare l’utility di configurazione.
Dal Prompt dei comandi:
cd /d E:\DOWNLOADS\V1053388-01\P6_R2512_Database
dbsetup.bat
Si apre l’interfaccia grafica Oracle Primavera Database Setup.
Scelta dell’operazione
Nella schermata iniziale selezioniamo l’installazione di un nuovo database e, come tipo di server:
Oracle
Non dobbiamo scegliere l’installazione standalone SQLite, perché l’obiettivo è utilizzare il database Oracle già predisposto.
Parametri di collegamento
Nelle schermate successive inseriamo i parametri di Oracle.
| Campo | Valore |
|---|---|
| Database Host Address | localhost |
| Database Host Port | 1521 |
| Database Service | XEPDB1 |
| DBA User Name | SYSTEM, oppure altro account autorizzato |
| DBA Password | Password del relativo account |
Le etichette possono variare leggermente secondo la versione dell’utility.
L’account DBA deve disporre dei privilegi necessari e deve collegarsi al database XEPDB1.
Configurazione degli utenti applicativi
L’installazione crea gli schemi e gli account richiesti da Primavera.
Nel database realizzato sono presenti:
ADMUSER
PRIVUSER
PUBUSER
BGJOBUSER
I loro ruoli sono differenti.
ADMUSER è lo schema principale che contiene gli oggetti applicativi P6.
Gli altri account vengono utilizzati per le funzioni previste dall’architettura applicativa.
È importante lasciare che sia la procedura Oracle Primavera a predisporre gli utenti e i relativi privilegi, seguendo le impostazioni previste per la release.
Per i tablespace, nella mia configurazione sono stati utilizzati:
USERS
TEMP
Terminata la procedura, controlliamo il messaggio finale del wizard e gli eventuali log prodotti.
Un errore durante la creazione di uno schema o di una tabella non dovrebbe essere ignorato soltanto perché l’interfaccia consente di procedere.
7. Verifica degli utenti Oracle
Dopo l’installazione possiamo effettuare un primo controllo.
Apriamo SQL*Plus:
sqlplus / as sysdba
Selezioniamo il PDB:
ALTER SESSION SET CONTAINER = XEPDB1;
Eseguiamo:
SELECT USERNAME, ACCOUNT_STATUS
FROM DBA_USERS
WHERE USERNAME IN (
'ADMUSER',
'PRIVUSER',
'PUBUSER',
'BGJOBUSER'
)
ORDER BY USERNAME;
Il risultato deve mostrare gli account effettivamente creati.
È possibile controllare anche i tablespace assegnati:
SELECT
USERNAME,
DEFAULT_TABLESPACE,
TEMPORARY_TABLESPACE
FROM DBA_USERS
WHERE USERNAME IN (
'ADMUSER',
'PRIVUSER',
'PUBUSER',
'BGJOBUSER'
);
Verifica degli oggetti applicativi
Controlliamo che siano presenti oggetti appartenenti allo schema principale:
SELECT
OWNER,
OBJECT_TYPE,
COUNT(*) AS NUMERO_OGGETTI
FROM DBA_OBJECTS
WHERE OWNER = 'ADMUSER'
GROUP BY OWNER, OBJECT_TYPE
ORDER BY OBJECT_TYPE;
Se l’installazione è avvenuta correttamente dovremmo trovare numerosi oggetti, comprese tabelle e altri componenti applicativi.
Possiamo verificare la presenza di eventuali oggetti non validi:
SELECT
OBJECT_TYPE,
OBJECT_NAME,
STATUS
FROM DBA_OBJECTS
WHERE OWNER = 'ADMUSER'
AND STATUS <> 'VALID'
ORDER BY OBJECT_TYPE, OBJECT_NAME;
Una lista vuota è un buon segnale.
La presenza di oggetti non validi richiede invece un approfondimento prima di considerare completata l’installazione.
8. Prova della connessione Oracle
Ora verifichiamo che il database sia raggiungibile anche attraverso il normale listener di rete.
Dal Prompt dei comandi:
sqlplus admuser@//localhost:1521/XEPDB1
Inseriamo la password quando richiesta.
Se la connessione riesce, possiamo eseguire:
SELECT USER FROM DUAL;
Il risultato atteso è:
ADMUSER
Controlliamo anche il database corrente:
SELECT SYS_CONTEXT('USERENV','SERVICE_NAME')
FROM DUAL;
La connessione deve riferirsi al servizio configurato per il pluggable database.
Questa prova verifica che il database sia raggiungibile tramite rete, che le credenziali funzionino e che l’utente acceda al database corretto.
Non dimostra ancora che l’applicazione Primavera sia completamente configurata: questa sarà la verifica successiva.
9. Configurazione di Primavera P6 Professional
Dopo aver installato Primavera P6 Professional, avviamo lo strumento Database Configuration disponibile tra le utility dell’applicazione.
Lo strumento permette di creare un alias, cioè una configurazione di connessione che sarà poi selezionabile dalla schermata di accesso a Primavera.
Nel mio ambiente sono state utilizzate anche denominazioni di connessione come:
P6 Professional_Shared
PMDB
Questi sono nomi di configurazione, non necessariamente nomi del database Oracle.
Nella creazione dell’alias dobbiamo selezionare il driver Oracle previsto dall’installazione P6 e indicare la connessione al server:
localhost:1521/XEPDB1
Se richiesto, vanno specificati anche i parametri di connessione applicativa previsti dal wizard.
Prima apertura di P6
Avviamo Primavera P6 Professional.
Nella schermata di accesso selezioniamo l’alias Oracle appena configurato e inseriamo le credenziali dell’utente Primavera.
È importante distinguere gli utenti applicativi di P6 dagli account tecnici Oracle.
Se l’accesso riesce e l’applicazione carica l’ambiente progettuale, abbiamo completato la prima verifica funzionale.
Per un test più significativo possiamo:
- Creare un progetto di prova.
- Inserire alcune attività e relazioni logiche.
- Salvare le modifiche.
- Chiudere Primavera.
- Riaprire l’applicazione e verificare che i dati siano stati conservati.
A questo punto abbiamo la conferma che Primavera è in grado di utilizzare il database Oracle predisposto.
10. Configurazione delle credenziali applicative
Un ulteriore strumento presente nel pacchetto database è:
databaselogins.bat
L’utility viene utilizzata per configurare o aggiornare le informazioni di accesso al database impiegate da Primavera.
Nella mia esperienza è stata particolarmente utile durante la risoluzione di un problema di autenticazione provocato dalla scadenza delle password Oracle.
Il programma si avvia da:
cd /d E:\DOWNLOADS\V1053388-01\P6_R2512_Database
databaselogins.bat
Si apre un’interfaccia grafica dalla quale è possibile gestire le credenziali del database applicativo.
È importante eseguire queste modifiche seguendo le indicazioni Oracle, evitando di cambiare manualmente le password degli utenti tecnici senza aggiornare anche le configurazioni che ne fanno uso.
11. Preparare il database per i collegamenti in rete
Fin qui abbiamo lavorato sul computer principale.
Per consentire l’accesso da un’altra postazione dobbiamo verificare tre elementi:
Listener Oracle
Deve essere configurato per accettare connessioni dall’interfaccia di rete necessaria.
Firewall Windows
La porta TCP 1521 deve essere consentita soltanto dalle reti o dagli indirizzi autorizzati.
Indirizzo IP del server
Il computer principale dovrebbe utilizzare un indirizzo LAN stabile, tramite configurazione statica o prenotazione DHCP sul router.
Il client remoto utilizzerà quindi una connessione del tipo:
INDIRIZZO_SERVER:1521/XEPDB1
Nel mio ambiente, attraverso la VPN WireGuard, la connessione utilizzata e verificata è:
10.10.10.1:1521/XEPDB1
La possibilità di raggiungere il database attraverso una VPN consente di utilizzare lo stesso archivio Primavera anche lavorando fuori ufficio.
Naturalmente, le prestazioni dipendono dalla latenza e dalla qualità della connessione.
La porta Oracle non deve essere pubblicata direttamente su Internet.
12. Controlli finali dell’installazione
Prima di considerare conclusa la procedura, suggerisco di effettuare una serie di controlli.
| Verifica | Risultato atteso |
|---|---|
| SQL*Plus locale | Connessione SYSDBA funzionante |
| Pluggable database | XEPDB1 aperto |
| Listener | Servizio XEPDB1 disponibile |
| Schemi Oracle | Utenti applicativi presenti |
| Oggetti P6 | Tabelle e altri oggetti creati |
| Connessione ADMUSER | Accesso tramite listener funzionante |
| Database Configuration | Alias Oracle configurato |
| Avvio Primavera P6 | Login applicativo riuscito |
| Progetto di prova | Salvataggio e riapertura corretti |
Se tutti questi controlli vengono superati, l’ambiente Primavera P6 con Oracle Database è operativo.
Il passo successivo è proteggerlo con una procedura di backup adeguata.
Conclusioni
L’installazione di Primavera P6 Professional su Oracle Database richiede maggiore attenzione rispetto a un’installazione standalone basata su SQLite.
La differenza sostanziale riguarda l’architettura: non abbiamo più un semplice database locale, ma un sistema relazionale centralizzato, con utenti, privilegi, servizi di rete e strumenti dedicati all’amministrazione.
I passaggi cruciali sono:
- utilizzare il pluggable database corretto,
XEPDB1; - predisporre l’ambiente Java per le utility Primavera;
- eseguire gli script preliminari previsti dalla release;
- creare gli schemi applicativi attraverso
dbsetup.bat; - configurare correttamente le credenziali e l’alias Oracle;
- verificare sia l’accesso SQL sia il funzionamento dell’applicazione.
Nel mio caso questa configurazione ha permesso di utilizzare Primavera P6 Professional 25.12 con Oracle 21c XE su Windows 11, sia localmente sia attraverso una VPN WireGuard.
Il sistema rappresenta una base interessante per un ambiente personale di project planning e project control, a condizione di rispettare i limiti del database Express Edition e predisporre adeguate misure di protezione dei dati.
Nel prossimo articolo vedremo come automatizzare i backup di Primavera P6 con Oracle Data Pump, 7-Zip e Utilità di pianificazione di Windows, realizzando una procedura giornaliera e mensile con conservazione degli archivi e verifiche di ripristino.
Nota tecnica: la guida descrive una configurazione reale e incorpora i controlli previsti dalla documentazione Oracle. Per le schermate e i parametri che possono variare tra release, fare sempre riferimento al pacchetto database della versione installata. Non sostituire gli script ufficiali con comandi SQL ricostruiti manualmente.