DBDBDEEP
Oracle이 정보를 적는 파일들 / Dynamic performance View / 데이터 딕셔너리 본문
정보를 적는 파일을 저장하는 곳, ADR
정보를 저장하는 곳인 ADR을 먼저 알아보도록 한다.
- 수집된 정보를 저장하기 위한 시스템 전역적 저장소 ADR
- 11g 버전부터 수집정보가 많아져서 만들어 지게 되었다.
ADR의 구조를 LInux 로 확인한다.
1. 오라클이 정보를 적는 파일, Alert Log File
- 데이터베이스에 딱 한개가 존재하는 Alert Log File.
- 중요한 사건을 기록하게 된다. (Startup, Shutdown, Fail (장애), Recovery (복구), CheckPoint 등..)
ㄴ> Startup 시, default가 아닌 Parameter 값을 가지고 올라오게 된다면 parameter 값도 기록한다.
- 중대한 에러를 기록한다. ora-1578 block corruption , dead lock , ora-600 internal
- DBA는 Alert Log 파일을 정기적으로 모니터링 하여 DB의 상태를 확인해야 한다.
- [oracle@dydr1p1 orcl]$ cd alert
ㄴ-> alert의 로그파일이 필요한 사람들을 위하여 log.xml 으로 ADR 구조 안에 준비를 해 놓았다.
- [oracle@dydr1p1 orcl]$ cd trace
- [oracle@dydr1p1 orcl]$ ls * log
alert_orcl . log
ㄴ-> txt 파일 형식으로 저장된 것이며 /trace -> *log 하면 볼 수 있다.
2. 오라클이 정보를 적는 파일, Trace File
- sql 문장 튜닝을 하기 위해 필요한 server의 user trace file이다.
- Background Processor의 trace file 이며 dbwr 등이 작업을 하다 만나는 사건들을 적는 것이다.
- alert.txt 파일이 만들어지는 위치와 동일한 곳에 만들어진다.
ㄴ> /u01/app/oracle/diag/rdbms/orcl/orcl/trace
3. 오라클이 정보를 적는 파일, DDL log File
- 11g : 11g 부터는 유저들이 생성하는 DDL 명령어 파일 즉,DDL alert.log 도 적음
- 12g : 12g 부터는 DDL 명령어 기록은 안하겠지만
SQL > alter system set enable_ddl_logging = true;
해놓으면 DDL 명령어를 기록하겠다. alert.log 파일에는 그래도 기록안된다.
별도의 파일을 만들어 놓고, 그쪽에다가 DDL 명령어를 적어주겠다.
2가지 파일
- XML DDL 로그 : log.xml은
$ORACLE_BASE/diag/rdbms/rdbms/orcl/orcl/log/ddl 에 기록됨
- Text DDL : ddlsid.log은
$ORACLE_BASE/diag/rdbms/rdbms/orcl/orcl/log 에 기록됨
4. 오라클이 정보를 적는 파일, debug log 파일
- 오라클의 기준에 의해 향후 문제가 될만한 정보인 것 같으면
$ORACLE_BASE/diag/rdbms/rdbms/orcl/orcl/log/debug
에 작성하게 된다.
이 파일은 IPS(incident 패키지 서비스) incident 패키지에 포함되어 있다.
Dynamic performance View
- 이 뷰는 fixed table을 베이스로 하는 뷰임. 즉, fixed table을 보는 것이다.
- sys 유저의 소유로 되어있음.
- fixed table은 저장되는 곳이 Shared pool 임. 따라서 데이터베이스가 종료되면 drop 된다.
오직 startup 이후의 정보만 저장되어 있음.
- 실시간으로 바뀌는 성능에 대한 통계 정보를 적음. 누적치 형식으로 업데이트
- 이 들은 모두 v$ 로 시작하기에 ‘v-dollar 뷰’ 라고도 한다.
- 마운트 상태까지만 올라가면 전부 보인다.
1. v$lock
현재 락걸려 있는 것 다보자
2. v$session
현재 로그인 되어 있는 것 다보자
로그인 한지 하루 지난 애들 보자는 것임
3.v$sql
현재 우리 데이터베이스가 startup 된 이후로 수행된 sql명령어 다 보자.
데이터 딕셔너리 뷰 (Data Dictionary)
- 데이터 딕셔너리 뷰의 base table 은 data dictionary.
- dynamic 은 shared pool에 만들어져 있어서 startup 이후만 알 수 있음.
data dictionary는 datafile에 저장되기 때문에 셧다운 되었다고 해서 못 보지않는다.
- 데이터 딕셔너리에 저장되는 정보들
ㄴ- > user에 대한 정보 / object에 대한 정보/ 권한에 대한 정보 / storage 할당에대한 정보
- mount 단계에서 보이지 않음. datafile이 오픈 되는 단계은 Open
1. user_tables : 직접 소유(만든) 테이블만 보여주는 view
2. all_ : 액세스 가능한 거 보여주는 view
3. dba_ : 전 db의 모든 테이블 보여주는 view
'Oracle ADMIN' 카테고리의 다른 글
Oracle Net 서비스 구성 및 관리 도구 (0) | 2022.06.28 |
---|---|
Oracle 네트워크 환경구성 , Oracle net 서비스 (0) | 2022.06.28 |
Oracle 데이터베이스 상태 (0) | 2022.02.08 |
Oracle Database Instance 관리 (0) | 2022.02.08 |
Oracle 데이터베이스 저장 영역 구조 (0) | 2022.02.07 |