SPATIUM Desktop
주소복사
About Operating System Languages Tools Favorites Notice Visit TEST  
     ADK (3)
     android (3)
     ASP (5)
     ASP.Net (1)
     C# (5)
     HTML (9)
     JAVA (7)
     JavaScript (9)
     jQuery (5)
     Mobile Web (2)
     node.js (1)
     Oracle (8)
     PHP (7)
     Spring Framework (4)
     SQL (17)
     WPF (5)
   ID  
   Password  
  |  
  Location United States
  IP Address 35.173.48.18
2024. 10
12345
67891011
12
13141516171819
20212223242526
2728293031
Category  Languages, Oracle
Writer 김태우 Date 2016-03-01 11:25:01 Visit 5580
Oracle 기본(RAC)

 

RAC의 등장과 개념

 

도입, 기본용어

 
DBMS : 데이터를 저장하고 사용자가 원하는 자료를 조회, 수정, 삭제 등의 작업을 해주는 프로그램이다.
Instance  : 데이터를 가져와서 작업하는 작업장 
Database : 데이터를 저장하고 있는 창고
Instance 와 Database : 데이터베이스에 저장된 자료는 서버가 꺼져도 안전하게 저장되어야하므로 HDD에 저장되어 있고, 인스턴스는 여러 사용자가 접속해서 빠른 서비스를 제공해야 하므로 RAM에 저장된다. 데이터베이스에 자료를 저장해 두고 필요할때마다 자료를 인스턴스에 가져와서 작업을 수행하고 작업이 끝나면 그 내용을 다시 데이터베이스에 저장하는 원리로 작동된다. 이때 Instance와 Database를 왔다갔다하면서 작업을 해주는 것을 프로세스f라고 한다. 프로세스에는 서버프로세스와 백그라운드 프로세스가 있다.
single server : 데이터베이스 하나에 하나의 인스턴스를 할당하여 구성하는 것. 즉 하나의 창고에 하나의 작업장으로 연결된 방식이다.
OPS (Oracle Parallel Server) : 하나의 데이터베이스에 여러개의 인스턴스를 구성하는 방식으로 8i 까지는 OPS라고 불렀고 9i부터는 RAC(Real Application Cluster) 라고 부른다.
 
 

single server 구성

 
single server는  하나의 Storage에 하나의 Instance 서버 로 구성되고 instance sever에 여러 사용자가 접속하여 서비스를 받게된다.
그런데 문제는 이러한 구성에서 instance sever에 장애가 발생하게되면 Storage 에 저장된 데이터를 모두 사용할 수 었는 위험이 존재한다.
 
비유하자면 은행에 돈을 맡기는데 은행 금고하나에 창구가 하나 밖에 없는 상황이다.
은행에 고객들이 자신의 소중한 돈을 맡겼지만 은행 창구가 문을 닫으면 또는 은행 창구에 문제가 생기면 자신이 맡겼던 돈을 찾을 수도 없고, 대출을 받을 수 없는 상황이 발생하게된다.
이러한 문제를 보완하기 위하여 HA구조가 등장하게 된다.
 
 
 

HA (High Availability - 고가용성)

 
서버의 사용가능 시간을 최대한으로 늘리는 것이 목표인 서버 구성방법이다.
서버를 동일하게 두대를 구성하되 하나는Active로 실제 사용하는 서버, 다른 하나는 Stanby로 설정한다.
Active서버에 장애가 발생할 경우 Stanby 서버가 그 즉시 Active상태로 바뀌어서 서비스 중단이 발생하지 않도록 하는 구성이다.
오라클에서는 Dataguard 방식이 HA 구성 방식이다.
 
은행비유를 다시적용하자면 HA방식은 기존의 1번 창구 하나를 두고, 보조 창구인 2번 창구를 하나더 만들어 둔다. 은행 금고 하나에 창구하나 이런 세트를 하나더 만들어서 두 세트를 준비둔다. (즉 1번창구 - 1번 금고, 2번창구- 2번금고) 
평소에는 1번 창구에서 업무를 보다가 1번 창구에 문제가 생기면 2번 창구로 업무를 넘기는 방법이다. 1번에서 업무를 보다가 장애가 생기면 2번 창구로 가서 처음부터 다시시작해야 한다. 또한 1번창구에 연결된 1번 금고의 잔고가 바뀌면 2번 창구에 연결된 2번 금고잔고도 바꾸어 주어야 한다.
 
 HA 방법에도 문제점이 존재한다. 발전시킨 OPS 방식이 도입된다
 
 
 

