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

SharePlex 11.4 - 설치 및 설정 안내서

이 안내서 정보 이 안내서에 사용된 규칙 Oracle 소스에 SharePlex 설치 및 설정
Oracle용 SharePlex 사전 설치 체크리스트 SharePlex 설치 프로그램 다운로드 Linux 및 UNIX에 SharePlex 설치 복제를 위한 Oracle 환경 설정 Oracle에서 다른 타겟 유형으로의 복제 설정 Oracle용 클라우드 호스팅 데이터베이스 설치 및 설정 원격 캡처 설치 및 설정 HA 클러스터 설치 및 설정 Oracle용 일반 SharePlex 데모 Oracle용 고급 SharePlex 데모 데이터베이스 설정 유틸리티 Oracle 설치 문제 해결
PostgreSQL 데이터베이스를 소스 및 서비스로 사용하여 SharePlex 설치 및 설정
PostgreSQL용 SharePlex 사전 설치 체크리스트 PostgreSQL용 SharePlex 설치 프로그램 다운로드 PostgreSQL용 Linux에 소스로 SharePlex 설치 PostgreSQL에서 지원되는 타겟 유형으로의 복제 설정 PostgreSQL용 클라우드 호스팅 데이터베이스 설치 및 설정 PostgreSQL용 원격 캡처 설치 및 설정 PostgreSQL 고가용성 클러스터에 SharePlex 설치 논리적 복제를 사용하여 고가용성을 갖춘 PostgreSQL Azure Flexible Server에서 SharePlex 구성 PostgreSQL용 일반 SharePlex 데모 PostgreSQL용 고급 SharePlex 데모 Database Setup for PostgreSQL Database Setup for PGDB as a Service pg_hint_plan 확장 설치 PostgreSQL 설치 문제 해결
Docker 컨테이너에 SharePlex 설치 SharePlex 사용자를 보안 그룹에 할당 설치 문제 해결 SharePlex 제거 고급 설치 프로그램 옵션 SharePlex를 루트로 설치 SharePlex가 설치한 항목

충돌 해결 데모

Oracle에 대한 충돌 해결 데모

참고: 계속하려면 먼저 SharePlex 데모 객체가 설치되어 있는지 확인하십시오. 데모를 위한 사전 작업 를 참조하십시오.

이 데모에서는 SharePlex를 구성하여 일반적인 충돌 해결 프로시저를 사용해 복제 충돌을 해결합니다. 일반적인 충돌 해결을 사용하면 하나의 PL/SQL 프로시저를 사용하여 여러 테이블의 충돌을 해결할 수 있습니다.

다음과 같은 충돌 해결 전략이 시연됩니다.

  • 타임스탬프 우선순위 – 이 데모는 UPDATE를 기반으로 합니다. 충돌이 있는 경우 마지막으로 업데이트된 행이 우선합니다.
  • 신뢰할 수 있는 소스 우선순위 – 다음 단계에서는 하나의 시스템을 충돌 발생 시 우선하는 "신뢰할 수 있는" 소스로 정의합니다. 이 데모는 INSERT를 기반으로 합니다. 신뢰할 수 있는 소스에서 시작된 모든 INSERT는 다른 시스템의 INSERT를 재정의합니다. 이 데모에서 신뢰할 수 있는 소스는 peer1이고 다른 시스템은 peer2입니다.

중요! 피어-투-피어 복제가 모든 비즈니스 애플리케이션과 호환되지는 않습니다. 사용 환경에 적합한 경우 일반적으로 이 데모의 프로시저보다 더 복잡한 사용자 지정 충돌 해결 프로시저 생성을 비롯하여 신중한 분석 및 실행이 필요합니다. 이 데모를 프로덕션 피어-투-피어 배포의 기초로 사용하지 마십시오. 피어-투-피어 복제에 대한 자세한 내용은 SharePlex 관리 안내서를 참조하십시오.

객체 준비

참고: 이 데모에서는 데모 객체가 demo라는 스키마에 있다고 가정합니다. 이와 다른 경우 실제 스키마로 대체합니다.

