Skip to main content

Parameter-Files spfile pfile

die in diesem Beitrag verwendeten Variablen $ORACLE_HOME und $ORACLE_SID müssen durch die richtige Pfade und Namen ersetzt werden, da diese Variablen in SQLPLUS nicht bekannt sind!

Parameterfiles liegen normalerweise in folgendem Ordner:

$ORACLE_HOME/dbs/init<$ORACLE_SID>.ora
$ORACLE_HOME/dbs/spfile<$ORACLE_SID>.ora

die sp-files sind binär und sollten nicht via Editor geändert werden.

mit folgendem Befehl kann man bei laufender Instanz ein p-file erzeugen (aus dem aktuellen sp-file):

SQL> create pfile from spfile;

mit diesem Befehl wird aus einem p-file wieder ein sp-file erzeugt (der Dateiname kann auch weggelassen werden):

SQL> create spfile='<$ORACLE_HOME>/dbs/spfile<$ORACLE_SID>.ora' from pfile='<$ORACLE_HOME>/dbs/init<$ORACLE_SID>.ora';

Oracle-Instanz von p-file starten:

$ sqlplus / as sysdba
SQL> startup pfile=/<$ORACLE_HOME>/dbs/init<$ORACLE_SID>.ora

Änderungen im sp-file (default ist: scope=both, um die Änderungen nicht fest einzutragen: scope=memory, um die Änderungen im sp-file fest einzutragen: scope=spfile), z.B.:

SQL> alter system set open_cursors=300 scope=spfile;

Wie kann ich feststellen, ob die Datenbank via sp-file oder via p-file gestartet wurde?

SQL> show parameter spfile; --> wenn gesetzt wurde normal gestartet, wenn nicht dann wurde die DB via pfile gestartet

Hilfe, mein sp-file ist kaputt und ich habe auch kein aktuelles p-file oder Backup mehr! Sofern das sp-file nicht komplett weg ist, und z.B. nur ein Parameter nicht gesetzt/geladen werden kann, kann man auch einfach den Binärteil des sp-files mittels Editor entfernen, danach die Datenbank mit dem eben erzeugten p-file starten und danach ein neues spfile erzeugen.