'OS_NETWORK_Storage'에 해당되는 글 19건

  1. 2011.03.17 NAS, SAN, DAS
  2. 2011.03.14 vi 에디터 문자 모두 바꾸기
  3. 2011.02.06 XA 와 nonXA 1
  4. 2010.03.20 raw device란?
  5. 2009.12.08 alias 추가
  6. 2009.10.05 쉘(shell)과 커널(kernel) 1
  7. 2009.10.05 Subnet Mask
  8. 2009.10.05 IPv6
  9. 2009.10.05 IPv4
OS_NETWORK_Storage2011. 3. 17. 21:24





오라클 데이터베이스
그 중에서도 RAC를 설치할 때는 시스템 엔지니어들과 회의를 해야될 때가 있다.
그 때 아래 그림에 나오는 단어들을 모른다면 당황할 수 밖에 없고, 작아질 수 밖에 없다.
보고 열심히 익혀두자.


0


'OS_NETWORK_Storage' 카테고리의 다른 글

ipcs 에 관하여  (0) 2013.01.15
vmstat  (0) 2011.03.25
vi 에디터 문자 모두 바꾸기  (0) 2011.03.14
XA 와 nonXA  (1) 2011.02.06
raw device란?  (0) 2010.03.20
Posted by 자수성가한 부자
OS_NETWORK_Storage2011. 3. 14. 09:36






%s/<바꾸기전 문자열>/<바꾼후 문자열>/g

'OS_NETWORK_Storage' 카테고리의 다른 글

vmstat  (0) 2011.03.25
NAS, SAN, DAS  (0) 2011.03.17
XA 와 nonXA  (1) 2011.02.06
raw device란?  (0) 2010.03.20
alias 추가  (0) 2009.12.08
Posted by 자수성가한 부자
OS_NETWORK_Storage2011. 2. 6. 12:43






XA 갖고 흔히 고민하는 것은, "어떤 것까지를 XA로 짜느냐"입니다...
그래서, 처음에 표준을 제안하는 컨설턴트 엔지니어의 취향 또는 판단에 따라서 <DML을 포함하는 모든 서비스는 XA로 한다>는 경우도 있고, 제가 항상 주장하는 "XA 최소주의"처럼, 웬만하면 nonXA로 짜게 하는 경우도 있습니다.

그것은 XA 인터페이스의 특징을 얼마나, 어떻게 사용 할것인지.. 아니면 사용 안할 것인지로 결정을 해야 합니다. 그러자면 먼저 XA를 쓰는 AP가 어떻게 돌아가는지 이해 할 필요가 있겠군요...


1) XA와 nonXA의 개요

XA를 사용하지 않는.. nonXA라고 표현하는 유형의 AP는 AP에서 RM(=Resource Manager ; DBMS)에 직접 연결합니다. 물론 여기에서도 트랜젝션 관리는 가능합니다만, 이 트랜젝션이란게 결국 '서비스' 범위 안에서만 관리가 되겠지요. DBMS의 기본기능에 의한 관리니까요..

이걸로도 관리는 됩니다. 하지만, transaction의 처리 상황을 client 에서는 전혀 어찌 control을 한다거나 coordinating을 한다거나 할 수가 없다는 점은 nonXA의 어쩔 수 없는 한계이지요. 그러다보니, 여러회의 service call을 통틀어 관리해야 한다거나 하는 것은 어찌할 도리가 없는 것이 nonXA 입니다.
뭐 그래서 TUXEDO/TMAX를 안쓴다면 업무 자체를 한 서비스에 여러 단계의 SQL을 넣어서 1 call로 처리하도록 설계 하겠죠. 하지만 이건 비효율적입니다.

그래서 XA라는 놈을 쓰는데.. XA는... RM에 직접 맺어야 할 세션을 TM으로 가서 맺습니다. TM은 Transaction Manager라는 entity인데 보통 'TMS'라고 부르는 서버 프로세스입니다. 이 녀석이 DBMS보다 한 꺼풀 위에서 transaction 처리를 맡습니다. 물론 low-level한 수준은 아니지만 SQL문 단위가 아닌 service call 단위로 transaction을 관리하지요...

그리고 xa 특유의 동작을 위해 TM이 RM과 연결하여 communication을 하는데, 이것은 AP 개발자가 신경 쓸 영역은 아니지요.

여기서 AP와 TM 사이의 인터페이스를 TX 인터페이스라고 부르고....
TM과 RM사이의 인터페이스를 XA 인터페이스라고 부르는 것입니다.

