Oracle/Admin2009. 11. 18. 18:42


- oracle architecture -


Oracle Server : Database와 Instance를 합쳐서 일컫는다.
                      기계전체(드물게, 또는 모르는 사람들)
                      소프트웨어 자체

Database의 구성요소


data file : 실제 데이터가 저장되는 파일, block 단위로 구성.

control file : DB의 구조를 포함하는 조그만 바이너리 파일(data file, redo log file의 위치와 이름이 저장되어 있음)
                        사라질 경우 복구하기 어렵기 때문에 다중화 2벌이상 만든다.
                        

redo log file : 모든 스텝의 기록을 다 남기는 파일
                    최소한 2벌 이상으로 만든다. 
                    online redo log file과 offline redo log file(archived redo log file)로 나뉜다.

  

Instance의 구성요소

  1. SGA(메모리) : 같이 쓰는 공간
     1) Shared Pool : SQL파싱의 결과를 저장. 600가지가 넘는 공간을 차지
         ① library cache :
         ② data dictionary cache :
     2) Database Buffer Cache : 최근에 사용된 유저 데이터를 복사해 놓는 곳
     3) Redo log Buffer

  2. BGP(백그라운드 프로세스) : 모든 손님들을 위한 프로세스
     1) DBWn(20개까지 가능) : data buffer cache의 내용을 data file로 내려쓰는 역할
     2) LGWR  : redo log buffer의 내용을 redo log file로 내려쓰는 역할
     3) ARCn(10개까지 가능, archiver) : online redo log file을 offline redo log file로 쓰는 것
     4) PMON : 프로세스 모니터. 클라이언트가 갑자기 죽으면 lock등을 정리. 시체처리반
                     유저의 장애를 해결
     5) SMON : 서버의 자체 복구를 위해 존재



기타 구성요소

1. listener(교환수) : user process의 요청을 받아들여 server process에 연결하는 역할. 교환수의 역할
2. foreground process(=shadow process) : 한 손님을 위한 프로세스
    1) server process : 서버가 있는 머신에서 돌아야 한다. 웨이터
    2) PGA : 단일 프로세스(서버나 백그라운드)에 대한 데이타와 제어 정보를 저장하는 메모리 영역. 독자적인 공간
3. parameter file : pfile(initSID.ora), spfile(spfileSID.ora)
4. password file
5. diagnostic file


참고사항

- DBA가 해야 하는 일
    성능이나, 문제 발생을 고려하여 필수 공용 공간을 마련해야한다.(Spread!!)
    data file , online redo log file, offline redo log file -> 2벌씩 해 놓아야 한다.(다중화)
                                
- backup : 복사
  recovery : 복구
  restore : 복원

- online redo log file : database내의 redo log file
   offline redo log file(= archived log file : 쌓아둔 로그 파일)
            : 데이터베이스 밖의 redo log file로 archiver에 의해 복사되는 곳의 파일도 redo log file

- offline redo log file을 만드냐 안만드냐에 따라서 모드가 다름
   no archive log모드
   파일 하나를 채우면 그 다음 파일에 채운다. 1, 2, 3개가 있다면 1이 차면 다음으로 2를 채우고, 2가 다 차면 3을 채우고,
   그 다음은 1에 덮어쓴다.(log switch라고 함)

   archive모드
   첫번째, 두번째, 세번째 redo log file이 모두 쓰였다고 하면, 첫번째 파일에 덮어쓰기 전에 redo log file을 복사 후 
   offline redo log file쪽으로 가져다 놓고. 첫번째 redo log file에 덮어씀
   그 이후도 같은 형식으로 함.

- archived data file : 백업한 데이터 파일을 일컫는다.

- archived log file의 삭제에 대한 기준 시간을 정하고 그 전 데이터들은 완전히 삭제한다.(복구 불가능)

- 데이터 파일은 다중화 하지 않는다.


참고 : http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/intro.htm#i62345

'Oracle > Admin' 카테고리의 다른 글

Query 실행순서(update)  (0) 2009.11.19
Query 실행순서(select)  (0) 2009.11.19
isql*plus에서 dba유저 로그인 설정  (0) 2009.11.16
SQL문의 처리 단계  (0) 2009.11.14
SGA  (0) 2009.11.10
Posted by 자수성가한 부자
Oracle/Admin2009. 11. 16. 15:18

isqlplus로 dba가 직접 로그인하기 위해서는 몇가지 설정이 필요하다.

