Oracle 데이터베이스 스냅 샷 사용
다음은 제 가 샹 판 시 전신 국 170 전화 요금 납부 독촉 시스템 을 개발 하 는 과정 에서 스냅 샷 을 사용 하여 조회 속 도 를 가속 화 하 는 실현 과정 을 예 로 들 어 스냅 샷 의 사용 방법 을 설명 하 겠 습 니 다.
170 전화 요금 납부 독촉 시스템 은 사용자 에 게 전화 로 납부 독촉 알림 소 리 를 재생 하 는 시스템 이다.사용자 의 부채 금액 은 rs 6000 소형 기 sffw 사용자 아래 에 저 장 된 표 yhqfcx 중(yhqfcx 표 는 사용자 납부 상황 에 따라 동태 적 으로 변화 하 는 미납 기록 표)이 며,납부 독촉 시스템 의 데 이 터 는 요구 에 따라 다른 xf 170 서버 dmtcx 사용자 에 게 저장 되 며,dmtcx 사용자 에 게 sffw 사용자 아래 표 yh 를 사용 합 니 다.qfcx 의 일부 데이터,dmtcx 사용자 아래 yhqfcx 스냅 샷 Syh_qfcx,검색 속 도 를 빠르게 합 니 다.
구체 적 인 절 차 는 다음 과 같다.
1.sffw 사용자 아래 표 yh 만 들 기qfcx 스냅 샷 로그;
표 yh 만 들 기qfcx 의 스냅 샷 로 그 는 스냅 샷 에서 빠 른 리 셋 을 실행 할 수 있 습 니 다.
Create snapshot log on yh_qfcx;
2.dmtcx 사용자 아래 sffw 사용자 의 데이터베이스 체인 링크sf;
sffw 사용자 의 데이터베이스 체인 을 만 든 후에 야 sffw 사용자 의 표 yhqfcx 에서 데 이 터 를 가 져 옵 니 다.
Create database link link_sf
Connect to sffw identified by xxxxxxx using 'rs6000';
3.dmtcx 사용자 아래 스냅 샷 s 만 들 기yh_qfcx;
Create snapshot s_yh_qfcx as
Select yhh,qf6+qf5+qf4+qf3+qf2+qf1+qf qfje
From yh_qfcx@link_sf
Where tjbz='K' and bz6+bz5+bz4+bz3+bz2+bz1+bz>0;
4.필요 에 따라 스냅 샷 새로 고침 간격 을 수정 합 니 다.
dmtcx 사용자 의 스냅 샷 syh_qfcx sffw 사용자 와 의 메 인 테이블 yhqfcx 동기 화 를 유지 하려 면 스냅 샷 을 계속 새로 고 쳐 야 합 니 다.스냅 샷 의 새로 고침 간격 을 설정 해 야 Oacle 이 자동 으로 이 스냅 샷 을 새로 고 칠 수 있 습 니 다.
스냅 샷 의 리 셋 은 두 가지 방식 이 있 습 니 다.빠 른 리 셋 과 완전 리 셋 입 니 다.스냅 샷 이 필요 한 메 인 시트 를 빠르게 새로 고침 하려 면 스냅 샷 로그 가 먼저 존재 합 니 다.완전히 새로 고침 할 때 Oacle 에서 스냅 샷 조 회 를 실행 하여 결 과 를 스냅 샷 에 넣 습 니 다.빠 른 리 셋 은 완전히 리 셋 하 는 것 보다 빠 릅 니 다.메 인 데이터 베 이 스 를 네트워크 를 통 해 스냅 샷 으로 보 내 는 데이터 가 적 기 때문에 메 인 테이블 에서 수 정 된 데이터 만 전송 하고 스냅 샷 조회 의 모든 결 과 를 완전히 리 셋 해 야 합 니 다.
Alter snapshot s_yh_qfcx refresh fast
Start with sysdate+1/1440 next sysdate+1/144;
{이 SQL 문 구 는 Oacle 자동 1 분 설정
(1/24*60)후 첫 번 째 빠 른 리 셋 을 진행,이후 10 분 간격 으로
(10/24*60)빠르게 갱신 합 니 다.}
Alter snapshot s_yh_qfcx refresh complete
Start with sysdate+1/2880 next sysdate+1;
{이 SQL 문 구 는 Oacle 자동 30 지폐 설정
(30/24*60*60)후 첫 번 째 완전 리 셋 을 진행,
이후 하루 에 한 번 씩 완전히 갱신 합 니 다.}
설명:
1.스냅 샷 리 셋 은 서버 가 자동 으로 완성 하기 때문에 Oacle 데이터베이스 가 스냅 샷 리 셋 프로 세 스 를 시작 하도록 해 야 합 니 다.Oacle 데이터베이스 가 스냅 샷 새로 고침 프로 세 스 를 시 작 했 는 지 확인 합 니 다.데이터베이스 sys 로 보기 V $를 볼 수 있 습 니 다.SYSTEM_PARAMETER 의 인자 snapshotrefresh_processes 의 값 이 1 인지,1 이 아니라면 스냅 샷 새로 고침 프로 세 스 가 시작 되 지 않 았 습 니 다.
2.스냅 샷 새로 고침 프로 세 스 를 시작 하 는 방법 은 Oacle 데이터베이스 초기 화 파일 initorcl.ora 를 수정 하여 snapshot 입 니 다.refresh_processes 매개 변수의 값 을 0 에서 1 로 바 꾼 다음 Oacle 데 이 터 를 다시 시작 하면 됩 니 다.
3.설명 이 필요 한 것 은 스냅 샷 로 그 를 만 들 때 Oacle 데이터 베 이 스 는 우리 에 게 yh 기반 을 만들어 주 었 습 니 다.qfcx 의 트리거 tlog$yh_qfcx 와 스냅 샷 로그 표 mlog$yh_qfcx;스냅 샷 을 만 들 때 Oacle 데이터 베 이 스 는 표 하나,보기 두 개,색인 하 나 를 만 들 었 습 니 다.각각 다음 과 같 습 니 다.
시계 하나:snap$s_yh_qfcx;
두 보기:mview$s_yh_qfcx 와 syh_qfcx;
하나의 색인:Isnap$_s_yh_qfcx(
표 기반 snap$s_yh_qfcx 의 mrow$$필드.