두 시스템 모두에서(두 데이터베이스 모두에 대해) 다음 단계를 수행합니다.

  1. sp_ctrl을 실행합니다.
  2. SharePlex를 종료합니다.

    sp_ctrl(peer1)> shutdown

  3. SharePlex 참조 안내서의 지침에 따라 ora_cleansp를 실행합니다. 그러면 이전 데모에서 큐가 제거되고 이전 구성이 비활성화됩니다.
  4. od_employee 테이블에 대해 TRUNCATE를 수행합니다.
  5. 데모 객체를 소유한 사용자에게 sp_cr 패키지를 실행할 수 있는 시스템 권한을 부여합니다. 이 패키지는 SharePlex가 처음 설치되었을 때 SharePlex 스키마에 설치되었습니다.

    SQL>grant execute on sp_cr to user_name

  6. SharePlex 데모 객체를 소유한 사용자로 SQL*Plus에 로그인합니다.
  7. SharePlex product 디렉토리의 util 하위 디렉토리에서 p2p.sql 스크립트를 실행합니다. 그러면 od_employee_gen 데모 충돌 해결 루틴이 설치됩니다.

    다음 사항을 안내하는 메시지가 표시됩니다.

    • 프로시저에 대한 스키마 및 테이블스페이스
    • SharePlex 데이터베이스 사용자의 이름
    • 정확한 데이터의 신뢰할 수 있는 소스가 될 시스템의 이름. 프로덕션 배포에서와 마찬가지로 충돌 발생 시에는 신뢰할 수 있는 소스의 작업이 우선적으로 적용됩니다. 이 데모에서는 이 시스템을 Peer1이라고 합니다. 이 데모에서는 또 다른 시스템을 Peer2라고 합니다.

SharePlex 구성

SharePlex를 구성하려면 다음 단계를 수행합니다.

  1. 각 시스템에서 텍스트 편집기의 conflict_solution.SID 파일(여기서, SID는 로컬 데이터베이스의 ORACLE_SID)을 엽니다. 이 파일은 SharePlex variable-data 디렉토리의 data 하위 디렉토리에 있습니다.

    참고: Post는 복제 충돌이 있을 때 이 파일을 확인하여 호출할 해결 프로시저가 있는지 확인합니다.

  2. 다음 항목을 각 시스템의 conflict_resolution.SID 파일에 생성합니다. 몇 개 이상의 공백이나 한 개의 탭 문자로 각 컬럼을 구분합니다.

    demo.od_employee IUD demo.od_employee_gen

    참고: 첫 번째 구성 요소는 테이블이고, 두 번째 구성 요소는 해당 테이블에 충돌이 있는 경우 해결 루틴이 호출될 작업 유형을 지정하며, 세 번째 구성 요소는 사용될 해결 루틴의 이름입니다.

  3. 각 시스템에서 sp_cop을 시작합니다.
  4. 각 시스템에서 sp_ctrl을 시작합니다.
  5. peer1(신뢰할 수 있는 소스)에서 od_employee 테이블을 peer2od_employee 테이블에 복제하는 od_peer1이라는 구성 파일을 생성합니다.

    sp_ctrl(peer1)> create config od_peer1

    demo.od_employee demo.od_employee peer2@o.SID
  6. peer2(보조 소스)에서 od_employee 테이블을 peer2od_employee 테이블에 복제하는 od_peer1이라는 구성 파일을 생성합니다.

    sp_ctrl(peer2)> create config od_peer2

    demo.od_employee demo.od_employee peer1@o.SID

참고: Post가 동기화 중단 상태인 삽입(모든 컬럼이 동일함)을 감지하려면 SP_OPO_SUPPRESSED_OOS0으로 설정합니다. sp_ctrl에서 이 명령 실행: SP_OPO_SUPPRESSED_OOS 매개변수를 0으로 설정하고 list param modified 명령을 사용하여 매개변수가 설정되었는지 확인합니다.

복제 활성화 및 시작

복제를 활성화 및 시작하려면 다음 단계를 수행합니다.

  1. peer1에서 od_peer1 구성을 활성화합니다.

    sp_ctrl(peer1)> activate od_peer1
  2. peer2에서 od_peer2 구성을 활성화합니다.

    sp_ctrl(peer2)> activate od_peer2
  3. 각 시스템에서 구성이 성공적으로 활성화되었는지 확인합니다. od_peer1 또는 od_peer2라는 이름(시스템에 따라 다름)이 File Name 아래에 나타나고 Active라는 단어가 State 아래에 나타나야 합니다.

    sp_ctrl (source)>list config

