지금 지원 담당자와 채팅
지원 담당자와 채팅

SharePlex 11.4 - 관리 안내서

이 안내서 정보 이 안내서에 사용된 규칙 SharePlex 개요 SharePlex 실행 SharePlex의 여러 인스턴스 실행 sp_ctrl에서 명령 실행 SharePlex 매개변수 설정 데이터 복제 구성 컨테이너 데이터베이스와의 복제 구성 명명된 큐 구성 파티셔닝된 복제 구성 변경 내역 타겟에 대한 복제 구성 복제 전략 구성 DDL 복제 구성 오류 처리 구성 데이터 변환 구성 보안 기능 구성 SharePlex 사용자를 보안 그룹에 할당 프로덕션 시스템에서 복제 시작 SharePlex 모니터링 복제 문제 방지 및 해결 동기화 중단 데이터 복원 Capture 프로세스 조정 Post 프로세스 조정 Oracle 장애 조치 후 복제 복구 활성 복제 환경 변경 Oracle 애플리케이션 패치 또는 업그레이드 적용 소스 또는 타겟에서 Oracle 데이터 백업 문제 해결 팁 부록 A: 피어-투-피어 다이어그램 부록 B: SharePlex 환경 변수

ALTER TABLE DDL 모범 사례

Alter Table DDL 모범 사례

다음은 Oracle ALTER TABLE 작업 복제에 대한 모범 사례입니다.

VARRAY 또는 ABSTRACT 유형이 있는 테이블

ALTER TABLE을 실행하여 컬럼을 삭제하거나 그 후 곧 사용되지 않는 컬럼을 설정하려는 경우 VARRAY 컬럼 또는 추상 데이터 유형 컬럼을 추가하지 마십시오. 이 데이터 유형에 대한 정보를 얻으려면 SharePlex가 데이터베이스를 쿼리해야 합니다. SharePlex가 첫 번째 DDL을 처리할 수 있기 전에 두 번째 DDL이 수행되었다면 메타데이터가 이미 변경되었기 때문에 쿼리가 실패합니다.

시스템별 메타데이터가 포함된 테이블

일부 메타데이터가 데이터베이스 객체의 스토리지 매개변수와 같이 시스템에 특정한 경우, 해당 메타데이터에 대한 DDL이 복제될 때 예기치 않은 결과가 발생할 수 있습니다. 예를 들어 SharePlex는 ALTER TABLE 명령으로 일부만 변경되었던 경우에도 소스 Oracle 객체에 대한 모든 스토리지 매개변수를 복제합니다. 소스 및 타겟 객체가 동일한 스토리지 매개변수로 생성되지 않았던 경우 둘 중 하나가 발생할 수 있습니다. 타겟 테이블이 소스 테이블의 스토리지를 가정하거나 타겟이 DDL을 지원하지 않는 경우에 오류가 발생합니다.

예: MAXEXTENTS 525 및 MINEXTENTS 20이 있는 소스 테이블과 MAXEXTENTS 505 및 MINEXTENTS 4가 있는 타겟 테이블을 생각해 보겠습니다. 소스 객체의 MAXEXTENTS가 무제한으로 변경되면 SharePlex에서는 MAXEXTENTS 변경 사항과 변경되지 않은 MINEXTENTS 20개를 모두 복제합니다. MINEXTENTS는 현재 할당된 범위보다 클 수 없기 때문에 Oracle 오류 01570이 발생합니다. 또는 소스에서 MINEXTENTS가 1로 변경되었지만 MAXEXTENTS가 변경되지 않은 경우 SharePlex는 둘 다 복제하여 타겟 매개변수가 MAXEXTENTS 525 및 MINEXTENTS 1이 됩니다.

이름이 변경된 테이블

현재 복제 중인 소스 테이블에서 ALTER TABLE RENAME이 실행되면 SharePlex는 이전 구성 줄을 주석 처리하고 구성 파일 끝에 새 줄을 추가하여 활성 구성 파일의 테이블 이름을 변경합니다. 소스 테이블 이름과 타겟 테이블 이름이 동일한 경우 둘 다 새 이름으로 변경합니다. 둘 다 변경하지 않으면 소스 이름만 변경됩니다. 다음은 예입니다. 현재 복제 중인 소스 테이블에서 ALTER TABLE RENAME이 실행되면 SharePlex는 이전 구성 줄을 주석 처리하고 구성 파일 끝에 새 줄을 추가하여 활성 구성 파일의 테이블 이름을 변경합니다. 소스 테이블 이름과 타겟 테이블 이름이 동일한 경우 둘 다 새 이름으로 변경합니다. 둘 다 변경하지 않으면 소스 이름만 변경됩니다.

다음은 예입니다.

# Table scott.table1 renamed to scott.table2 August 5, 2003 10:14

scott.table2 scott.table2 sysA@o.ora555

RENAME 작업 시 Post 프로세스가 중지되는지 여부는 SP_OPO_STOP_ON_DDL_ERR 매개변수의 설정에 따라 달라집니다.

시스템 생성 간격 파티션/하위 파티션이 있는 테이블