차이가 있죠? nonXA는 AP와 DBMS가 SQL이라는 일종의 'RM-AP interface'로 붙고..
XA는 AP와 DBMS가 TMS를 매개로 TX->XA의 두 가지 인터페이스를 거쳐서 붙네요.

그만큼 overhead도 있고 performance delay도 있을 수 있다는 얘기가 됩니다.
그래서.... 사실 모든 AP를 XA로 짜는 것도 가능은 하지만.. 그렇게 하지 않는 것입니다.
(사실 XA call은 GTT를 소모하므로 MAXGTT 및 TLOG등의 size도 키워야 하는 점도 있구요... ^^)


2) XA와 nonXA의 장단점.

XA를 써서 좋은 점이 뭘까요? 그렇죠... 가장 먼저 나오는게 global transaction.. GT 입니다. 한 클라이언트에서 서로다른 여러개의 service를 왕창 call 해서 그것을 transaction 으로 묶고 한꺼번에 '모 아니면 도' 시스템. 영어로는 'all-or-nothing' 이라고 부르는 방식으로 처리를 할 수 있습니다. (transaction 관리의 기본은 '모 아니면 도'잖아요.. ^^)
즉, client에서 transaction coordinating을 할 수 있다는 것이죠.

그래서 좋은 점은? 네에.. XA 안쓰면... 한 서비스 안에 "이렇게 하고 저렇게 하고 그렇게 해서 요렇게 해라.." 라는 로직을 모두 넣어놓고, 그걸 commit 하든 rollback 하든 해야 하지만... XA를 쓰면 "이렇게"를 하나 짜고.. "저렇게"를 하나 짜고.. "그렇게"도 따로 짜고.. "요렇게"도 따로 짤 수 있습니다.... XA를 안쓴다면 만일 "저렇게 하고 요렇게 한 다음에 이렇게 하자"는 프로그램을 짜야 한다고 해도, 뭐 생판 첨부터 따로 짜야 하지만, XA를 사용하면 그냥 순서만 바꿔서 call 하면 되겠죠? 이것이 down sizing의 묘미잖아요... 이것이 성능향상도 가져올 수 있구요.

나쁜점은 아까도 얘기했지만 느려질 수 있다는거.. 부하가 쫌 간다는거...
보통 성능을 재는 단위는 TPS를 씁니다. Transactions Per Second 인데, 1초에 몇 트랜젝션을 처리하느냐 하는 것이죠... 그게 약 25% 정도가 감소한다는 것이 정설입니다. 좀 크죠? ^^


3) 그러면 도대체 어떤 놈을 XA로 해야 하는가?

XA로 해야 하는 서비스는 어떤 것일까요? 대충 이렇게 정리하고 싶군요..

    - global transaction에 묶여야 하는 서비스.
    - client가 transaction coordinator가 되는 경우. (= 클라이언트가 커밋해야 하는 경우)
    - timeout 관리가 필요한 경우.

이렇게 나눠볼 수 있겠습니다. 어떻게 보면 여기에 해당되는 서비스는 많지 않을 수 있지요.. 그게 정상입니다. 명심해야 할 것은, XA 인터페이스를 통하면 25%의 속도저하가 있습니다. 25%라는 숫자가 별로 크게 다가오지 않는다면야 할 말이 없지만.. 흐..

그렇다면, GT에 묶이지도 않고, 굳이 클라이언트에서 확인빨 때려서 커밋할 필요도 없고, 속도도 빨라서 timeout 관리도 필요 없고 단발성이고.. 뭐 이러면 이건 nonXA로 해서 서비스 안에 일일이 EXEC SQL COMMIT WORK; 이니 하는 문장을 넣어야 하느냐?

맞습니다. 그게 낫다는 것입니다. 하지만 저 commit 문장을 진짜로 넣을지 말지는 표준안의 process frame과 API wrapping을 잘 하셔서, 개발자 입장에서는 아무 생각없이 짜더라도 처리가 되도록 하는 것이 좋겠지요. 왜냐? 나중에라도 XA 서비스로 전환해야 한다면 손쉽게 전환해야 하기 때문이기도 합니다. ^^



출처 : http://ask.nate.com/qna/view.html?n=6077395

'OS_NETWORK_Storage' 카테고리의 다른 글