신뢰할 수 있는 소스 우선 시연

이 데모에서는 peer1에서 시작된 INSERT가 peer2에서 복제된 충돌하는 INSERT를 재정의합니다.

  1. 두 시스템에서 Post 프로세스를 중지합니다.
  2. 두 시스템에서 demo(데모 객체의 소유자)로 SQL*Plus에 로그인합니다.
  3. Peer2에서 od_employee에 행을 삽입하되 COMMIT을 실행하지 마십시오.

    SQL(peer2) > INSERT INTO OD_EMPLOYEE VALUES (1,'John','Doe',to_date('04/01/1949','MM/DD/RRRR'),1,to_date('01/01/2017','MM/DD/RRRR'));

  4. Peer1에서 동일한 행(동일한 값)을 삽입하되 COMMIT을 실행하지 마십시오.

    SQL(peer1) > INSERT INTO OD_EMPLOYEE VALUES (1,'John','Doe',to_date('04/01/1949','MM/DD/RRRR'),1,to_date('01/01/2017','MM/DD/RRRR'));

  5. 두 시스템에서 Post 프로세스를 재시작합니다.
  6. peer2에서 COMMIT을 실행합니다.
  7. peer1에서 COMMIT을 실행합니다. 이 작업은 충돌을 생성해야 하며 Post는 conflict_solution.SID 파일의 지침에 따라 자동으로 해결합니다.
  8. 두 시스템에서 demo.exc_table을 보고 충돌이 해결되었는지 확인합니다. 충돌 해결 결과 보기를 참조하십시오.

타임스탬프 우선순위 시연

이 데모에서는 충돌이 있는 경우 마지막으로 업데이트된 행이 우선합니다.

참고: 타임스탬프 우선순위가 작동하려면 EMP_TIMESTAMP 필드를 다른 컬럼과 함께 null이 아닌 값으로 수정해야 합니다. UPDATE 문의 타임스탬프 컬럼이 업데이트되지 않거나 null 값으로 수정되는 경우 저장된 프로시저가 충돌을 해결할 수 없습니다. 그러면 동기화 중단 문제가 나타납니다.

  1. 두 시스템에서 Post 프로세스를 중지합니다.
  2. 두 시스템에서 demo(데모 객체의 소유자)로 SQL*Plus에 로그인합니다.
  3. peer1에서 od_employee 테이블의 EMP_FIRST_NAMEEMP_TIMESTAMP 컬럼을 다음과 같이 UPDATE를 수행합니다.

    SQL(peer1) > UPDATE OD_EMPLOYEE SET EMP_FIRST_NAME = 'James', EMP_TIMESTAMP = to_date('01/01/2017','MM/DD/RRRR') WHERE EMP_NO = 1;

  4. Peer2에서 다른 업데이트 값과 동일한 키 값을 사용하여 동일한 컬럼에 UPDATE를 수행합니다.

    SQL(peer2) > UPDATE OD_EMPLOYEE SET EMP_FIRST_NAME = 'Harry', EMP_TIMESTAMP = to_date('02/02/2017','MM/DD/RRRR') WHERE EMP_NO = 1;

  5. 두 시스템에서 동시에 COMMIT을 실행합니다.

  6. 두 시스템에서 Post 큐를 보고 업데이트 작업이 큐에 있는지 확인합니다. 각 큐에 메시지가 표시됩니다.

    sp_ctrl(peer1)>qstatus

    sp_ctrl(peer2)>qstatus

  7. 두 시스템에서 Post 프로세스를 시작합니다.
  8. 두 시스템에서 업데이트한 행을 선택하여 최신 EMP_TIMESTAMP 값이 포함되어 있는지 확인합니다.

충돌 해결 결과 보기

데모 객체를 설치할 때 지정한 스키마에 ex_table이라는 테이블이 설치되었습니다. SQL*Plus를 통해 이를 확인하여 각 충돌에 대한 정보를 볼 수 있습니다. 다음은 테이블 설명입니다.

컬럼 설명
EXC_NO 충돌의 예외 번호입니다.
EXC_TYPE INSERT, UPDATE 또는 DELETE 등 SQL 문의 유형입니다.
EXC_TARGET_TABLE 충돌이 발생한 테이블입니다.
EXC_FIXED

