참고: 이 지침은 별도로 명시하지 않는 한 PostgreSQL의 모든 구현에 적용됩니다.
SharePlex는 ODBC(Open Database Connectivity) 인터페이스를 통해 복제된 Oracle 데이터를 PostgreSQL 타겟 데이터베이스에 게시할 수 있습니다. SharePlex는 PostgreSQL 오픈 소스 데이터베이스의 모든 구현을 지원합니다.
이 지침에는 이 타겟과 관련된 설정 지침이 포함되어 있습니다. 이러한 설정 단계를 수행하기 전에 이 설명서의 해당 지침에 따라 소스와 타겟에 SharePlex를 설치하십시오.
SharePlex를 사용하여 이 타겟에 복제할 때 지원되는 버전, 데이터 유형 및 작업은 SharePlex 릴리스 노트를 참조하십시오.
중요! Greenplum은 기본 키에 대한 UPDATE 작업을 허용하지 않지만 Oracle은 허용합니다. Oracle에서 Greenplum으로 키에 대한 UPDATE를 복제하기 위해 Post는 타겟 행을 삭제한 다음, 새 키 값을 포함하여 소스 행을 기반으로 새 행을 삽입합니다. |
한 데이터베이스 유형의 소스와 다른 유형의 타겟 간의 복제를 지원하려면 소스 및 타겟 컬럼 이름의 대소문자가 동일해야 합니다. 예를 들어 컬럼 이름은 양쪽에 소문자 또는 대문자로 표시합니다. 소스 컬럼 이름과 타겟 컬럼 이름의 대소문자가 다른 경우 컬럼 매핑 기능을 사용하여 구성 파일의 컬럼 이름을 매핑합니다.
SharePlex를 사용한 컬럼 매핑에 대한 자세한 내용은 SharePlex 관리 안내서를 참조하십시오.
Oracle 소스 시스템에 SharePlex와 데이터베이스를 설정해야 합니다. 자세한 설정 단계는 소스에서 SharePlex 구성를 참조하십시오.
타겟에서 SharePlex를 구성하려면 다음 단계를 수행합니다.
데이터베이스 설정이 페이지 Open Target 체크리스트의 모든 요구 사항을 충족해야 합니다.
SharePlex는 ODBC(Open Database Connectivity) 인터페이스를 통해 복제된 Oracle 데이터를 HANA 타겟 데이터베이스에 게시할 수 있습니다.
이 지침에는 이 타겟과 관련된 설정 지침이 포함되어 있습니다. 이러한 설정 단계를 수행하기 전에 이 설명서의 해당 지침에 따라 소스와 타겟에 SharePlex를 설치하십시오.
SharePlex를 사용하여 이 타겟에 복제할 때 지원되는 버전, 데이터 유형 및 작업은 SharePlex 릴리스 노트를 참조하십시오.
한 데이터베이스 유형의 소스와 다른 유형의 타겟 간의 복제를 지원하려면 소스 및 타겟 컬럼 이름의 대소문자가 동일해야 합니다. 예를 들어 컬럼 이름은 양쪽에 소문자 또는 대문자로 표시합니다. 소스 컬럼 이름과 타겟 컬럼 이름의 대소문자가 다른 경우 컬럼 매핑 기능을 사용하여 구성 파일의 컬럼 이름을 매핑합니다.
SharePlex를 사용한 컬럼 매핑에 대한 자세한 내용은 SharePlex 관리 안내서를 참조하십시오.
Oracle 소스 시스템에 SharePlex와 데이터베이스를 설정해야 합니다. 자세한 설정 단계는 소스에서 SharePlex 구성를 참조하십시오.
타겟에서 SharePlex를 구성하려면 다음 단계를 수행합니다.
데이터베이스 설정이 페이지 Open Target 체크리스트의 모든 요구 사항을 충족해야 합니다.
SharePlex는 ODBC(Open Database Connectivity)를 지원하는 데이터베이스에 연결할 수 있습니다.
이 지침에는 이 타겟과 관련된 설정 지침이 포함되어 있습니다. 이러한 설정 단계를 수행하기 전에 이 설명서의 해당 지침에 따라 소스와 타겟에 SharePlex를 설치하십시오.
SharePlex를 사용하여 이 타겟에 복제할 때 지원되는 버전, 데이터 유형 및 작업은 SharePlex 릴리스 노트를 참조하십시오.
한 데이터베이스 유형의 소스와 다른 유형의 타겟 간의 복제를 지원하려면 소스 및 타겟 컬럼 이름의 대소문자가 동일해야 합니다. 예를 들어 컬럼 이름은 양쪽에 소문자 또는 대문자로 표시합니다. 소스 컬럼 이름과 타겟 컬럼 이름의 대소문자가 다른 경우 컬럼 매핑 기능을 사용하여 구성 파일의 컬럼 이름을 매핑합니다.
SharePlex를 사용한 컬럼 매핑에 대한 자세한 내용은 SharePlex 관리 안내서를 참조하십시오.
Oracle 소스 시스템에 SharePlex와 데이터베이스를 설정해야 합니다. 자세한 설정 단계는 소스에서 SharePlex 구성를 참조하십시오.
타겟 시스템에 SharePlex 및 데이터베이스를 다음과 같이 구성합니다.
참고: 데이터베이스 설정이 페이지 Open Target 체크리스트의 모든 요구 사항을 충족해야 합니다.
데이터베이스에 맞는 올바른 ODBC 드라이버를 다운로드해야 합니다.
타겟 시스템에서 Post가 타겟 데이터베이스에 연결하는 데 사용할 ODBC 연결 정보를 구성합니다. 이 연결 정보를 구성하기 위한 옵션은 다음과 같습니다.
Unix 및 Linux에서는 다음 중 하나를 수행할 수 있습니다.
데이터베이스와 함께 제공된 지침에 따라 타겟 시스템에서 사용자 또는 시스템 DSN을 구성합니다. DSN을 사용해 타겟 데이터베이스에 연결하여 테스트합니다. 연결에 성공하면 ODBC 구성 파일을 SharePlex variable-data 디렉토리의 odbc 하위 디렉토리에 복사합니다. LD_LIBRARY_PATH 환경 변수를 데이터베이스 ODBC 드라이버의 위치로 설정합니다.
또는...
Post 구성에서 ODBC 연결 정보를 설정합니다. connection 명령으로 연결 정보 설정을 참조하십시오.
connection 명령을 사용하여 다음을 수행합니다.
연결 정보를 설정하려면 다음을 수행합니다.
set 옵션과 함께 connection 명령을 각 키워드에 대해 한 번씩 실행합니다.
connection r.database_name set keyword=value
키워드 | 입력할 값 |
---|---|
대응을 |
SharePlex에 할당된 데이터베이스 사용자 |
password |
SharePlex 사용자의 비밀번호 |
dsn |
데이터베이스의 DSN 중요! user, password 및 dsn은 DSN이 존재하는 경우에만 필요한 키워드입니다. |
키워드 | 입력할 값 |
---|---|
대응을 |
SharePlex에 할당된 데이터베이스 사용자 |
password |
SharePlex 사용자의 비밀번호 |
port |
데이터베이스 포트 번호 |
server |
데이터베이스 서버의 이름 또는 IP 주소 |
driver |
데이터베이스 서버에 있는 ODBC 드라이버의 전체 경로 |
키워드 | 입력할 값 |
---|---|
대응을 |
SharePlex에 할당된 데이터베이스 사용자 |
password |
SharePlex 사용자의 비밀번호 |
connect_string | 사용자 정의 connection string입니다. 자체 connection string을 사용할 때에는 성공적인 ODBC 연결을 만드는 데 필요한 모든 요소가 포함되어 있어야 합니다. 그러나 사용자 이름과 비밀번호는 생략합니다. 사용자 정보를 제공하려면 user 및 password 옵션과 함께 connection 명령을 사용합니다. |
connection r.mydb set user=myuser
connection r.mydb set password=mypassword
connection r.mydb set dsn=mydsn
connection r.mydb set user=myuser
connection r.mydb set password=mypassword
connection r.mydb set port=1234
connection r.mydb set server=server1
connection r.mydb set driver=/database/ODBC/lib/databasedriver.so
connection r.mydb set user=myuser
connection r.mydb set password=mypassword
connection r.mydb set connect_string=”driver=/database/ODBC/lib/databasedriver.so;server=server1;port=1234;uid=myuser;pwd=mypassword”
SharePlex 연결 설정을 제거하려면 reset 옵션과 함께 connection 명령을 사용합니다.
특정 연결 값을 제거하려면 다음을 수행합니다.
connection r.database_name reset keyword
모든 연결 값을 제거하려면 다음을 수행합니다.
connection r.database_name reset
예:
connection r.mydb reset port
connection r.mydb reset
SharePlex 연결 설정을 보려면 show 옵션과 함께 connection 명령을 사용합니다.
데이터베이스에 대한 연결 값을 보려면 다음을 수행합니다.
connection r.database_name show
모든 로컬 데이터베이스에 대한 연결 설정을 보려면 다음을 수행합니다.
connection show all
복제된 Oracle ALTER TABLE 명령을 Open Target 타겟의 올바른 데이터 유형에 정확하게 게시하도록 지원하기 위해 SharePlex는 Oracle 데이터 유형을 타겟 데이터베이스의 기본 데이터 유형에 매핑합니다. 이 매핑을 보고 변경하려면 typemap 명령을 사용합니다.
참고: DML 작업의 경우 SharePlex는 타겟 데이터베이스를 쿼리하여 복제된 데이터에 대한 적절한 데이터 유형 매핑을 결정합니다.
typemap 명령에 대한 자세한 내용은 SharePlex 참조 안내서를 참조하십시오.
SharePlex Post 프로세스는 JMS(Java Messaging Service) 큐 또는 항목에 연결하고 작성할 수 있습니다. 데이터는 데이터 정의, 작업 유형 및 변경된 컬럼 값을 포함하는 XML 레코드로 작성됩니다. 이 데이터는 소스에서 발생한 순차적인 일련의 작업으로 작성되며, 그런 다음 타겟 데이터베이스에 순차적으로 게시되거나 외부 프로세스 또는 프로그램에서 사용될 수 있습니다.
이 지침에는 이 타겟과 관련된 설정 지침이 포함되어 있습니다. 이러한 설정 단계를 수행하기 전에 이 설명서의 해당 지침에 따라 소스와 타겟에 SharePlex를 설치하십시오.
SharePlex를 사용하여 이 타겟에 복제할 때 지원되는 버전, 데이터 유형 및 작업은 SharePlex 릴리스 노트를 참조하십시오.
Oracle 소스 시스템에 SharePlex와 데이터베이스를 설정해야 합니다. 자세한 설정 단계는 소스에서 SharePlex 구성를 참조하십시오.
이러한 지침은 타겟에서 Java 공급자를 설정하고 JMS 공급자에 연결하도록 SharePlex Post 프로세스를 구성합니다.
Java 런타임 환경 1.8 이상 다음 운영 체제를 제외하고 JRE 1.8(또는 그 이상)이 필요하며 SharePlex와 함께 설치됩니다.
이러한 시스템 중 하나에 SharePlex를 설치하기 전에 JRE 1.8(또는 그 이상)이 설치되어 있어야 합니다. 그런 다음, SharePlex 설치 후 JRE 바이너리를 가리키도록 브리지 구성 파일을 수정합니다. 다음 각 프로시저의 "사용자 지정 JRE" 단계를 참조하십시오.
1.8 이후의 JRE 버전을 사용합니다. 1.8 이후의 JRE 버전으로 컴파일된 JMS 공급자 라이브러리를 사용하는 경우 최신 버전의 JRE를 사용하고 해당 JRE 바이너리를 가리키도록 브리지(Linux/Unix) 구성 파일을 수정합니다. 다음 각 프로시저의 "사용자 지정 JRE" 단계를 참조하십시오.
이러한 지침은 JMS 큐 또는 항목에 게시하도록 SharePlex Post 프로세스를 구성합니다.
참고:
INFO 2016-05-10 01:43:42.000860 [x.jms+jsd-olinux-01] com.quest.shareplex.openbridge.stomp.internal.Connector - Connector x.jms+jsd-olinux-01 at tcp://localhost:61613 stopped. ERROR 2016-05-10 01:43:42.000861 [x.jms+jsd-olinux-01] com.quest.shareplex.openbridge.stomp.internal.Connector - org/apache/activemq/jndi/ActiveMQInitialContextFactory : Unsupported major.minor version 51.0 java.lang.UnsupportedClassVersionError: org/apache/activemq/jndi/ActiveMQInitialContextFactory : Unsupported major.minor version 51.0 |
이 프로시저의 예에서는 다음 디렉토리 명명 규칙이 사용됩니다.
이름 | 디렉토리 |
---|---|
SharePlex | SharePlex 설치 디렉토리 |
JMS 타겟에 대한 게시를 구성하려면 다음을 수행합니다.
SharePlex/lib/providers 아래에 공급자에 대한 디렉토리를 만듭니다. 예를 들면 다음과 같습니다.
shareplex/lib/providers/provider_name
공급자가 Active MQ인 경우 경로는 다음과 비슷할 수 있습니다.
shareplex/lib/providers/amq
필요한 클라이언트 라이브러리 파일을 provider_name 디렉토리에 복사합니다.
예를 들어 공급자가 Active MQ인 경우 다음 JAR 파일을 amq 디렉토리에 복사할 수 있습니다.
shareplex/lib/providers/amq/activemq-all.jar
shareplex/lib/providers/amq/slf4j.jar
(사용자 지정 JRE) SharePlex와 함께 설치된 JRE 1.8.0_312가 아닌 다른 JRE를 사용하는 경우(예: SharePlex가 운영 체제에 JRE를 설치하지 않았거나 1.8 이상의 JRE 버전을 사용해야 함) 사용하려는 JRE 바이너리를 가리키도록 bridge.ini 또는 bridge 파일을 수정합니다.
다음 방법을 사용합니다.
Linux 또는 Unix에서:
bridge 파일은 다음 디렉토리에 있습니다.
SharePlex/.app-modules/openbridge
SharePlex 설치 중에 JRE가 설치된 경우 다음 디렉토리에 있습니다.
SharePlex/.app-modules/openbridge/jre
bridge 파일에서 _jvm 옵션(예: < _jvm = "jre/bin/java")을 찾고 사용하려는 JRE의 전체 경로로 현재 경로를 바꿉니다. JRE에 대한 상대 경로가 아닌 절대 경로를 지정해야 합니다.
target 명령을 실행하여 JMS 큐 또는 항목에 게시하도록 Post를 구성합니다. target 명령을 사용하여 설정한 값은 SharePlex에 타겟에서 인스턴스화하는 방법을 알려줍니다. 다음 예에서는 사용자 정의 값이 이탤릭체로 표시됩니다. 이를 JMS 공급자 및 공급자별 JMS 라이브러리에 특정한 값으로 바꿉니다.
필요에 따라 다음 명령을 실행합니다. 속성 및 값에 대한 자세한 설명은 JMS 설정 보기 및 변경을 참조하십시오. target 명령에 대한 자세한 내용은 SharePlex 참조 안내서를 참조하십시오.
JMS 큐에 게시하는 경우:
sp_ctrl> target x.jms set jms factory_class=factory_class
sp_ctrl> target x.jms set jms provider_url=url
sp_ctrl> target x.jms set jms lib_location=path
예를 들어 Active MQ를 사용하는 경우 다음을 설정할 수 있습니다.
sp_ctrl> target x.jms set jms lib_location=shareplex/lib/providers/amq
sp_ctrl> target x.jms set jms queuename=JMS_topic_queuename
JMS 항목에 게시하는 경우:
sp_ctrl> target x.jms set jms factory_class=factory_class
sp_ctrl> target x.jms set jms provider_url=url
sp_ctrl> target x.jms set jms lib_location=path
예를 들어 Active MQ를 사용하는 경우 다음을 설정할 수 있습니다.
sp_ctrl> target x.jms set jms lib_location=shareplex/lib/providers/amq
sp_ctrl> target x.jms set jms destination=topic
sp_ctrl> target x.jms set jms queuename=JMS_topic_queuename
이전에 레거시 프레임워크에 사용한 것과는 다른 접근 방식으로 로깅 메커니즘을 구현해야 합니다. 현재 버전에서는 -OB_debugToLog, -OB_debugToConsole 매개변수를 제거했습니다. 이제 사용자는 log4j2.properties 파일 내의 속성을 재설정하여 로그 세부 정보를 생성하고 유지하는 데 더 많은 제어 권한을 갖게 됩니다.
JMS에 대한 로그를 활성화하려면 다음 단계를 따릅니다.
참고: 표준 log4j2.properties 구문에 따라 다른 매개변수를 변경할 수 있습니다. 자세한 내용은 아래 링크를 참조하십시오.
https://logging.apache.org/log4j/2.x/manual/configuration.html#Properties
JMS로의 출력에 대한 현재 속성 설정을 보려면 다음 명령을 사용합니다.
target x.jms show
속성 설정을 변경하려면 다음 명령을 사용합니다.
target x.jms [queue queuename] set jms property=value
여기서,
표1: JMS 타겟 속성
속성 | 입력 값 | 기본값 |
---|---|---|
factory_class=factory_class |
필수. 팩토리 클래스의 정규화된 클래스 이름입니다. 공급자에 대한 초기 컨텍스트 팩토리의 클래스 이름을 지정하기 위해 JNDI 환경 속성 java.naming.factory.initial을 설정합니다. |
None |
provider_url=url |
필수. 객체 이름 구성 요소가 없는 RMI URL입니다. 이는 JNDI 환경 속성 java.naming.provider.url을 설정하여 초기 컨텍스트로 사용되는 레지스트리 위치를 지정합니다. JMS 공급자 및 URL 유형에 따라 올바른 형식을 사용합니다. 예를 들어 LDAP를 사용하는 경우 URL은 다음과 유사할 수 있습니다. ldap://hostname.company.com/contextName JMS 공급자 URL은 JMS 공급자 관리자에게 문의하십시오. |
None |
lib_location=path |
필수. 클라이언트 라이브러리 파일을 설치한 디렉토리의 경로입니다. |
None |
destination={queue | topic} |
메시징 도메인. 유효한 값은 queue(포트-포트) 또는 topic(게시자-구독자 모델)입니다. |
큐 |
factory_name=factory_name |
JNDI 연결 팩토리 조회의 이름입니다. 쉼표로 구분된 목록을 사용하여 여러 이름을 지정할 수 있습니다(예: jndi.name1, jndi.name2). |
None |
user=user |
JMS에 연결 중인 사용자의 이름입니다. 인증이 필요하지 않은 경우에는 이 속성과 비밀번호 옵션을 생략합니다. |
None |
password=password |
JMS 사용자의 비밀번호입니다. |
None |
queuename=JMS_topic_queuename |
JMS 큐 또는 항목의 이름입니다. |
OpenTarget |
persistent={yes | no} |
yes는 보내기 작업의 일환으로 메시지를 디스크 스토리지에 기록합니다. no는 로깅을 방지합니다. |
yes |
session_transacted ={yes | no} |
no는 복제된 모든 메시지에 대해 JMS 커밋을 발행하여 각 메시지를 즉시 표시하고 사용할 수 있도록 Post에 지시합니다. 이 설정은 기본값입니다. yes는 트랜잭션 방식으로 작동하도록 Post에 지시합니다. 이 모드에서 Post는 다음을 기반으로 간격을 두고 JMS 커밋(메시지를 표시하고 사용할 수 있도록 만들기 위해)을 실행합니다.
|
no |
properties |
사용 중인 JMS 공급자가 SharePlex에서 제공하는 기본 속성 집합이 포함된 메시지를 사용할 수 없는 경우에 이 옵션을 사용합니다. 속성을 제거하거나 추가할 수 있습니다. 속성을 쉼표로 구분된 목록으로 제공합니다.
|
None |
client_id | 사용 중인 JMS 공급자가 기본 SharePlex 클라이언트 ID가 포함된 메시지를 사용할 수 없는 경우에 이 옵션을 사용합니다. 이 값을 공급자가 허용하는 클라이언트 ID로 설정합니다. | None |
commit_frequency |
Post가 transactional 스타일로 JMS 서버에 게시하도록 구성된 경우 이 옵션을 사용합니다(session_transacted 속성의 지시에 따라 모든 메시지를 실행한 후가 아니라 간격을 두고 JMS 커밋 실행). 이 매개변수는 JMS 커밋 간의 간격을 지정합니다. 이는 SP_OPX_READRELEASE_INTERVAL 매개변수와 함께 작동합니다. 유효한 값은 1부터 양의 정수까지입니다. |
1500 |
JMS 프로세스가 갑자기 중단되거나 실행 중인 시스템이 중단되는 경우, 행 변경 사항이 JMS 타겟에 두 번 작성될 수 있습니다. 소비자는 중복 항목을 감지하고 삭제하여 이를 관리해야 합니다.
트랜잭션의 모든 행 변경 작업에 대한 모든 레코드는 동일한 트랜잭션 ID를 가지며 시퀀스 ID로 표시됩니다. 이러한 특성은 각각 XML 출력의 txn 요소 아래에 있는 id 및 msgIdx입니다(XML 형식 보기 참조).
트랜잭션 ID는 트랜잭션이 커밋된 시점의 SCN이고 시퀀스 ID는 트랜잭션의 행 변경 인덱스입니다. 이러한 두 값은 복구 상황에서 JMS 큐에 다시 작성되는 경우 동일하다는 것이 보장됩니다.
원하는 경우 다음 명령을 사용하여 모든 행 변경 레코드에 추가 메타데이터를 포함하도록 타겟을 구성할 수 있습니다.
target target [queue queuename] set metadata property[, property]
표2: 선택적 JMS 메타데이터 속성
속성 | 설명 |
---|---|
time | 소스에서 작업이 적용된 시간입니다. |
userid | 작업을 수행한 데이터베이스 사용자의 ID입니다. |
trans | 작업이 포함된 트랜잭션의 ID입니다. |
size | 트랜잭션의 작업 수입니다. |
target x.jms set metadata time, userid, trans, size
메타데이터를 재설정하려면 다음을 수행합니다.
target x.jms [queue queuename] reset metadata
메타데이터를 보려면 다음을 수행합니다.
target x.jms [queue queuename] show metadata
여러 개의 명명된 Post 큐를 통해 JMS에 대한 대량의 트랜잭션을 처리하도록 Post를 구성한 경우 Post JMS 브리지에 더 많은 메모리를 할당해야 할 수도 있습니다. 기본 설정은 256MB와 512MB입니다.
JMS 브리지 메모리를 늘리려면 다음을 수행합니다.
openbridge.ini 파일을 열고 표시된 형식으로 다음 매개변수를 설정합니다.
-Xms=512m
-Xmx=1024m
-XX:PermSize=512m
-XX:MaxPermSize=1024m
큐 또는 항목에 대한 각 쓰기의 성공 여부를 기록하도록 Post를 구성할 수 있습니다. 이는 디버깅 설정으로 제어됩니다.
디버깅을 활성화하려면 다음을 수행합니다.
openbridge.ini 파일을 열고 -OB_debugToLog 매개변수를 true로 설정합니다.
-OB_debugToLog=true
SharePlex가 JMS로 보내는 레코드의 XML 형식을 보려면 SharePlex 참조 안내서에 있는 target 명령 문서의 format 카테고리를 참조하십시오.
© ALL RIGHTS RESERVED. 이용 약관 개인정보 보호정책 Cookie Preference Center