OPS

 
 OPS (Oracle Parallel Serve)는 앞서 언급한 HA의 문제점을 보완한 방식이다.
stanby 로 준비해둔 서버는 장애가 발생하지 않는한 이용률은 제로에 가깝다. Stanby는 한가로운데 비해 Active 서버는 부하가 발생한다. 이런 비효율적인 부분을 개선하였다.
OPS방식은 하나의 Storage 서버에 두개의 Instance Server를 두는데 두 서버를 모두 Active로 만들어서 부하를 분산시킨다.
 
HA방식에서 Active에서 장애가 발생하면 기존의 서비스는 모두 취소되고 Stanby로 서비스를넘긴다. 그러나 OPS 에서는 CTF, TAF 라는 설정을 통해 기존서버에 장애가 발생할 경우 해당 작업을 그대로 다른 서버로 넘길수 있다.
 
HA 방식의 문제점은 각 서버별로 Storage를 가지고 있기 때문에 데이터의 동기화 문제도 발생한다. 즉 Active sever에 의해 변경된 작업이 Stanby sever에 반영되지 못한 경우 데이터의 불일치 문제가 생길수 있다. 따라서 OPS는 1개의 Storage를 공유해서 사용하기 때문에 데이터의 동기화 문제는 발생하지 않는다.
 
HA는 두개의 서버로 구성되나 OPS나 RAC는 이론적으로 서버수의 제한이 없고 확장이 가능하다는 장점이 있다.
 
OPS 에서도 RAC Ping 이라는 현상으로 인한 심각한 성능저하라는 또 다른 문제가 발생한다.
 
 은행비유 - 은행 창구를 두개로 운영하는데 금고를 하나로 두고 두 창구를 동시에 운영하는 방식이다.창구 하나에서 하던일을 나눠가지므로써 빨리 빨리 손님을 응대할 수 있다. 창구하나에서 문제가 생기면 담당자가 옆 창구에 이를 알리면서 업무를 처리하던 손님을 옆으로 넘기는 방식이다. 하나의 금고를 쓰기때문에 이중으로 금고를 관리했던 이전 방법에 비해 단순하다.
 
 

RAC

 
OPS에서도 RAC ping이라는 문제가 발생해서 심각한 성능저하가 발생한다. 
인스턴스 1에서 데이터를 변경하고 완료 했을때 그 내용을 인스턴스2가 조회한다면 인스턴스1의 변경내용은 반드시 디스크(storage)에 저장한 후에  인스턴스2로 복사해 올수 있다. 이 과정에서는 디스크를 사용하기 때문에 시간이 오래 걸린다. 이를 RAC ping 이라고 한다.
 
어떤 Instance 에서 변경된 데이터를 다른 Instance 에서 참조하기 위해서는 Disk 로 저장 한 후 다시 불러와야 하는 것이다. 이때 지연이 발생한다.
 
이러한 RAC ping 현상을 해결한 것이 9i 부터 등장한 RAC(Real Application Cluster)이다.
 
Oracle 9i 버전부터는 서로 다른 Instance 에서 변경된 데이터를 디스크를 거치지 않고 바로 Instance 로 가져올 수 있는 기능인 Cache Fusion (캐시 퓨전) 이라는 기능이 사용된다. 
캐시퓨전은 서로 독립적인 인스턴스를 마치 하나의 인스턴스인것 처럼 데이터의 교환이 이루어지면서 섞여 있다라는 의미로 해석할 수 있을것 같다. 캐시퓨전 기능은 각 인스턴스를 하나의 서버처럼 만들어 주기 때문에 사용자는 어떤 서버에 접속했는지는 별로 중요하지 않다.
 
interconnect 
인스턴스간의 데이터 교환을 직접적으로 할 수 있도록 연결해 준다.
interconnet가 있어서 cache fusion이 가능하다
 

클러스터용 소프트웨어 

