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
@ [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간의 연결 상태 체크가능.