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

SharePlex 11.4 - 관리 안내서

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

UNIX에서 모니터 스크립트 실행

UNIX 또는 Linux에서 모니터 스크립트 실행

SharePlex 모니터링 스크립트는 Unix 또는 Linux 시스템의 복제에 부정적인 영향을 미칠 수 있는 이벤트와 상태를 알려줍니다. 이러한 스크립트는 sp_ctrl을 통해 상태를 자주 확인할 필요 없이 모니터링 메커니즘을 제공합니다. 스크립트를 독립적으로 실행하거나 scheduled job을 통해 실행할 수 있습니다.

SharePlex는 다음 스크립트를 제공합니다.

  • sp_eventmonSharePlex 이벤트 로그를 모니터링하고 특수 파일에 지정한 오류를 보고합니다.
  • sp_logmon은 리두 로그에 입력되는 변경 사항을 Capture가 얼마나 잘 맞춰가는지 모니터링합니다. 지정된 로그 수만큼 Capture 속도가 느려지면 sp_logmon은 사용자가 개선 조치를 취할 수 있도록 로그가 래핑되기 전에 경고합니다(Oracle 소스에만 해당).
  • sp_psSharePlex 프로세스를 모니터링하고 하나 이상이 중지되면 이를 알려 로그가 래핑되거나 큐가 사용 가능한 디스크 공간을 초과하기 전에 문제를 해결할 수 있도록 합니다.
  • sp_qstatmonSharePlex 큐의 상태를 모니터링하고 백로그가 사용자가 정의한 임계값(제한)을 초과하는 경우 경고를 보냅니다. 이를 통해 큐가 사용 가능한 디스크 공간을 초과하고 복제가 부정적인 영향을 받기 전에 개선 조치를 취할 수 있습니다.
중요!
  • 이러한 스크립트는 Unix 또는 Linux 시스템에서만 실행됩니다.
  • 모니터링 스크립트는 SharePlex 패치 및 업그레이드 중에 새 스크립트로 덮어쓰여집니다. 패치 또는 업그레이드를 설치하기 전에 사용자 지정이 유지되도록 기존 스크립트의 이름을 바꿉니다. 패치를 적용한 후 사용자 지정으로 새 스크립트를 업데이트합니다. 업데이트된 스크립트를 대체하기 위해 기존 스크립트의 이름을 바꾸지 마십시오. 이름을 바꾸면 중요한 개선 사항이나 수정 사항이 손실될 수 있습니다.

모니터링 스크립트 사용을 위한 요구 사항

  • 이러한 스크립트는 ksh 셸에서 실행되어야 합니다.
  • 모든 모니터링 스크립트는 설치된 디렉토리에 남아 있어야 합니다. sp_ps를 제외한 모든 항목은 SharePlex 설치 디렉토리의 .app-modules 디렉토리에 있습니다. sp_ps 스크립트는 설치 디렉토리의 util 디렉토리에 있습니다.

  • 이메일 유형이나 사용 가능한 페이징 등 환경을 반영하도록 스크립트를 사용자 지정해야 합니다.
  • 모니터링 스크립트를 사용하려면 -uname name 옵션을 사용하여 sp_cop을 시작합니다. 여기서, name은 선택한 식별자일 수 있습니다. 제안 사항은 다음과 같습니다.

    • SharePlex 포트 번호
    • 복제가 모니터링되는 인스턴스의 데이터베이스 이름
    • SharePlex 관리자 이름

  • SharePlex는 모니터링 스크립트를 실행하기 전에 실행 중이어야 합니다.
  • 모니터링 중인 각 Oracle 인스턴스에 대해 ORACLE_HOME(ORACLE_HOME 디렉토리 경로)을 확인합니다(Oracle 소스에만 해당).

  • 모니터링 스크립트는 sp_ctrl 명령을 사용합니다. 스크립트를 사용하기 전에 SharePlex product 디렉토리의 bin 하위 디렉토리에 있는 sp_ctrl 바이너리에 대한 링크를 util 하위 디렉토리에 만듭니다. 바이너리 자체를 복사하지 마십시오. 복사하면 sp_ctrl에 대한 패치를 유지 관리하기가 어렵습니다.
  • 모니터링 유틸리티 사용자는 다음과 같은 권한이 있어야 합니다.

    • sp_ctrl에 대한 로컬 접근 및 모니터링할 sp_cop이 실행 중인 시스템에서 스크립트를 실행할 수 있는 권한
    • Unix 또는 Linux 명령줄에서 Korn(ksh) 셸 접근 및 ps 권한
    • 스크립트가 있는 디렉토리에 대한 읽기, 쓰기 및 실행 권한
    • 755여야 하는 iwgrep 유틸리티에 대한 권한
  • 모니터링 유틸리티는 mailx 프로그램을 사용하여 이메일 알림을 보냅니다. 스크립트를 사용하기 전에 모니터링 스크립트가 배포될 모든 시스템에서 이메일을 보내도록 mailx가 구성되어 있는지 확인합니다.
  • 페이징을 사용하려면 서비스 공급업체가 페이징 장치에서 이메일 수신을 지원해야 합니다.
  • 이러한 스크립트에 의해 생성된 프로세스를 종료하려면 kill -9 명령을 사용합니다. kill 명령만으로 모든 프로세스가 종료되지는 않습니다.