캐시퓨전 기능을 가능하게 해주는 프로그램을 클러스터용 소프트웨어라고 한다.
여러 인스턴스에서 데이터가 조회되고 변경되어도 무결성이 유지되도록 관리해주며 각 인스턴스간에 생기는 변동사항을 조정하고 관리해주는 역할을 한다. 
이전에는 클러스터 프로그램을 오라클이 직접 만들지 않았다 10g R1버전부터 클러스터용 프로그램을 오라클에서 직접 만들어 제공하기 시작하였다.
10g R1에서는 CRS (Cluster Ready Service)
10g R2 버전부터는 Clusterware
11g 에서는 ASM기능이 통합되어 grid라는 명칭으로 변경되었다.
 
 
리스너(Listener)란?
 
 - 오라클 리스너는 네트워크를 이용하여 클라이언트에서 오라클 서버로 연결하기 위한  
   오라클 네트워크 관리자 입니다.
 - 오라클에서 네트워크를 통한 연결은 모두 리스너가 담당하며 리스너와 연결되기
   위해서는 클라이언트에 오라클 NET8이 설치되어 있고 이를 통해 오라클 서비스명이라는 
   것을 만들어 접속해야 합니다.
 - 오라클 서버에서 리스너를 시작시켜줘야 클라이언트들이 접속할 수 있습니다.
 - lsnrctl명령어로 리스너를 관리 할 수 있습니다.
 
-- 리스너 시작하기 
C:>lsnrctl 
LSNRCTL for 32-bit Windows: Version 8.1.6.0.0 - Production on 01-MAY-2002 23:34:57
(c) Copyright 1998, 1999, Oracle Corporation.  All rights reserved.
LSNRCTL에 오신 것을 환영합니다. 정보를 보시려면 "help" 를 입력하십시오.
 -- start를 입력하면 리스너가 시작됩니다. 
LSNRCTL>start 
 
 

DB에 접속하는 클라이언트 프로그램의 경우 접속하고자 하는 오라클 인스턴스 정보를

필요로 합니다. 클라이언트 프로그램이 접속하는데 필요한 정보는 서버IP, 오라클SID, 접속프로토콜 
같은 정보가 필요하지요. 이러한 정보를 묶어서 서비스명으로 대표하고, 
이 서비스명으로 클라이언트 프로그램이 서버에 접속하는데 사용합니다.

이 정보는 클라이언트쪽의 TNSNAMES.ORA라는 파일에 정의 되어있습니다.

 

-- 리스너 관련 명령어들
시작시 : LSNRCTL> start
멈출 때 : LSNRCTL> stop
재시작시 : LSNRCTL> reload
서비스 상태보기 : LSNRCTL> status
명령어 보기 : LSNRCTL> help
 
오라클 서버/클라이언트간의 네트워크 설정을 하기위해서는 서버에서는 listener.ora파일을 그리고 
클라이언트에서는 tnsnames.ora파일을 설정해 주어야 합니다. 
 
◈ listener.ora 
 - 오라클 서버에서 클라이언트의 요청을 듣고, 클라이언트와의 통신을 환경을 설정하는 
   파일입니다. 
 - 오라클 서버에 존재하며, 오라클 클라이언트에서 서버로 접속할 때 필요한 프로토콜 및 
   포트정보등을 설정하는 파일 입니다. 
 - 프로토콜은 주로 TCP/IP가 많이 사용됩니다. 
 
◈ tnsnames.ora
 - 오라클 Client측에서 오라클 서버로 접속할때 필요한 프로토콜 및 포트번호, 서버주소, 
   인스턴스등을 설정해주는  파일로서 클라이언트에 위치 합니다. 
 
*  참고
 - listener.ora와 tnsnames.ora파일의 위치는 ORACLE_HOME/network/ADMIN/에 존재 
   합니다. 
 - linstener.ora와 tnsnames.ora는 둘다 오라클 설치시 Net8 configuration 작업을 해주면 
   생성이 됩니다.
Tags  Oracle, instance, database, OPS, RAC
  Relation Articles
[Languages-SQL] ORACLE PROCEDURE SAMPLE (2019-08-30 18:08:49)
[Languages-Oracle] Oracle 기본(RAC) (2016-03-01 11:25:01)
[Languages-Oracle] Hint of RBO and CBO (2015-07-16 17:00:20)
[Languages-Oracle] [Oracle Study 4W] 인덱스 (2015-02-24 23:25:15)
[Languages-Oracle] [Oracle Study 3W] Explain Plan, Auto Trace, SQL 트레이스 (2015-02-08 23:48:43)
[Languages-Oracle] [Oracle Study 2W] SQL 처리 과정 (2015-01-28 01:45:22)
[Languages-Oracle] [Oracle Study 1W] Oracle 기본 아키텍처 (2015-01-26 01:06:36)
[Tools-DB] Oracle SQL Developer ( 오라클 DB 접속 프로그램 ) (2011-09-16 10:54:26)
  Your Opinion
Member ID
150 letters
Copyright (C) SPATIUM. All rights reserved.
[SPATIUM]WebMaster Mail