💡 오라클 인스턴스의 구조 정보와 database의 설정 정보를 담고있는 파일
만약 오라클 db에 어떤 설정값을 변경하고 싶다면? 이 파라미터 파일을 수정해야 합니다.
💡 오라클 처음 startup시 spfile.ora의 내용을 보고 오라클 인스턴스를 구성합니다. 인스턴스 -> 영향을 주고있는 설정값
💡 NOMOUNT 로 부팅 하기 위해서는 SPFILE 일 찾는 다음 없음면 PFILE 을 찾게 됩니다.
SPFILE 과 PFILE 이 모두 없다면 기동에 실패하는 동작을 나타내는 그림 입니다.
- (19c) 파라미터 파일의 위치 확인
SQL> show parameter spfile;
- 현재 설정되어서 db에 영향을 주고있는 파라미터 값을 보고 싶을때는
v$parameter
-> pfile조회
그냥 spfile.ora의 내용만 확인하고 싶을때는v$spparameter
-> spfile 조회select name, value from v$parameter where name like '%open_cursor%'; select name, value from v$spparameter where name like '%open_cursor%';
데이터베이스 설정: 메모리 할당, 로그 파일의 위치 및 크기, 사용자 및 권한 관리, 리소스 관리 등을 설정할 수 있습니다.
동적 재구성: 파라미터 파일은 데이터베이스가 실행 중에도 변경될 수 있으며, 이를 통해 데이터베이스 인스턴스의 동작을 동적으로 조정할 수 있습니다. 이러한 변경 사항은 일부는 즉시 적용되고, 일부는 데이터베이스를 재시작한 후에 적용됩니다.
시스템 튜닝: 파라미터 파일은 데이터베이스 성능을 조정하는 데 사용됩니다. 예를 들어, 버퍼 캐시의 크기, 파싱 작업 관리, I/O 설정 등을 조절하여 데이터베이스의 성능을 최적화할 수 있습니다.
SPFILE (서버 파라미터 파일)
:
1. 이진 형식의 파일로서, 보안 및 성능 향상을 위해 사용됩니다.
2. 인스턴스를 재구성하는 데 사용됩니다.
3. 동적 파라미터
4. 서버 다시시작 해야 적용됨
PFILE (물리적 파라미터 파일)
:
1. 텍스트 형식의 파일로서
2. 이 파일은 데이터베이스를 시작하기 위해 스크립트 또는 명령어를 사용하여 데이터베이스 인스턴스에 적용하는 데 사용됩니다.
4. 정적 파라미터
SPFILE : ALTER SYSTEM SET [parameter name]=[values] [SCOPE=(MEMORY/SPFILE/BOTH)]
PFILE : ALTER SYSTEM SET [parameter name]=[values] [SCOPE=(MEMORY)]
<옵션설명>
scope
: Spfile 운영 환경에서만 사용된다
spfile
: Spfile만 수정한다. (정적인 파라미터 수정에서는 필수다)
memory
: 현재 DB의 parameter 만 수정하며, spfile 은 수정하지 않는다. (재시작 하면 원래 spfile 설정값으로 돌아간다)
both
: 현재 DB 의 parameter 와 spfile 모두 수정한다. (default 값)
create pfile='파일명' from spfile='파일명'
create spfile='파일명' from pfile='파일명'
왜 사용할까요?
위에서 언급을 했지만 spfile은 기동시 최우선 순위에 있고 파일 수정이 불가 합니다.
추후에 파라미터 파일을 백업 용도로 사용하기 위해 PFILE로 백업을 해놓아 spfile 파일이 유실되었을 경우 pfile로 기동이 가능(startup pfile=[파라미터 파일명]) 합니다. 그리고 spfile 은 pfile 보다 기동시 우선순위에 있기 때문에 pfile 이 있더라도 spfile 이 있을 경우 pfile 에 등록된 파라미터 값은 반영이 되지 않습니다.
운영 중에 필수적으로 반영되어야 하는 파라미터 값이 있다면 spfile 을 pfile 로 만든 다음 pfile 을 spfile 로 만들어서 파라미터 값을 운영에 반영 할수 있습니다.
💡 복구를 위해서 db의 변경사항의 히스토리를 기록해놓은 파일
member가 두개이다. 두개이상으로 사용하길 권장. LGMR가 멤버 2개에 같은 내용을 동시에 적는다. 그래서 하나가 손상되면 다른 하나로 db를 운영하기 위해서.
✔️ 리두 로그 그룹 상태 4가지
1. currnet : 현재 쓰고 있는 상태
2. active : 다 쓰긴 했지만 아관련된 변경사항이 메모리에서 디비로 반영이 안된상태
3. nactive : 다 썼고 관련된 변경사항이 메모리에서 디비로 반영된 상태
4. unused : 한번도 사용한적 없는 상태
✍🏻 DML작업이 활발하게 일어나는 database는 redo log group을 5-10개로 group의 갯수를 3개가 아니라 더 늘려줘야 합니다. 그룹의 갯수가 3개라면 DML작업이 느려집니다.
✔️ group의 갯수가 많을때의 장점과 단점
장점 : DML작업이 활발하게 일어날 때 성능이 느려지는 현상이 적게 발생한다.
단점 : 백업할 때 시간이 좀 더 걸린다.
➡️ 오라클을 진단하기위해 확인해야하는 파일과 사전
1. alert log file : 주요 장애 이슈 에러 번호
2. trace file : 상세한 에러 메세지와 이유
3. dba_outstanding_alerts 사전 : 현재 db에 주목할만한 큰 이슈
❓ alert log file 의 내용
1. 오라클에서 발생한 에러 (ORA-600 internal 에러)
2. db를 startup, shutdown한 정보들
3. db의 구조를 변경한 명령어들
(예: create tavlespace 명령어, alter database 명령어등)
4. 기본값이 아닌 파라미터틀(값을 변경한 파라미터)
5. block이 손상도었을 때 그 정보
6. dead lock 정보
Trace file
: 각 서버와 백그라운드 프로세스는 연관된 Trace File에 정보를 기록할 수 있습니다. 내부 오류가 프로세스에서 감지되면 프로세스는 오류에 대한 정보를 해당 Trace File에 덤프합니다. Trace File에 기록된 정보 중 일부는 데이터베이스 관리자가 사용하고 일부는 오라클 고객 지원 센터에서 사용하게 됩니다.
Alert Log File
: 특수 Trace 항목으로, 데이터베이스의 Alert Log에는 메시지와 오류가 시간 순으로 기록되어 있습니다. Oracle은 Alert Log를 정기적으로 검토할 것을 권장합니다.