Create Pfile from Spfile
Il post è stato testato su Oracle 11gR2.
Connettersi come SYSDBA
SQL> sqlplus /nolog
connect /as sysdba;
Per verificare quale file è stato usato allo start del db eseguire il comando:
Connettersi come SYSDBA
SQL> sqlplus /nolog
connect /as sysdba;
Per verificare quale file è stato usato allo start del db eseguire il comando:
SQL> show parameter spfile
NAME TYPE VALUE
---------------------------------
spfile string
Se VALUE è Null vuol dire che è stato utilizzato pfile.
Quando si usa spfile il risultato è il seguente:
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------------------------------------------- ----------- -----
spfile string /u01/app/oracle/product/18/db_1/dbs/spfileorcl.ora
E' possibile effettuare il back up di spfile in un'altra directory con il seguente comando:
SQL> create pfile='/tmp/init_<sid>.ora' from spfile;
Con il seguente comando creiamo file init<sid>.ora (chiamato pfile) nella direcotry di deafult $ORACLE_HOME/dbs
Il file prodotto init<SID>.ora è di tipo testo ed è salvato nella directory $ORACLE_HOME\database su Windows e $ORACLE_HOME/dbs sotto Linux.
E' utile se si perde il file spfile e il suo backup.
E' possibile far avviare il database utilizzato il pfile salvato in una directory non di default. Se si usa la directory di default non è necessario specificare la direcotry perché Oracle cerca in $ORACLE_HOME/dbs.
SQL> startup nomount pfile='/tmp/init_<sid>.ora';
Total System Global Area 5277921280 bytes
Fixed Size 2213096 bytes
Variable Size 2751466264 bytes
Database Buffers 2483027968 bytes
Redo Buffers 41213952 bytes
Per riposizionare spfile nella directory di default eseguire il comando con l'l'istanza in stato nomount.
SQL> CREATE SPFILE='$ORACLE_HOME/dbs/spfile<sid>.ora'
SQL> create pfile='/tmp/init_<sid>.ora' from spfile;
SQL> create pfile='initorcl.ora' from spfile;
Il file prodotto init<SID>.ora è di tipo testo ed è salvato nella directory $ORACLE_HOME\database su Windows e $ORACLE_HOME/dbs sotto Linux.
E' utile se si perde il file spfile e il suo backup.
Inoltre può essere utile per costruire il file spfile a partire da init<SID>.ora perché il file spfile è binario.
All'avvio del database, se il motore Oracle non trova il file spfile<sid>.ora cerca il file spfile.ora, poi init<sid>.ora ed infine il file init.ora.
E' possibile far avviare il database utilizzato il pfile salvato in una directory non di default. Se si usa la directory di default non è necessario specificare la direcotry perché Oracle cerca in $ORACLE_HOME/dbs.
SQL> startup nomount pfile='/tmp/init_<sid>.ora';
Total System Global Area 5277921280 bytes
Fixed Size 2213096 bytes
Variable Size 2751466264 bytes
Database Buffers 2483027968 bytes
Redo Buffers 41213952 bytes
Per riposizionare spfile nella directory di default eseguire il comando con l'l'istanza in stato nomount.
SQL> CREATE SPFILE='$ORACLE_HOME/dbs/spfile<sid>.ora'
FROM pfile='/tmp/init_<sid>.ora';
A questo punto chiudo il db e lo riavvio utilizzando il file spfile creato precedentemente.
SQL> shutdown immediate;
SQL> startup nomount;
A questo punto chiudo il db e lo riavvio utilizzando il file spfile creato precedentemente.
SQL> shutdown immediate;
SQL> startup nomount;