충돌 해결 루틴의 결과입니다. YES는 루틴이 성공했음을 의미합니다. NO는 루틴이 실패했으며 행을 올바른 값으로 수동으로 변경해야 함을 의미합니다.

EXC_INFO 충돌의 원인입니다.
EXC_TIMESTAMP 이 시스템에서 충돌이 발생한 시간입니다.

Oracle DDL 복제 데모

이 데모에서는 SharePlex가 설치될 때 활성화되는 기본 DDL 복제 지원을 보여줍니다. 필요에 따라 매개변수를 사용하여 다른 DDL 복제를 활성화할 수 있습니다.

참고: 이 데모는 Oracle 소스 및 타겟만 지원합니다.

DDL 복제가 활성화되어 있는지 확인

소스에서 SP_OCT_REPLICATE_DDL 매개변수가 기본값인 3으로 설정되어 있는지 확인합니다. 이 매개변수는 기본 DDL 복제를 제어합니다.

sp_ctrl(source)>list param modified capture

SP_OCT_REPLICATE_DDL 매개변수가 출력에 나열되면 안 됩니다. 나열된 경우 다음 명령을 실행합니다.

sp_ctrl(source)>reset param SP_OCT_REPLICATE_DDL

DDL 복제 테스트

DDL 복제를 테스트하려면 다음 단계를 수행합니다.

  1. 소스에서 splex.demo_src에 대해 TRUNCATE를 수행하여 비어 있는지 확인합니다.

    SQL> truncate table splex.demo_src;

    SharePlex가 TRUNCATE 명령을 타겟에 복제합니다.

  2. 소스에서 splex.demo_src에 컬럼을 추가합니다.

    SQL> alter table splex.demo_src add (department varchar2(30) not null default 'unknown');

  3. 타겟에서 splex.demo_dest 테이블을 설명합니다.

    SQL> describe splex.demo_src;

    이제 테이블에는 새로운 부서 컬럼을 포함하여 4개의 컬럼이 포함되어야 합니다.

  4. 소스에서 부서 컬럼을 삭제합니다.

    SQL> alter table splex.demo_src drop column department;

  5. 타겟에서 splex.demo_dest 테이블을 설명합니다.

    SQL> describe splex.demo_src;

    이제 테이블에는 기존의 세 개 컬럼만 포함되어야 합니다.

데이터베이스 설정 유틸리티

데이터베이스 설정 유틸리티는 SharePlex 연결을 허용하고 복제를 지원하는 필수 데이터베이스 구성 요소를 설정하도록 소스 또는 타겟 데이터베이스를 자동으로 구성합니다.

내용

HANA 설정(hana_setup)

Database setup for HANA

개요

타겟 HANA 시스템에서 HANA용 데이터베이스 설정 유틸리티(hana_setup)를 실행하여 SharePlex에서 사용할 사용자 계정, 스키마 및 테이블을 설정합니다.

지원되는 데이터베이스

지원되는 플랫폼의 HANA

사용 가이드라인

  • SharePlex 복제 구성의 모든 타겟 HANA 인스턴스에서 설정 유틸리티를 실행합니다.
  • 서버 클러스터 내에서 SharePlex variable-data 디렉토리가 포함된 공유 디스크에 대한 마운트 지점이 있는 노드에서 설정 유틸리티를 실행합니다.
  • 통합 복제의 경우 각 variable-data 디렉토리에 대해 설정 유틸리티를 실행합니다.
  • HANA에 대해 지원되는 유일한 연결 방법은 connection string을 사용하는 것입니다. DSN을 통한 연결은 지원되지 않습니다.

  • 이 설정 프로세스에 표시되는 필요한 권한을 할당했는지 확인합니다.

필요한 권한

데이터베이스에서 작동하고 SharePlex 데이터베이스 계정을 생성하는 데 필요한 권한을 SharePlex에 부여하려면 설정 유틸리티를 HANA 관리자로 실행해야 합니다.

Database setup for HANA 실행

  1. 타겟 시스템에서 실행 중인 SharePlex 프로세스와 sp_cop을 종료합니다.
  2. SharePlex product 디렉토리의 bin 하위 디렉토리에서 hana_setup 프로그램을 실행합니다.

