이 장에는 고가용성 환경에서 장애 조치 중에 데이터베이스 및 애플리케이션과 함께 Oracle 복제를 복구하기 위한 지침이 포함되어 있습니다. 이러한 프로시저를 지원하려면 고가용성을 지원하도록 SharePlex를 올바르게 구성해야 합니다. 고가용성을 유지하도록 복제 구성을 참조하십시오.
이 장에는 고가용성 환경에서 장애 조치 중에 데이터베이스 및 애플리케이션과 함께 Oracle 복제를 복구하기 위한 지침이 포함되어 있습니다. 이러한 프로시저를 지원하려면 고가용성을 지원하도록 SharePlex를 올바르게 구성해야 합니다. 고가용성을 유지하도록 복제 구성을 참조하십시오.
기본(소스) 시스템의 예기치 않은 장애가 발생하면 해당 시스템의 SharePlex 큐에 남아 있는 복제된 데이터는 버퍼링 및 큐 손상 가능성으로 인해 복구할 수 없게 됩니다. 고가용성 환경에서는 데이터베이스 사용자와 함께 복제를 보조(타겟) 시스템으로 이동하여 데이터 가용성을 유지할 수 있습니다. 기본 시스템이 복원되면 보조 인스턴스의 핫 백업을 사용하여 다운타임을 최소화하면서 사용자와 복제를 해당 시스템으로 다시 이동할 수 있습니다.
이 프로시저에서는 구성 파일을 활성화한 다음, reconcile 명령을 사용하여 복사된 인스턴스가 복구된 후 진행 중인 복제된 사용자 변경 사항과 백업 결과를 동기화합니다.
Unix 또는 Linux의 Oracle 데이터베이스
기본 시스템에 예상치 못한 장애가 발생한 후 복제를 보조 시스템으로 이동하려면 다음을 수행합니다.
보조 시스템에서 Export가 중지되었는지 확인합니다.
sp_ctrl> stop export
qstatus 명령을 사용하여 Post 큐를 확인하고 백로그된 메시지 수가 0이 될 때까지 이 명령을 계속 실행합니다. 참고: 실제 메시지 수가 0이 될 때까지 기다리지 마십시오. 일부 트랜잭션에 대한 커밋이 수신되기 전에 기본 시스템이 실패한 경우, 이러한 부분 트랜잭션에 대한 메시지는 이 프로시저에서 나중에 지워질 때까지 큐에 남아 있습니다.
sp_ctrl> qstatus
참고: Export가 시작되면 반복적으로 기본 시스템에 연결을 시도하여 시스템 리소스를 낭비합니다.
이 프로시저는 예기치 않은 장애로부터 복구된 후 사용자를 기본 시스템으로 다시 이동시킵니다. 제시된 순서대로 각 세그먼트를 따릅니다.
기본 시스템에서 복제 환경을 복원하려면 다음을 수행합니다.
기본 시스템에서 -s 옵션을 사용해 sp_cop를 시작하여 SharePlex 프로세스(Capture, Read, Export, Import, Post)가 시작되지 않도록 합니다.
$ /productdir/bin/sp_cop -s &
기본 시스템에서 구성 파일을 비활성화합니다. 복사되고 아카이브된 SharePlex variable-data 디렉토리를 기본 시스템에 복사할 때 시스템이 실패하기 전에 활성 상태였던 구성을 복사했습니다. 이로 인해 기본 시스템에서 복제가 재개되면 Capture 프로세스가 트랜잭션 번호를 "1"로 설정합니다.
sp_ctrl> deactivate config filename
큐를 제거하려면 다음을 수행합니다.
기본 시스템에서 Capture 큐를 삭제합니다.
sp_ctrl> delete capture queue for datasrc [on host]
예: sp_ctrl> delete capture queue for o.oraA
기본 시스템에서 Export 큐를 삭제합니다.
sp_ctrl> delete export queue quename [on host]
예: sp_ctrl> delete export queue sysA
보조 시스템에서 Post 큐를 삭제합니다.
sp_ctrl> delete post queue quename for datasrc-datadst [cleartrans] [on host]
예: sp_ctrl> delete post queue sysA for o.oraA-o.oraB
참고:
|
보조 시스템에서 기본 시스템으로 복제를 시작하려면 다음을 수행합니다.
기본 시스템에서 모든 SharePlex 프로세스가 중지되었는지 확인합니다.
sp_ctrl> status
기본 시스템에서 Post를 중지합니다.
sp_ctrl> stop post
보조 시스템에서 Export를 시작합니다. 이를 통해 기본 시스템과 보조 시스템 간의 통신이 설정됩니다.
sp_ctrl> start export
소스 데이터와 타겟 데이터를 동기화하려면 다음을 수행합니다.
핫 백업이 완료되면 보조 시스템의 로그 파일을 전환하고 가장 높은 아카이브-로그 시퀀스 번호를 기록해 둡니다.
RESETLOGS 옵션을 사용하여 데이터베이스를 엽니다.
참고: 이 작업을 수행하면 시작 시 기본 시스템의 시퀀스가 캐시 맨 위로 재설정됩니다.
기본 시스템에서 이전에 기록한 로그의 시퀀스 번호를 사용하여 reconcile 명령을 실행합니다. 명명된 Post 큐를 사용하는 경우 각 큐에 대해 명령을 실행합니다. 큐 이름을 모르는 경우 먼저 qstatus 명령을 실행합니다.
sp_ctrl> qstatus
sp_ctrl> reconcile queue queuename for datasource-datadest seq sequence_number
예: reconcile queue SysB for o.oraA-o.oraA seq 1234
기본 시스템에서 복제를 활성화하려면 다음을 수행합니다.
기본 시스템에서 구성 파일을 활성화합니다.
sp_ctrl> activate config filename
기본 시스템에서 Post를 시작합니다.
sp_ctrl> start post
객체 캐시를 복원하려면 다음을 수행합니다.
기본 시스템에서 SharePlex 프로세스의 상태를 확인합니다.
sp_ctrl> status
참고: 이 명령은 객체 캐시가 누락되어 발생한 오류로 인해 Post가 중지되었음을 보여줍니다.
기본 시스템에서 filter 옵션과 함께 show log 명령을 실행하고 "objcache" 키워드로 필터링합니다.
sp_ctrl> show log filter=objcache
다음 예와 유사한 이름을 가진 파일을 참조하는 Post 오류 메시지를 찾습니다.
0x0a0100c5+PP+sys4+sp_opst_mt+o.quest-o.ov-objcache_sp_opst_mt.18
"objcache_sp_opst_mt" 문자열과 그 뒤에 숫자가 포함된 문자열을 찾고 있습니다. 이는 Post 프로세스에 필요한 객체 캐시 파일입니다. 명명된 Post 큐를 사용하는 경우 오류 메시지가 두 개 이상 표시됩니다. 각 오류 메시지는 서로 다른 객체-캐시 파일을 참조하지만 동일한 숫자(예의 숫자 .18)로 끝납니다.
오류 메시지에 표시된 Post 객체-캐시 파일의 전체 경로 이름을 기록해 둡니다. 경로는 SharePlex variable-data 디렉토리의 상태 디렉토리입니다. 예를 들면 다음과 같습니다.
splex_vardir/state/0x0a0100c5+PP+sys4+sp_opst_mt+o.quest-o.ov-objcache_sp_opst_mt.18
보조 시스템에서 SharePlex를 종료합니다.
sp_ctrl> shutdown
보조 시스템에서 디렉토리를 SharePlex variable-data 디렉토리의 상태 하위 디렉토리로 변경하고 Capture 객체-캐시 파일을 찾습니다. 이 파일의 이름은 다음 예의 이름과 비슷합니다.
o.quest-objcache_sp_ocap.18
중요! 이러한 파일이 두 개 이상인 경우에는 가장 최근 번호가 끝에 있는 파일을 사용하십시오. 이 번호는 Post 객체-캐시 파일 끝에 있는 번호(예의 .18)와 일치해야 합니다
기본 시스템에서 Post를 시작합니다.
sp_ctrl> start post
사용자를 기본 시스템으로 다시 전환하려면 다음을 수행합니다.
기본 시스템에서 Post 큐를 확인하고 메시지 수가 0이 될 때까지 계속해서 명령을 실행합니다.
sp_ctrl> qstatus
보조 시스템에서 Oracle 인스턴스를 종료합니다.
svrmgr1> shutdown
보조 시스템에서 Oracle 인스턴스를 시작합니다.
svrmgr1> startup
참고: 이 작업을 수행하면 기본 시스템과 동기화하기 위해 보조 시스템의 시퀀스가 캐시의 맨 위로 재설정됩니다.
보조 시스템에서 Post를 중지합니다.
sp_ctrl> stop post
보조 시스템에서 Post를 시작합니다.
sp_ctrl> start post
기본 시스템에서 Post 큐의 메시지 수를 확인하고 메시지 수가 0이 될 때까지 계속 확인합니다.
sp_ctrl> qstatus
보조 시스템에서 Export를 중지하여 해당 시스템에서 실수로 변경한 내용이 기본 시스템에 복제되는 것을 방지합니다.
sp_ctrl> stop export
참고: 이제 보조 시스템은 다음을 통해 다시 장애 조치 준비 상태가 됩니다.
|
보조(타겟) Oracle 인스턴스의 예기치 않은 장애로 인해 해당 시스템에서 기본 시스템으로의 복제 환경이 손상됩니다. 이 프로시저를 사용하면 기본 시스템의 데이터베이스 사용자에게 영향을 주지 않고 기본 시스템에서 구성 파일을 다시 활성화하지 않고도 복제 구성을 복원할 수 있습니다. 보조 구성만 영향을 받습니다.
이 프로시저는 SharePlex 큐를 정리하고 소스 시스템의 핫 백업을 통해 타겟 인스턴스를 복원합니다. reconcile 명령을 사용하여 복사된 인스턴스가 복구되면 진행 중인 복제된 사용자 변경 사항과 백업 결과를 동기화합니다.
Unix 또는 Linux의 Oracle 데이터베이스
이 프로시저는 논리적 세그먼트로 구분됩니다. 제시된 순서를 따르십시오.
큐를 제거하려면 다음을 수행합니다.
보조 시스템에서 Post를 중지합니다.
sp_ctrl> stop post
보조 시스템에서 구성 파일을 비활성화합니다.
sp_ctrl> deactivate config filename
참고: 비활성화하면 이벤트 로그에 “Error in sp_cnc.” 오류가 발생합니다. 이 오류를 무시하고 프로시저를 계속할 수 있습니다.
기본 시스템에서 Post 큐를 삭제합니다.
sp_ctrl> delete post queue quename for datasrc-datadst [cleartrans] [on host]
예: sp_ctrl> delete queue sysB:P for o.oraA-o.oraB
참고: 실패하기 전에 보조 인스턴스에서 보낸 커밋되지 않은 트랜잭션에서 메시지가 남아 있을 수 있기 때문에 기본 시스템에서 큐를 삭제 중입니다.
보조 시스템에서 Capture 큐를 삭제합니다.
sp_ctrl> delete capture queue for datasrc [on host]
예: sp_ctrl> delete queue o.oraB:C
보조 시스템에서 Export 큐를 삭제합니다.
sp_ctrl> delete export queue quename [on host]
예: sp_ctrl> delete queue sysB:X
참고: 해당 시스템의 Capture 및 Export 큐가 이미 처리된 트랜잭션의 레코드를 계속 유지하기 때문에 보조 시스템의 큐를 삭제 중입니다.
데이터를 동기화하려면 다음을 수행합니다.
기본 시스템에서 로그 파일을 전환합니다.
온프레미스 데이터베이스:
svrmgr1> alter system switch logfile;
Amazon RDS 데이터베이스:
Amazon RDS 프로시저 rdsadmin.rdsadmin_util.switch_logfile을 사용합니다.
SQL*Plus에서 SharePlex product 디렉토리의 bin 하위 디렉토리에서 cleanup.sql 스크립트를 실행합니다.
보조 시스템에서 이전에 기록한 로그의 시퀀스 번호를 사용하여 reconcile 명령을 실행합니다. 명명된 Post 큐를 사용하는 경우 각 큐에 대해 명령을 실행합니다. 큐 이름을 모르는 경우 먼저 qstatus 명령을 실행합니다.
sp_ctrl> qstatus
sp_ctrl> reconcile queue queuename for datasource-datadest seq sequence_number
예: reconcile queue SysA for o.oraA-o.oraA seq 1234
보조 시스템에서 sp_ctrl 프롬프트가 반환된 후 Export를 중지합니다. 이 작업을 수행하면 보조 시스템에서 구성을 활성화할 때 실수로 기본 시스템에 복제되는 일이 발생하지 않습니다.
sp_ctrl> stop export
보조 시스템에서 복제를 시작하려면 다음을 수행합니다.
보조 시스템에서 구성 파일을 활성화합니다.
sp_ctrl> activate config filename
보조 시스템에서 Post를 시작합니다.
sp_ctrl> start post
status 명령을 사용하여 다른 SharePlex 프로세스가 오류로 인해 중지됨 상태인지 확인하고 해당 프로세스를 시작합니다.
sp_ctrl> status
sp_ctrl> start process
참고: 이제 보조 시스템이 향후 장애 조치를 위해 준비되었습니다.
보조 Oracle 인스턴스에 대한 데이터베이스 활동의 계획된 장애 조치에서 SharePlex를 보조 시스템으로 신속하게 이동할 수 있습니다. 사용자가 해당 시스템에서 트랜잭션을 계속하는 동안 SharePlex는 기본 시스템이 다시 온라인 상태가 되고 활동이 해당 시스템으로 다시 이동할 때까지 변경 사항을 캡처하여 저장합니다.
Unix 또는 Linux의 Oracle 데이터베이스
이 프로시저는 논리적 세그먼트로 구분됩니다. 제시된 순서를 따르십시오. 프로시저에 메시지가 표시될 때까지 기본 인스턴스를 종료하지 마십시오.
사용자를 보조 시스템으로 전환하려면 다음을 수행합니다.
기본 시스템에서 큐의 데이터를 보조 시스템으로 플러시합니다. 이 명령은 보조 시스템에서 Post를 중지하고 데이터 스트림에 마커를 배치하여 기본 데이터와 보조 데이터 간의 동기화 지점을 설정합니다.
sp_ctrl> flush datasource
여기서, 데이터 소스는 기본 Oracle 인스턴스의 데이터 소스 사양입니다(예: o.OraA).
보조 시스템에서 Post가 중지되었는지 확인합니다. (Post 중지 상태가 표시될 때까지 이 명령을 계속 실행함)
sp_ctrl> status
기본 시스템에서 Capture 및 Export 큐에 메시지가 없는지 확인합니다. 메시지 수 및 백로그(메시지) 필드는 0이어야 합니다.
sp_ctrl> qstatus
보조 시스템에서 Post 큐에 메시지가 없는지 확인합니다. 메시지 수 및 백로그(메시지) 필드는 0이어야 합니다.
sp_ctrl> qstatus
기본 시스템에서 abort 옵션을 사용하여 Oracle 인스턴스를 종료합니다. immediate 옵션을 사용하지 마십시오.
svrmgr1> shutdown abort
참고: 이 작업을 수행하면 데이터베이스 시작 시 기본 시스템의 시퀀스가 캐시 맨 위로 재설정됩니다.
보조 시스템에서 Export가 중지되었는지 확인합니다. 이 작업을 수행하면 사용자 변경 사항이 다시 온라인 상태가 되고 SharePlex가 이를 수신할 준비가 될 때까지 기본 시스템에 복제되지 않습니다. 필요한 경우 Export를 중지합니다.
sp_ctrl> status
sp_ctrl> stop export
사용자를 기본 시스템으로 다시 전환하려면 다음을 수행합니다.
보조 시스템에서 SharePlex가 기본 시스템으로 누적된 복제 데이터를 보내도록 Export를 시작합니다.
sp_ctrl> start export
참고: SharePlex는 Export가 시작될 때 보조 시스템의 시퀀스 업데이트를 기본 시스템으로 다시 전달합니다.
기본 시스템에서 Export를 중지합니다.
sp_ctrl> stop export
기본 시스템에서 Post가 기본 시스템에서 전송된 메시지 백로그를 처리하도록 허용합니다.
보조 시스템에서 큐의 데이터를 기본 시스템으로 플러시합니다.
sp_ctrl> flush datasource
여기서, 데이터 소스는 보조 Oracle 인스턴스의 데이터 소스 사양입니다(예: o.OraB).
기본 시스템에서 Post가 중지되었는지 확인합니다. (Post 중지 상태가 표시될 때까지 이 명령을 계속 실행함)
sp_ctrl> status
보조 시스템에서 Capture 및 Export 큐에 메시지가 없는지 확인합니다. 메시지 수 및 백로그(메시지) 필드는 0이어야 합니다.
sp_ctrl> qstatus
기본 시스템에서 Post 큐에 메시지가 없는지 확인합니다. 메시지 수 및 백로그(메시지) 필드는 0이어야 합니다.
sp_ctrl> qstatus
보조 시스템에서 SharePlex를 종료합니다.
sp_ctrl> shutdown
보조 시스템에서 abort 옵션을 사용하여 Oracle 인스턴스를 종료합니다. immediate 옵션을 사용하지 마십시오.
svrmgr1> shutdown abort
참고: 이 작업을 수행하면 데이터베이스 시작 시 보조 시스템의 시퀀스가 캐시 맨 위로 재설정됩니다.
보조 시스템에서 Oracle 인스턴스를 시작합니다.
svrmgr1> startup
참고: 보조 시스템의 시퀀스는 이제 캐시의 맨 위에 있습니다. 기본 시스템에서 다음 값이 선택되면 새 캐시가 획득되어 보조 시스템에 복제됩니다. 이제 기본 시스템은 캐시의 시작 부분에 있고 보조 시스템은 캐시의 맨 위에 있습니다.
보조 인스턴스를 유지하기 위해 복제를 재개하려면 다음을 수행합니다.
보조 시스템에서 Export를 중지합니다. 이 작업을 수행하면 해당 시스템에서 실수로 DML이 기본 시스템에 복제되는 것을 방지합니다.
sp_ctrl> stop export
기본 시스템에서 Export를 시작합니다.
sp_ctrl> start export
보조 시스템에서 Post를 시작합니다.
sp_ctrl> start post
이제 기본 인스턴스에서 보조 인스턴스로의 복제가 활성화되어 두 데이터베이스를 동기화된 상태로 유지하고, 필요 시 향후 장애 조치에 대비할 수 있습니다.
© ALL RIGHTS RESERVED. 이용 약관 개인정보 보호정책 Cookie Preference Center