블로그 이미지
소낑
혼자 정리하고 혼자 보는 초보개발자 소끼월드

calendar

1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

Notice

Tag

'데이터베이스/Oracle'에 해당되는 글 1

  1. 2017.01.12 DRCP
2017. 1. 12. 17:39 데이터베이스/Oracle


DRCP(Database Resident Connection Pooling, 데이터베이스 상주 커넥션 풀링)

데이터베이스에 연결하여 세션을 만드는 Oracle 11g의 새로운 기능.
자체적으로 커넥션 풀링을 지원하지 않는 애플리케이션 인터페이스(가령, 범용적인 목적의 웹 스크립팅 언어인 PHP)를 위해 설계된 방법이다.
DRCP는 dedicated server와 shared server를 섞어 놓은 개념이다.
서버 프로세스를 풀링하는 개념은 shared server 방식과 동일하지만, 풀을 구성하는 서버 프로세스는 shared server가 아니라 dedicated server만 가능하도록 dedicated server 개념을 차용했다.
shared server 커넥션에서 shared server 프로세스는 다수의 세션이 공유하고, 단일 세션은 다수의 shared server 프로세스를 사용한다.
그러나 DRCP에서는 풀에서 선택된 dedicated server 프로세스는 살아있는 동안에는 클라이언트 프로세스와 일대일 매핑된다.
shared server의 경우, 세션에서 세 가지 SQL 문을 실행하면 세 개의 서로 다른 shared server 프로세스가 각 SQL 문을 수행한다.
DRCP를 사용하는 경우, 풀에서 세션에 할당된 dedicated server가 세 개의 SQL 문을 모두 수행한다.
사용자 세션이 dedicated server를 다시 풀로 보낼 때까지는 사용자 세션만을 위한 전용 서버가 된다.
그래서 DRCP는 shared server의 풀링 기능과 dedicated server의 성능을 갖고 있으며 자주 커넥션을 연결해서 상대적으로 작은 처리를 하고, 커넥션을 끊는 일을 반복적으로 수행하는 어플리케이션단에서 효과적이다

http://www.oracle.com/technetwork/topics/php/whatsnew/php-scalability-ha-twp-128842.pdf

https://docs.oracle.com/cd/B28359_01/server.111/b28310/manproc004.htm



MINSIZE   풀의 풀 서버의 최소 개수.  기본값은 4입니다. 
MAXSIZE   풀의 풀 서버의 최대 개수.  기본값은 40입니다. 
INCRSIZE   클라이언트 응용 프로그램 요구 수치 때 서버를 사용할 수없는 경우에 수영장이 증가되는 수영장 서버의 수.  기본값은 3입니다. 
SESSION_CACHED_CURSORS   각 수영장 서버 세션 캐시 세션 커서의 수.  기본값은 20입니다. 
INACTIVITY_TIMEOUT   수영장 서버 풀에서 유휴 상태로 대기하는 최대 시간 (초)입니다.  이 시간이 지나면 서버가 종료됩니다.  기본값은 300입니다. 
 이 매개 변수는 풀이 MINSIZE 경우 적용되지 않습니다. 
MAX_THINK_TIME   클라이언트가 수영장에서 수영장 서버를 얻은 후에 비활성하는 최대 시간 (초)입니다.  클라이언트 응용 프로그램 풀에서 수영장 서버를 검색한 후, MAX_THINK_TIME 지정된 시간에 데이터베이스 호출을 실행하지 않으면 풀 서버는 풀어 클라이언트 연결이 종료됩니다.  기본값은 30입니다. 
MAX_USE_SESSION   수영장 서버가 수영장에서 가져 수영장에 풀어 놓을 수.  기본값은 5000입니다. 
MAX_LIFETIME_SESSION   수영장 서버 풀에 존재하는 시간 (초).  기본값은 3600입니다. 
NUM_CBROK   클라이언트 요청을 처리하기 위하여 만들어진 연결 브로커의 수입니다.  기본값은 1입니다. 
 다중 연결 브로커 프로세스를 생성하면 많은 클라이언트 응용 프로그램이있는 경우 클라이언트 연결 요청의 부하를 분산시킬 수있습니다. 
MAXCONN_CBROK   각 연결 브로커가 처리할 수있는 최대 연결 수. 
 기본값은 40000입니다.  그러나 데이터베이스가 설치된 플랫폼에 허용되는 최대 연결이 기본값보다 낮은 경우는 MAXCONN_CBROK 사용하여 설정한 값은 그 값으로 덮어 씁니다. 
 MAXCONN_CBROK 지정된 연결을 지원하도록 운영 체제를 프로세스당 파일 디스크립터 제한 충분히 큰 값으로 설정하십시오.

 CONFIGURE_POOL 시저 사용 
 DBMS_CONNECTION_POOL 패키지 CONFIGURE_POOL 시저를 사용하면 고급 옵션을 사용하여 연결 풀을 구성할 수있습니다.  이 절차는 연결 풀링의 모든 매개 변수를 변경해야하는 경우에 사용합니다. 
 ALTER_PARAM 절차 
 DBMS_CONNECTION_POOL 패키지 ALTER_PARAM 시저를 사용하면 특정 구성 매개 변수를 다른 변수에 영향을주지 않고 변경할 수있습니다.  예를 들어, 다음 명령은 사용되는 풀 서버의 최소 개수가 변경됩니다. 
 SQL "EXECUTE DBMS_CONNECTION_POOL.ALTER_PARAM (′′,′ MINSIZE ′, ′10′);
 다음 예제에서는 각 연결 브로커 처리할 수있는 최대 연결 수를 50000으로 변경됩니다. 
 SQL "EXECUTE DBMS_CONNECTION_POOL.ALTER_PARAM (′′,′ MAXCONN_CBROK ′, ′50000′);
 이 명령을 실행하기 전에 데이터베이스가 설치되어있는 플랫폼에서 허용되는 최대 연결 수를 MAXCONN_CBROK 설정한 값보다 없는지 확인합니다. 
 예를 들어, Linux에서는 /etc/security/limits.conf 파일에 다음 항목이 있으면 사용자 test_user 허용되는 최대 연결 수는 30000입니다. 
 test_user HARD NOFILE 30000
 각 연결 브로커가 처리할 수있는 최대 연결 수를 50000으로 설정하려면 먼저 limits.conf 파일에서 값을 50000 이상의 값을 변경합니다. 
 연결 풀링의 기본 설정 복원 
 연결 풀링 매개 변수를 수정 후 기본 풀 설정으로 되돌리려면, DBMS_CONNECTION_POOL 패키지


출처 :http://m.blog.naver.com/hiizero/220558640043, 구루비, http://netbuysell.co.kr/global_asp/board/board_view.asp?K_no=1130&page=&Hit_Plus=1&Codeno=5&Pgtype=A&Html_change= 등등...

posted by 소낑
prev 1 next