1. spfile에서 pfile로 복사해서 비교하는 이유
- spfile은 바이너리 파일이라 컴퓨터 용어로 되어있어 사람이 읽을 수 없기에 우리가 확인할 수 있는 pfile로 내려서 확인
- 현재 인스턴스에서 사용 중인 파라미터 값을 확인하거나 변경 전/후 설정 비교를 할 때 spfile을 pfile 로 변환
- 인스턴스가 정상적으로 기동되지 않을 경우, spfile을 로드할 수 없거나 손상인 경우 있어서 pfile로 변환 후 파라미터 분석 및 수정 진행
- 버전 차이 또는 원본 인스턴스와 대상 인스턴스의 파라미터 차이 확인
- 문서화
2. spfile에서 pfile로 복사하기
- 서버(linux)에서 진행
CREATE PFILE='/u01/app/oracle/product/12.1.0.2/db/dbs/파일이름(파일위치/파일이름).pfile' from spfile;
3. pfile과 spfile 구분
- pfile : init<SID>.ora
- spfile : spfile<SID>.ora
4. pfile 수정하기
- init<SID>.ora 파일에 접속해서 수정. 위치는 직접 만든 경우는 지정한 경로에 있고, Windows환경이라면 C:\app\oracle\product\19.0.0\db\dbs에 있을 수 있음
- 파일 직접 수정
vi init<SID>.ora
5. spfile 수정하기
5-1. pfile을 내린 것에 수정해 spfile로 만들어도 됨. 이런 경우 spfile을 새로 지정해줘야함.
5-2. DB에서 쿼리로 수정
ALTER SYSTEM SET 파라미터='파라미터값' SCOPE=[SPFILE/MEMORY/BOTH] SID='*';
- _로 시작하는 파라미터는 hidden parameter이므로 ALTER 명령어 사용 시 SET "_hidden 파라미터명" = "파라미터값"으로 나타내야햠.
- SCOPE 종류
- MEMORY : 현재 인스턴스 메모리에만 반영 (즉시 적용되지만 재기동 시 사라짐)
- SPFILE : spfile에만 저장 (현재 인스턴스에는 영향 없음). 재기동시 적용됨
- BOTH : 현재 메모리에도 적용되고, spfile에도 적용됨(동적 파라미터만 가능)
- 정적 파라미터 : db_block_size, control_files, db_name 등은 인스턴스 재기동 필요
- SID는 RAC의 환경인 경우 SID='*'이면 모든 DB에 적용
'Oracle' 카테고리의 다른 글
[Oracle] 데이터 이동 Datapump expdp로 dump file 추출하기 (0) | 2025.05.04 |
---|---|
[Oracle] 오라클 데이터베이스 초기화 파라미터 (1) | 2025.05.03 |
[Oracle] User별 Quota 확인 및 변경(+ Unlimited Tablespace) (0) | 2025.05.03 |
[Oracle] 시노님(Synonym) 의미 및 생성/조회/삭제 (0) | 2025.05.03 |
[Oracle] 권한 관리(부여/회수) 및 ROLE 관리 (0) | 2025.05.03 |