NAS, SAN, DAS  (0) 2011.03.17
vi 에디터 문자 모두 바꾸기  (0) 2011.03.14
raw device란?  (0) 2010.03.20
alias 추가  (0) 2009.12.08
쉘(shell)과 커널(kernel)  (1) 2009.10.05
Posted by 자수성가한 부자
OS_NETWORK_Storage2010. 3. 20. 13:21

흔히 유닉스에서 스토리지 디바이스를 억세스하는 방법에 따라

블록디바이스(/dev/dsk) 와 로(RAW)디바이스(/dev/rdsk) 로 구분을 합니다.

단어 그대로 이해를 한다면 블록디바이스에 블록은 파일시스템의 블록을 말하는 겁니다.

즉 로디바이스위에 파일시스템이 얹어 있다고 보면 됩니다.

OS 는 어플리케이션의 IO 요구에 따라 파일 시스템에서 읽어 오느냐 ,

로 디바이스(파일시스템 보다는 더 하위레벨)에서 읽어 오느냐가 억세스 방법에 의해서

차이가 있습니다.

로 디바이스는 파일시스템이 없기 때문에 당현히 파일, 디렉토리, 억세스컨트롤 등을

어플리케이션에서 직접 관리 해야 합니다.

로 디바이스를 데이타베이스에서 사용할 때 데이타 베이스는 자체적으로 블록과 익스텐트 등의

스토리지 관리 개념을 가지고 있기 때문에 OS레벨에서의 물리적인 데이타 파일 관리만 하면 됩니다.

(데이타 베이스에서 로디바이스를 사용하더라도 물리적인 디바이스(디스크)에 데이타 파일형태로 위치해야

하기 때문에 볼륨매니저 같은 가상 스토리지 개념이 필요합니다.)

일반적인 디스크는 I/O 다음과 같은 패스를 가집니다.

Application<->Library Buffer<->Operation System Cache<->File System/Volume Manager<->Device

그런데 로디바이스의 패스는 다음과 같습니다.

Application<->Device


흔히 DBMS 를 컨피그할때 데이타 파일의 위치를 놓고 RAW 와 파일시스템 비교를 많이 하게 됩니다.

나름대로 장단점이 있어 쉽게 판단 할수는 없지만 파일관리측면에선 파일시스템이 성능면에서는 로 디바이스가 낫습니다.

DBMS 시스템에서 파일시스템을 사용 할 경우 DBMS 의 가 자체 IO버퍼를 설정 하기 때문에

OS 의 파일시스템 캐시가 필요 없습니다. 이런 파일시스템의 단점을 보완하고자 솔라리스의 Direct I/O , 베리타스 파일시스템등

이 나오게 되었습니다. 이와 같은 더블 버퍼링 를 막음으로써 OS는 메모리 파일시스템 캐싱을 위한 메모리 매니지먼트가 필요없어지고,

DBMS 에서만 버퍼링을 하므로 메모리를 덜 소모하게 됩니다. 주소 변환을 할 필요가 없으니 캐시의 억세스 속도도 빨라지겠죠.

RAW의 장점을 하나더 말씀드리면 KAIO(kernal async IO) 입니다.

위의 IO패스에서 보듯이 로디바이스는 IO요구가 발생될때 유저라이브러리를 사용 하지 않고 커널 레벨에서 IO 가 이루어 지므로

명령이 단순해 져서 결과적으론 CPU를 덜 사용하게 됩니다.


출처 : http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=10302&docId=63819461&qb=cmF3IGRldmljZQ==&enc=utf8&section=kin&rank=3&sort=0&spq=0&pid=fIe7Og331yosssEVpKlssv--169396&sid=S6RJEjE8pEsAACHkFto

'OS_NETWORK_Storage' 카테고리의 다른 글

vi 에디터 문자 모두 바꾸기  (0) 2011.03.14
XA 와 nonXA  (1) 2011.02.06
alias 추가  (0) 2009.12.08
쉘(shell)과 커널(kernel)  (1) 2009.10.05
Subnet Mask  (0) 2009.10.05
Posted by 자수성가한 부자
OS_NETWORK_Storage2009. 12. 8. 08:48

리눅스에서 사용자 쉘이 배쉬쉘이 경우,
alias를 이용해서 복잡한 명령문을 단축시켜서 쓸 수 있다.

그러기 위해서는 명령을 미리 저장해 놓아야 한다.

배시 쉘 설정파일인 bash_profile을 vi 에디터로 연다.

OS] vi .bash_profile


파일에 아래의 내용을 추가한다.

alias sid='env|grep ORACLE_SID'