중요! 기본값인 2100이 아닌 포트에 SharePlex 인스턴스를 설치한 경우 -p 옵션을 사용하여 포트 번호를 지정합니다. 예를 들어 다음 명령에서 포트 번호는 9400입니다.

$ /users/splex/bin> hana_setup -p9400

표5: 설정 프롬프트 및 응답

프롬프트 응답

Enter the HANA connection string [] :

HANA 데이터베이스 시스템에 연결하는 connection string을 입력합니다. SharePlex가 HANA에 연결하기 위한 connection string의 필수 구성 요소는 다음과 같습니다.

  • SERVERNODE: 타겟 HANA 서버의 이름, 콜론, HANA 포트 번호입니다.
  • DRIVER: HANA ODBC 드라이버의 경로입니다.
  • CHAR_AS_UTF8: CHAR_AS_UTF8=1로 전달되어야 합니다.

예:

SERVERNODE=server1.dept.abc.corp:30015;DRIVER=/usr/sap/hdbclient/libodbcHDB.so;CHAR_AS_UTF8=1

사용자, 비밀번호 및 기본 데이터베이스에 대한 프롬프트가 표시되므로 이를 제공할 필요가 없습니다.

Enter the HANA Administrator name :

HANA 관리자의 이름을 입력합니다. 이 사용자는 SharePlex 계정에서 작업을 수행합니다.

Enter the password for the Administrator account :

관리자의 비밀번호를 입력합니다.

Enter the name of the database :

SharePlex에서 사용할 테이블과 기타 객체를 포함할 데이터베이스의 이름을 입력합니다. 새 데이터베이스 또는 기존 데이터베이스의 이름을 입력할 수 있습니다.

Database name database does not exist. Would you like to create it? [y] :

이 프롬프트가 표시되면 지정된 데이터베이스가 존재하지 않는 것입니다. Enter 키를 눌러 설정 유틸리티가 자동으로 생성하도록 합니다.

Would you like to create a new SharePlex user [y]:

지정된 데이터베이스에 동일한 이름의 새 SharePlex 데이터베이스 사용자 계정 및 스키마를 생성하도록 기본값을 적용하려면 Enter 키를 누르고, 기존 SharePlex 계정을 사용하려면 n을 입력합니다.

Enter the name of the new SharePlex user:

Enter the name of the existing SharePlex user:

새 사용자를 생성할지 아니면 기존 사용자를 사용할지 선택했는지에 따라 이러한 프롬프트 중 하나가 표시됩니다. SharePlex 사용자의 이름을 입력합니다.

 

Enter the password of the SharePlex user :

SharePlex 사용자 계정의 비밀번호를 입력합니다.

Re-enter the password for the SharePlex user :

이 프롬프트는 새 사용자를 생성한 경우에만 표시됩니다. SharePlex 비밀번호를 다시 입력합니다.

성공적으로 설정되면 다음과 유사한 메시지와 함께 종료됩니다.

Completed SharePlex for HANA database configuration

SharePlex User name: splex

Database name: ndb5

Target specification in SharePlex configuration: r.ndb5

SharePlex에 권한 부여

HANA 타겟에 대한 SharePlex 복제를 시작하기 전에 해당 타겟의 SharePlex 데이터베이스 사용자에게 다음 권한을 부여합니다(여기서, SP_USERSharePlex 데이터베이스 사용자의 이름임).

  • GRANT USER ADMIN TO sp_user;
  • GRANT TABLE ADMIN TO sp_user;
  • GRANT CATALOG READ TO sp_user;
  • GRANT DATA ADMIN TO sp_user WITH ADMIN OPTION;
  • GRANT ROLE ADMIN TO sp_user WITH ADMIN OPTION;

또한 복제하려는 객체가 포함된 각 스키마의 소유자로 로그인한 후 스키마에 대해 다음 권한을 부여합니다.

  • GRANT CREATE ANY ON SCHEMA schema_name TO sp_user;
  • GRANT DEBUG ON SCHEMA schema_name TO sp_user;
  • GRANT DELETE, DROP, EXECUTE, INDEX, INSERT, SELECT, UPDATE ON SCHEMA schema_name TO sp_user;

The document was helpful.

평가 결과 선택

I easily found the information I needed.

평가 결과 선택