Oracle/Admin

2012.01.13 Admin 3일차 2번째(Monitoring하기(log파일이용), Data Dictionary, Performance tables, Control File)

에몽이ㅋ 2012. 1. 17. 08:35
모르는 용어는  http://gyh214.tistory.com/73  참조, 비밀번호 oracle
Using Log, Trace File to monitor an instance


Alert Log File
설명 : results of major events, records the commands 등등
사용 : day-to-day operational information, diagnosing database error(database error 진단)
파일이름 : alertSID.log  ( 10g이후 alert_SID.log )
위치 : parameter file에 기술되어있음(BACKGROUND_DUMP_DEST)

Background Trace Files
설명
:  background processes중 error 발견시 생성됨
사용 : 진단 및 troubleshooting시 사용 
위치 : parameter file의 BACKGROUND_DUMP_DEST

User Trace File(직접 만들라고 명령해야 만들어짐)
설명은 나중에
위치 : USER_DUMP_DEST
SIZE : MAX_DUMP_FILE_SIZE
------------------------------------------------------------------------

Data Dictionaryhttp://www.oracleclub.com/lecture/1520 참조 )
* oracle database의 중심
* Read-only tables과 views로 구성  ---> 의미 : 변경불가능, 조회만 가능
구성
1) Base tables : stores description(설명) of the database, DBCA 나 create database(수동DB생성) 하면 자동으로 생성됨

2) Data dictionary views : base table의 단순화버전,
        public synonyms를 통해 access ( public synonym설명 : http://www.oracleclub.com/lecture/1038 ), 즉 모든 사용자가 access가능
생성 : DBCA의 경우 자동생성, create database(수동DB생성)시 catalog.sql script를 통해 생성

내용
* database의 logical, physical structures
* 객체의 정의, 공간할당
* Integrity constraints (무결성 제약)
* Users
* Roles
* Privileges (권한)
* Auditing (감사 ;  http://www.oracleclub.com/lecture/1861 )

주요 사용목적
* 사용자, 스키마객체, 데이터베이스의 구조 들의 정보를 찾는데 사용

변경되는 시점 : oracle server는 DDL statement가 실행되면 Data dictionary를 변경한다(DML의 경우는 변경하지 않음)
     * 추가설명 : 데이터를 insert하고 commit한 후 dictionary에서 해당 테이블의 행개수를 찾아보면, insert전과 insert후가 동일함
         (DML의 경우는 변경하지 않아서 그렇습니다.업데이트 하고 싶다면 직접 명령어(예. analyze)를 쳐서 업데이트를 합니다.)

딕셔너리중 3가지 종류
DBA_xxxx : 데이터베이스의 모든 객체
ALL_xxxx : 현재 유저가 볼 수 있는 모든 객체들(다른 계정의 테이블도 권한이 있으면 볼 수 있음)
USER_xxxx : 현재 유저가 가지고 있는 객체들(내꺼밖에 못봅니다)

*주의 : 딕셔너리를 OPEN단계에서만 access가 가능합니다.


Dynamic Performance Views
* 현재 데이터베이스의 활동을 기록
* 실시간 업데이트 됩니다.
* used to monitor and tune the database
* Owned by SYS user
이름 : V$ 로 시작됨
종류 : V$FIXED_TABLE안에 기록되어 있음.
------------------------------------------------------------------------

Control File http://www.oracleclub.com/lecture/1089 )
  - 데이터베이스의 현재상태를 정의하고, 무결성을 유지
  - MOUNT상태까지 올라가려면 필요한 파일
  - DB의 구조(Structure)를 포함하는 조그마한 바이너리 파일 입니다.
  - 오라클이 사용하며, DBA도 변경 할 수 없습니다.
  - 데이타베이스의 구조변경이나 변경사항이 있을 때 자동으로 업데이트 됩니다.
  - 모든 데이터파일, 로그 파일의 정보(경로, 이름 등)를 갖고 있습니다.
  - 컨트롤 파일은 오라클 DB를 마운트하고, 오픈하여 사용하는데 꼭 필요한 파일 입니다.
  - 컨트롤 파일이 손상되면 오라클을 mount, open 할 수 없으므로 적어도 두 개 이상의 컨트롤 파일을 백업 받아서 다른 디스크에 저장해 놓는 것이 좋습니다
  - 복구시 필요한 동기화(Synchronization)정보를 저장 합니다.

컨트롤 파일에 기록되는 내용
- 데이타베이스의 이름과 식별자
- 데이타파일의 위치. 온라인 리두로그 파일 위치 (OPEN상태까지 가려면 필요한 파일)
- 현재 로그 시퀀스 번호
- 테이블스페이스의 이름
- 체크포인트 정보
- 현재까지의 로그 기록
- 백업정보

* 컨트롤 파일은 매우 중요한 파일이므로, 똑같은 파일을 두 세개 정도 다른 위치에 복제해서 관리합니다.

컨트롤파일 복제 후 지정하기
(2개 지정한다면 오라클서버쪽에서 그 2개의 컨트롤 파일을 동시에 운영합니다(변경 시 파일 둘다 변경) )

첫번째. SPFILE 로 startup했을때
1. ALTER SYSTEM SET control_files =
'/home/oracle/oradata/u01/ctr101.ctl',
'/home/oracle/oradata/u02/ctr102.ctl' SCOPE=SPFILE;
;; SCOPE에 SPFILE을 지정해주지 않으면 현재 설정도 위 의 설정처럼 되어야 되는데, 
현재는 추가로 지정한 위치에 컨트롤 파일이 없으므로 error발생

2. Shutdown하기 ; shutdown 하지 않고 control file 복사시 에러납니다.
3. 컨트롤파일 복제하기
cp /home/oracle/oradata/u01/ctr101.ctl /home/oracle/oradata/u02/ctr102.ctl
4. Startup 하기

두번째. PFILE로 startup했을때
1. shutdown
2.  컨트롤파일 복제하기
cp /home/oracle/oradata/u01/ctr101.ctl /home/oracle/oradata/u02/ctr102.ctl  
3. PFILE을 vi로 열어서 추가 컨트롤파일을 CONTROL_FILES 부분에 기술하기
4. Startup


참고 : 컨트롤 파일 관리방법
1. UMF(User Managed File) : DBA가 컨트롤파일의 위치를 관리(일반적인 방법)
2. OMF(Oracle Managed File) : oracle이 컨트롤파일의 위치를 관리