운영관리

브로커와 DB 간 연결 테스트

by 박동윤 posted Dec 29, 2015

1. 주제 : 해당 내용은 CUBRID-9.3.0 에서 추가된 명령어로, DB와 브로커간의 연결 테스트가 가능하다.

2. 목적 

 (1) 해당 명령어는 지정한 브로커와 접속하는 DB 사용자에 대한 질의문을 수행해 보는 명령이며, 질의 수행 후 트랜잭션은 롤백된다.

 (2) 이 명령을 통하여 질의 성공여부를 확인 할 수 있다.

3. 내용

 (1) 명령어 : cubrid broker test <broker_name> [option]

 (2) option

 옵션

내용 

비고

-D 

테스트 DB

 

-u 

테스트 사용자 계정

 

-p 

테스트 사용자 패스워드

 

-c

질의 문자열 지정

생략 시 연결여부만 출력 

-i

입력할 질의들을 저장한 파일

생략 시 연결여부만 출력

-o 

수행결과 저장

 

-s

SHARD 관련 수행

 

-v

질의 수행 정보와 결과를 함께 출력 

 

  

 4. 테스트 내용.

  (1) 사용자계정으로 테스트 DB와 브로커간의 연결상태 확인.

   $> cubrid broker test broker1 -D demodb -u dba -o output.txt

    @ cubrid broker test

    @ [OK] CONNECT broker1 DB [demodb] USER [dba]

  

  (2) 질의문 실행으로 테스트.

   $> cubrid broker test broker1 -D demodb -p dba -c 'select * from code'

    @ cubrid broker test

    @ [OK] CONNECT broker1 DB [demodb] USER [PUBLIC]

    @ SHARD OFF

    RESULT         ROW COUNT      EXECUTION TIME      QUERY

    ========================================================

    OK             6              0.001041 sec        select * from code


  (3) -v 옵션사용하여 질의 결과 확인.(-o 옵션사용시 별도 파일저장)

   $> cubrid broker test broker1 -D demodb -p dba -c 'select * from code' -v -o output.txt

   @ cubrid broker test

   @ [OK] CONNECT broker1 DB [demodb] USER [PUBLIC]

   @ SHARD OFF

     RESULT         ROW COUNT      EXECUTION TIME      QUERY

     ========================================================

     OK             6              0.000672 sec        select * from code

     <Result of SELECT Command>

       s_name  f_name

     ----------------

       'X'     'Mixed'

       'W'     'Woman'

       'M'     'Man' 

       'B'     'Bronze'

       'S'     'Silver'

       'G'     'Gold'

    @ [OK] QUERY TEST


   (4) -i 옵션으로 질의문 확인.

     $> vi query_list.txt

        select * from code

        select * from game

     $> cubrid broker test broker1 -D demodb -p dba -i query_list.txt -v -o output.txt

     -> 결과가 모두 출력ㄷ괴며, output.txt에 해당 결과 저장


   (5) rollback 확인

     - 해당 결과가 rollback 처리됨을 확인할수 있다.

      [query_list.txt]

      create table broker_test (code1 varchar(100)) -> create 로 테이블생성

      insert into broker_test values ('test1')           -> 해당 table 에 데이터 insert

      select * from broker_test                           -> 해당 table 조회


     $> cubrid broker test broker1 -D demodb -p dba -i query_list.txt -o output.txt

      @ cubrid broker test

      @ [OK] CONNECT broker1 DB [demodb] USER [PUBLIC]

      @ SHARD OFF

       RESULT         ROW COUNT      EXECUTION TIME      QUERY

       ========================================================

      OK             0              0.001649 sec        create table broker_test (code1 varchar(100)) -> 성공

      FAIL(-493)     -1             0.000352 sec        insert into broker_test values ('test1')          -> 해당 테이블 rollback 되어 실패

      FAIL(-493)     -1             0.000224 sec        select * from broker_test                          -> 해당 테이블 rollback 되어 실패

      @ [FAIL] QUERY TEST


    (6) 테이블 권한 없을 경우 이슈

       - broker_test 테이블은 DBA 권한

      $> cubrid broker test broker1 -D demodb -c 'insert into broker_test values ('123')' -v

       @ cubrid broker test

       @ [OK] CONNECT broker1 DB [demodb] USER [PUBLIC]

       @ SHARD OFF

        RESULT         ROW COUNT      EXECUTION TIME      QUERY

       ========================================================

       FAIL(-494)     -1             0.000651 sec        insert into broker_test values (123)

       <Error>

       ERROR CODE : -494

      Semantic: INSERT is not authorized on broker_test. insert into broker_test broker_test (broker_test.code1) valu...[CAS INFO-127.0.0.1:58811,1,32533].

 

 5. 기대효과

   - 운영 중 혹은, 서비스 장애 시 broker와 DB간의 연결 상태 체크가능.


Articles

1 2 3 4 5 6 7 8 9 10