아래의 설정을 하면 isql*plus에서도 sys, sysdba권한의 유저도 로그인이 가능하게 된다.

================================
 iSQL*PLUS dba 를 위한 설정
================================

C:\> cd C:\oracle\product\10.2.0\Db_1
C:\> cd oc4j\j2ee\isqlplus\application-deployments\isqlplus

C:\> rem 암호는 welcome으로 바꾸어준다.
C:\> C:\oracle\product\10.2.0\Db_1\jdk\bin\java -Djava.security.properties=C:\oracle\product\10.2.0\Db_1\sqlplus\admin\iplus\provider -jar C:\oracle\product\10.2.0\Db_1\oc4j\j2ee\home\jazn.jar -user "iSQL*Plus DBA/admin" -password welcome -shell

JAZN:> adduser "iSQL*Plus DBA" oracledba oracle
JAZN:> listusers "iSQL*Plus DBA"
JAZN:> grantrole webDba "iSQL*Plus DBA" oracledba
JAZN:> setpasswd "iSQL*Plus DBA" admin welcome oracle
JAZN:> setpasswd "iSQL*Plus DBA" oracledba oracle oracle
JAZN:> exit

OS] notepad C:\oracle\product\10.2.0\db_1\oc4j\j2ee\isqlplus\application-deployments\isqlplus\config\jazn-data.xml


웹브라우저에서 isqlhome/dba로 접속하면 sys, sysdba권한 유저가 로그인할 수 있는 화면이 나온다.


출처 : http://cafe.naver.com/gseducation/87

'Oracle > Admin' 카테고리의 다른 글

Query 실행순서(select)  (0) 2009.11.19
Oracle Architecture  (0) 2009.11.18
SQL문의 처리 단계  (0) 2009.11.14
SGA  (0) 2009.11.10
리스너에 여러 포트를 사용하고 싶을 때 추가 방법  (0) 2009.10.21
Posted by 자수성가한 부자
Oracle/Admin2009. 11. 14. 20:27

'Oracle > Admin' 카테고리의 다른 글

Query 실행순서(select)  (0) 2009.11.19
Oracle Architecture  (0) 2009.11.18
isql*plus에서 dba유저 로그인 설정  (0) 2009.11.16
SGA  (0) 2009.11.10
리스너에 여러 포트를 사용하고 싶을 때 추가 방법  (0) 2009.10.21
Posted by 자수성가한 부자
Oracle/Admin2009. 11. 10. 22:01

SGA

오라클 서버의 메모리 영역이다.

SGA는 Oracle의 인스턴스에 대한 데이타와 제어 정보를 가지는 공유 메모리 영역의 집합이다.

사용 목적의 따라 오라클 파라미터 파일(init.ora)의 조정으로 SGA의 각 부분의 크기를 
조절 할 수 있다.
(initSID.ora 파일의 large_pool_size=8388608,    shared_pool_size=50331648 이렇게 사이즈가 지정되어 있다)

Oracle9i부터 오라클 서버의 종료 없이 SGA의 구성을 SGA_MAX_SIZE 파라미터 값 범위 내에서만 각각의 
크기를 동적으로 변경 가능하다

Oracle 서버를 동시에 사용하고 있는 사용자는 시스템 글로벌 영역의 데이타를 공유한다.

구성요소로는
   - 공유풀(Shared Pool)
   - 데이터베이스 버퍼캐쉬(Database Buffer Cache)
   - 리두로그버퍼(Redo Log Buffer)
   - 라지풀(Large Pool)
   - 자바풀(Java Pool)
이렇게 5가지가 있다.


공유풀(Shared Pool)
  - Library Cache와 Data Dictionary Cache로 구성
  - 하나의 데이터베이스에 행해지는 모든 SQL문을 처리하기 위해 사용
  - 문장을 실행하기 위해 그 문장과 관련된 실행계획과 구문 분석 정보가 들어있음
  - Shared Pool의 사이즈는 SHARED_POOL_SIZE 파라미터 값으로 결정함.

  Library Cache
    - 가장 최근에 사용된 SQL문장의 명령문과 구문분석 트리, 실행계획 정보를 가지고 있다.
    - Shared SQL과 Shared PL/SQL영역으로 구분되어 있다.
       - Shared SQL 영역 : 
             SQL문장에 대한 실행계획과 파싱트리를 저장하고 공유
             동일한 문장의 다음번에 실행되면 Shared SQL 영역에 저장되어 있는 실행계획과 파싱트리를 그대로 이용하기
             때문에 SQL문장의 처리속도는 향상됨

       - Shared PL/SQL 영역 : 
             가장 최근에 실행한 PL/SQL 문장을 저장하고 공유함
             파싱 및 컴파일 된 프로그램 및 프로시져(함수, 패키지, 트리거)가 저장됨
                                  
  Data Dictionary Cache
     - 테이블, 컬럼, 사용자 이름, 사용 권한 같은 가장 최근에 사용된 데이터 사전의 정보를 저장하고 있음
     - 구문 분석 단계에서 서버 프로세스는 SQL문에 지정된 오브젝트 이름을 찾아내고 접근 권한을 검증하기 위해
        Dictionary Cache의 정보를 찾아봄