sp_logmon으로 Oracle 캡처 모니터링

sp_logmon 모니터링 스크립트는 Capture가 읽기를 완료하기 전에 Oracle 리두 로그를 래핑하기 때문에 데이터를 재동기화해야 하는 상황을 방지할 수 있습니다. Oracle이 현재 작성 중인 리두 로그 그룹을 모니터링하고 어떤 로그 SharePlex를 읽고 있는지 확인합니다.

지정된 로그 수만큼 Capture 속도가 느려지면 sp_logmon은 해당 옵션이 활성화된 경우 logmon.log 파일과 이메일 메시지에 경고를 생성합니다. 이를 통해 지연 원인을 해결하고 필요한 경우 아카이브 로그를 복원할 시간을 확보할 수 있습니다.

sp_logmon 실행 준비

스크립트를 실행하기 전에 다음 작업을 수행합니다.

요구 사항 충족

이 스크립트를 사용하기 전에 모니터링 스크립트 사용을 위한 요구 사항를 참조하십시오.

참고: 스크립트는 ksh 셸에서 실행되어야 합니다.

이메일 주소 정의

이메일 알림 기능을 사용하려면 실행하기 전에 스크립트에서 이메일 주소를 정의합니다.

  1. SharePlex product 디렉토리의 app-modules 디렉토리에서 스크립트를 엽니다.
  2. MailUserName= 변수 뒤에 주소 문자열을 원하는 만큼 추가합니다. 전체 이메일 및/또는 페이저 주소를 사용합니다. 다음 예와 같이 여러 항목은 쉼표로 구분합니다.

    MailUserName=scott@company.com,12345678910@pageservice.com

중요! 스크립트를 수정하는 사람이 SharePlex 사용자가 아닌 경우 다음과 같은 Oracle 권한이 있어야 합니다.
  • CONNECT 권한
  • V$LOG 테이블에 대한 SELECT 권한
  • SharePlex 내부 테이블에 대한 SELECT 권한

sp_logmon 실행

app-modules이 아닌 SharePlex product 디렉토리의 util 하위 디렉토리에서 스크립트를 실행합니다. util 디렉토리에서 실행하면 유틸리티를 실행하는 소프트 링크가 생성되며, 이는 스크립트 자체를 실행하기 전에 올바른 환경을 먼저 설정합니다.

구문:

nohup sp_logmon -p port -t interval -l integer [-m ] [/dev/null] &

표6: 필요한 인수

인수 설명
nohup sp_logmon 현재 사용자가 로그아웃하는 경우 스크립트가 백그라운드에서 계속 실행되도록 지시합니다. 이를 통해 지속적인 모니터링이 보장됩니다. sp_logmon 구성 요소가 스크립트를 실행합니다.
-p port 모니터링 중인 sp_cop 인스턴스의 포트 번호를 설정합니다. 이 인수에 대해 서로 다른 값을 사용해 각각에 sp_logmon을 실행하여 서로 다른 SharePlex 인스턴스를 모니터링할 수 있습니다.
-t interval 검사 사이의 시간 간격을 초 단위로 설정합니다. 값은 양의 정수일 수 있습니다.
-l integer Oracle이 작성하는 위치와 Capture가 읽는 위치 사이에 허용되는 최대 리두 로그 수를 설정합니다. 이 값은 sp_logmon에 의해 생성된 경고를 트리거합니다. 유효한 값은 1부터 그룹의 리두 로그 수까지의 양의 정수입니다.
& 백그라운드에서 스크립트를 실행합니다.