설정 내용을 적용시킨다.

OS] . .bash_profile


설정된 alias가 잘 실행되는지 확인해본다.

OS] sid
ORACLE_SID=orcl


 


 

'OS_NETWORK_Storage' 카테고리의 다른 글

XA 와 nonXA  (1) 2011.02.06
raw device란?  (0) 2010.03.20
쉘(shell)과 커널(kernel)  (1) 2009.10.05
Subnet Mask  (0) 2009.10.05
IPv6  (0) 2009.10.05
Posted by 자수성가한 부자
OS_NETWORK_Storage2009. 10. 5. 23:45

유닉스 시스템에는 커널이라는 것이 있다.

쉘(shell)이란?

사전적의미는 조개껍질이라고 한다.
조개껍질이란 조개의 살을 보호해주는 단단한 막을 말한다.
여기서 조개의 살 역할을 하는 것이 커널이 되겠다
이 커널을 보호해주는 역할을 한다.

그럼 어떤식으로 보호를 할까?
쉘이란 곳은 사용자와 직접 맞닥들이는 곳이다.
사용자가 입력한 명령어를 해석하고, 그 명령어가 제대로 된 것인지 판단해서
잘못된 입력일 경우 사용자에게 그것을 알려주고, 제대로 된 것일 경우
커널에게 명령어를 넘겨줘 응답을 기다린다.
그리고 사용자에게 명령어를 입력할 수 있는 인터페이스를 제공한다.

그럼 커널(kernel)은 무엇인가?

kernel의 사전적 의미는 대장장이라고 한다.
실제적으로 일을 하는 부분이라는 생각을 할 수 있을 것이다.
쉘로부터 온 명령어를 받아서 하드웨어를 제어하는 역할을 하는 것이다.

'OS_NETWORK_Storage' 카테고리의 다른 글

raw device란?  (0) 2010.03.20
alias 추가  (0) 2009.12.08
Subnet Mask  (0) 2009.10.05
IPv6  (0) 2009.10.05
IPv4  (0) 2009.10.05
Posted by 자수성가한 부자
OS_NETWORK_Storage2009. 10. 5. 22:47
Subnet Mask란?
 - 직역 : 메인이 아닌 어떤 가공을 통해 네트워크를 만들기 위해 씌우는 마스크(?)
 - 의역 : 주어진 IP어드레스를 네트워크 환경에 맞게 나누어 주기 위해서 씌우는 이진수의 조합

'OS_NETWORK_Storage' 카테고리의 다른 글

raw device란?  (0) 2010.03.20
alias 추가  (0) 2009.12.08
쉘(shell)과 커널(kernel)  (1) 2009.10.05
IPv6  (0) 2009.10.05
IPv4  (0) 2009.10.05
Posted by 자수성가한 부자
OS_NETWORK_Storage2009. 10. 5. 22:45
IPv6란??
  Internet Protocol ver.6의 약자로 차세대 프로토콜이다.
  현재 전세계적으로 IPv4가 사용중인데, 곧 주소가 부족할 것이 예상되므로
  IPv4의 대체 인터넷프로토콜이다.

IPv4와의 차이점?
  IPv4는 32비트인 반면, IPv6는 128비트로 표현할 수 있는 주소의 수가 훨씬 많다.

'OS_NETWORK_Storage' 카테고리의 다른 글

raw device란?  (0) 2010.03.20
alias 추가  (0) 2009.12.08
쉘(shell)과 커널(kernel)  (1) 2009.10.05
Subnet Mask  (0) 2009.10.05
IPv4  (0) 2009.10.05
Posted by 자수성가한 부자
OS_NETWORK_Storage2009. 10. 5. 22:42

IPv4란??
   Internet Protocol ver.4의 약자로 전 세계적으로 사용하는 첫번째 프로토콜이다.
   - 패킷 교환으로 네트워크 상에서 데이터를 교환하기 위한 프로토콜(규약)
   - 데이터가 정확하게 전달되는 것은 보장하지 않고, 중복된 패킷을 전달하거나 패킷의 순서를 잘못 전달한 가능성도 있다.
 

'OS_NETWORK_Storage' 카테고리의 다른 글

raw device란?  (0) 2010.03.20
alias 추가  (0) 2009.12.08
쉘(shell)과 커널(kernel)  (1) 2009.10.05
Subnet Mask  (0) 2009.10.05
IPv6  (0) 2009.10.05
Posted by 자수성가한 부자