SQLP(1) - 설치, 오라클 데이터베이스 서버 구조
나는 설치된 db가 두 개라서 이번꺼는 1522번 사용함 ㅎ...
oracle_4U 로 패스워드 설정
표는 칼럼이 결합되어서 의미있는 행을 구성해준다.
2차원 구조의 평면의 표로 구성해주는게 relation이다. 표의 집합이 관계형 데이터베이스(RDB)이다.
---
작업을 빠르게 하기 위해서 물리적 I/O는 적게하고 메모리에서 작업을 많이 이용하기를 원한다.
그래서 메모리에서 작업을 하는 경우가 대다수이다.
하지만 메모리에서 수행한 작업을 하드디스크에 반영하는 작업이 종종발생하는데 이를 백그라운드 프로세스라고 부른다.
메모리와 백그라운드 프로세스를 합쳐서 인스턴스라고 부른다.
실재 메모리 영역, 메모리 영역에서 수행한 작업들이 다시 DB에 적용해 주어야 하는 시점이 온다고 했는
????
변경이 눈에 띄는 것은 update문이다.
```
update emp
set sal = sal * 1.1
where empno = 7788;
```
이라는 문장을 실행시킬려고 한다고 생각해보자.
이 sql 문장에 대해
1. parse할 것이다.
1) syntax
2) Semantic & Privilege Check 를 해준다.
3) P_code 생성 + 실행계획
2. Execute
---
모든 변경작업은 메모리 상에서 유지가 된다.
변경작업
메모리 상에는 원본블록의 복사본이 하나만 존재해야한다.
변경 작업(update)을 위해 Execute를 실행시 조금 다르게 작동한다.
1. 복사본이 메모리상에 있는지
2. 변경되기 전의 데이터를 전문적으로 저장하는 테이블쪽에 비어있는 블록이 메모리에 올라가 있는지 확인
3-1) 올라가 있지 않으면 디스크에서 읽어서 메모리에 올리는 작업수행.
3-2) READ Log Buffer에 우리가 작성한 sql 문장이 기록된다.
3-3) Data 블록 데이터는 Undo 블록에 넣고 Data 블록에는 변경된 데이터가 올라간다.(변경작업만 된 것 뿐 확정이 된 것은 아니다)
단, oracle RDB는 데이터를 바로 내리면서 저장하지는 않는다. oracle RDB는 Disk I/O가 성능을 크게 떨어뜨리기 때문에 commit을 한다고 바로 Disk로 내리지는 않고 Read Log Buffer의 데이터만을 Read log file에 내림으로 commit을 보장해준다.
---
Instance Failure 발생시 db관리자는 db를 기동만 해주면 된다.
SMON 메모리 : Instance failure 발생시 모든 로그를 기록해주는 Read log files에 가서
---
DB 접속
=> SQL Plus 실행
=> / as sysdba 로 접속
=> @c:\oracle\sqlt_setup
이제 sqldeveloper을 켜주자 그러면 위와같이 나오는데 이때 '아니오'를 클릭해주자
접속해주자
이름 : ora01
비번 : oracle_4U
포트 : 1522
SID : prod
이건 설치할때 설정해준것이기 때문에 설정한 것으로 접속해준 것이다.
---
????
한 쪽 데이터베이스 서버에 저장된 데이터를 다른 서버로 복제하는 솔루션들(스트리밍 옵션)
Redo log buffer -> 변경 히스토리들을 가지고 있기 때문에 이걸 뜯어보아서 똑같은 DB를 만드는 방법이다.
Streams Pool
---
물리적 데이터베이스 구조
콘트롤 파일
데이터 파일
온라인 리두 로그 파일
- 백업 받지 않는다.
- 복구시에 사용하는 파일이다.
DB 운영 mode
- Noarchivelog
- Archivelog
아카이브 로그 파일이 있어야지만 데이터 파일이 깨졌을때 복구하는 작업이 가능하다.
Alert and Trace Log Files
- 오라클의 실행계획을 만들어주는 것 : optimizer