Background Image

FORUM

2014.01.07 00:42

c# asp.net HA및 브로커

조회 수 11923 추천 수 0 댓글 12
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
 CentOS 6.3_x64(가상화 서버)
CUBRID Ver.
8.4.3.3086
CUBRID TOOL Ver.
8.4.3.3086
응용 환경(API)
asp.net c# 4.0

* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------

c#  asp.net상에서 HA상에서 db가 죽거나 ha가 죽을경우 다른쪽 HA로의 이동은 어떻게 설정하나요

jdbc는host를 여러개 설정할수 있는 것으로 나옵니다.

c#은 이렇게 설정할수가 없는 것인가요?

그리고 브로커가 한개이상일 경우 컨넥션을 한쪽만 잡으면 한쪽으로 브로커만 사용되는 것인지도 알고 싶습니다.

 

  • ?
    이용미 2014.01.07 02:38

    HA 환경의 경우, 응용은 JDBC, CCI, PHP 환경에서 접근이 가능합니다.

    아래와 같이 사용하실 수 있으니 참고해 주세요.

    - JDBC : http://www.cubrid.org/manual/ko/8.4.4/ha.html#jdbc

    - CCI : http://www.cubrid.org/manual/ko/8.4.4/ha.html#cci

    - PHP : http://www.cubrid.org/manual/ko/8.4.4/ha.html#php


    Broker 서버가 여러대인 경우 또는 Broker가 하나의 서버에 여러개가 생성되어 있다고 하더라고, 응용에서 설정해준 Broker를 통하여만 응용과 통신하여 결과를 출력하게 됩니다. 그러므로 적절하게 응용에서 분배하여 사용하시는 것이 좋습니다.


    감사합니다.

  • ?
    알칸펠 2014.01.07 03:56

    c#용 connectionstring는 업나요?

  • ?
    이용미 2014.01.07 18:48

    C#을 포함한 Windows 프로그래밍 언어를 이용하는 경우, HA 구성 시 연결 스트링에 사용되는 althost를 사용하실 수 없습니다.

    참고 부탁 드립니다.

  • ?
    알칸펠 2014.01.07 19:13

    답변감사합니다.

    그럼 HA상에서 NODE A의  Broker/Server/heartbeat중 어느 것이 중지 되면 NODE B로 이동을 하나요?

    아니면 이것도 서버에서 자동을 이동되는 것은 불가능 한것인가요?

     

  • ?
    이용미 2014.01.07 20:25

    답변 추가합니다.

    cubrid.org의 QnA [http://www.cubrid.org/questions/719898]를 기반으로 확인한 결과, 해당 질문에 작성된 답변처럼 구성하시면 ADO.Net에서는 HA를 구성하여 사용이 가능합니다.


    NodeA의 프로세스 중, Broker/Server/Heartbeat 하나라도 정지가 되면, NodeB의 것을 이용하게 됩니다.

    NodeA의 Broker가 정지되는 경우는 설정값에 따라 달라지므로 아래 링크된 매뉴얼을 참고하여 주세요.

    [Broker PREFERRED_HOSTS 파라미터 관련 : http://www.cubrid.org/manual/ko/9.2.0/ha.html#broker-mode ]

    NodeA의 Server 혹은 Heartbeat이 정지되는 경우, 연결 스트링이 정상적인 경우, NodeB의 DB Server에 연결하게 됩니다.

    자세한 내용은 아래 링크된 매뉴얼을 참고하여 주세요.

    [failover와 failback : http://www.cubrid.org/manual/ko/9.2.0/ha.html#failover-failback ]

    [서버 이중화 - 서버 failover : http://www.cubrid.org/manual/ko/9.2.0/ha.html#id7 ]

  • ?
    알칸펠 2014.01.07 20:49

    위와 같이 설정은 이미 되어 있습니다.

    문제는  NodeA의 프로세스 중, Broker/Server/Heartbeat 를 명령어로 임으로 stop을 했을경우.

    NODE B로 넘어 는 가지만 NODE B가 cubrid changemode testdb@node B로 확인을 하면

     to-be-active상태로 멈춰 있다는 것입니다.

    싸이트는 띵겨 나오는 것도 아니고 계속 돌기만 하는 상황이 발생합니다.

    하지만 명령어로 Cubrid changemode -f -m testDB@node b라고 입력을 하면 active로 변하면서 정상적으로 작동을 한다는 것입니다.

    혹시 임으로 stop을 해서 node A와 node B로 정상적으로 이동을 하는 것을 확인하는 것은 안되는 것인가요?

  • ?
    이용미 2014.01.07 22:06

    Stop 명령어를 이용하여 Heartbeat을 중지하셔도 HA는 정상적으로 FailOver 됩니다.

    NodeB가 to-be-active 상태에서 active로 정상적으로 넘어가지 않는 상황은 다른 문제 같은데요.

    가능하시면, Slave를 재구성하신 후 재확인 하시는 것이 좋을 것 같습니다.


    참고로, changemode 유틸리티 사용 시, 강제로 현재 상태를 변경하는 것은 권장하지 않으니 참고해 주세요.

    감사합니다.

  • ?
    알칸펠 2014.01.07 22:41

    그럼 stop 명령으로 정지를 한 경우

    cubrid changemode node B를 확인 했는데

    The Server 'node B' 's current HA running mode is to-be-acive로 나온다면 기달려야하는 것인가요

    설정은 다시 확인을 해보아도 설명서에 나온대로 설정하였습니다.

  • ?
    알칸펠 2014.01.07 22:47

    to-be-active : 스탠바이 서버가 failover 등의 이유로 인해 액티브 서버가 되기 전의 상태이다. 기존의 마스터 노드로부터 받은 트랜잭션 로그를 자신의 서버에 반영하는 등 액티브 서버가 되기 위한 준비를 한다. 해당 상태의 노드에는 SELECT 질의만 수행할 수 있다.

    설명서에도 다음과 같이 설명되있지만 select를 할수가 업습니다.

  • ?
    이용미 2014.01.07 23:09

    HA 구성 후, Heartbeat을 구동하였었고, FailOver를 수동으로 수행하신 경우라면, NodeB가 active 상태가 될때까지 기다려 주셔야 합니다.

    다만, to-be-active 상태에서 active 상태로 변경되는 것을 그리 오랜 시간이 걸리지는 않을 것 입니다.


    to-be-active 상태에서 Select가 안된다고 하셨는데, 오류가 출력되는 것은 없는지요?

  • ?
    알칸펠 2014.01.08 18:28

    다른곳에는 오류가 업고 데이터베이스 오류에 다음과 같은 오류메세지가 있습니다.

    file ../../src/connection/server_support.c, line 2569 ERROR CODE =-4 Tran = 2, CLIENT = NODE B:emgr_server(27195), EID = 1 : Has been interrupted.

    file ../../src/connection/server_support.c, line 2569 ERROR CODE =-4 Tran = 3, CLIENT = NODE B:emgr_server(27540), EID = 2 : Has been interrupted.

    뭔가 중단되어 있다는거 같은대요 이것만 보고서는 무엇을 봐야할지 알수가 없습니다.

  • ?
    알칸펠 2014.01.08 19:14

    위의 상태는 cubrid hearbeat status로 확인하면 NODE B가 state master로 되어 있고

    cubrid changemode testdb@nodeB 로 확인하면 to-be-active로 되어 있습니다.


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 120
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4476
4002 "DATABASE 검사" 도무지 끝날 기미가 안 보입니다 5 한종희 2011.08.02 8583
4001 "DBMS, 0, Unknown DBMS error" 요건 무슨 애러인가요?;; 2 eitetu 2011.06.02 14296
4000 "Token length is too long" 오류에 관하여 질문 드립니다. 4 file 김우람 2009.01.09 21478
3999 & 등의 특수문자등이 변환되어 저장되는 경우 1 호랑이야옹 2012.12.28 10682
3998 ' 의 입력 방식이 궁금합니다. 1 이석희 2009.04.10 13422
3997 (1개의 댓글은 작성자가 썼습니다.)비주얼 베이직 큐브리드 연동후 동시에 여러 테이블 보는 방법문의 2 secret 강남우 2012.12.21 58
3996 (Re:) 회원가입이 3명이상 안돼요... 6 딩이 2010.07.08 7595
3995 (python)centOS7 docker 연결 문의입니다. 리얼비 2021.11.01 108
3994 (댓글 질문등록 했습니다.)이전글, 다음글 기능(LAG, LEAD) ORDER BY절 FOR ORDERBY_NUM() 추가해도 그대로 입니다 3 취우다 2017.04.19 5963
3993 (함수)펑션 오류 확인부탁드립니다. 1 초코초코초 2023.02.10 103
3992 *variable* 에러 1 hwon 2013.06.14 11619
3991 ++ cubrid server start: fail 2 file 토네이도 2013.09.13 13701
3990 -74 오류 조치 방법 1 덜쇠 2013.08.07 7643
3989 .AccessViolationException (C#) 1 swift 2021.06.03 220
3988 .NET 4.5 에서의 NHibernate 문제, .NET 4.0 에서 NHibernate + TransactionScope 활용 문제. 1 websiter 2017.06.09 2057
3987 .NET DB 제어를 위한 방법. 2 우페 2008.11.23 60879
3986 .net db목록 관련 질문 드립니다. 4 파인 2021.03.05 135
3985 // 를 사용하고 싶습니다. 1 죽통군 2010.02.10 9583
3984 /etc/hosts 파일 수정 1 secret chocob 2014.10.13 13
3983 /etc/rc3.d/S98cubrid 화일 좀 바꿔주세요 1 꽁꽁단무지 2017.01.25 12247
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 201 Next
/ 201

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales