스냅샷 로그가 원본 디비에 존재하면 리플리케이션 성능이 좋아집니다.
15초 간격이면 아마 로그를 쓰셔야 만족할 만한 성능을 내실 수 있을 겁니다.
우선 로컬 디비 init<SID>.ora에 job_queue_processes 파라미터와 job_queue_interval
파라미터가 설정되어 있는지 확인하세요.
그리고 원본 디비에 있는 대상 테이블에 create shapshot log 문으로 스냅샷 로그를
만들어 주세요.
복사될 로컬 디비에서는 먼저 tnsnames.ora에 원본 디비에 접속할 수 있는 엔트리가
있는지 확인하시고 없으면 만드세요.
그런다음 create database link 문으로 데이타베이스 링크를 만드시고.
create snapshot 문으로 스냅샷을 만드시면 됩니다.
refresh 절에서 next 부분에서 인터벌을 정하시면 됩니다. 뭐 15초 간격이면 sysdate + 15/(24*60*60) 정도 되겠군요.
그리고 snapshot과 materialized view는 같은 말입니다. 오라클 레퍼런스에 있는
해당 부분 문법을 참고하세요.
그리고 snapshot과 snapshot log는 기본적으로 테이블 스페이스에 있는 일정공간을
차지하는 테이블과 같은 객체입니다. 따라서 storage를 적절하게 정의해 주시는 것도
필요합니다.
oracle replication manager를 사용하는 것도 고려해 보시구요...
>>윤동만 님께서 쓰시길<<
:: 현재 local에 있는 db-server는 nt에 오라클8i 버젼이 있습니다...
:: 그리고 remote 에 db-server는 unix에 오라클7.3 버젼이 있습니다...
:: 그런데 이 remote에 있는 table 을 주기적인 시간을 두고 계속 update 하려고
:: 하는데 (예를 들어 15초 간격으로) 알아본바에 의하면 snapshot 을 사용하면
:: 된다고 하던데 자료를 보면 remote 에서 일단 snapshot log를 만들고 local에서
:: snapshot 을 걸면 된다고 하던데 정확히 개념이 안잡힙니다..
:: 어떻게 하면 15초 간격으로 갱신될까요?
:: snapshot 을 하려면 remote 와 local 반드시 둘다 셋팅이 되어야 하는지 좀 자세한
:: 답변을 바랍니다...
:: 좋은 주말 되세요...
|