반응형
한 서버에서 다른서버에 접속하여 DB 상태를 체크하는 간단한 프로그램을 만들었습니다.
1.DB lis 파일 생성
업무명:DBNAME:IP:PORT:비밀번호:인스턴스번호(RAC일경우) 형식으로 접속을 하고자 하는 DB 리스트를 작성합니다.
업무명과 인스턴스번호는 실제 DB 접속할때는 필요하지 않고 사용자의 구분용으로만 사용되므로 정확하게 작성하지 않으셔도 됩니다. 나머지 DBNAME 부터 비밀번호는 정확하게 작성해야 합니다.
vi db.lis
업무명:DBNAME:IP:PORT:비밀번호:인스턴스번호(RAC일경우)
...
...
...
..
...
2. connection.sh 생성
위의 db.lis 파일에서 변수를 받아와 easyconnect 방식으로 DB에 접속합니다.
2.vi connection.sh
for STRTMP1 in `cat /home/oracle/dba/ysbae/db.lis`
do
DBNAME=`echo ${STRTMP1} | awk -F: '{print $1}'`
DBSID=`echo ${STRTMP1} | awk -F: '{print $2}'`
SRVIP=`echo ${STRTMP1} | awk -F: '{print $3}'`
DBPORT=`echo ${STRTMP1} | awk -F: '{print $4}'`
SYSTEMPWD=`echo ${STRTMP1} | awk -F: '{print $5}'`
NODE_NO=`echo ${STRTMP1} | awk -F: '{print $6}'`
sleep 1
echo -e "\033[33m""${DBSID}""\033[0m"
sqlplus -S [유저명]/${SYSTEMPWD}@${SRVIP}:${DBPORT}/${DBSID} @/home/oracle/dba/ysbae/connection_sql.sql
done
sleep 1
3.connection_sql.sql
DB에서 수행할 sql입니다. 저는 간단하게 v$instance를 조회하여 상태를 확인하였습니다.
vi connection_sql.sql
set head off
set timing off
set echo on
select upper(instance_name),status,'OK',to_char(sysdate,'YYYY/MM/DD HH24:MI:SS') from v$instance;
exit
수행방법
OS상에서 반복문으로 걸어서 계속 수행되게 하여 모니터링 할 수 있도록 하였습니다.
while true; do sh connection.sh; sleep 1; done;
이상입니다.
반응형
'Oracle > 운영' 카테고리의 다른 글
Online Redefinition시 Block 감소량 비교 (0) | 2022.08.16 |
---|---|
Table Reorg 방법 정리 (0) | 2022.08.12 |
로그인 트리거 생성 스크립트 (0) | 2022.08.10 |
[partition] MODIFY DEFAULT ATTRIBUTES COMPRESS FOR OLTP vs COMPRESS FOR OLTP 차이 (0) | 2022.07.11 |
[19c] Outline 기능 이용하여 Hint 없이 실행계획 변경 (0) | 2022.06.07 |
댓글