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:

SoftwareVersione
Sistema operativoWindows 11 a 64 bit
DatabaseOracle Database 21c Express Edition
ApplicativoPrimavera P6 Professional 25.12
Java Development KitJDK 17
SQL*PlusIncluso negli strumenti Oracle
Pacchetto database P6P6_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:

ParametroValore
Oracle SIDXE
Pluggable DatabaseXEPDB1
ListenerTCP 1521
Oracle HomeC:\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.

CampoValore
Database Host Addresslocalhost
Database Host Port1521
Database ServiceXEPDB1
DBA User NameSYSTEM, oppure altro account autorizzato
DBA PasswordPassword 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:

  1. Creare un progetto di prova.
  2. Inserire alcune attività e relazioni logiche.
  3. Salvare le modifiche.
  4. Chiudere Primavera.
  5. 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.

VerificaRisultato atteso
SQL*Plus localeConnessione SYSDBA funzionante
Pluggable databaseXEPDB1 aperto
ListenerServizio XEPDB1 disponibile
Schemi OracleUtenti applicativi presenti
Oggetti P6Tabelle e altri oggetti creati
Connessione ADMUSERAccesso tramite listener funzionante
Database ConfigurationAlias Oracle configurato
Avvio Primavera P6Login applicativo riuscito
Progetto di provaSalvataggio 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.


Andrea Di Dio

Sono un Ingegnere e Project Manager certificato PMP®, lavoro come consulente con oltre 20 anni di esperienza. Sono stato ingaggiato presso Cantieri di grandi opere, industrie del settore Energia, Automotive, Logistica ed Istituzioni Finanziarie, sia pmi che multinazionali come responsabile di Servizi e Progetti (manager) sono esperto nel controllo di gestione di progetti nei settori delle Costruzioni, Telecom, Assicurativo e nel Digital