위의 예처럼 화일명 대신 직접 directory까지 절대 path로 지정할 수 있고,
화일명은 임의로 지정 후 나중에 사용시 initSID.ora나 spfileSID.ora 형태로 만들어줄 수 있다.
default인 $ORACLE_HOME/dbs directory이고 SID가 붙는 이름 형태이면 간단히,다음과 같이 지정하여도 된다.
SQL>CREATE pfile FROM spfile;
SQL>CREATE spfile FROM pfile;
parameter 변경시 scope 정하기
spfile을 사용하게 되면 spfile을 직접 변경하는 대신 alter system 명령을 통해 initial parameter를 수정할 수 있다.
이때 alter system 명령 뒤에 scope를 지정할 수 있는 데 scope 값은 memory/spfile/both 세가지 중 하나를 선택할 수 있다.
scope를 지정하지 않으면 default 값인 memory가 적용된다.
memory
변경이 현재 상태에만 영향을 미치며 데이타베이스가 재시작되면, 변경 이전 값으로 돌아간다.
spfile
변경 내용을 spfile에만 저장하고 현재 상태에는 영향을 미치지 않는다.
static parameter의 경우는 이 scope만이 지정가능하다.
즉, spfile을 사용하더라도 static parameter에 대해서는
db 운영중에 바로 값을 변경하여 restartup없이 반영하는 것은 불가능하다.
both
변경 내용을 현재상태에도 바로 반영하고 spfile에도 반영되어 이후 데이타베이스 재시작시에도 영향을 미치도록 한다.
예를 들어보자.
SQL>ALTER system SET open_cursors=300;
SQL>ALTER system SET open_cursors=300 scope=spfile;
SQL>ALTER system SET open_cursors=300 scope=BOTH;
단, spfile을 참조하지 않고 init.ora를 참조하여 db가 open한 경우
이러한 alter system 명령을 통해 initial parameter를 변경하려고 하면
다음과 같은 오류가 발생한다. 특히 spfile에 외부의 변경이 가해져 spfile이 참조되지 않은 경우에 주로 다음 오류를 만날 수 있다.
ORA-02095: specified initialization parameter cannot be modified
v$parameter와 v$spparameter에 대해서 (static parameter 확인)
dbms/oracle/admin/oracleparameterfile.1187453290.txt.gz · 마지막으로 수정됨: (바깥 편집)