connect는 유저프로세스가 서버프로세스에 접속하는 것을 말한다.
SQL문장 실행전 오타확인, Dictionary를 조회해 table이나 column이 있는지 확인, 실행계획 설립 3가지 단계를 거친 후 문장이 실행된다.
데이터베이스버퍼캐시에 있는 데이터는 트랜젝션 발생시 리두로그버퍼에 저장된다. 리두로그버퍼의 권장용량은 cpu갯수 * 512K이다, 또한 전체 용량의 1/3이 찼을때 부터 리두로그파일에 저장한다. 저장이 끝날때까지 수정이 적용되지 않는다. 용량이 작은 이유는 전체 SQL문장 실행을 보면 SELECT문이 99.9%, 트랜젝션 문장이 0.1%이기 때문이다.
과거에는 용량비율을 sharedpool > database buffer cache > redologbuffer로 관리자가 직접 지정해주어야 했지만 현재는 시스템이 메모리 사이즈를 자동으로 구성한다.
library cache는 시작부터 모든 SQL문장 + 문장의 실행계획이 저장하고 LRU알고리즘을 사용한다. / 시큐어 코딩은 SQL문장에서 조조검색, 방통검색은 다른 것으로 보는데 이를 유사하게 식별하여 성능을 개선시키는것을 말한다.
datadictionary cache는 되도록 크게 해서 지워지지 않도록 한다. 실행전에 dictionary를 참조하는것은 이 cache를 참조하는 것이다.
shared pool은 사용자가 변경, 수정이 불가능 하다.
DBWR은 99년도 이전에는 사용자가 통제 가능했지만 현재는 실제로 작성했는지 확인이 불가능하다. 전체를 저장하는 것이 아니라 달라진 부분만 저장한다. 종료시에도 저장하지 않지만 startup시 저장한다.
LGWR은 commit, rollback한 경우에 저장하고 commit, rollback이 실행되지 않았다면 저장되지 않는다.
DBWR과 LGWR의 저장 시점이 다르기 때문에 동기화 정보가 다르다. CKPT에서 이벤트 발생시 동시에 내려쓴다. 내려쓴다는 말은 기동한다고 말한다.
시점에 대한 정보는 control file에 있다. datafile을 복사 혹은 이동하게 되면 control file에서는 동기화 정보가 맞지 않다고 배제하고 두번다시 사용하지 않는다.
SMON 인스턴스 장애가 발생하여 예기치 않게 종료되었을때 실행된다. DBWR에서 Datafile로 기동하지 않은 상태로 종료되면 수정 내용이 사라진다. 이때 SMON이 리두로그파일을 참고해서 복구작업을 수행한다.
PMON은 유저 프로세서가 서버 프로세서와 통신에 실패한 후에 서버프로세서만 계속 살아있는 좀비프로세서를 찾아내어 종료해주는 역할을한다. lock을 해제해주기도 한다,
parameter file 매개변수파일은 Oracle에 약 200여개중 10개정도 사용자가 사용하며, 제대로 읽히지 않으면 Oracle 실행이 불가능하다. parameter file 메모리 구성크기등이 적혀있다. 수정해도 바로 적용되지 않는다.
패스워드 파일에는 OS에서 관리자그룹(DBA)에 있는 계정들의 정보를 저장한다.
관리자가 원격접속시 필요한 비밀번호를 저장한다.
shutdown상태는 종료된 상태다.
nomount 상태는 parameter file을 읽어 메모리에 Instance를 실행한 상태이다.
mount상태는 parameter file을 참고하여 컨트롤파일을 읽는다. 보통 복구는 mount단계에서 실행한다.
open상태는 컨트롤파일에서 데이터파일과 리두로그파일을 읽어온다.
shutdown상태에서만 startup이 가능하다. 옵션이 3가지 있는데 nomount, mount, open상태가 있다. default는 open이다.
nomount에서 mount로 가려면 ALTER DATABASE MOUNT를 사용한다. mount에서 open으로 가려면 ALTER DATABASE OPEN을 사용한다. nomount에서 open으로는 바로 갈 수 없다.
shutdown은 실행되면 무조건 shutdown상태까지 간다. shutdown의 옵션은 abort, normal, transactional, immediate가 있다.
abort의 경우 DB에 장애가 있을때 사용하는 옵션으로 비정상 종료를 시키는 것이다. normal, transactional은 실제로 DB가 종료되지 않는다. immediate는 정상적인 종료시에 사용한다.
일반계정은 open상태가 아니면 사용할수없다. 왜냐하면 일반사용자의 계정은 datafile에 있으므로 datafile정보가 읽히는 open단계 이후에 접속이 가능하다. 관리자계정은 database밖에 password에 있다.
'교육 > Oracle' 카테고리의 다른 글
windows10에서 VMware을 이용한 linux설치 (0) | 2019.12.29 |
---|---|
Day 29 (oracle & apache & php) (0) | 2019.12.27 |
Day 27(oracle) (0) | 2019.12.24 |
Day 26 ( Oracle12c 계정 생성 및 DBserver) (0) | 2019.12.24 |
Day 26(Oracle install - linux&xwindow) (0) | 2019.12.24 |