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.
No Comments