활성화 전 구성 테스트
프로덕션에서 구성을 활성화하기 전에 verify config 명령을 사용하여 테스트 활성화를 수행합니다. 구성 파일에 구문 오류, 철자 오류 또는 중복 항목이 있는 경우 전체 활성화가 실패합니다.
이 명령은 구성을 테스트하여 다음 조건을 찾고 보고합니다.
- 구성 파일에 있는 항목의 구문을 확인하십시오.
- 소스 객체가 SharePlex에 의한 복제를 지원하지 않으면 오류를 보고합니다.
- 경로에 지정된 호스트 이름에 연결할 수 없는 경우 보고합니다.
- 단일 객체에 대한 중복 사양이 있는 경우 보고합니다.
- 객체 사양을 건너뛸지 여부와 그 이유를 보고합니다.
verify config 명령은 활성화에 소요되는 시간을 확인하지 않으며, 타겟 객체나 데이터베이스 연결(라우팅 맵에 나열된 데이터베이스 식별자로 표시됨)도 확인하지 않습니다.
자세한 내용은 SharePlex 참조 안내서의 verify config 명령을 참조하십시오.
활성화에 대해 자주 묻는 질문
활성화 중에는 어떤 작업이 수행됩니까?
활성화 중에 SharePlex는 복제용으로 구성된 객체를 식별 및 파악하고 라우팅 맵을 빌드하는 데 필요한 정보를 얻습니다. 자세한 내용은 활성화란?를 참조하십시오.
활성화가 완료되는 데 얼마나 걸립니까?
활성화에 소요되는 시간은 구성된 객체의 크기, 개수. 구조에 따라 다릅니다.
사용자는 데이터에 대한 접근을 중지해야 합니까?
Oracle 데이터베이스는 트랜잭션에 계속 사용할 수 있습니다. 각 소스 테이블은 잠시 잠겨 있으므로 SharePlex는 내부 객체 정보를 빌드할 수 있습니다. 빌드되면 잠금이 해제됩니다. 이 작업은 매우 빠르게 수행되기 때문에 사용자가 알아차리지 못할 수도 있습니다. 그러나 비즈니스 애플리케이션에 NOWAIT 잠금이 있는 경우에는 SharePlex 잠금으로 인해 활성화 중인 객체에 대한 잠금을 얻으려고 시도하면 애플리케이션이 실패할 수 있습니다.
활성화 중에 DDL을 수행할 수 있습니까?
아니요. 활성화 중에는 객체 정의를 변경할 수 없습니다.
동일한 데이터 소스에 대해 여러 구성을 활성화할 수 있습니까?
지원 동일한 데이터 소스에 대해 서로 다른 구성을 만들 수 있습니다. SharePlex의 여러 인스턴스(다른 포트에서 실행되는 다른 sp_cop 프로세스 및 variable-data 디렉토리)를 사용해야 합니다. 자세한 내용은 1페이지의 SharePlex의 여러 인스턴스 실행를 참조하십시오.
동시에 여러 데이터 소스에 대한 구성을 활성화할 수 있습니까?
지원 자세한 내용은 여러 구성 파일을 활성화하는 방법를 참조하십시오.
구성을 활성화하기 전에 테스트할 수 있습니까?
지원 활성화 전에 테스트를 하는 것이 권장됩니다. verify config 명령을 사용하십시오. 자세한 내용은 구성 활성화를 위한 요구 사항를 참조하십시오.
변경을 위해 활성화를 중단할 수 있습니까?
아니요. 활성화는 리두 로그에 나타나는 것과 동일한 일련의 트랜잭션 이벤트를 유지하면서 복제를 시작하는 중단 없는 프로시저를 의미합니다. abort config 명령을 사용하여 활성화를 종료할 수 있지만 그러면 큐를 정리하고 소스 및 타겟 데이터를 다시 재동기화해야 할 수도 있습니다. 이상적으로는 테스트된 구성 파일을 활성화하고 데이터베이스 및 SharePlex에 명령을 실행할 준비가 되어 있어야 합니다.
Quiet 데이터베이스에 대해 활성화할 수 있습니까?
지원 Oracle 캡처를 활성화하기 위한 Quiet 데이터베이스는 선택 사항입니다. 단, Oracle 데이터베이스는 마운트되어 열려 있어야 합니다.
활성화 스레드 수를 늘릴 수 있습니까?
예. 그러나 Oracle 소스에만 해당됩니다. 스레드 수는 SP_OCF_THREAD_COUNT 매개변수에 의해 전역적으로 제어됩니다. 이 매개변수는 activate config 명령을 실행하기 전에 설정해야 합니다. activate config 명령을 실행할 때 스레드 옵션을 사용하여 특정 활성화에 대해 이 값을 재정의할 수 있습니다.
여러 구성 파일을 활성화하는 방법
시스템의 데이터 소스당 하나의 구성을 활성화할 수 있습니다. 예를 들어 동일한 데이터 소스에 대해 ConfigA, ConfigB, ConfigC가 있는 경우 한 번에 하나만 활성화할 수 있습니다. 동일한 데이터 소스에 대해 다른 구성을 활성화하면 첫 번째 구성이 자동으로 비활성화됩니다.
그러나 ConfigA가 하나의 데이터 소스에서 데이터를 복제하고 ConfigB가 다른 데이터 소스에서 데이터를 복제하는 경우에는 두 구성을 동시에 활성화할 수 있습니다. 해당 구성에 대한 복제는 동시에 작동될 수 있습니다.
여러 구성 파일을 활성화하려면 다음을 수행합니다.
활성화 프로세스는 활성화가 완료될 때까지 sp_ctrl 인터페이스에 대한 제어를 유지합니다. 활성화에는 상당한 시간이 걸릴 수 있기 때문에 sp_ctrl의 여러 세션에서 다양한 구성을 활성화할 수 있습니다. 첫 번째 구성을 활성화한 후 sp_ctrl의 다른 세션을 열어 두 번째 구성을 활성화합니다. 활성화할 구성 수만큼 sp_ctrl 세션을 엽니다.
Oracle 소스에 대해 활성화 스레드 수를 제어할 수 있습니다. 스레드 수를 설정하려면 SharePlex 인스턴스에 대한 전역 설정인 SP_OCF_THREAD_COUNT 매개변수를 사용합니다. 둘 이상의 구성을 동시에 활성화하는 경우 activate config 명령을 실행할 때 스레드 옵션을 사용하여 특정 활성화에 대해 이 값을 재정의할 수 있습니다.
활성 데이터베이스에서 Oracle 핫 백업을 사용하여 복제 활성화
Oracle 핫 백업을 사용하여 타겟 Oracle 인스턴스를 설정하고 소스 데이터베이스를 Quiet 설정하지 않고 복제를 활성화하려면 이 프로시저를 사용합니다. 이 프로시저에는 reconcile 명령을 사용하여 백업 시점 이후에 발생한 트랜잭션이 타겟에 적용되도록 하고, 동시에 백업에서 이미 캡처된 이중화 복제 트랜잭션을 제거하는 작업이 포함됩니다.
예비 고려 사항
계속하기 전에 다음 사항을 읽어 보십시오.
지원되는 데이터베이스
Oracle 소스 및 Oracle 타겟
지원되는 복제 전략
모든 복제 전략은 다음 제한 사항과 함께 지원됩니다.
통합 복제(여러 소스를 하나의 타겟으로) |
통합 복제를 설정하려면 모든 소스 시스템에서 핫 백업을 사용할 수는 없습니다. 한 소스의 백업은 다른 소스의 백업에 의해 적용된 데이터보다 우선 적용됩니다. 소스 인스턴스 중 하나의 핫 백업을 사용하여 타겟 인스턴스를 설정한 다음, 다른 복사 방법을 사용하여 다른 소스 인스턴스의 객체를 적용할 수 있습니다. 가능한 방법은 다음과 같습니다.
|
피어-투-피어 |
피어-투-피어 복제를 설정하려면 다음을 수행해야 합니다.
- 이 프로시저가 진행되는 동안 신뢰할 수 있는 소스 시스템을 제외한 모든 시스템을 Quiet 설정합니다.
- 모든 사용자를 신뢰할 수 있는 소스 시스템으로 이동한 후 이 프로시저를 따릅니다.
모든 보조 시스템에서 이 프로시저를 수행한 후에만 사용자가 해당 시스템에서 활동을 재개할 수 있습니다. |
요구 사항
- [Unix 및 Linux 시스템] oratab 파일의 ORACLE_SID 및 ORACLE_HOME이 핫 백업으로 설정할 인스턴스에 대해 올바른지 확인합니다. SID는 활성화할 구성 파일의 라우팅 맵에 사용된 것이어야 합니다.
- 이 프로시저를 시작하기 전에 요구 사항을 읽어 보십시오. 자세한 내용은 구성 활성화를 위한 요구 사항를 참조하십시오.
- SharePlex 데이터베이스 계정은 소스 데이터베이스에(만) 있어야 합니다. 이 계정은 일반적으로 SharePlex를 먼저 설치할 때 생성됩니다. 자세한 내용은 SharePlex 설치 및 설정 안내서를 참조하십시오.
- 시작하기 전에 이 프로시저를 살펴보고 사용되는 명령에 대한 자세한 내용은 SharePlex 참조 안내서를 참조하십시오.
문제 해결
구성이 활성화되지 않으면 다음 위치에서 장애에 대한 정보를 찾을 수 있습니다.
- event_log를 보려면 show log 명령을 사용합니다.
- SharePlex variable-data 디렉토리의 log 하위 디렉토리에 있는 SID_oconf##.log 파일인 활성화 프로세스 로그를 확인합니다.
Oracle의 데이터베이스 설정 문제 해결도 참조하십시오.
프로시저
복제 전략에 따라 핫 백업을 활성화하는 프로시저는 두 가지가 있습니다.
핫 백업을 통한 활성화: 단계화를 제외한 모든 전략
핫 백업을 통한 활성화: 단계화 복제
핫 백업을 통한 활성화: 단계화를 제외한 모든 전략
SharePlex가 중간 시스템의 데이터베이스에 게시되는 단계화 복제를 제외한 모든 복제 전략에 이 프로시저를 사용합니다.
단계화를 제외한 모든 전략에 대해 핫 백업을 활성화하려면 다음 단계를 수행합니다.
- 소스 시스템과 타겟 시스템에서 SharePlex product 디렉토리의 bin 하위 디렉토리로 이동하여 sp_cop 및 sp_ctrl을 시작합니다. 클러스터에서 소스는 클러스터 VIP가 실행 중인 기본 노드입니다.
-
두 시스템에서 SharePlex 프로세스가 실행 중인지 확인합니다.
sp_ctrl> status
-
타겟 시스템(타겟 클러스터의 기본 노드)에서 Post 프로세스를 중지합니다. 이를 통해 데이터베이스가 복구되고 조정될 때까지 복제된 데이터가 Post 큐에 누적될 수 있습니다.
sp_ctrl> stop post
- 소스 시스템에서 Oracle 핫 백업을 실행합니다.
-
백업이 완료되면 소스 시스템에서 구성을 활성화합니다.
sp_ctrl> activate config filename
-
소스 시스템에서 활성화 상태를 모니터링합니다.
참고: 이 명령은 활성화가 완료될 때까지 sp_ctrl에 대한 제어를 유지합니다.
-
활성화가 완료되면 소스 시스템의 로그 파일을 전환합니다.
온프레미스 데이터베이스:
svrmgr1> alter system switch logfile;
Amazon RDS 데이터베이스:
Amazon RDS 프로시저 rdsadmin.rdsadmin_util.switch_logfile을 실행합니다.
-
다음 중 하나를 수행합니다.
-
타겟 시스템에서 다음 중 하나를 수행합니다.
- 시퀀스 번호로 복구하는 경우 RECOVER 절의 UNTIL CANCEL 옵션을 사용하여 핫 백업에서 데이터베이스를 복구하고, Oracle이 이전 단계의 로그를 완전히 적용하면 복구를 취소합니다.
- SCN으로 복구하는 경우 RECOVER 절의 UNTIL CHANGE scn 옵션을 사용하여 핫 백업에서 데이터베이스를 복구하고, Oracle이 이전 단계의 SCN과 일치하는 로그를 적용하면 복구를 취소합니다.
- 타겟 시스템에서 RESETLOGS 옵션을 사용하여 데이터베이스를 엽니다.
-
타겟 시스템의 데이터베이스에서 Database Setup for Oracle을 실행합니다. SharePlex 데이터베이스 사용자를 묻는 메시지가 나타나면 n을 입력하여 (백업에 복사된) 기존 사용자 및 비밀번호를 선택합니다.
Would you like to create a new SharePlex user [y]. n
-
[선택 사항] 명명된 Post 큐를 사용 중이고 큐 이름이 확실하지 않은 경우에는 qstatus 명령을 실행합니다.
sp_ctrl> qstatus
-
타겟 시스템에서 선택한 복구 옵션에 따라 다음과 같이 reconcile 명령을 실행합니다. 명명된 Post 큐를 사용하는 경우 각 큐에 대해 명령을 실행합니다.
-
시퀀스 번호로 복구하는 경우 이전에 기록한 로그의 시퀀스 번호를 대체합니다.
sp_ctrl> reconcile queue queuename for datasource-datadest seq sequence_number
예: reconcile queue SysA for o.oraA-o.oraA seq 1234
-
SCN으로 복구하는 경우 이전에 기록한 SCN을 대체합니다.
sp_ctrl> reconcile queue queuename for datasource-datadest scn scn_number
예: reconcile queue SysA for o.oraA-o.oraA scn 0123456789
참고: 이 명령은 조정 프로세스가 완료될 때까지 sp_ctrl에 대한 제어를 유지합니다.
- 타겟 시스템에서 cleanup.sql 스크립트를 실행하여 SharePlex 내부 테이블을 자릅니다. 이 스크립트를 실행하기 위한 지침은 SharePlex 참조 안내서에 있습니다.
- 타겟 시스템에서 테이블의 트리거를 비활성화하거나 sp_add_trigger.sql 유틸리티 스크립트를 실행하여 트리거가 SharePlex 사용자를 무시하도록 합니다.
- 타겟 시스템에서 체크 제약 조건과 DML을 수행하는 scheduled job을 비활성화합니다.
- [파티셔닝된 복제만 해당] 테이블에 대해 수직으로 파티셔닝된 복제 또는 수평으로 파티셔닝된 복제를 사용하는 경우 해당 테이블에서 불필요한 컬럼과 행을 삭제합니다.
-
[고가용성만 해당] 타겟(보조) 시스템에서 Export를 중지합니다.
sp_ctrl> stop export
-
[고가용성 및 피어-투-피어만 해당] 타겟(보조) 시스템에서 장애 조치 시 SharePlex가 준비되도록 구성을 활성화합니다.
sp_ctrl> activate config filename
-
타겟 시스템에서 Post 프로세스를 시작합니다. 이제 두 인스턴스가 동기화되었으며 SharePlex는 동기화를 유지하기 위해 계속 복제됩니다.
sp_ctrl> start post
- [선택 사항] 부분 백업인 경우 핫 백업 중에 복사되지 않은 테이블스페이스를 삭제합니다.
핫 백업을 통한 활성화: 단계화 복제
SharePlex가 중간 시스템의 데이터베이스에 게시되는 단계화 복제에 이 프로시저를 사용합니다.
먼저 중간 시스템("sysB"로 표시)에 백업을 적용한 후 타겟 시스템("sysC"로 표시)에 적용합니다.
단계화 복제를 위해 핫 백업을 활성화하려면 다음 단계를 수행합니다.
- 모든 시스템에서 SharePlex product 디렉토리의 bin 하위 디렉토리로 이동하여 sp_cop 및 sp_ctrl을 시작합니다.
- 모든 시스템에서 SharePlex 프로세스가 실행 중인지 확인합니다.
sp_ctrl> status
- 중간 시스템과 타겟 시스템에서 Post 프로세스를 중지합니다. 이를 통해 데이터베이스가 복구될 때까지 복제된 데이터가 Post 큐에 누적될 수 있습니다.
-
sp_ctrl> stop post
- 소스 시스템에서 중간 시스템과 타겟 시스템에 대한 Oracle 핫 백업을 실행합니다.
-
백업이 완료되면 소스 시스템에서 구성을 활성화합니다.
sp_ctrl> activate config filename
-
소스 시스템에서 활성화 상태를 확인합니다.
참고: 이 명령은 활성화가 완료될 때까지 sp_ctrl에 대한 제어를 유지합니다.
-
활성화가 완료되면 소스 시스템의 로그 파일을 전환합니다.
온프레미스 데이터베이스:
svrmgr1> alter system switch logfile;
Amazon RDS 데이터베이스:
Amazon RDS 프로시저 rdsadmin.rdsadmin_util.switch_logfile을 실행합니다.
- 가장 높은 아카이브-로그 시퀀스 번호를 기록해 둡니다.
- 중간 시스템에서 RECOVER 절의 UNTIL CANCEL 옵션을 사용하여 핫 백업에서 데이터베이스를 복구하고, Oracle이 이전 단계의 로그를 완전히 적용하면 복구를 취소합니다.
- 중간 시스템에서 RESETLOGS 옵션을 사용하여 데이터베이스를 엽니다.
-
중간 시스템의 데이터베이스에서 데이터베이스 설정을 실행합니다. SharePlex 데이터베이스 사용자를 묻는 메시지가 나타나면 n을 입력하여 (백업에 복사된) 기존 사용자 및 비밀번호를 선택합니다.
Would you like to create a new SharePlex user [y]. n
-
[선택 사항] 명명된 Post 큐를 사용 중이고 큐 이름이 확실하지 않은 경우에는 qstatus 명령을 실행합니다.
sp_ctrl> qstatus
- 중간 시스템에서 각 Post 큐에 대해 reconcile 명령을 실행합니다. seq sequence_number의 경우 이전에 기록한 로그의 시퀀스 번호를 대체합니다.
sp_ctrl> reconcile queue queuename for datasource-datadest seq sequence_number
예: reconcile queue SysA for o.oraA-o.oraA seq 1234
-
중간 시스템에서 cleanup.sql 스크립트를 실행하여 모든 SharePlex 내부 테이블을 자릅니다. 이 스크립트를 실행하기 위한 지침은 SharePlex 참조 안내서에 있습니다.
- 중간 시스템에서 테이블의 트리거를 비활성화하거나 sp_add_trigger.sql 유틸리티 스크립트를 실행하여 트리거가 SharePlex 사용자를 무시하도록 합니다.
- 중간 시스템에서 체크 제약 조건과 DML을 수행하는 scheduled job을 비활성화합니다.
-
중간 시스템에서 SP_OCT_REPLICATE_POSTER 매개변수를 1로 설정합니다. 설정하면 SharePlex가 해당 시스템에 게시된 변경 사항을 캡처하여 타겟 시스템에 복제하도록 지시합니다.
sp_ctrl> set param SP_OCT_REPLICATE_POSTER 1
-
[파티셔닝된 복제만 해당] 테이블에 대해 수직으로 파티셔닝된 복제 또는 수평으로 파티셔닝된 복제를 사용하는 경우 해당 테이블에서 불필요한 컬럼과 행을 삭제합니다.
중요! 어떤 Post 프로세스도 아직 시작하지 마십시오.
-
타겟 시스템에서 RECOVER 절의 UNTIL CANCEL 옵션을 사용하여 핫 백업에서 데이터베이스를 복구하고, Oracle이 중간 시스템에서 수행한 이전 단계에서 조정한 로그를 완전히 적용하면 복구를 취소합니다.
- 타겟 시스템에서 RESETLOGS 옵션을 사용하여 데이터베이스를 엽니다.
-
타겟 시스템의 데이터베이스에서 데이터베이스 설정을 실행합니다. SharePlex 데이터베이스 사용자를 묻는 메시지가 나타나면 n을 입력하여 (백업에 복사된) 기존 사용자 및 비밀번호를 선택합니다.
Would you like to create a new SharePlex user [y]. n
참고: SharePlex는 설정 프로세스 중에 계속 실행될 수 있습니다. 데이터베이스 설정에 대한 자세한 내용은 SharePlex 참조 안내서의 데이터베이스 설정 유틸리티를 참조하십시오.
-
타겟 시스템에서 cleanup.sql 스크립트를 실행하여 SharePlex 내부 테이블을 자릅니다. 이 스크립트를 실행하기 위한 지침은 SharePlex 참조 안내서에 있습니다.
- 타겟 시스템에서 테이블의 트리거를 비활성화하거나 sp_add_trigger.sql 유틸리티 스크립트를 실행하여 트리거가 SharePlex 사용자를 무시하도록 합니다.
- 타겟 시스템에서 , 체크 제약 조건, DML을 수행하는 scheduled job을 비활성화합니다.
-
[파티셔닝된 복제만 해당] 테이블에 대해 수직으로 파티셔닝된 복제 또는 수평으로 파티셔닝된 복제를 사용하는 경우 해당 테이블에서 불필요한 컬럼과 행을 삭제합니다.
-
중간 시스템에서 구성 파일을 활성화합니다.
sp_ctrl> activate config filename
-
중간 시스템에서 활성화 상태를 모니터링합니다.
참고: 이 명령은 활성화가 완료될 때까지 sp_ctrl에 대한 제어를 유지합니다.
-
중간 시스템과 타겟 시스템에서 Post 프로세스를 시작합니다. 이제 모든 인스턴스가 동기화되었으며 SharePlex는 동기화를 유지하기 위해 계속 복제됩니다.
sp_ctrl> start post
-
[선택 사항] 부분 백업인 경우 핫 백업 중에 복사되지 않은 테이블스페이스를 삭제합니다.