"오라클 pfile spfile"의 두 판 사이의 차이
DB CAFE
(→init.ora VS. spfile.ora) |
(→Oracle 기동 시 init.ora 파일을 명시적으로 지정하는 방법) |
||
(같은 사용자의 중간 판 4개는 보이지 않습니다) | |||
30번째 줄: | 30번째 줄: | ||
show parameter spfile; -- 값이 있으면 SPFILE 사용 | show parameter spfile; -- 값이 있으면 SPFILE 사용 | ||
</source> | </source> | ||
− | + | === 현재 SPFILE 위치 확인 === | |
+ | <source lang=sql> | ||
+ | select value from v$system_parameter where name ='spfile'; | ||
+ | </source> | ||
+ | |||
== PFILE (Parameter FILE) == | == PFILE (Parameter FILE) == | ||
Oracle 8i 이전까지 text file형태로 database initialization parameters 보관. | Oracle 8i 이전까지 text file형태로 database initialization parameters 보관. | ||
50번째 줄: | 54번째 줄: | ||
FROM PFILE='/u01/oracle/product/920/dbs/init_TEST.ora'; | FROM PFILE='/u01/oracle/product/920/dbs/init_TEST.ora'; | ||
</source> | </source> | ||
+ | |||
+ | * create spfile from memory | ||
+ | <source lang=sql> | ||
+ | CREATE SPFILE='/oracle/dbs/racdb_spfile.ora' | ||
+ | FROM memory; -- 혹은 pfile | ||
+ | |||
+ | -- ASM 사용시 | ||
+ | CREATE SPFILE='+ASM' | ||
+ | FROM memory; -- 혹은 pfile | ||
+ | </source> | ||
+ | |||
이후, 파라메터 변경시에는 ALTER SYSTEM 명령어를 이용하여 변경. | 이후, 파라메터 변경시에는 ALTER SYSTEM 명령어를 이용하여 변경. | ||
=== spfile의 장점 === | === spfile의 장점 === | ||
RAC 구성시 공유 디스크에 spfile을 설정해 두면 한번의 파라미터 변경으로 모든 인스턴스가 동일한 파라미터로 적용. | RAC 구성시 공유 디스크에 spfile을 설정해 두면 한번의 파라미터 변경으로 모든 인스턴스가 동일한 파라미터로 적용. | ||
− | |||
== PFILE ---> SPFILE, SPFILE ---> PFILE 생성하는 방법 == | == PFILE ---> SPFILE, SPFILE ---> PFILE 생성하는 방법 == | ||
98번째 줄: | 112번째 줄: | ||
show parameter나 v$parameter에서는 변경 전 값이 나타나게 된다. | show parameter나 v$parameter에서는 변경 전 값이 나타나게 된다. | ||
− | == Oracle 기동 시 init.ora 파일을 명시적으로 지정하는 방법 == | + | == Oracle 기동 시 pfile (init<SID>.ora) 파일을 명시적으로 지정하는 방법 == |
<source lang=sql> | <source lang=sql> | ||
SQL> startup pfile='\app\oracle\database\init<SID>.ora' | SQL> startup pfile='\app\oracle\database\init<SID>.ora' | ||
</source> | </source> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[Category:oracle]] | [[Category:oracle]] |
2024년 9월 13일 (금) 00:41 기준 최신판
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
목차
- 1 init<SID>.ora 와 spfile<SID>.ora
1 init<SID>.ora 와 spfile<SID>.ora[편집]
Oracle 9i 이전 버전에서는 오라클 인스턴스는 텍스트 파일인 init<SID>.ora 파일을 이용하여 구동, $ORACLE_HOME/dbs 디렉토리 아래 위치.
Oracle 9i에서 SPFILE이라는 것이 새로 추가 , DB 서버 내에 저장되는 바이너리 파일이다. 인스턴스에 적용하고자 하는 파라미터값의 변동 사항이 인스턴스를 내리거나 구동시킬때마다 계속해서 적용될 수 있게 할 수 있다.
인스턴스에 적용시킬 파라미터를 spfile 또는 init.ora 파일에 저장시킬 수 있다.
1.1 초기화 파일의 기본 위치[편집]
UNIX : $ORACLE_HOME/dbs
Windows : %ORACLE_HOME%\database
1.1.1 초기화 파일이 선택되는 순서[편집]
초기화 파일의 기본 위치 폴더에서 (ex. $ORACLE_HOME/dbs/) 아래의 순서대로 검색하여 초기화 파일 선택.
spfile$SID.ora
spfile.ora
init$SID.ora
init.ora
1.2 현재 SPFILE 이 사용되는지 확인[편집]
show parameter spfile; -- 값이 있으면 SPFILE 사용
1.2.1 현재 SPFILE 위치 확인[편집]
select value from v$system_parameter where name ='spfile';
1.3 PFILE (Parameter FILE)[편집]
Oracle 8i 이전까지 text file형태로 database initialization parameters 보관.
- 일반적으로 $ORACLE_HOME/dbs/init_<SID>.ora 로 저장.
- 인스턴스가 기동될때 이 pfile을 읽어서 데이터베이스에 적용.
- 인스턴스 기동중 ALTER SYSTEM 이나 ALTER SESSION으로 파라미터를 변경할 수 있으나,
- 인스턴스를 재기동될 때는 pfile에 저장된 값으로 다시 적용된다.
- 따라서, 완전히 파라미터를 변경하고자 할 경우 pfile을 수정해야 한다.
1.4 SPFILE (Server Parameter FILE)[편집]
- Oracle 9i부터 도입된 방식으로 binary file 형식으로 database initialization parameters 보관.
- 이 파일을 직접 변경하면 안된다.
- 인스턴스가 기동될 때 pfile이 아닌 spfile을 참고하여 데이터베이스에 적용된다.
- 최초 적용시에는 아래와 같이 pfile을 읽어 spfile을 만든다.
CREATE SPFILE='/u01/oracle/product/920/dbs/racdb_spfile.ora'
FROM PFILE='/u01/oracle/product/920/dbs/init_TEST.ora';
- create spfile from memory
CREATE SPFILE='/oracle/dbs/racdb_spfile.ora'
FROM memory; -- 혹은 pfile
-- ASM 사용시
CREATE SPFILE='+ASM'
FROM memory; -- 혹은 pfile
이후, 파라메터 변경시에는 ALTER SYSTEM 명령어를 이용하여 변경.
1.4.1 spfile의 장점[편집]
RAC 구성시 공유 디스크에 spfile을 설정해 두면 한번의 파라미터 변경으로 모든 인스턴스가 동일한 파라미터로 적용.
1.5 PFILE ---> SPFILE, SPFILE ---> PFILE 생성하는 방법[편집]
SQL> connect / as sysdba
SQL> create pfile='initORA.ora' from spfile='spfileORA.ora';
SQL> create spfile='spfileORA.ora' from pfile='initORA.ora';
SQL> create pfile from spfile;
SQL> create spfile from pfile;
1.6 ALTER SYSTEM parameter 명령 적용 범위[편집]
memory / spfile / both 세 가지 범위. (기본값은 memory 이다.)
- memory : 변경이 현재 상태에만 영향을 미치며 db가 restartup되면, 변경 이전값으로 돌아간다.
- spfile : 변경 내용을 spfile에만 저장하고 현재 상태에는 영향을 미치지 않게 한다. static parameter의 경우는 이 scope만이 지정가능하다.
- both : 변경 내용을 현재상태에도 바로 반영하고, spfile에도 반영시켜, 이후 rebooting시에도 영향을 미치도록 한다.
ALTER SYSTEM SET open_cursors=300;
ALTER SYSTEM SET open_cursors=300 scope=spfile;
ALTER SYSTEM SET open_cursors=300 scope=both;
1.7 STATIC PARAMETER 확인 방법[편집]
SELECT name, issys_modifiable
FROM v$parameter; -- issys_modifiable 값
▷ FALSE: static parameter 이다.
▷ IMMEDIATE: 값을 변경하면 현재 session부터 바로 영향을 받게 된다.
▷ DEFERRED: 값 변경 이후 접속되는 session부터 영향을 받게 된다.
1.8 parameter 변경 후 확인 방법[편집]
show parameter open_cursors
SELECT value FROM v$parameter WHERE name = 'open_cursors';
SELECT value FROM v$spparameter WHERE name = 'open_cursors';
scope=spfile로 parameter를 변경한 경우에는 v$spparameter에만 변경된 값이 나타나고
show parameter나 v$parameter에서는 변경 전 값이 나타나게 된다.
1.9 Oracle 기동 시 pfile (init<SID>.ora) 파일을 명시적으로 지정하는 방법[편집]
SQL> startup pfile='\app\oracle\database\init<SID>.ora'