데이터베이스가 시스템 생성 간격 파티션/하위 파티션의 이름을 생성하므로 소스의 해당 파티션 이름은 타겟의 해당 파티션 이름과 일치하지 않습니다. P_OCT_TRUNC_PARTITION_BY_ID 매개변수를 1로 설정하여 SharePlex가 ALTER TABLE을 복제하여 시스템 생성 간격 파티션을 TRUNCATE할 때 올바른 파티션을 자르도록 합니다. 이 설정은 SharePlex가 기존의 ALTER TABLE 명령에 지정된 파티션 이름을 사용하지 않고 파티션 ID를 사용하여 파티션을 식별하도록 지시합니다. Post는 파티션 ID를 타겟 테이블의 올바른 파티션 이름에 매핑합니다. 자세한 내용은 SP_OCT_TRUNC_PARTITION_BY_ID 를 참조하십시오.

시스템-명명된 간격 파티션/하위 파티션의 복제를 지원하려면 소스와 타겟 모두 SharePlex 버전 8.6.4 이상이어야 합니다.

SharePlex는 하위 파티션이 비어 있는 경우 시스템 생성 하위 파티션의 TRUNCATE를 지원하지 않습니다.

ALTER TABLE...MOVE

복제 중인 테이블의 기본 키 또는 유니크 키가 기록되지 않는 경우 테이블의 rowid를 변경하는 ALTER TABLE DDL 명령은 후속 DML 작업에 영향을 미칠 수 있습니다. 키가 기록되지 않으면 SharePlex는 rowid를 기반으로 해당 값을 가져옵니다. ALTER TABLE...MOVE와 같이 rowid를 변경하는 작업으로 인해 후속 DML 작업에 잘못된 키 값이 사용될 수 있습니다.

DDL 로깅 및 오류 처리

Capture와 Post는 모두 처리하는 DDL을 기록합니다. SharePlex는 복제된 DDL을 SharePlex이벤트 로그에도 인쇄하지만 이는 잘릴 수 있습니다. Post DDL 로그에만 완전한 DDL 문이 포함됩니다. SharePlex는 소스 및 타겟 시스템에 있는 variable-data 디렉토리의 log 하위 디렉토리에 DDL 로그를 저장합니다.

기본적으로 Post는 DDL 오류가 발생하면 중지됩니다. 오류는 일반적으로 소스 시스템에서 DDL이 실행된 데이터베이스 구성 요소가 타겟 데이터베이스에 존재하지 않음을 나타냅니다. SP_OPO_STOP_ON_DDL_ERR 매개변수의 기본 설정은 Post on DDL 오류를 중지하므로 해당 객체에 대한 후속 DML이 실패하지 않습니다. 이를 통해 문제를 해결하고 데이터베이스를 동기화된 상태로 유지할 수 있습니다. 이 매개변수에 대한 자세한 내용은 SharePlex 참조 안내서를 참조하십시오.

표5: SharePlex DDL 로그 명명 규칙

DDL 로그 유형 명명 규칙
Capture o.ORACLE_SID_ocap_ddl_log_number.log o.ora12_ocap_ddl_01.log
Oracle 타겟 o.ORACLE_SID_machine_name_opo_ddl_log_number.log o.ora12_server2_opo_ddl_01.log
Open Target 타겟 r.database_name_machine_name_xpst_ddl_log_number.log r.mssdb1_server3_xpst_ddl_01.log

오류 처리 구성

이 장에는 Post 프로세스에서 반환된 오류를 처리하기 위해 SharePlex가 제공하는 도구에 대한 개요가 포함되어 있습니다.

내용

오류 발생 시 계속 게시

DML 오류 발생 시 계속 게시

SharePlex는 DML 오류가 발생한 후 Post가 중지되지 않고 처리를 계속할 수 있는 방법을 제공합니다.

Oracle 및 SharePlex 오류에 대한 계속 게시

Oracle 타겟에 유효

SharePlex가 Oracle 타겟에 게시되면 특정 Oracle DML 오류와 특정 SharePlex 오류 메시지를 무시하고 처리를 계속하도록 Post를 구성할 수 있습니다. Post는 oramsglist 파일의 목록을 기반으로 무시할 메시지를 결정합니다. 파일은 기본적으로 작은 오류 목록과 함께 설치되지만 원하는 대로 제거할 수 있습니다.

Post가 오류를 무시하면 해당 오류를 SharePlex 이벤트 로그에 기록합니다. 또한 Post는 오류와 오류를 발생시킨 SQL 문을 오류 로그에 기록합니다. 이 로그의 이름은 SID_errlog.sql 로그 파일이며 SharePlex variable-data 디렉토리의 데이터 디렉토리에 저장됩니다. 자세한 내용은 이벤트 및 오류 보기를 참조하십시오.

참고: Post가 무시하지 않는 특정 오류가 있으며 해당 메시지가 oramsglist 파일에 나열되어 있어도 해당 메시지에 대해 중지됩니다.

