Oracle 8x 에서 자동 으로 끊 긴 후 연결 하기

3359 단어 재 오Orraacclle
보고 있 는 ORACLE 튜 토리 얼 은 Oracle 8x 에서 자동 으로 끊 긴 후 연결 하 는 것 입 니 다.실제 데이터 베이스 응용 에서 우 리 는 이러한 문 제 를 자주 만 났 다.Oracle 데이터 베 이 스 를 연결 한 사용 자 는 한 번 조작 한 후에 더 이상 후속 작업 을 하지 않 았 으 나 장시간 데이터 베이스 와 연결 을 끊 지 않 았 다.작은 응용 시스템 에 있어 자체 의 연결 수량 이 유한 하 다.이것 은 심각 한 결과 가 없 는 것 같 지만 대형 데이터 베이스 응용 에 대해 서 는.예 를 들 어 세무,공상 등 은 데이터 뱅 크 의 연결 수량 이 많 으 면 데이터 뱅 크 서버 에 있어 하나의 연결 이 많 으 면 한 개의 자원 을 더 소모 해 야 한다.만약 에 대량의 사용자 가 데이터 베이스 시스템 에 연결 되 지만 그 어떠한 조작 도 하지 않 으 면 모 르 는 사이 에 서버 시스템 자원 의 낭 비 를 초래 하고 서버 부하 도 향상 시킨다.확실히 일 하 는 사용자 들 에 게 서버 의 자원 을 최대한 활용 하지 못 하고 심각 한 상황 에서 시스템 성능 이 급 격 히 떨 어 질 수 있다.이런 문제 에 대하 여 어떻게 처리 해 야 합 니까?현재 유행 하 는 3 층 구조(Browser/application/server)개발 에 있어 서 이 문 제 는 응용 서버 의 연결 공유 풀(shared)을 설정 할 수 있 습 니 다. pool)피하 기.그러나 전통 적 인 2 층 구조(Client/server)응용 에 대해 서 는 이러한 자원 낭비 상황 을 피하 기 위해 우리 가 관여 해 야 합 니 다.구체 적 으로 는 배경 작업 을 통 해 시스템 의 모든 프로 세 스 를 감시 할 수 있 습 니 다.일정 시간 이 넘 는 프로 세 스 에 대해 일정한 특수 처리 조 치 를 취 할 수 있 습 니 다.예 를 들 어 클 라 이언 트 가 사용자 에 게 연결 시간 이 너무 길 다 는 것 을 알 리 면 후속 운영 체제 가 없 으 면 이 연결 을 자동 으로 죽 이거 나 이 남 은 연결 을 직접 죽 일 수 있 습 니 다.다음은 Oracle 에서 어떻게 하 는 지 구체 적 으로 논의 하 겠 습 니 다. 8x 환경 에서 사용자 프로 세 스 의 자동 감시 와 일정한 여가 시간 을 초과 하 는 연결 에 대한 처리 방법 을 실현 합 니 다.1.식별 시스템 에서 일정한 여가 시간 을 초과 한 연결 은 배경 작업 이 일정 시간 을 초과 한 여가 연결 에 대한 자동 처 리 를 실현 해 야 한다.먼저 첫 번 째 작업 은 모든 데이터베이스 서버 와 의 연결 에서 이러한 연결 을 식별 하여 처리 해 야 한다.서버 와 연 결 된 모든 사용자 의 로그 인 시간 과 마지막 작업 후의 여가 시간 이 필요 하 다 는 것 이다.Oracle 시스템 에서 동적 성능 보기 v$session 이 있 습 니 다.이 보 기 는 시스템 이 현재 연 결 된 각종 동적 정 보 를 저장 하고 있 습 니 다.그 중 에 두 개의 필드 가 있 습 니 다.LOGONTIME 와 LAST_CALL_ET 는 위의 두 가지 답 을 얻 을 수 있다.  l LOGON_TIME 는 사용자 로그 인 시간 을 위 한 날짜 형(Date)필드 입 니 다.  l LAST_CALL_ET 는 숫자 형(Number)필드 로 사용자 의 마지막 문장 이 실 행 된 후의 시간,단 위 는 초 라 는 뜻 이다.사용자 가 새로운 문 구 를 실행 할 때마다 이 필드 는 0 으로 복원 되 어 다시 기 수 를 시작 합 니 다.이 필드 를 통 해 사용자 가 마지막 으로 데이터 베 이 스 를 조작 한 후 남 은 시간 을 얻 을 수 있 습 니 다.다음 SQL 조회 문 구 는 현재 데이터베이스 와 연 결 된 모든 사용자 의 기본 적 인 상황 을 얻 을 수 있 습 니 다.예 를 들 어 사용자 이름,상태,연결 기기 의 이름,운영 체제 에서 사용자 의 이름,UNIX 시스템 의 프로 세 스 번호,UNIX 운영 체제 에서 연결 을 끊 는 문구,Oracle 데이터베이스 시스템 에서 연결 을 끊 는 문 구 를 얻 을 수 있 습 니 다.로그 인 시간 과 마지막 으로 지금까지 의 여가 시간 등.위의 조회 에서 우 리 는 SUBSTR 을 통과 할 수 있다. (machine, 1, 19) NOT IN ('기계 이름')이 조건 으로 일부 기 계 를 차단 합 니 다.이 기 계 는 오 랜 시간 이 걸 리 는 SQL 문장 이나 다른 특수 한 상황 의 기 계 를 운행 해 야 할 수도 있 습 니 다.이 기계 들 을 차단 하 는 이 유 는 바로 뒤의 배경 에서 자동 으로 식별 하고 처리 하 는 임무 에서 이 기계 들 을 처리 하지 않 기 때문이다.
[NextPage]
2.남 은 사용 자 를 식별 하고 차단 하 는 과정 에서 위의 조회 문 구 는 시스템 에 있 는 모든 연결 사용자 의 기본 적 인 상황 을 얻 을 수 있 습 니 다.그러나 어떻게 시스템 이 일정 시간 이상 의 연결 을 자동 으로 판단 하고 이 를 자동 으로 끊 을 수 있 습 니까?Oracle 시스템 은 백 스테이지 작업(Job)자동 처리 라 는 메커니즘 을 제공 합 니 다.이러한 사용자 연결 이 존재 하 는 지 여 부 를 판단 하기 위해 배경 작업 을 작성 할 수 있 습 니 다.존재 하면 배경 작업 을 통 해 자동 으로 끊 을 수 있 습 니 다.먼저 저장 프로 세 스 를 만들어 서 일정 시간 동안 사용자 의 식별 과 차단 작업 을 완성 한 다음 에 배경 작업 을 추가 하여 시간(남 은 시간 에 따라 확인)을 정 하고 이 과정 을 수행 하면 자동 으로 시스템 의 남 은 시간 이 일정 시간 이상 사용자 의 수 요 를 초과 할 수 있 습 니 다.기억 프로시저 pMonitor 참조,그 중 매개 변수 annimutes 는 사용자 에 게 파 라 메 터 를 입력 하여 얼마나 남 은 시간 에 연결 하 는 사용 자 를 식별 하고 끊 는 지 확인 합 니 다.단 위 는 분 이 고 기본 값 은 60 분,즉 1 시간 입 니 다.주의해 야 할 것 은 이 저장 과정 은 sys 사용자 로 실행 되 어야 한 다 는 것 이다.이에 따라 이 저장 프로 세 스 를 호출 하 는 백 스테이지 작업 도 SYS 로 추가 해 야 한다.3.백 스테이지 작업 의 정시 실행 마지막 으로 우 리 는 시스템 에 정시 작업 을 추가 하고 위 에서 만 든 저장 과정 을 정기 적 으로 호출 하면 시스템 이 남 은 사용 자 를 자동 으로 식별 하고 처리 하 는 작업 을 완성 할 수 있 습 니 다.다음은 실제 호출 의 예 입 니 다.sys 사용자 에 게 먼저 작업 을 추가 합 니 다.이 작업 은 30 분 마다 한 번 씩 실 행 됩 니 다.매번 P 를 호출 합 니 다.Monitor 저장 과정 에서 시스템 의 남 은 시간 이 1 시간 이 넘 는 연결 을 찾 아 자동 으로 끊 습 니 다.이전 페이지

좋은 웹페이지 즐겨찾기