Q&A

  • 2대의 DB 서버에 데이타를 등록할때
궁금한점이 있어서 이렇게 올립니다.

A서버 , B서버 두대의 DB가있습니다.

데이타를 저장할때 이 2대의 디비서버에 데이타를

동시에 입력해야합니다.

트리거나 프로시져에의한 전송방법말고

순전히 델파이프로그램에서 2대의 서버에 데이타를 입력하려고 합니다.

3-tier 에서할려고 하거던요

이럴경우 한대의 appserver(어플리케이션 서버)에

A appserver , B appserver 프로그램2개를 동시에 띄어서 개개별로

전부 데이타를 입력시켜야 하는지, 아님 어플리케이션 서버에서

다른 방법이 존재하는지 궁금합니다.

만약, 개개별로 전부 데이타를 입력한다면~

지금까지 사용한 ClientDataSet 의갯수가 거의 2배로 늘어나고

처리또한 2배로 늦어질텐데 걱정입니다.

어떠한 방법들이 없는지 알려주시면 감사하겠습니다.

3  COMMENTS
  • Profile
    김경록 2003.12.05 23:27
    DB를 설명하시지 않으셨군여..
    게시판에 글을 올리실때 DB에 대해서 질문을 하면,
    꼭 DB가 어떤 종류인지 꼭 올려주시는게 좋을 듯합니다.
    그렇지 않다면, 답이 정확하게 나오지 않을 듯 하니까여..
    물론, 저도 추측해서 올릴까 생각합니다..

    일단, 3-Tier로 한다고 하니까..
    Oracle이라고 가정하고 하겠습니다..
    일단, 궁금한점은 델파이에서 2개의 DB 서버에 모두
    넣은 DATA들이 A/B서버 모두에서 입력/수정/삭제 모두를
    수행할지가 궁금하내여..

    일단, A서버에서는 조회기능만, B서버는 입력/수정/삭제/조회
    모두를 사용한다면, 오라클의 다른기능, Snapshot을 이용할 것입니다.

    그렇지 않다면, Database Link를 생각해 보겠습니다만,
    Database Link가 워낙 느린점이 많아서..
    DB접속도 끊어질때가 있고(즉, 장거리간의 통신 문제... 회선문제)해서
    조금 문제점이 있지만,
    꼭, 그렇게 사용해야 한다면, Database Link를 생각해 보겠습니다.
    A서버에서 B서버의 Link를 추가
    A서버에서 Insert/Update/Delete시 Trigger로 B서버의 Link 되어 있는
    해당 Table의 내용도 같이 Action을 취해준다..
    뭐 이런겁니다..

    하지만, 3-Tier로 작업을 한다면,
    전, 3-Tier로 직접 Insert/Update/Delete를 하는 쪽을 택하겠습니다..
    물론, 작업이 만만치 않다면, 모르겠지만,
    건건당 Transaction이 발생할때 Database Link에서 속도 문제가
    발생하게 됩니다.. (장거리라서..)

    따라서, 3-Tier로 한다면, 속도 문제도 많이 나오지 않을 것이고해서
    A/B서버로 직접 밀어 넣는 작업이 좋을 듯 합니다..

    결과적으로 말씀드리면,
    DB가 Oracle일때
    1.  Snapshot을 이용하는 방법(한쪽의 Data를 조회만 가능하다록..)
    2.  Database Link를 이용하는 방법(모두 갱신가능)
    3.  1+2를 모두 이용하는 방법(Insert/Update/Delete작업을 위해)
    4.  직접 3-Tier로 밀어 넣는 방법

    위 4가지입니다..
    물론, 다른 방법이 생길수도 있겠지만..
    제 머리로는 이것밖에 생각이 안되는군여..
    1,2,3은 분산시스템을 위한 것이지만, 속도가 느린관계로
    DBA는 선호하지 않을 듯 합니다.. (물론, DBA에 따라서 틀릴수도 있지만. ^^;)

    답이 되었길 바라네여..
    어디선가 많이 본듯한 이름이라서..
    혹시 부산사람????






  • Profile
    공왕주 2003.12.06 00:50
    예! 답변 감사합니다.

    DB를 설명하지 않았군요~ DB는 Mysql 4.0.15 이고요

    흠. 아무래도~ 개개별로 전부 A, B 서버 를입력을 다해줘야 겠군요.

    그리고, 혹 경록이형 아닌가요?

    컴공95학번...

  • Profile
    김경록 2003.12.06 03:37
    왕주였다니..
    그리고, MySQL 이었다니..
    Mysql은 Analyze시에 발생되는 Table 파일의 깨짐현상이
    문제가 되는데..
    Mysql의 성능을 향상시키기 위해서 Analyze 및 Index의 재생성을
    하게 되는데 Analyze시에 문제가 발생한다..
    Mysql로 3-Tier로 개발한다니..
    Mysql은 배포시에 저작권 문제가 발생되게끔 되어 있는데..
    배포에 관한 Liscense도 보아야 한다..
    4.0은 일반적으로 Table에 대한 보증처리가 잘되기 위해서
    Union을 추가하게 되었는데..
    이것 때문에 또 다른 문제가 발생했다..
    즉, 4개 이상의 Union의 연결시에 Connection이 끊어지는 현상이
    가끔식 발생하는데, 아마도 Mysql Connection Demon의 문제인것
    같다..  하지만, Mysql 4.1로의 Upgrade 추천하지 않는다..
    4.1에서도 마찬가지의 문제가 발생하고
    웹을 지원하기위한 euc_kr  코드가 지원되지 않아..
    한글이 깨어지는 현상이 발생한다..
    mysql.com에 가면, 해당 내용을 알 수 있지만,
    현재 이 Bug를 해결하지 못했고, 4.1.2가 나와야지만, 해결될 것 같다..

    ps.  추신..
    너도 개발자의 길에 빠져 버렸다니..
    고생이 훤하다..
    결혼생활은 어떻노?