중요: 이 기능을 사용할 때는 주의하십시오. 숨겨진 동기화 중단 상태가 발생할 수 있습니다. 타겟 사용자가 복제 지연을 허용할 수 없고 일부 동기화 중단 데이터가 허용되는 경우에만 이 매개변수를 활성화합니다. SID_errlog.sql 로그를 자주 확인하여 복제 문제를 초래할 수 있는 오류가 있는지 확인하십시오.

오류가 발생해도 Post를 계속하도록 구성하려면 다음을 수행합니다.

  1. 타겟 시스템에서 디렉토리를 SharePlex variable-data 디렉토리의 data 하위 디렉토리로 변경합니다.

  2. oramsglist 파일을 찾습니다.
  3. 복제가 활성화되지 않은 경우 텍스트 편집기에서 파일을 엽니다. 복제가 활성화된 경우 파일 복사본을 만든 후 편집기에서 복사본을 엽니다.

  4. 추가하는 오류 수만큼 첫 번째 줄의 숫자를 늘립니다. 이 숫자는 파일에 있는 총 오류 수와 같아야 합니다. 예를 들어 다음 파일에는 10개의 오류가 나열되어 있습니다.

    ora@sys1dad > vi oramsglist
    10
    604
    900
    902
    908
    909
    910
    911
    932
    960
    1026
  5. 파일의 에서 시작하여 앞의 예에서 표시된 대로 각 Oracle 또는 SharePlex 오류의 숫자를 한 줄에 하나씩 추가합니다. 메시지는 숫자 순서로 표시될 필요가 없습니다.

  6. 파일을 저장한 후 닫습니다.
  7. Post를 중지합니다(실행 중인 경우).

    sp_ctrl> stop post

  8. oramsglist 파일의 복사본을 편집한 경우 복사본을 oramsglist의 원래 이름으로 저장합니다.
  9. SP_OPO_CONT_ON_ERR 매개변수의 값을 1로 변경합니다. 또는 oramsglist 파일에 나열된 테이블 오류에 대한 게시를 계속하려면 값을 2로 변경합니다. SP_OPO_CONT_ON_ERR 매개변수에 대한 설명은 SharePlex 참조 안내서를 참조하십시오.

    sp_ctrl> set param SP_OPO_CONT_ON_ERR 1

  10. Post를 시작합니다.

    sp_ctrl> start post

ODBC 오류에 대해 계속 게시

Open Target에 유효

SharePlex가 Open Target 타겟에 게시되면 ODBC 오류를 무시하고 처리를 계속하도록 Post를 구성할 수 있습니다. Post는 SharePlex 이벤트 로그에 오류를 기록합니다. 또한 Post는 오류와 오류를 발생시킨 SQL 문을 오류 로그에 기록합니다. 이 로그의 이름은 ID_errlog.sql 로그 파일이며 여기서, ID는 데이터베이스 식별자입니다. 파일은 SharePlex variable-data 디렉토리의 데이터 디렉토리에 저장됩니다. 자세한 내용은 이벤트 및 오류 보기를 참조하십시오.

중요: 이 기능을 사용할 때는 주의하십시오. 숨겨진 동기화 중단 상태가 발생할 수 있습니다. 타겟 사용자가 복제 지연을 허용할 수 없고 일부 동기화 중단 데이터가 허용되는 경우에만 이 매개변수를 활성화합니다. SID_errlog.sql 로그를 자주 확인하여 복제 문제를 초래할 수 있는 오류가 있는지 확인하십시오.

오류가 발생해도 Post를 계속하도록 구성하려면 다음을 수행합니다.

  1. 타겟 시스템에서 디렉토리를 SharePlex variable-data 디렉토리의 data 하위 디렉토리로 변경합니다.

  2. 데이터베이스에 따라 다음 파일 중 하나를 찾습니다. 이러한 파일은 빈 상태로 설치됩니다.

    파일 이름 지원되는 데이터베이스

    postgresmsglist

    Postgres
    sqlservermsglist Microsoft SQL Server
    mysqlmsglist Oracle MySQL

    참고: 메시지 파일에 해당 오류를 나열하더라도 Post가 중지되는 특정 오류가 있습니다.

  3. 복제가 활성화되지 않은 경우 텍스트 편집기에서 파일을 엽니다. 복제가 활성화된 경우 파일 복사본을 만든 후 편집기에서 복사본을 엽니다.

  4. 파일의 에서 시작하여 예에서 표시된 대로 각 오류의 숫자를 한 줄에 하나씩 추가합니다. 메시지는 숫자 순서로 표시될 필요가 없습니다.

    예:

    sqlservermsglist:

    8102

    8180

    544

    2627

    3621

  5. 파일을 저장한 후 닫습니다.
  6. Post를 중지합니다(실행 중인 경우).

    sp_ctrl> stop post

  7. 기존 파일을 복사한 경우 원래 이름으로 다시 저장합니다.
  8. SP_OPX_CONT_ON_ERR 매개변수의 값을 1로 변경합니다.

    sp_ctrl> set param SP_OPX_CONT_ON_ERR 1

  9. Post를 시작합니다.

    sp_ctrl> start post

The document was helpful.

평가 결과 선택

I easily found the information I needed.

평가 결과 선택