표7: 선택적 인수

인수 설명
/dev/null 모니터링 프로세스가 백그라운드에서 계속 실행되고 출력을 생성할 수 있도록 알림 출력을 로컬 시스템의 /dev/null 장치로 리디렉션합니다. 출력을 화면에 표시하려면 이 인수를 생략합니다.
-m 이메일/페이징 옵션을 활성화합니다. 이 매개변수가 없으면 sp_logmon은 로그 파일에 오류만 기록합니다.

 

sp_eventmon으로 이벤트 모니터링

sp_eventmon 모니터링 스크립트는 설정된 간격으로 SharePlex 이벤트 로그(event_log)에서 키 복제 이벤트와 관련된 항목을 모니터링합니다. 검사 간격과 스크립트가 감지할 오류 메시지를 정의할 수 있습니다. 각 검사는 시스템에 미치는 영향을 최소화하고 중복 경고를 방지하기 위해 이전 검사가 중지된 지점부터 시작됩니다.

sp_eventmon 스크립트는 이벤트 로그를 검사할 때마다 다음 작업을 수행합니다.

  • sp_eventmon은 사용자가 정의한 오류를 감지하면 error.splex 로그 파일에 알림을 표시하고 해당 옵션이 활성화된 경우 이메일 메시지를 표시합니다.
  • 각 오류, 오류의 오류 이벤트 로그 줄 번호, sp_cop 인스턴스 이름(일반적으로 포트 번호), 오류 시간 및 날짜를 기록합니다.
  • 스크립트는 iwgrep 프로그램, error_list 파일(나중에 설명), username.mrk라는 마커 파일(여기서, usernamesp_eventmon을 실행할 때 -s 인수와 함께 입력하는 문자열에서 파생됨)을 사용합니다. 이러한 세 가지 구성 요소는 스크립트와 동일한 디렉토리에 보관되어야 합니다. 그렇지 않으면 작동되지 않습니다.
    참고: username.mrk 파일은 중복된 경고 메시지가 로그와 이메일 또는 페이저로 전송되는 것을 방지합니다. 이 파일이 없으면 스크립트는 시작할 때마다 처음부터 이벤트 로그 검사를 시작합니다. 이전에 생성된 경고가 다시 전송됩니다.

    sp_eventmon 실행 준비

    스크립트를 실행하기 전에 다음 작업을 수행합니다.

    요구 사항 충족

    이 스크립트를 사용하기 전에 모니터링 스크립트 사용을 위한 요구 사항를 참조하십시오.

    참고: 스크립트는 ksh 셸에서 실행되어야 합니다.

    오류 메시지 정의

    sp_eventmon 스크립트는 SharePlex product 디렉토리의 util 하위 디렉토리에 있는 error_list 파일에 나열된 이벤트를 검사합니다. 지원되는 오류에 대한 자세한 내용은 해당 파일을 확인하십시오. ASCII 텍스트 편집기에서 편집하여 error_list 파일에 사용자 지정 오류 문자열을 추가할 수 있습니다. 파일을 열고 각 오류 문자열을 별도의 줄에 배치합니다.

    IW_HOME 설정

    스크립트의 IW_HOME 변수는 각 시스템에서 올바른 값으로 설정되어야 합니다. 이 변수는 모니터링 스크립트와 iwgrep가 있는 디렉토리를 가리켜야 합니다.

    경로가 올바르지 않은 경우,

    1. SharePlex product 디렉토리의 app-modules 디렉토리에서 스크립트를 엽니다.
    2. 다음 예와 같이 경로를 설정합니다.

      IW_HOME=/export/home/splex/monscripts

    이메일 주소 정의

    이메일 알림 기능을 사용하려면 실행하기 전에 스크립트에서 이메일 주소를 정의합니다.

    1. SharePlex product 디렉토리의 app-modules 디렉토리에서 스크립트를 엽니다.
    2. MailUserName= 변수 뒤에 주소 문자열을 원하는 만큼 추가합니다. 전체 이메일 및/또는 페이저 주소를 사용합니다. 다음 예와 같이 여러 항목은 쉼표로 구분합니다.

      MailUserName=scott@company.com,12345678910@pageservice.com

    sp_eventmon 실행

    참고:
    • sp_eventmon의 여러 인스턴스를 실행하는 경우 각 인스턴스는 다른 운영 체제 사용자의 이름으로 실행되어야 합니다. 각 username.mrk 파일은 서로 다른 username을 갖습니다.
    • sp_eventmon 스크립트를 실행할 때 이벤트 로그를 자주 자르려면 sp_ctrl에서 truncate log 명령을 사용합니다. 로그가 너무 커지면 iwgrep 프로그램이 로그에서 적절하게 grep할 수 없습니다. truncate log 명령을 실행하는 경우 username.mrk 파일을 제거합니다. 다음에 sp_eventmon을 실행하면 새 파일이 생성됩니다. truncate log 명령에 대한 자세한 내용은 SharePlex 참조 안내서를 참조하십시오.

    • 오류가 있는 기존 이벤트 로그가 있고 스크립트가 실행 중인 경우, truncate log 명령을 실행한 다음, sp_cop_name.mrk 파일을 삭제합니다. 여기서, sp_cop_name은 스크립트가 실행될 때 -s 인수에 사용된 값입니다. 이 파일은 SharePlex product 디렉토리의 util 하위 디렉토리에 있습니다.

    sp_eventmon을 실행하려면 다음을 수행합니다.

    app-modules이 아닌 SharePlex product 디렉토리의 util 하위 디렉토리에서 스크립트를 실행합니다. util 디렉토리에서 실행하면 유틸리티를 실행하는 소프트 링크가 생성되며, 이는 스크립트 자체를 실행하기 전에 올바른 환경을 먼저 설정합니다.

    구문:

    nohup sp_eventmon -s 'sp_copname' -t interval -p path [-n name ] [-m] /dev/null &

    표8: 필요한 인수

    구성 요소 설명
    nohup sp_eventmon

    현재 사용자가 로그아웃하는 경우 스크립트가 백그라운드에서 계속 실행되도록 지시합니다. 이를 통해 지속적인 모니터링이 보장됩니다. sp_eventmon 구성 요소가 스크립트를 실행합니다.

    -s 'sp_copname'

    -u 옵션으로 sp_cop을 시작할 때 사용한 sp_cop의 이름을 설정합니다. sp_cop의 이름은 작은따옴표로 묶어야 합니다. 이 매개변수를 두 번 이상 사용하여 시스템의 여러 sp_cop 인스턴스를 모니터링할 수 있습니다. 이 매개변수가 없으면 sp_eventmon이 시작되지 않습니다.

    &

    백그라운드에서 스크립트를 실행합니다.

    -t interval

    검사 사이의 시간 간격을 초 단위로 설정합니다. 값은 양의 정수일 수 있습니다.

    표9: 옵션 구성품

    구성 요소 설명
    -p path SharePlex variable-data 디렉토리에 대한 경로를 설정합니다. 이 변수가 없으면 sp_eventmon이 기본 경로를 가정합니다.
    /dev/null 모니터링 프로세스가 백그라운드에서 계속 실행되고 출력을 생성할 수 있도록 알림 출력을 로컬 시스템의 /dev/null 장치로 리디렉션합니다. 출력을 화면에 표시하려면 이 인수를 생략합니다.
    -n name 기본 이름인 "event_log"가 아닌 경우 이벤트 로그의 이름을 설정합니다.
    -m 이메일/페이징 옵션을 활성화합니다. 이 옵션이 없으면 sp_eventmon은 로그 파일에 오류만 기록합니다.
  • sp_ps로 프로세스 모니터링

    sp_ps 모니터링 유틸리티는 지정된 sp_cop 인스턴스와 관련된 하위 프로세스를 포함하여 모든 SharePlex 프로세스를 모니터링합니다. 정기적으로 프로세스를 검사하고 비정상적인 상태를 하나 이상의 로그 파일에 보고합니다. 하나 이상의 시스템에서 SharePlex의 여러 설치를 모니터링할 수 있으며 단방향 및 양방향(피어-투-피어) 구성을 지원합니다.

    sp_ps 실행 준비

    스크립트를 실행하기 전에 다음 작업을 수행합니다.

    요구 사항 충족

    이 스크립트를 사용하기 전에 모니터링 스크립트 사용을 위한 요구 사항를 참조하십시오.

    참고: 스크립트는 ksh 셸에서 실행되어야 합니다.

    검사 간격 설정

    검사 간격은 sp_ps 프로그램이 검사 사이에 대기하는 시간을 지정합니다. 기본값은 2,000초입니다. 다른 검사 간격을 지정하려면 다음 단계를 따릅니다.

    1. SharePlex product 디렉토리의 app-modules 디렉토리에서 sp_ps 파일을 엽니다.
    2. interval= 매개변수를 필요한 검사 간격으로 설정합니다. 예를 들어 다음과 같이 양의 정수를 사용합니다.

      interval=1500

    이메일 주소 정의

    이메일 알림 기능을 사용하려면 실행하기 전에 스크립트에서 이메일 주소를 정의합니다.

    1. SharePlex product 디렉토리의 util 디렉토리에서 스크립트를 엽니다.
    2. MailUserName= 변수 뒤에 주소 문자열을 원하는 만큼 추가합니다. 전체 이메일 및/또는 페이저 주소를 사용합니다. 다음 예와 같이 여러 항목은 쉼표로 구분합니다.

      MailUserName=scott@company.com,12345678910@pageservice.com

    참고: 이메일/페이징 옵션은 sp_ps에 대해 기본적으로 활성화되어 있지만 변경되지 않았는지 확인하십시오. 스크립트에서 MAILOPTION=TRUE는 이메일 알림을 활성화하고 MAILOPTION=FALSE는 이메일 알림을 비활성화합니다.

    sp_ps 실행

    SharePlex product 디렉토리의 util 하위 디렉토리에서 스크립트를 실행합니다.

    구문:

    nohup sp_ps ['sp_cop -u name'] CONFIGURATION [> /dev/null] [ &]

     

    표10: 필요한 인수

    인수 설명
    nohup sp_ps 현재 사용자가 로그아웃하는 경우 스크립트가 백그라운드에서 계속 실행되도록 지시합니다. 이를 통해 지속적인 모니터링이 보장됩니다. sp_ps 구성 요소가 스크립트를 실행합니다.
    'sp_cop -u name' 둘 이상의 sp_cop 프로세스를 실행 중인 경우 이 매개변수를 사용합니다. 이 매개변수를 사용하여 모니터링할 각 프로세스를 지정합니다. 이 인수는 -u 옵션으로 sp_cop을 시작할 때 사용된 것과 정확히 동일한 이름을 반영해야 하며 작은따옴표로 묶어야 합니다. -uname 옵션이 없으면 sp_ps는 기본 SharePlex 포트 2100을 사용하는 sp_cop을 모니터링한다고 가정합니다.
    CONFIGURATION

    모니터링 중인 SharePlex 인스턴스의 구성 유형을 지정합니다. 이 값은 대문자로 입력해야 합니다. 유효한 값은 다음과 같습니다.

    SOURCE — 단방향 복제에 사용하여 소스 시스템의 Capture, Read 및 Export 프로세스를 모니터링합니다.

    TARGET — 단방향 복제에 사용하여 타겟 시스템의 Import 및 Post 프로세스를 모니터링합니다.

    MULTI-SOURCE — 피어-투-피어 복제에 사용합니다. 각 시스템의 Capture, Read, Export, Import 및 Post 프로세스를 모니터링하도록 스크립트에 지시합니다.

    참고: 동일한 시스템에서 소스 테이블과 타겟 테이블 간에 복제하는 경우 Export 또는 Import 프로세스가 없습니다.

    > /dev/null 모니터링 프로세스가 백그라운드에서 계속 실행되고 출력을 생성할 수 있도록 알림 출력을 로컬 시스템의 /dev/null 장치로 리디렉션합니다. 출력을 화면에 표시하려면 이 인수를 생략합니다.
    & (앰퍼샌드) 백그라운드에서 스크립트를 실행합니다.

    The document was helpful.

    평가 결과 선택

    I easily found the information I needed.

    평가 결과 선택