데이터베이스 버퍼캐쉬(Database Buffer Cache)
  - 가장 최근에 사용된 데이터 블럭을 저장하는 메모리 공간. 이 버퍼는 아직까지 디스크에 완전히 쓰여지지 않는
     수정된 데이터를 보유할 수도 있음.
  - LRU알고리즘에 의하여 가장 오래전에 사용된 것은 디스크에 저장하고 메모리에는 가장 최근에 사용된 데이터를
    저장함으로, 디스크 입출력이 줄어 들고, 데이터베이스 시스템의 성능이 증가됨.

    ※ LRU 알고리즘 : 최근에 사용된 블록을 유지하기 위해 오래된 것을 제거하는 알고리즘.


리두로그버퍼(Redo Log Buffer)
  - 데이터베이스에서 일어날 모든 변화를 저장하는 메모리 공간
  - DB에서 발생한 모든 변화는 LGWR에 의해 리두 로그 파일에 저장
  - 데이터베이스의 변경 사항 정보를 유지하는 SGA에 있는 Circular(순환) 버퍼임
  - 리두로그버퍼의 크기는 오라클 파라미터 LOG_BUFFER에서 지정함

자바풀(Java Pool)
  - 자바로 작성된 프로그램을 실행할 때 실행 계획을 저장하는 영역 입니다
  - JAVA_POOL_SIZE 파라미터로 관리되며, 기본 크기 24MB가 할당됨.

라지풀(Large Pool)
  -  Oracle 백업 및 복원 작업에 대한 대용량 메모리 할당, I/O 서버 프로세스 및 다중 스레드 서버와 Oracle XA에
      대한 세션 메모리를 제공하는 SGA의 선택적인 영역
  - LARGE_POOL_SIZE 파라미터로 관리되며, 기본 크기는 0bytes임.


출처 : http://oracleclub.com/oraclelecture.action?lectureType=ADMIN

'Oracle > Admin' 카테고리의 다른 글

Query 실행순서(select)  (0) 2009.11.19
Oracle Architecture  (0) 2009.11.18
isql*plus에서 dba유저 로그인 설정  (0) 2009.11.16
SQL문의 처리 단계  (0) 2009.11.14
리스너에 여러 포트를 사용하고 싶을 때 추가 방법  (0) 2009.10.21
Posted by 자수성가한 부자
Oracle/Admin2009. 10. 21. 08:56

오라클 서버에서 리스너에 여러포트를 사용하고 싶을 경우가 있다

예를 들어 관리자용 특정 포트라던지..

Oracle10g em 에서 em이 서버리스너에 붙는 포트가 고정되어 있어 , 서버에서 리스너 포트를

변경하면 em을 제대로 사용하지 못하는 경우가 발생할때 , em을 위한 리스너 포트도 만들어 주어야 하기 때문이다.

 

이는 매우 간단하다.

ex) listener.ora 파일예시

----------------------------------------file start--------------------------------------

# listener.ora Network Configuration File: /oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /oracle/product/10.2.0/db_1)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC3))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1523))
    )
  )
----------------------------------------file end--------------------------------------

원하는 포트를 추가하고 싶으면 주황색으로 강조 표시 한부분 처럼 한줄 붙여넣고 리스너를 재시작 해주면 된다.

ex) listener.ora 수정 -->  lsnrctl stop  --> lsnrctl start


'Oracle > Admin' 카테고리의 다른 글

Query 실행순서(select)  (0) 2009.11.19
Oracle Architecture  (0) 2009.11.18
isql*plus에서 dba유저 로그인 설정  (0) 2009.11.16
SQL문의 처리 단계  (0) 2009.11.14
SGA  (0) 2009.11.10
Posted by 자수성가한 부자