오라클을 설치했을 때 사용자마다의 환경으로 셋팅을 바꿔서 쓰고 싶다.
파라미터로 설정 변경해야 한다.
초기화 파라미터 파일은 시작구동시에 참고하는 파일.
운영시에 참조하지 않는다.
[위치]
$ORACLE_HOME/dbs
[순서]
1. spfile -> 2.pfile -> 3. 둘 다 없으면 오라클 기본 셋팅으로 올라옴.
1. pfile (init[SID].ora 라는 파일) ; 초기에는 이것밖에 없었다.
text형식
DBA 수동 관리 / 편집
인터넷 환경으로 업무가 바뀌면서 내내 DB가 운영해야 하는 상황인데, DB내리고 구성변경을 못하게 되었다. 그래서 단점이 됨.
얘를 쓰는 경우 : 파라미터를 많이 바꿔야 할 때. Alter명령 일일이 다 쓸 수 없으니 편집기로 다 수정하고 spfile 로 변환해서 사용.
2. spfile (spfile[SID].ora 라는 파일) ; 8i부터 생김.
바이너리 형식
Oracle 관리 / Alter로 변경
디비 내리지 않고 운영중에도 환경파일 바꿀 수 있도록 지원.
8i부터 얘를 디폴트로 쓰게 설정.
아무리 얘를 써도 전부 다 파라미터를 바꿀 순 없다... -> static parameter의 경우에는 DB를 내렸다 올려야 바꿀 수 있음.
* 파라미터 종류
- Static parameter (spfile 이라도 DB 재시작해야 적용 가능)
- Dynamic parameter (spfile 일 때, 운영 중 변경)
* Alter 명령
Alter (System ) Set 파라미터 = '값'
(Session) SCOPE = BOTH (디폴트값)
MEMORY
spfile
system : DB 전체에 / Session : 내가 맺고있는 커넥션에만. 연결 끊고 나서는 원래대로 .
MEMORY : 운영중인 DB에만 적용(리스타트시엔 flush) / spfile : 운영중엔 적용 안 하고 다음 번 리스타트시에도 적용되게. (static parameter 변경할 때)
초기화 파라미터에서 고급 부분이 시스템 성능에 영향을 미칠 수 있는 부분
*고급
DB_CACHE_SIZE : 데이터 버퍼 캐쉬 사이즈
SHARED_POOL_SIZE : SHARED POOL 크기
DB_FILE_MULTIBLOCK_READ_COUNT : DB파일을 읽어들일 때 한 블럭씩 안 읽어들이고 여러 블럭을 합쳐서 읽어들이는 의미의 파라미터..
오라클의 인덱스 꽤 종류가 많다.
* 기본
CONTROL_FILES : 컨트롤 파일(스토리지 안)이 어디에 있는지
DB_BLOCK_SIZE : 블록크기 얼마인지
PROCESSES : 총 프로세스 갯수
SHOW PARAMETER : 패턴매칭으로 해당 키워드 들어간 거 전부 다 보여줌
sudo컬럼 : 의사결정 컬럼
실제 컬럼명이 지정되어 있지 않지만 오라클에서 관리하기 위해 있는 관리컬럼.
ex) rownum, rowid 등등
DB구동
1. SHUTDOWN
2. NOMOUNT 단계
alert.log 가 지워지면 해당 위치에 오라클이 새로 만들고 기록하면서 구동됨.
처음에 사용할 때는 로그가 작지만... 모든 내용이 다 있으므로 커지다가 물리디스크 다 차지하면 DB가 못 뜸.
만약 alert.log에 문제가 생기면 바로 전 단계로 다시 돌아감.
인스턴스 구동 위해 파라미터 값 읽음.
3. MOUNT
콘트롤 파일이 열려. 그래서 그 구조 정보를 얻기만 함.
여튼 정합성 체크 안 함.
중간단계에 문제가 있어서 멈춰져 있을 때, 조치 취하고 나서 alter database 로 윗단계로 올릴 수 있다.
4. OPEN
콘트롤파일에 있던 동기화 정보와 안 맞을 때
SMON 을 사용해서 리두로그파일에 있는 내용으로 복구. 하는 게 이 단계. 인스턴스 RECOVERY.
즉 예전에 비정상적으로 SHUTDOWN 됐을 때 물리적 데이터파일에 저장 안 되었을 때 여기서 리커버리 작업 수행함.
SHUTDOWN TRANSACTIONAL : INSERT UPDATE DELETE 한 사람 기다린다. 커밋될때까지 기다린다(?).
트랜잭션 종료...가 언제지?
IMMEDIATE : CKPT 적용해 줌. COMMIT 안 한 거 롤백함?
ABORT : 해도 리두로그파일에는 있당.
ABORT 빼고 CKPT 일어남.
일관성 있는 데이터베이스. SMON 에 의해서 INSTANCE RECOVERY 필요 없음.
DB가 구동되어 있을 때 STARTUP FORCE 하면 SHUTDOWN ABORT 후 STARTUP과 동일한 명령어.
오라클 11g에 그리드 설치하면서..
ADR (AUTOMATIC DIGNOSTIC REPOSITORY)
오라클 진단할 수 있는 자료를 하나의 위치로 모았는데 그게 ADR 임.
얘를 헬스모니터링하는 로그들을 한 군데 다 모아둠. BDUMP 이런 파일들 위치 달라짐?
SQL> show parameter background
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
background_core_dump string partial
background_dump_dest string /u01/app/oracle/diag/rdbms/orcl/orcl/trace
SQL> SHOW PARAMETER DIAG
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
diagnostic_dest string /u01/app/oracle
ASM 진단, DB진단, 리스너 진단
[orcl:diag]$ lltotal 12
drwxr-xr-x 3 oracle oinstall 4096 Dec 2 17:16 asm
drwxr-x--- 3 oracle dba 4096 Dec 3 12:05 rdbms
drwxr-xr-x 3 oracle oinstall 4096 Dec 2 17:16 tnslsnr
[orcl:diag]$ pwd
/u01/app/oracle/diag
* alert로그 위치 ( alert_<SID>.log )
[orcl:trace]$ ls aler*
alert_orcl.log
[orcl:trace]$ pwd
/u01/app/oracle/diag/rdbms/orcl/orcl/trace
** 성능 관련 뷰
1. Dynamic Performance 뷰
v$sql : sql 문장에 대한 정보 확인.
sql텍스트 라는 컬럼을 가지고 문장에 대한 소스 확인 가능 (어떤 문장이 수행됐는지)
excutions 이라는 컬럼을 가지고 수행된 횟수 확인 가능.
cpu_time : ms 단위. 특정 문장이 수행되면서 cpu 소모한 시간.
v$session : 어떤 클라이언트에서 들어왔는지, 언제 세션을 맺었는지.
v$lock : 해당 오라클에서의 DML 작업시에 트랜잭션 단위의 데이터를 보호하는 기능인
락이 걸려 있는 걸 보고 싶다.
block 이 0보다 크게 되면 해당 트랜잭션이 수행되서 락을 선점하고 있음을 나타냄.
v$fixed_table : 어떤 dynamic 퍼포먼스 뷰가 있는지, 간단한 설명.
동적 뷰이기 때문에 읽기 일관성이 보장되지 않음.
** 데이터 딕셔너리
테이블 형태로 데이터가 들어 있다.
데이터 딕셔너리 구조는 사용자가 모른다.
그래서 오라클은 해당 정보를 뷰의 형태로 제공해 준다.
dba_ 가 붙으면 dba만 접근 가능한 것.
ASM 이 DB 구동되면서 리스너, ASM, 데이터베이스 (맞나?) 이렇게 세개 올려주는데
EM은 자동으로 올려주지 않는다.
그래서 EM은 아래와 같이 따로 올려줘야 함
$ emctl start dbconsole
$ sqlplus / as sysdba <- 내꺼니까 인증 안하고 걍 들어가겠다. /
'Database > ORACLE' 카테고리의 다른 글
SQLPLUS 툴 사용하기 (0) | 2013.12.04 |
---|---|
3일차 - 6장. Oracle 네트워크 환경 구성 (0) | 2013.12.04 |
2일차 - 2장. Oracle 소프트웨어 설치. (0) | 2013.12.03 |
1일차 - 1장. 오라클 데이터베이스 구조 탐색 (0) | 2013.12.02 |
오라클 11g r2 설치 (0) | 2013.12.01 |