{"id":1278,"date":"2026-10-21T10:59:45","date_gmt":"2026-10-21T08:59:45","guid":{"rendered":"https:\/\/andreadidio.it\/?p=1278"},"modified":"2026-10-21T22:34:35","modified_gmt":"2026-10-21T20:34:35","slug":"primavera-p6-su-oracle-xe-backup-automatici-con-data-pump-7-zip-e-windows-task-scheduler","status":"publish","type":"post","link":"https:\/\/andreadidio.it\/it\/primavera-p6-su-oracle-xe-backup-automatici-con-data-pump-7-zip-e-windows-task-scheduler\/","title":{"rendered":"Primavera P6 su Oracle XE: backup automatici con Data Pump, 7-Zip e Windows Task Scheduler"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>Come proteggere il database di Primavera P6 Professional 25.12 con esportazioni giornaliere e mensili, compressione automatica, rotazione degli archivi e verifiche di ripristino.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduzione<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nei primi due articoli di questa serie abbiamo visto come installare Primavera P6 Professional 25.12 su Oracle Database 21c Express Edition e come configurare un ambiente centralizzato, accessibile sia localmente sia attraverso una VPN.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una volta completata l&#8217;installazione, rimane una questione fondamentale: <strong>come proteggere i dati di pianificazione dei progetti?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per chi utilizza Primavera P6 nell&#8217;attivit\u00e0 professionale, la perdita dei dati pu\u00f2 significare molto pi\u00f9 della semplice scomparsa di alcuni file. All&#8217;interno del database vengono conservati programmi lavori, attivit\u00e0, relazioni logiche, calendari, avanzamenti, risorse e altre informazioni necessarie alla gestione delle commesse.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ho quindi deciso di predisporre un sistema di backup automatizzato sul computer che ospita Oracle XE.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La soluzione utilizza strumenti relativamente semplici:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Oracle Data Pump per esportare i dati applicativi;<\/li>\n\n\n\n<li>7-Zip per comprimere gli archivi;<\/li>\n\n\n\n<li>script batch di Windows per gestire le operazioni;<\/li>\n\n\n\n<li>Utilit\u00e0 di pianificazione per eseguire i backup automaticamente;<\/li>\n\n\n\n<li>una procedura di verifica per controllare che gli archivi siano utilizzabili.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;obiettivo \u00e8 ottenere due livelli di conservazione: gli ultimi dieci backup giornalieri e uno storico mensile.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vediamo come.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1. L&#8217;architettura di partenza<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Il sistema di riferimento utilizza Windows 11 e Oracle Database 21c Express Edition.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La configurazione \u00e8 la seguente:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>Componente<\/th><th>Configurazione<\/th><\/tr><tr><td>Primavera<\/td><td>P6 Professional 25.12<\/td><\/tr><tr><td>Database<\/td><td>Oracle Database 21c XE<\/td><\/tr><tr><td>Istanza Oracle<\/td><td>XE<\/td><\/tr><tr><td>Pluggable Database<\/td><td>XEPDB1<\/td><\/tr><tr><td>Schema principale<\/td><td>ADMUSER<\/td><\/tr><tr><td>Listener<\/td><td>TCP 1521<\/td><\/tr><tr><td>Directory temporanea<\/td><td>C:\\oracle_backup_stage<\/td><\/tr><tr><td>Archivio backup<\/td><td>D:\\backup_Oracle<\/td><\/tr><tr><td>Programma di compressione<\/td><td>7-Zip<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Il database \u00e8 installato sul computer principale, mentre il disco <code>D:<\/code> viene utilizzato per conservare gli archivi compressi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La scelta di una directory temporanea su <code>C:<\/code> deriva anche da un&#8217;esigenza pratica: nell&#8217;ambiente utilizzato, Oracle Data Pump dispone dei permessi necessari per scrivere correttamente in quella directory.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Non \u00e8 una limitazione generale di Oracle XE: con gli opportuni permessi del sistema operativo \u00e8 possibile utilizzare anche altri dischi.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Perch\u00e9 non esportare direttamente su D:?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Oracle Data Pump scrive i propri file attraverso un processo del server database, non attraverso il processo del Prompt dei comandi dell&#8217;utente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per questo motivo la directory deve essere accessibile all&#8217;account Windows che esegue il servizio Oracle.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nella mia configurazione ho preferito mantenere una cartella temporanea dedicata e spostare i dati sul disco di archivio solo dopo aver completato correttamente l&#8217;esportazione.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c8 una soluzione semplice e facilmente verificabile.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2. Che cosa salva Oracle Data Pump?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Oracle Data Pump permette di esportare uno schema database in un file dump.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nel nostro caso utilizziamo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SCHEMAS=ADMUSER<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Questo parametro indica a Oracle di esportare gli oggetti e i dati appartenenti allo schema principale Primavera P6.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il file risultante ha estensione:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.dmp<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;operazione genera anche un file di log:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.log<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c8 importante chiarire che <strong>Data Pump esegue un&#8217;esportazione logica, non una copia fisica dell&#8217;intero database Oracle<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un export dello schema <code>ADMUSER<\/code> non contiene necessariamente tutti gli utenti tecnici, i privilegi, gli oggetti di altri schemi o la configurazione dell&#8217;istanza necessari a ricostruire un sistema P6 completo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;esportazione \u00e8 quindi una componente importante della strategia di backup, ma non dovrebbe costituirne l&#8217;unico elemento.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Creare la cartella temporanea<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La prima operazione consiste nel creare la directory che Oracle utilizzer\u00e0 per scrivere i dump.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nel mio ambiente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\oracle_backup_stage<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dal Prompt dei comandi possiamo eseguire:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir C:\\oracle_backup_stage<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Se la cartella esiste gi\u00e0, non occorre ricrearla.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dobbiamo successivamente verificare che l&#8217;account del servizio Oracle disponga dei permessi di lettura e scrittura.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Questi permessi sono distinti da quelli configurati all&#8217;interno del database.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4. Configurare la directory Oracle<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Apriamo SQL*Plus con privilegi amministrativi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sqlplus \/ as sysdba<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Selezioniamo il pluggable database corretto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ALTER SESSION SET CONTAINER = XEPDB1;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Verifichiamo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SHOW CON_NAME;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Il risultato atteso \u00e8:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>XEPDB1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Creiamo quindi l&#8217;oggetto directory:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE OR REPLACE DIRECTORY BACKUP_ORACLE\nAS 'C:\\oracle_backup_stage';<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Assegniamo i privilegi necessari all&#8217;utente utilizzato per l&#8217;esportazione:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>GRANT READ, WRITE ON DIRECTORY BACKUP_ORACLE\nTO ADMUSER;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Per verificare la configurazione possiamo utilizzare:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT\n    DIRECTORY_NAME,\n    DIRECTORY_PATH\nFROM DBA_DIRECTORIES\nWHERE DIRECTORY_NAME = 'BACKUP_ORACLE';<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Il risultato dovrebbe riportare:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>BACKUP_ORACLE    C:\\oracle_backup_stage<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ricordiamo che creare una directory Oracle non significa creare automaticamente la cartella sul disco e non attribuisce permessi Windows al servizio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Occorrono entrambe le configurazioni.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5. Eseguire il primo backup manuale<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Prima di automatizzare qualunque operazione \u00e8 indispensabile effettuare un test manuale.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Apriamo il Prompt dei comandi e utilizziamo il comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>expdp admuser@\/\/localhost:1521\/XEPDB1 schemas=ADMUSER directory=BACKUP_ORACLE dumpfile=p6_test.dmp logfile=p6_test.log<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Il sistema richieder\u00e0 la password dell&#8217;utente Oracle.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Durante l&#8217;esecuzione vengono esportati gli oggetti dello schema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al termine verifichiamo che Data Pump abbia completato l&#8217;operazione senza errori.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">All&#8217;interno di:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\oracle_backup_stage<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">dovrebbero essere presenti:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>p6_test.dmp\np6_test.log<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Questo \u00e8 il primo controllo concreto: il database risponde, la directory \u00e8 accessibile e i dati possono essere esportati.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nel mio caso l&#8217;esportazione dello schema <code>ADMUSER<\/code> \u00e8 stata completata correttamente.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Una precisazione sulla compressione Data Pump<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Oracle Data Pump offre alcune opzioni di compressione interne, ma non tutte sono disponibili in ogni edizione del database.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Con Oracle XE l&#8217;utilizzo di:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>COMPRESSION=ALL<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">ha restituito un errore relativo a un&#8217;opzione non disponibile.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ho quindi scelto una soluzione alternativa: produrre il dump ordinario e comprimerlo successivamente con 7-Zip.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6. Installare e verificare 7-Zip<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Per la compressione utilizziamo 7-Zip.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nel mio computer il programma \u00e8 installato in:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\Program Files\\7-Zip\\7z.exe<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Possiamo verificare che funzioni eseguendo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"C:\\Program Files\\7-Zip\\7z.exe\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Il programma mostra le opzioni disponibili.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per comprimere manualmente il dump di prova:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"C:\\Program Files\\7-Zip\\7z.exe\" a -t7z \"D:\\p6_test.7z\" \"C:\\oracle_backup_stage\\p6_test.dmp\" \"C:\\oracle_backup_stage\\p6_test.log\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Otterremo un archivio:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>D:\\p6_test.7z<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">contenente il dump e il log.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per verificare l&#8217;integrit\u00e0 dell&#8217;archivio:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"C:\\Program Files\\7-Zip\\7z.exe\" t \"D:\\p6_test.7z\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Se il test termina correttamente, l&#8217;archivio compresso \u00e8 leggibile.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Questo controllo non dimostra ancora che il contenuto potr\u00e0 essere importato correttamente in Oracle, ma permette di individuare errori di compressione o archivi danneggiati.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">7. Organizzare le directory dei backup<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ho scelto la seguente struttura:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>D:\\backup_Oracle\n\u2502\n\u251c\u2500\u2500 scripts\n\u2502   \u251c\u2500\u2500 p6_backup_daily.bat\n\u2502   \u251c\u2500\u2500 p6_backup_monthly.bat\n\u2502   \u2514\u2500\u2500 p6_backup_common.bat\n\u2502\n\u251c\u2500\u2500 daily_10\n\u2502\n\u251c\u2500\u2500 monthly\n\u2502\n\u2514\u2500\u2500 logs<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La cartella <code>scripts<\/code> contiene gli script batch.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>daily_10<\/code> conserva gli ultimi dieci backup giornalieri.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>monthly<\/code> conserva i backup mensili storici.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>logs<\/code> raccoglie i registri delle esecuzioni.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per creare le cartelle possiamo utilizzare:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir D:\\backup_Oracle\\scripts\nmkdir D:\\backup_Oracle\\daily_10\nmkdir D:\\backup_Oracle\\monthly\nmkdir D:\\backup_Oracle\\logs<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La struttura permette di distinguere facilmente gli archivi ordinari da quelli storici.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">8. Gestire le credenziali per i backup automatici<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Prima di scrivere gli script occorre risolvere un problema fondamentale: <strong>un processo pianificato non pu\u00f2 attendere che un operatore inserisca manualmente una password<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il comando utilizzato per il backup manuale:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>expdp admuser@\/\/localhost:1521\/XEPDB1 ...<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u00e8 adatto alle prove interattive, ma pu\u00f2 bloccarsi quando viene eseguito automaticamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una soluzione consiste nell&#8217;utilizzare Oracle Secure External Password Store, che permette di memorizzare le credenziali in un wallet Oracle.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una volta configurato il wallet e il relativo alias, si pu\u00f2 avviare Data Pump attraverso un collegamento del tipo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>expdp userid=\/@P6BACKUP ...<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">In questo esempio <code>P6BACKUP<\/code> \u00e8 un alias di connessione associato al wallet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La configurazione richiede che il client Oracle utilizzato dagli script possa accedere correttamente al wallet e che l&#8217;account Windows dell&#8217;attivit\u00e0 pianificata disponga dei permessi necessari.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;alias <code>P6BACKUP<\/code> non viene creato automaticamente: deve essere predisposto e verificato prima di usare gli script.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per motivi di sicurezza \u00e8 preferibile questa soluzione rispetto all&#8217;inserimento della password in chiaro all&#8217;interno di un file <code>.bat<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>La procedura seguente presuppone che il comando<\/strong> <code><strong>expdp userid=\/@P6BACKUP<\/strong><\/code> <strong>sia gi\u00e0 stato configurato e collaudato.<\/strong> In alternativa, si pu\u00f2 adattare la parte di autenticazione a un altro metodo sicuro supportato dalla propria installazione Oracle.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">9. Creare lo script di backup comune<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Per evitare duplicazioni, utilizziamo uno script comune che riceve un parametro:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>DAILY<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">oppure:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>MONTHLY<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Salviamo il seguente contenuto nel file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>D:\\backup_Oracle\\scripts\\p6_backup_common.bat<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Script batch<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>@echo off\nsetlocal EnableExtensions EnableDelayedExpansion\n\nrem ==========================================\nrem PRIMAVERA P6 - ORACLE XE BACKUP\nrem Daily \/ Monthly\nrem ==========================================\n\nset \"MODE=%~1\"\n\nif \/I not \"%MODE%\"==\"DAILY\" if \/I not \"%MODE%\"==\"MONTHLY\" (\n    echo Modalita non valida: DAILY o MONTHLY\n    exit \/b 1\n)\n\nrem === CONFIGURAZIONE ===\n\nset \"ORACLE_HOME=C:\\app\\Andrea\\product\\21c\\dbhomeXE\"\nset \"STAGE=C:\\oracle_backup_stage\"\nset \"ROOT=D:\\backup_Oracle\"\n\nset \"SEVENZIP=C:\\Program Files\\7-Zip\\7z.exe\"\n\nset \"EXPDP=%ORACLE_HOME%\\bin\\expdp.exe\"\n\nrem === DATA E ORA ===\n\nfor \/f %%A in ('powershell -NoProfile -Command \"Get-Date -Format yyyy-MM-dd_HHmmss\"') do set \"STAMP=%%A\"\nfor \/f %%A in ('powershell -NoProfile -Command \"Get-Date -Format yyyy-MM\"') do set \"MONTH=%%A\"\n\nif \/I \"%MODE%\"==\"DAILY\" (\n    set \"DEST=%ROOT%\\daily_10\"\n    set \"NAME=P6_DAILY_%STAMP%\"\n) else (\n    set \"DEST=%ROOT%\\monthly\"\n    set \"NAME=P6_MONTHLY_%MONTH%\"\n)\n\nset \"DUMP=%NAME%.dmp\"\nset \"EXPLOG=%NAME%.log\"\nset \"ARCHIVE=%DEST%\\%NAME%.7z\"\nset \"RUNLOG=%ROOT%\\logs\\%NAME%_run.txt\"\n\nrem === CONTROLLI PRELIMINARI ===\n\nif not exist \"%EXPDP%\" exit \/b 10\nif not exist \"%SEVENZIP%\" exit \/b 11\n\nif not exist \"%STAGE%\" mkdir \"%STAGE%\"\nif not exist \"%DEST%\" mkdir \"%DEST%\"\nif not exist \"%ROOT%\\logs\" mkdir \"%ROOT%\\logs\"\n\nif exist \"%ARCHIVE%\" (\n    echo Archivio gia esistente: %ARCHIVE%\n    exit \/b 12\n)\n\necho Backup %MODE% &gt; \"%RUNLOG%\"\necho Inizio: %DATE% %TIME% &gt;&gt; \"%RUNLOG%\"\necho Archivio: %ARCHIVE% &gt;&gt; \"%RUNLOG%\"\n\nrem === ESPORTAZIONE ORACLE ===\n\n\"%EXPDP%\" userid=\/@P6BACKUP schemas=ADMUSER directory=BACKUP_ORACLE dumpfile=%DUMP% logfile=%EXPLOG% reuse_dumpfiles=NO &gt;&gt; \"%RUNLOG%\" 2&gt;&amp;1\n\nset \"RESULT=!ERRORLEVEL!\"\n\nif not \"!RESULT!\"==\"0\" (\n    echo ERRORE: expdp terminato con codice !RESULT! &gt;&gt; \"%RUNLOG%\"\n    exit \/b 20\n)\n\nif not exist \"%STAGE%\\%DUMP%\" (\n    echo ERRORE: dump non trovato. &gt;&gt; \"%RUNLOG%\"\n    exit \/b 21\n)\n\nif not exist \"%STAGE%\\%EXPLOG%\" (\n    echo ERRORE: log Data Pump non trovato. &gt;&gt; \"%RUNLOG%\"\n    exit \/b 22\n)\n\nrem === COMPRESSIONE ===\n\n\"%SEVENZIP%\" a -t7z -mx=5 \"%ARCHIVE%\" \"%STAGE%\\%DUMP%\" \"%STAGE%\\%EXPLOG%\" &gt;&gt; \"%RUNLOG%\" 2&gt;&amp;1\n\nif errorlevel 1 (\n    echo ERRORE durante la compressione. &gt;&gt; \"%RUNLOG%\"\n    exit \/b 30\n)\n\nrem === VERIFICA ARCHIVIO ===\n\n\"%SEVENZIP%\" t \"%ARCHIVE%\" &gt;&gt; \"%RUNLOG%\" 2&gt;&amp;1\n\nif errorlevel 1 (\n    echo ERRORE nel test dell'archivio. &gt;&gt; \"%RUNLOG%\"\n    exit \/b 31\n)\n\nrem === PULIZIA TEMPORANEI ===\n\ndel \/q \"%STAGE%\\%DUMP%\"\ndel \/q \"%STAGE%\\%EXPLOG%\"\n\nrem === ROTAZIONE GIORNALIERA ===\n\nif \/I \"%MODE%\"==\"DAILY\" (\n    for \/f \"skip=10 delims=\" %%F in ('dir \/b \/a-d \/o-n \"%ROOT%\\daily_10\\P6_DAILY_*.7z\" 2^&gt;nul') do (\n        del \/q \"%ROOT%\\daily_10\\%%F\"\n    )\n)\n\necho Backup completato: %DATE% %TIME% &gt;&gt; \"%RUNLOG%\"\n\nexit \/b 0<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Come funziona<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Lo script esegue le operazioni nell&#8217;ordine:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Controlla il parametro ricevuto.<\/li>\n\n\n\n<li>Calcola il nome del backup.<\/li>\n\n\n\n<li>Verifica la disponibilit\u00e0 degli eseguibili.<\/li>\n\n\n\n<li>Esegue l&#8217;esportazione Oracle.<\/li>\n\n\n\n<li>Verifica che il comando sia terminato correttamente.<\/li>\n\n\n\n<li>Controlla la presenza del dump e del log.<\/li>\n\n\n\n<li>Comprime i file con 7-Zip.<\/li>\n\n\n\n<li>Esegue un test dell&#8217;archivio compresso.<\/li>\n\n\n\n<li>Elimina i file temporanei.<\/li>\n\n\n\n<li>Nel caso dei backup giornalieri conserva soltanto gli ultimi dieci archivi.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Se l&#8217;esportazione o la compressione non riescono, lo script termina senza cancellare automaticamente i file temporanei: in questo modo \u00e8 possibile analizzare il problema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il file di log dell&#8217;esecuzione permette di ricostruire l&#8217;esito delle operazioni.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo script \u00e8 un modello operativo migliorato rispetto alla prima implementazione e va collaudato nell&#8217;ambiente di destinazione prima di affidargli dati importanti.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">10. Creare il backup giornaliero<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Salviamo questo contenuto in:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>D:\\backup_Oracle\\scripts\\p6_backup_daily.bat<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>@echo off\ncall \"D:\\backup_Oracle\\scripts\\p6_backup_common.bat\" DAILY\nexit \/b %ERRORLEVEL%<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Lo script avvia il backup comune in modalit\u00e0 giornaliera.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gli archivi vengono denominati automaticamente, per esempio:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>P6_DAILY_2026-10-21_230000.7z<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La presenza di data e ora evita conflitti fra esecuzioni effettuate nello stesso giorno.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I dieci archivi pi\u00f9 recenti vengono conservati nella directory:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>D:\\backup_Oracle\\daily_10<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Gli eventuali archivi pi\u00f9 vecchi vengono eliminati soltanto dopo il completamento e la verifica del nuovo archivio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Questo consente di conservare diversi punti temporali di recupero.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">11. Creare il backup mensile<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Salviamo il secondo script in:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>D:\\backup_Oracle\\scripts\\p6_backup_monthly.bat<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>@echo off\ncall \"D:\\backup_Oracle\\scripts\\p6_backup_common.bat\" MONTHLY\nexit \/b %ERRORLEVEL%<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;archivio mensile avr\u00e0 un nome simile a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>P6_MONTHLY_2026-10.7z<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Il file viene conservato nella directory:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>D:\\backup_Oracle\\monthly<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Diversamente dai backup giornalieri, non \u00e8 prevista una cancellazione automatica degli archivi mensili.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La conservazione storica permette di recuperare dati appartenenti a periodi precedenti.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo script evita di sovrascrivere un archivio mensile gi\u00e0 esistente. Se occorre ripetere il backup nello stesso mese bisogna quindi decidere come gestire l&#8217;archivio precedente, senza cancellarlo accidentalmente.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">12. Eseguire le prime prove manuali<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Prima di creare le attivit\u00e0 pianificate, eseguiamo gli script manualmente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dal Prompt dei comandi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>D:\\backup_Oracle\\scripts\\p6_backup_daily.bat<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Al termine controlliamo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>D:\\backup_Oracle\\daily_10<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Deve essere presente il file <code>.7z<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Verifichiamo anche il log dell&#8217;esecuzione.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ripetiamo successivamente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>D:\\backup_Oracle\\scripts\\p6_backup_monthly.bat<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Controlliamo la cartella:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>D:\\backup_Oracle\\monthly<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Anche in questo caso deve essere presente l&#8217;archivio compresso.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Controllare il codice di uscita<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Dopo aver eseguito lo script nel Prompt dei comandi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo %ERRORLEVEL%<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Il valore:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>0<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">indica che lo script ha completato senza rilevare errori nei controlli implementati.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un valore differente segnala un problema da analizzare.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c8 importante non confondere questo risultato con una verifica completa della recuperabilit\u00e0 del database: il test dell&#8217;archivio e il codice di uscita non sostituiscono una prova di importazione.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">13. Programmare i backup con Windows Task Scheduler<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Windows dispone gi\u00e0 di uno strumento adatto a questo scopo: <strong>Utilit\u00e0 di pianificazione<\/strong>, chiamata anche Task Scheduler.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per avviarla:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>taskschd.msc<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Creiamo una nuova attivit\u00e0.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Backup giornaliero<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nella scheda Generale inseriamo un nome descrittivo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>P6 Oracle - Backup giornaliero<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nella scheda Attivazione impostiamo un&#8217;esecuzione quotidiana, preferibilmente in un periodo di ridotta attivit\u00e0 sul database.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nella scheda Azioni selezioniamo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Avvio programma<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Programma:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\Windows\\System32\\cmd.exe<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Argomenti:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/c \"D:\\backup_Oracle\\scripts\\p6_backup_daily.bat\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Directory iniziale:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>D:\\backup_Oracle\\scripts<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Backup mensile<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Creiamo una seconda attivit\u00e0:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>P6 Oracle - Backup mensile<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Configurando l&#8217;esecuzione mensile.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il comando sar\u00e0:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\Windows\\System32\\cmd.exe<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Con gli argomenti:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/c \"D:\\backup_Oracle\\scripts\\p6_backup_monthly.bat\"<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Impostazioni importanti<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Per entrambe le attivit\u00e0 occorre verificare:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>l&#8217;account Windows utilizzato per l&#8217;esecuzione;<\/li>\n\n\n\n<li>l&#8217;accesso di tale account al wallet Oracle, se presente;<\/li>\n\n\n\n<li>i permessi di scrittura sulle directory dei backup;<\/li>\n\n\n\n<li>la possibilit\u00e0 di eseguire l&#8217;attivit\u00e0 anche senza una sessione utente aperta;<\/li>\n\n\n\n<li>la gestione delle attivit\u00e0 non eseguite perch\u00e9 il computer era spento;<\/li>\n\n\n\n<li>l&#8217;assenza di sovrapposizione fra esportazioni contemporanee.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Quest&#8217;ultimo aspetto merita attenzione: se il backup mensile \u00e8 programmato nella stessa fascia oraria del giornaliero, le due attivit\u00e0 potrebbero avviarsi contemporaneamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c8 preferibile differenziare gli orari o implementare un meccanismo di esclusione reciproca.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dopo la configurazione, avviamo ciascuna attivit\u00e0 manualmente dal Task Scheduler e controlliamo il codice di uscita riportato nell&#8217;ultima esecuzione.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">14. Controllare periodicamente i backup<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Un backup automatico non deve essere completamente dimenticato.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Consiglio di verificare almeno periodicamente:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Presenza degli archivi<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Controllare che vengano creati regolarmente nuovi file.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Dimensione dei file<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Variazioni significative delle dimensioni possono indicare modifiche al database, ma anche errori o esportazioni incomplete.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>File di log<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Verificare eventuali errori Oracle, problemi di accesso ai dischi e anomalie durante la compressione.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Spazio disponibile<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La cartella mensile conserva i backup indefinitamente; occorre quindi monitorare lo spazio occupato.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Integrit\u00e0 degli archivi<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ripetere periodicamente il test con 7-Zip.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Recuperabilit\u00e0 dei dati<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eseguire prove di importazione su un ambiente separato.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La prova di ripristino \u00e8 il controllo pi\u00f9 importante.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">15. Verificare il ripristino con Oracle Data Pump Import<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Per controllare che un dump sia effettivamente importabile si pu\u00f2 utilizzare Oracle Data Pump Import, cio\u00e8 <code>impdp<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c8 opportuno eseguire questi test su un database separato oppure su un ambiente di collaudo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Non bisogna eseguire prove di ripristino distruttive sul database Primavera utilizzato per lavorare.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Estrarre il dump<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Per prima cosa estraiamo il contenuto di uno degli archivi 7-Zip nella directory temporanea:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\oracle_backup_stage<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Otterremo il dump e il relativo log.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Preparare l&#8217;ambiente di prova<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nella mia prima verifica ho utilizzato uno schema separato, denominato:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ADMTEST<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Lo scopo era verificare che Data Pump riuscisse a leggere l&#8217;archivio e a creare gli oggetti in uno schema diverso dall&#8217;originale.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per eseguire un test di questo tipo occorre predisporre preventivamente il nuovo utente Oracle, i tablespace e i privilegi necessari, senza modificare lo schema <code>ADMUSER<\/code> di produzione.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Eseguire l&#8217;importazione<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Il comando utilizzato per il test \u00e8 stato:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>impdp admtest@\/\/localhost:1521\/XEPDB1 directory=BACKUP_ORACLE dumpfile=p6_backup.dmp logfile=restore_test.log remap_schema=ADMUSER:ADMTEST<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Naturalmente bisogna sostituire <code>p6_backup.dmp<\/code> con il nome effettivo del dump estratto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il parametro:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>REMAP_SCHEMA=ADMUSER:ADMTEST<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">indica a Data Pump di importare gli oggetti appartenenti allo schema originale <code>ADMUSER<\/code> all&#8217;interno dello schema di prova <code>ADMTEST<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Risultato della verifica<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Il test ha dimostrato che il dump era leggibile e che parte degli oggetti e dei dati poteva essere importata.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;importazione ha tuttavia terminato con 93 errori, principalmente relativi ai privilegi di creazione di alcune viste e a oggetti dipendenti.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Questo risultato \u00e8 utile, ma va interpretato correttamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Non costituisce una certificazione di ripristino completo di Primavera P6.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La rimappatura dello schema pu\u00f2 inoltre produrre un ambiente diverso da quello previsto dall&#8217;applicazione, soprattutto in presenza di riferimenti fra schemi e configurazioni specifiche.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il collaudo definitivo deve consistere nel ricostruire l&#8217;ambiente applicativo su un&#8217;installazione separata, importare i dati necessari e verificare l&#8217;effettiva apertura dei progetti attraverso Primavera P6.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">16. Aggiungere un backup fisico con RMAN<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Oracle mette a disposizione anche RMAN, Recovery Manager, per effettuare backup fisici del database.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La differenza rispetto a Data Pump \u00e8 sostanziale.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>Oracle Data Pump<\/th><th>Oracle RMAN<\/th><\/tr><tr><td>Esportazione logica<\/td><td>Backup fisico<\/td><\/tr><tr><td>Opera su schemi e oggetti<\/td><td>Opera su database e file fisici<\/td><\/tr><tr><td>Produce dump importabili<\/td><td>Produce backup set o copie<\/td><\/tr><tr><td>Utile per migrazione e recupero logico<\/td><td>Utile per ripristino del database<\/td><\/tr><tr><td>Non conserva l&#8217;intera istanza<\/td><td>Pu\u00f2 proteggere l&#8217;intero database<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">RMAN \u00e8 utilizzabile anche con Oracle Database Express Edition, nel rispetto delle caratteristiche della versione installata.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per verificare la disponibilit\u00e0 dello strumento:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rman target \/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Il comando deve essere eseguito con un account e in un ambiente dotati delle autorizzazioni richieste.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un esempio di comando RMAN \u00e8:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>BACKUP DATABASE PLUS ARCHIVELOG;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;esecuzione concreta richiede per\u00f2 una configurazione coerente della modalit\u00e0 di archiviazione dei redo log, dei percorsi di backup e della politica di recupero.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In particolare, non \u00e8 sufficiente copiare il comando in una sessione RMAN per ottenere automaticamente una strategia completa di disaster recovery.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In un&#8217;installazione professionale, Data Pump e RMAN possono essere utilizzati come strumenti complementari.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">17. Conservare una copia dei backup fuori dal computer<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nell&#8217;architettura descritta, i backup vengono salvati su un secondo disco del computer principale.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Questa soluzione \u00e8 utile contro alcune tipologie di guasto e permette di recuperare rapidamente gli archivi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Non \u00e8 tuttavia sufficiente a proteggere i dati da tutti gli scenari.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un guasto elettrico, un furto, un ransomware o un incidente che coinvolga l&#8217;intero computer potrebbe compromettere sia il database sia gli archivi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per questo motivo \u00e8 consigliabile conservare almeno una copia aggiuntiva:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>su un dispositivo esterno scollegato dopo la copia;<\/li>\n\n\n\n<li>su un NAS dotato di versionamento e credenziali separate;<\/li>\n\n\n\n<li>su uno spazio cloud con cifratura e politiche di conservazione appropriate.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Nel caso di sincronizzazione cloud \u00e8 importante ricordare che una cartella sincronizzata non \u00e8 automaticamente un backup indipendente: eliminazioni e modifiche indesiderate possono propagarsi alle copie remote.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una buona strategia \u00e8 quella comunemente riassunta dalla regola <strong>3-2-1<\/strong>: tre copie dei dati, su due supporti differenti, con almeno una copia fuori sede.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">18. Procedura minima di disaster recovery<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Immaginiamo che il computer principale diventi inutilizzabile e debba essere sostituito.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La sequenza di recupero, in linea generale, sar\u00e0:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Predisporre un nuovo computer Windows.<\/li>\n\n\n\n<li>Installare una versione compatibile di Oracle Database.<\/li>\n\n\n\n<li>Ricreare la struttura database necessaria a Primavera P6.<\/li>\n\n\n\n<li>Installare e configurare la versione corrispondente di Primavera.<\/li>\n\n\n\n<li>Recuperare gli archivi di backup.<\/li>\n\n\n\n<li>Ripristinare il database mediante RMAN oppure ricostruire gli schemi e importare i dati con Data Pump, secondo la strategia adottata.<\/li>\n\n\n\n<li>Ripristinare le configurazioni di connessione dell&#8217;applicativo.<\/li>\n\n\n\n<li>Verificare utenti, calendari, risorse e progetti.<\/li>\n\n\n\n<li>Aprire Primavera P6 e controllare la consistenza dei dati.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c8 importante predisporre preventivamente anche una copia protetta delle configurazioni necessarie al recupero: parametri Oracle, versioni software, impostazioni P6, account di servizio e procedure di autenticazione.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In assenza di queste informazioni il ripristino pu\u00f2 diventare molto pi\u00f9 complesso.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">19. Quanto \u00e8 affidabile questa soluzione?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La procedura adottata offre diversi vantaggi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c8 basata su strumenti disponibili nell&#8217;ambiente Oracle e Windows, non richiede software di backup commerciali e permette di conservare uno storico degli export del database P6.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tuttavia l&#8217;affidabilit\u00e0 non si misura soltanto dalla presenza dei file <code>.7z<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Occorre distinguere tre livelli di verifica:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Primo livello: backup eseguito<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Data Pump termina senza errori e produce il dump.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Secondo livello: archivio integro<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">7-Zip riesce a comprimere, leggere e verificare l&#8217;archivio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Terzo livello: ripristino funzionale<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il database viene ricostruito in un ambiente di prova e Primavera P6 apre correttamente i progetti recuperati.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Soltanto il terzo livello dimostra che la procedura di recupero applicativo \u00e8 effettivamente funzionante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nella configurazione descritta i primi due livelli sono stati verificati; il collaudo completo del terzo resta un&#8217;attivit\u00e0 da perfezionare.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusioni<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Realizzare un sistema di backup automatico per Primavera P6 su Oracle Database 21c XE \u00e8 possibile utilizzando strumenti gi\u00e0 disponibili e senza introdurre un&#8217;infrastruttura particolarmente complessa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Con Oracle Data Pump, 7-Zip e Utilit\u00e0 di pianificazione Windows possiamo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>esportare periodicamente lo schema applicativo;<\/li>\n\n\n\n<li>comprimere i dump per ridurre lo spazio occupato;<\/li>\n\n\n\n<li>mantenere gli ultimi dieci backup giornalieri;<\/li>\n\n\n\n<li>conservare uno storico mensile;<\/li>\n\n\n\n<li>registrare l&#8217;esito delle operazioni;<\/li>\n\n\n\n<li>verificare periodicamente gli archivi prodotti.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">La lezione pi\u00f9 importante, tuttavia, \u00e8 un&#8217;altra: <strong>avere dei backup non significa automaticamente essere in grado di ripristinare il sistema<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per un ambiente destinato alla pianificazione e al controllo delle commesse \u00e8 indispensabile prevedere una protezione a pi\u00f9 livelli, con backup logici, backup fisici, conservazione esterna e prove periodiche di recupero.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c8 proprio questa combinazione che pu\u00f2 trasformare una semplice installazione personale di Primavera P6 in un&#8217;infrastruttura affidabile per l&#8217;attivit\u00e0 professionale.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Articolo basato su un&#8217;installazione reale di Primavera P6 Professional 25.12 con Oracle Database 21c Express Edition su Windows 11. Gli script riportati costituiscono un modello tecnico da adattare e collaudare prima dell&#8217;impiego in produzione. La configurazione sicura dell&#8217;autenticazione automatica e il test completo di disaster recovery sono prerequisiti essenziali per un utilizzo non presidiato.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Come proteggere il database di Primavera P6 Professional 25.12 con esportazioni giornaliere e mensili, compressione automatica, rotazione degli archivi e verifiche di ripristino. Introduzione Nei primi due articoli di questa serie abbiamo visto come installare Primavera P6 Professional 25.12 su Oracle Database 21c Express Edition e come configurare un ambiente [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"wpai_generated_summary":"","footnotes":""},"categories":[32],"tags":[],"class_list":["post-1278","post","type-post","status-publish","format-standard","hentry","category-primavera-p6"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Primavera P6 su Oracle XE: backup automatici con Data Pump, 7-Zip e Windows Task Scheduler - Andrea Di Dio PMP %<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/andreadidio.it\/it\/primavera-p6-su-oracle-xe-backup-automatici-con-data-pump-7-zip-e-windows-task-scheduler\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Primavera P6 su Oracle XE: backup automatici con Data Pump, 7-Zip e Windows Task Scheduler - Andrea Di Dio PMP %\" \/>\n<meta property=\"og:description\" content=\"Come proteggere il database di Primavera P6 Professional 25.12 con esportazioni giornaliere e mensili, compressione automatica, rotazione degli archivi e verifiche di ripristino. Introduzione Nei primi due articoli di questa serie abbiamo visto come installare Primavera P6 Professional 25.12 su Oracle Database 21c Express Edition e come configurare un ambiente [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/andreadidio.it\/it\/primavera-p6-su-oracle-xe-backup-automatici-con-data-pump-7-zip-e-windows-task-scheduler\/\" \/>\n<meta property=\"og:site_name\" content=\"Andrea Di Dio PMP\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-21T08:59:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-21T20:34:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/andreadidio.it\/wp-content\/uploads\/2019\/05\/cropped-Cattura.png\" \/>\n\t<meta property=\"og:image:width\" content=\"117\" \/>\n\t<meta property=\"og:image:height\" content=\"119\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Andrea Di Dio\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andrea Di Dio\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/andreadidio.it\\\/primavera-p6-su-oracle-xe-backup-automatici-con-data-pump-7-zip-e-windows-task-scheduler\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/andreadidio.it\\\/primavera-p6-su-oracle-xe-backup-automatici-con-data-pump-7-zip-e-windows-task-scheduler\\\/\"},\"author\":{\"name\":\"Andrea Di Dio\",\"@id\":\"https:\\\/\\\/andreadidio.it\\\/#\\\/schema\\\/person\\\/c7b1a716f50bd28480237fbc73526ff8\"},\"headline\":\"Primavera P6 su Oracle XE: backup automatici con Data Pump, 7-Zip e Windows Task Scheduler\",\"datePublished\":\"2026-10-21T08:59:45+00:00\",\"dateModified\":\"2026-10-21T20:34:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/andreadidio.it\\\/primavera-p6-su-oracle-xe-backup-automatici-con-data-pump-7-zip-e-windows-task-scheduler\\\/\"},\"wordCount\":2927,\"publisher\":{\"@id\":\"https:\\\/\\\/andreadidio.it\\\/#\\\/schema\\\/person\\\/c7b1a716f50bd28480237fbc73526ff8\"},\"articleSection\":[\"Primavera P6\"],\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/andreadidio.it\\\/primavera-p6-su-oracle-xe-backup-automatici-con-data-pump-7-zip-e-windows-task-scheduler\\\/\",\"url\":\"https:\\\/\\\/andreadidio.it\\\/primavera-p6-su-oracle-xe-backup-automatici-con-data-pump-7-zip-e-windows-task-scheduler\\\/\",\"name\":\"Primavera P6 su Oracle XE: backup automatici con Data Pump, 7-Zip e Windows Task Scheduler - Andrea Di Dio PMP %\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/andreadidio.it\\\/#website\"},\"datePublished\":\"2026-10-21T08:59:45+00:00\",\"dateModified\":\"2026-10-21T20:34:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/andreadidio.it\\\/primavera-p6-su-oracle-xe-backup-automatici-con-data-pump-7-zip-e-windows-task-scheduler\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/andreadidio.it\\\/primavera-p6-su-oracle-xe-backup-automatici-con-data-pump-7-zip-e-windows-task-scheduler\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/andreadidio.it\\\/primavera-p6-su-oracle-xe-backup-automatici-con-data-pump-7-zip-e-windows-task-scheduler\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/andreadidio.it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Primavera P6 su Oracle XE: backup automatici con Data Pump, 7-Zip e Windows Task Scheduler\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/andreadidio.it\\\/#website\",\"url\":\"https:\\\/\\\/andreadidio.it\\\/\",\"name\":\"andreadidio.it\",\"description\":\"Project manager PMP, EPC planner &amp; controller\",\"publisher\":{\"@id\":\"https:\\\/\\\/andreadidio.it\\\/#\\\/schema\\\/person\\\/c7b1a716f50bd28480237fbc73526ff8\"},\"alternateName\":\"consulente planner, project control, project manager, digital forensic\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/andreadidio.it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/andreadidio.it\\\/#\\\/schema\\\/person\\\/c7b1a716f50bd28480237fbc73526ff8\",\"name\":\"Andrea Di Dio\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/andreadidio.it\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/2020-01-07-14.43.50-scaled.jpg\",\"url\":\"https:\\\/\\\/andreadidio.it\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/2020-01-07-14.43.50-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/andreadidio.it\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/2020-01-07-14.43.50-scaled.jpg\",\"width\":2560,\"height\":1440,\"caption\":\"Andrea Di Dio\"},\"logo\":{\"@id\":\"https:\\\/\\\/andreadidio.it\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/2020-01-07-14.43.50-scaled.jpg\"},\"description\":\"Sono un Ingegnere e Project Manager certificato PMP\u00ae, 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\",\"sameAs\":[\"https:\\\/\\\/andreadidio.it\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/ofgod\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Primavera P6 su Oracle XE: backup automatici con Data Pump, 7-Zip e Windows Task Scheduler - Andrea Di Dio PMP %","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/andreadidio.it\/it\/primavera-p6-su-oracle-xe-backup-automatici-con-data-pump-7-zip-e-windows-task-scheduler\/","og_locale":"it_IT","og_type":"article","og_title":"Primavera P6 su Oracle XE: backup automatici con Data Pump, 7-Zip e Windows Task Scheduler - Andrea Di Dio PMP %","og_description":"Come proteggere il database di Primavera P6 Professional 25.12 con esportazioni giornaliere e mensili, compressione automatica, rotazione degli archivi e verifiche di ripristino. Introduzione Nei primi due articoli di questa serie abbiamo visto come installare Primavera P6 Professional 25.12 su Oracle Database 21c Express Edition e come configurare un ambiente [&hellip;]","og_url":"https:\/\/andreadidio.it\/it\/primavera-p6-su-oracle-xe-backup-automatici-con-data-pump-7-zip-e-windows-task-scheduler\/","og_site_name":"Andrea Di Dio PMP","article_published_time":"2026-10-21T08:59:45+00:00","article_modified_time":"2026-10-21T20:34:35+00:00","og_image":[{"width":117,"height":119,"url":"https:\/\/andreadidio.it\/wp-content\/uploads\/2019\/05\/cropped-Cattura.png","type":"image\/png"}],"author":"Andrea Di Dio","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"Andrea Di Dio","Tempo di lettura stimato":"16 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/andreadidio.it\/primavera-p6-su-oracle-xe-backup-automatici-con-data-pump-7-zip-e-windows-task-scheduler\/#article","isPartOf":{"@id":"https:\/\/andreadidio.it\/primavera-p6-su-oracle-xe-backup-automatici-con-data-pump-7-zip-e-windows-task-scheduler\/"},"author":{"name":"Andrea Di Dio","@id":"https:\/\/andreadidio.it\/#\/schema\/person\/c7b1a716f50bd28480237fbc73526ff8"},"headline":"Primavera P6 su Oracle XE: backup automatici con Data Pump, 7-Zip e Windows Task Scheduler","datePublished":"2026-10-21T08:59:45+00:00","dateModified":"2026-10-21T20:34:35+00:00","mainEntityOfPage":{"@id":"https:\/\/andreadidio.it\/primavera-p6-su-oracle-xe-backup-automatici-con-data-pump-7-zip-e-windows-task-scheduler\/"},"wordCount":2927,"publisher":{"@id":"https:\/\/andreadidio.it\/#\/schema\/person\/c7b1a716f50bd28480237fbc73526ff8"},"articleSection":["Primavera P6"],"inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/andreadidio.it\/primavera-p6-su-oracle-xe-backup-automatici-con-data-pump-7-zip-e-windows-task-scheduler\/","url":"https:\/\/andreadidio.it\/primavera-p6-su-oracle-xe-backup-automatici-con-data-pump-7-zip-e-windows-task-scheduler\/","name":"Primavera P6 su Oracle XE: backup automatici con Data Pump, 7-Zip e Windows Task Scheduler - Andrea Di Dio PMP %","isPartOf":{"@id":"https:\/\/andreadidio.it\/#website"},"datePublished":"2026-10-21T08:59:45+00:00","dateModified":"2026-10-21T20:34:35+00:00","breadcrumb":{"@id":"https:\/\/andreadidio.it\/primavera-p6-su-oracle-xe-backup-automatici-con-data-pump-7-zip-e-windows-task-scheduler\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/andreadidio.it\/primavera-p6-su-oracle-xe-backup-automatici-con-data-pump-7-zip-e-windows-task-scheduler\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/andreadidio.it\/primavera-p6-su-oracle-xe-backup-automatici-con-data-pump-7-zip-e-windows-task-scheduler\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/andreadidio.it\/"},{"@type":"ListItem","position":2,"name":"Primavera P6 su Oracle XE: backup automatici con Data Pump, 7-Zip e Windows Task Scheduler"}]},{"@type":"WebSite","@id":"https:\/\/andreadidio.it\/#website","url":"https:\/\/andreadidio.it\/","name":"andreadidio.it","description":"Project manager PMP, EPC planner &amp; controller","publisher":{"@id":"https:\/\/andreadidio.it\/#\/schema\/person\/c7b1a716f50bd28480237fbc73526ff8"},"alternateName":"consulente planner, project control, project manager, digital forensic","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/andreadidio.it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":["Person","Organization"],"@id":"https:\/\/andreadidio.it\/#\/schema\/person\/c7b1a716f50bd28480237fbc73526ff8","name":"Andrea Di Dio","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/andreadidio.it\/wp-content\/uploads\/2020\/01\/2020-01-07-14.43.50-scaled.jpg","url":"https:\/\/andreadidio.it\/wp-content\/uploads\/2020\/01\/2020-01-07-14.43.50-scaled.jpg","contentUrl":"https:\/\/andreadidio.it\/wp-content\/uploads\/2020\/01\/2020-01-07-14.43.50-scaled.jpg","width":2560,"height":1440,"caption":"Andrea Di Dio"},"logo":{"@id":"https:\/\/andreadidio.it\/wp-content\/uploads\/2020\/01\/2020-01-07-14.43.50-scaled.jpg"},"description":"Sono un Ingegnere e Project Manager certificato PMP\u00ae, 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","sameAs":["https:\/\/andreadidio.it\/","https:\/\/www.linkedin.com\/in\/ofgod\/"]}]}},"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/andreadidio.it\/it\/wp-json\/wp\/v2\/posts\/1278","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/andreadidio.it\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/andreadidio.it\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/andreadidio.it\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/andreadidio.it\/it\/wp-json\/wp\/v2\/comments?post=1278"}],"version-history":[{"count":1,"href":"https:\/\/andreadidio.it\/it\/wp-json\/wp\/v2\/posts\/1278\/revisions"}],"predecessor-version":[{"id":1279,"href":"https:\/\/andreadidio.it\/it\/wp-json\/wp\/v2\/posts\/1278\/revisions\/1279"}],"wp:attachment":[{"href":"https:\/\/andreadidio.it\/it\/wp-json\/wp\/v2\/media?parent=1278"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/andreadidio.it\/it\/wp-json\/wp\/v2\/categories?post=1278"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/andreadidio.it\/it\/wp-json\/wp\/v2\/tags?post=1278"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}