티베로 인스턴스는 리스너가 클라이언트와 Worker Process 간의 세션을 연결하여 접속할 수 있습니다. 세션을 모두 끊어 버리고 더 이상 데이터베이스에 접근하지 못하게 막는 Test를 해보겠습니다.
이 Test의 step은 2 step으로 이루어져 있습니다.
- 새로운 클라이언트 막기
- 기존 세션으로 연결된 클라이언트 내보내기
2 step에 맞춰 Test 해보겠습니다.
1. 새로운 클라이언트 막기
전체 네트워크 접속 제어는 클라이언트 전체를 더이상 TCP/IP 네트워크로 접속하지 못하게 하거나 접속할 수 있도록 하는 방법입니다. 다음은 클라이언트 전체 네트워크 접속을 허용하는 방법으로 Tibero 서버를 처음 기동시킬 때와 같은 상태입니다.
ALTER SYSTEM LISTENER REMOTE ON;
다음은 클라이언트 전체의 네트워크 접속을 차단하는 방법입니다.
ALTER SYSTEM LISTENER REMOTE OFF;
이 명령어를 실행하면 외부 클라이언트의 네트워크 접속은 차단하지만 로컬 호스트에서 접속하는 클라이언트의 네트워크 접속은 허용됩니다.
(조건 :로컬 호스트의 tbdsn.tbr 파일에서 IP에 'localhost'로 설정이 돼있어야만 해당합니다. 그리고 이미 접속된 클라이언트는 계속 유지됩니다. )
※출처 : Tibero_6_Administrator's_Guide_v2.1.7.5.pdf 문서
###sys계정
SQL> ALTER SYSTEM LISTENER REMOTE OFF;
System altered.
##netstat -tlpn | grep tblistener
##tbsql 안에서는 앞에 !실행하면 됨.
##!netstat -tlpn | grep tblistener
SQL> !netstat -tlpn | grep tblistener
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
SQL> !netstat -na | grep 9629
tcp 0 0 127.0.0.1:56101 127.0.0.1:9629 ESTABLISHED
tcp 0 0 127.0.0.1:56095 127.0.0.1:9629 ESTABLISHED
tcp 0 0 127.0.0.1:9629 127.0.0.1:56095 ESTABLISHED
tcp 0 0 127.0.0.1:9629 127.0.0.1:56101 ESTABLISHED
### Putty 열어서 새로운 세션으로 접속
login as: tibero
tibero@192.168.56.241's password:
Last login: Wed Jul 14 13:08:14 2021 from 192.168.56.1
[tibero@T1:/home/tibero]$ cd /
[tibero@T1:/]$ tbsql tibero1/tmax
tbSQL 6
TmaxData Corporation Copyright (c) 2008-. All rights reserved.
TBR-2131: Generic I/O error.
tibero1 계정도 tibero 설치 시 기본으로 설치되는 계정입니다. tibero1 계정을 tbsql로 접근하려 하자 Generic I/O error 메시지가 발생합니다. 리스닝을 더 이상 하지 않아서 접속이 불가한 것입니다. 기존에 연결된 세션은 조회, 동작이 잘되며, 트랜잭션이 만들어지는 것도 가능합니다.
2. 기존 세션으로 연결된 클라이언트 내보내기
### sys계정
SQL> COL USERNAME FOR A20
SQL> SELECT SID, SERIAL#, USERNAME FROM V$SESSION;
SID SERIAL# USERNAME
---------- ---------- --------------------
63 25 SYS
64 63 TIBERO
2 rows selected.
SQL> ALTER SYSTEM KILL SESSION (64, 63);
System altered.
SID를 포함한 정보를 SELECT문으로 조회한 뒤 SID 번호를 ALTER SYSTEM KILL SESSION(SID#, SID#...); SQL 문으로 프로세스를 강제로 죽입니다.
이로써 새로운 클라이언트는 해당 DB에 접속하지 못하게 됩니다.
'IT > DataBase' 카테고리의 다른 글
[Tibero] 티베로(tibero) - 워커 프로세스(Worker Process)(2) Background Worker Process (0) | 2021.07.21 |
---|---|
[Tibero] 티베로(tibero) - 워커 프로세스(Worker Process)(1) 세션 개수 설정 (0) | 2021.07.21 |
[Tibero] 티베로(tibero) - 리스닝 포트 변경 (0) | 2021.07.21 |
[Tibero] 티베로(tibero) - 프로세스 세션 확인 (0) | 2021.07.21 |
[Tibero] 티베로(tibero) - tbdown clean (0) | 2021.07.20 |