수평으로 파티셔닝된 복제를 구성할 때 add partition 명령을 사용하여 파티션 scheme에 행 파티션을 추가할 수 있습니다. 생성할 각 행 파티션에 대해 add partition 명령을 실행합니다.
이 명령은 다음의 필수 구성 요소를 포함하여 파티션을 생성하는 데 필요한 모든 정보를 캡처합니다.
- 파티션 scheme 이름. 새 파티션 scheme을 생성하려면 해당 scheme에 대한 첫 번째 행 파티션을 생성하는 add partition 명령에 이름을 지정합니다. SharePlex는 파티션 scheme을 자동으로 생성합니다. 그런 다음, 해당 파티션 scheme에 행 파티션을 더 추가할 때 해당 이름을 지정합니다.
- 행 파티션을 생성하는 해시 값 또는 컬럼 조건 사양
- 행 파티션에 지정된 행에 대한 라우팅
명령이 이미 복제 중인 테이블에 영향을 미치는 경우 구성 파일을 다시 활성화합니다. SharePlex는 구성 변경이 있는 테이블만 잠급니다.
수평으로 파티셔닝된 복제를 구성하는 방법에 대한 자세한 내용은 SharePlex 관리 안내서를 참조하십시오.
사용
구문
add partition to scheme_name
set
{condition = column_condition |
hash = hash_value}
and
route = routing_map |
[and name = partition_name]
[and tablename = target_table]
[and description = description] |
사용 불가 |
구문 설명
to scheme_name |
to는 scheme_name에 행 파티션이 추가됨을 나타내는 필수 키워드입니다.
scheme_name은 파티션 scheme의 이름입니다. 파티션 scheme은 사용자가 실행하는 첫 번째 add partition 명령에 의해 생성되며, 파티셔닝할 첫 번째 행 집합도 지정합니다.
수평 파티셔닝을 많이 사용하는 경우 파티션 scheme에 대한 명명 규칙을 설정하는 것이 도움이 될 수 있습니다. |
set |
행 파티션 정의를 시작하는 필수 키워드입니다. |
condition = column_condition |
컬럼 조건에 따라 행 파티션을 생성합니다. 조건은 따옴표로 묶어야 합니다. ((region_id = West) and region_id is not null)과 같은 표준 WHERE 조건부 구문을 사용합니다.
condition 및 hash 구성 요소는 상호 배타적입니다. |
hash = value |
해시 값을 기반으로 행 파티션을 생성합니다. 지정된 값은 파티션 scheme의 행 파티션 수를 결정합니다.
condition 및 hash 구성 요소는 상호 배타적입니다. |
route = routing_map |
이 파티션의 경로입니다. 이는 다음 중 하나일 수 있습니다.
컬럼 조건에 따른 파티션:
표준 SharePlex 라우팅 맵을 지정합니다(예: sysB@o.myora, sysB:q1@o.myora 또는 sysB@o.myora+sysC@o.myora(복합 라우팅 맵)).
타겟이 JMS, Kafka 또는 파일인 경우 타겟을 x.jms, x.kafka 또는 x.file로 지정해야 합니다(예: sysA:hpq1@x.kafka).
이름이 다른 여러 타겟 테이블로 파티션을 라우팅하려면 다음을 수행합니다.
- 각각의 다른 타겟 이름에 대해 별도의 add partition 명령을 실행합니다. 이름을 지정하려면 tablename 옵션을 사용합니다.
- 구성 파일에서 이러한 타겟 테이블 중 하나를 이 파티션 scheme을 사용하는 항목의 타겟 테이블로 지정합니다. SharePlex는 구성이 활성화되면 다른 이름을 감지합니다.
- SP_ORD_FIRST_FIND 매개변수를 0으로 설정하여 SharePlex가 파티션 scheme의 모든 컬럼 조건을 확인하도록 합니다. 기본적으로 SharePlex는 주어진 행 변경 사항이 파티션 scheme에서 하나의 컬럼 조건만 충족한다고 가정합니다.
해시 기반 파티션:
다음 형식을 사용하여 SharePlex에 각 파티션에 대한 명명된 Post 큐를 생성하도록 지시합니다.
host:basename|#{o.SID | r.database}
여기서,
- host는 타겟 시스템의 이름입니다.
- basename은 모든 큐에 할당된 기본 이름입니다.
- |#는 hash로 설정된 값에 1부터 시작해 기본 이름에 정수를 추가하여 큐에 순서대로 번호를 매기도록 SharePlex에 지시합니다.
- o.Oracle 타겟의 경우 SID, Open Target 타겟의 경우 r.database입니다.
|
name = name |
(권장) 이 파티션의 짧은 이름입니다. 이 옵션은 컬럼 조건을 기반으로 하는 파티션에만 유용합니다. 짧은 이름을 사용하면 나중에 파티션을 수정하거나 삭제해야 하는 경우 긴 컬럼 조건을 입력할 필요가 없습니다. |
tablename = owner.table |
(선택 사항) 타겟 테이블이 여러 개 있고 하나 이상의 이름이 다른 경우 이 옵션을 사용합니다. 각 이름에 대해 별도의 add partition 명령을 실행합니다.
테이블 이름은 정규화되어야 합니다. 대소문자를 구분하는 경우 이름을 따옴표로 묶어 지정해야 합니다.
예:
add partition to scheme1 set name = p1 and condition = "C1 > 200" and route = sysb:p1@o.orasid and tablename = myschema.mytable |
description = description |
(선택 사항) 이 파티션에 대한 설명입니다. |
예
컬럼 조건에 따른 행 파티션
여러 Post 큐를 통해 다양한 행 집합 라우팅:
sp_ctrl> add partition to scheme1 set name = q1 and condition = "C1 >= 200" and route = sysb:q1@o.orasid
sp_ctrl> add partition to scheme1 set name = q2 and condition = "C1 < 200" and route = sysb:q2@o.orasid
여러 행 집합을 소스의 다양한 타겟 시스템과 다양한 테이블 이름으로 라우팅합니다.
sp_ctrl> add partition to scheme1 set name = east and condition = "area = east" and route = sys1e@o.orasid and tablename = ora1.targ
sp_ctrl> add partition to scheme1 set name = west and condition = "area = west" and route = sys2w@o.orasid and tablename = ora2.targ
해시 값에 따른 행 파티션
행을 4개의 파티션으로 나누고 각 파티션은 서로 다른 Post 큐를 통해 처리됩니다.
sp_ctrl> add partition to scheme1 set hash = 4 and route = sysb:hash|#@o.ora112
analyze config 명령을 사용하여 구성 파일의 테이블 분석을 실행할 수 있습니다. 이 명령은 테이블 활동에 대한 정보를 수집합니다.
중요! 분석을 실행하기 전에 구성을 활성화하지 마십시오. 분석을 실행할 때 다른 활성 구성이 없는지 확인합니다. 이 명령의 사용은 실제 활성화와 유사합니다.
분석 프로세스는 명령에 지정된 시간에 수집된 데이터를 기반으로 결과를 기록하며, 그러면 복제 스트림이 자체적으로 정리됩니다.
분석은 variable-data 디렉토리의 log 하위 디렉토리에 있는 파일에 작성됩니다. 파일 이름은 다음과 같습니다.
o.datasource-analysis.actid
분석 프로세스에서는 복제 중인 각 객체의 활동에 대한 정보와 트랜잭션 정보를 유지 관리합니다. 트랜잭션 정보는 동일한 복제 스트림(동일한 큐 및 프로세스 집합)에서 복제되어야 하는 방식으로 상호 연관된 테이블 그룹을 식별하는 데 사용될 수 있습니다.
분석에는 관련 테이블의 각 그룹, 테이블당 총 작업 수, 그룹의 총 작업 수가 나열됩니다.
예를 들면 다음과 같습니다.
>cat o.w111a64f-analysis.1575
Activity Analysis
Group 1 of related tables: 1000 total operations in group
"TEST"."SS2_TEST1" 346
"TEST"."SS2_TEST2" 348
"TEST"."SS2_TEST3" 306
Group 2 of related tables: 1124 total operations in group
"TEST"."SRC_TEST1" 232
"TEST"."SRC_TEST2" 177
"TEST"."SRC_TEST3" 178
"TEST"."SRC_TEST4" 175
"TEST"."SRC_TEST5" 188
"TEST"."SRC_TEST6" 174
Tablename |
Inserts |
Updates |
Deletes |
Rollbacks |
Total |
"TEST"."SS2_TEST2" |
146 |
169 |
33 |
0 |
348 |
"TEST"."SS2_TEST1" |
140 |
176 |
30 |
0 |
346 |
"TEST"."SS2_TEST3" |
116 |
158 |
32 |
0 |
306 |
"TEST"."SS2_TEST1" |
75 |
114 |
29 |
14 |
232 |
"TEST"."SS2_TEST5" |
61 |
94 |
22 |
11 |
188 |
"TEST"."SS2_TEST3" |
69 |
73 |
28 |
8 |
178 |
"TEST"."SS2_TEST2" |
69 |
77 |
21 |
10 |
177 |
"TEST"."SS2_TEST4" |
54 |
89 |
19 |
13 |
175 |
"TEST"."SS2_TEST6" |
61 |
79 |
25 |
9 |
174 |
현재 분석 상태를 보려면 다음을 수행합니다.
show analyze 명령을 사용하여 분석 상태를 확인합니다.
sp_ctrl (alvspxl11:8567)> show analyze detail
Host: alvspxl11.quest.com
Operations |
|
Source |
Status |
Processed |
Since |
Total |
Backlog |
------ |
------------ |
----------- |
------- |
------ |
------- |
o.w111a64f |
Running |
1497 |
17-Mar-12 10:41:54 |
1496 |
0 |
|
|
|
|
|
|
Last operation processed:
Redo log: 295 Log offset: 32327800
UPDATE of "TEST"."SRC_TEST3" at 03/17/12 0:59:17
Activation id |
: 1573 |
Operations processed |
: 1497 |
Transactions processed |
: 398 |
Analysis complete |
: 20-Mar-12 10:41:54 |
완료 전에 분석을 종료하려면 다음을 수행합니다.
분석이 완료되기 전에 종료하려면 abort config 또는 deactivate config 명령을 사용하거나 SP_ANL_RUN_TIME 매개변수를 수정합니다.
사용
지원되는 소스: |
Oracle |
지원되는 타겟: |
전체 |
인증 수준: |
관리자(1) |
실행 대상: |
소스 시스템 |
관련 명령: |
abort config, copy config, create config, deactivate config, edit config, list config, purge config, remove config, rename config, show config, verify config, view config |
구문
analyze config filename |
n {minutes | hours | days} |
[ on host |
on host:portnumber |
on login/password@host |
on login/password@host:portnumber ] |
구문 설명
filename |
분석하려는 구성 파일의 이름입니다. 구성 이름은 대소문자를 구분합니다.
예:
sp_ctrl(sysA)>analyze config sales |
n {minutes | hours | days) |
분석할 활동의 분, 시간 또는 일 수입니다. |
원격 옵션
이러한 옵션을 사용하면 원격 시스템에서 명령을 실행하고 로그인 이름, 비밀번호, 포트 번호 또는 이러한 항목의 조합을 포함하는 명령을 스크립트할 수 있습니다.
on host |
원격 시스템(현재 sp_ctrl 세션이 실행 중인 시스템이 아닌 것)에서 명령을 실행합니다. 원격 시스템에 대한 로그인 자격 증명을 묻는 메시지가 표시됩니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.
예: sp_ctrl(sysB)>status on SysA |
on host:portnumber |
원격 로그인 및 포트 번호를 제공해야 하는 경우 원격 시스템에서 명령을 실행합니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.
예: sp_ctrl(sysB)>status on SysA:8304 |
on login/password@host |
원격 로그인, 비밀번호 및 호스트 이름을 제공해야 하는 경우 원격 시스템에서 명령을 실행합니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.
예:sp_ctrl(sysB)>status on john/spot5489@SysA |
on login/password@host:portnumber |
원격 로그인, 비밀번호, 호스트 이름 및 포트 번호를 제공해야 하는 경우 원격 시스템에서 명령을 실행합니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.
예: sp_ctrl(sysB)>status on john/spot5489@SysA:8304 |
예
analyze config testconf 5 days
sp_ctrl (alvspxl11:8567)> show analyze
Process |
Source |
Target |
State |
PID |
------ |
------------ |
----------- |
------- |
---- |
Capture |
o.w111a64f |
|
Running |
2968 |
Analyze |
o.w111a64f |
|
Running |
2976 |
append status 명령을 사용하여 마지막 copy 또는 append 명령 작업의 실행 상태를 볼 수 있습니다. append status 명령을 사용하여 복사 또는 추가 작업이나 복사 또는 추가 작업의 일부에 대한 자세한 상태를 보거나 SharePlex에 내역이 있는 모든 복사 및 추가 작업의 상태를 볼 수 있습니다.
append status 명령 사용에 대한 자세한 내용은 아래 예를 참조하십시오.
사용
지원되는 소스: |
Oracle |
지원되는 타겟: |
Oracle |
인증 수준: |
뷰어 |
실행 대상: |
소스 또는 타겟 |
관련 명령: |
copystatus |
구문
append status |
[job_id]
[Job_id.table_id]
[all]
[full]
[detail]
[status] |
[ on host |
on host:portnumber |
on login/password@host |
on login/password@host:portnumber ] |
구문 설명
job_id |
지정된 SharePlex 할당 작업 ID를 가진 작업에 대한 상태 내역을 표시합니다.
예: sp_ctrl(sysA)>append status 28282 |
job_id.table_id |
지정된 SharePlex 할당 작업 ID 및 테이블을 가진 작업에 대한 상태 내역을 표시합니다.
예: sp_ctrl(sysA)>append status 2828.HR.SRC_TEST3 |
all |
데이터베이스에 내역이 있는 모든 작업에 대한 요약 줄을 표시합니다.
예: sp_ctrl(sysA)>append status all |
full |
작업에 있는 모든 객체의 상태를 표시합니다. 기본적으로 작업 상태 명령은 완료되지 않았거나 예외 상태로 완료된 객체의 상태를 표시합니다.
예: sp_ctrl(sysA)>append status 2828 full |
detail |
보고된 모든 객체에 대한 세부 정보를 표시합니다. 기본적으로 작업 상태 명령은 보고된 모든 객체에 대한 요약 줄을 표시합니다. 세부 정보는 job_id.table_id 옵션에 표시되는 것과 동일합니다.
예: sp_ctrl(sysA)>append status detail |
[status] |
지정된 상태를 가진 이전 작업에 대한 상태 내역을 표시합니다.
예: sp_ctrl(sysA)>append status "Error" |
원격 옵션
이러한 옵션을 사용하면 원격 시스템에서 명령을 실행하고 로그인 이름, 비밀번호, 포트 번호 또는 이러한 항목의 조합을 포함하는 명령을 스크립트할 수 있습니다.
on host |
원격 시스템(현재 sp_ctrl 세션이 실행 중인 시스템이 아닌 것)에서 명령을 실행합니다. 원격 시스템에 대한 로그인 자격 증명을 묻는 메시지가 표시됩니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.
예: sp_ctrl(sysB)>status on SysA |
on host:portnumber |
원격 로그인 및 포트 번호를 제공해야 하는 경우 원격 시스템에서 명령을 실행합니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.
예: sp_ctrl(sysB)>status on SysA:8304 |
on login/password@host |
원격 로그인, 비밀번호 및 호스트 이름을 제공해야 하는 경우 원격 시스템에서 명령을 실행합니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.
예:sp_ctrl(sysB)>status on john/spot5489@SysA |
on login/password@host:portnumber |
원격 로그인, 비밀번호, 호스트 이름 및 포트 번호를 제공해야 하는 경우 원격 시스템에서 명령을 실행합니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.
예: sp_ctrl(sysB)>status on john/spot5489@SysA:8304 |
authlevel 명령을 사용하여 시스템에서 SharePlex 명령을 실행하기 위한 인증 수준을 결정합니다.
다음은 표시의 예입니다.
User is a viewer (level=3)
사용
지원되는 소스: |
Oracle |
지원되는 타겟: |
전체 |
인증 수준: |
뷰어(3) |
실행 대상: |
소스 또는 타겟 시스템 |
관련 명령: |
없음 |
구문
authlevel |
[ on host |
on host:portnumber |
on login/password@host |
on login/password@host:portnumber ] |
원격 옵션
이러한 옵션을 사용하면 원격 시스템에서 명령을 실행하고 로그인 이름, 비밀번호, 포트 번호 또는 이러한 항목의 조합을 포함하는 명령을 스크립트할 수 있습니다.
on host |
원격 시스템(현재 sp_ctrl 세션이 실행 중인 시스템이 아닌 것)에서 명령을 실행합니다. 원격 시스템에 대한 로그인 자격 증명을 묻는 메시지가 표시됩니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.
예: sp_ctrl(sysB)>status on SysA |
on host:portnumber |
원격 로그인 및 포트 번호를 제공해야 하는 경우 원격 시스템에서 명령을 실행합니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.
예: sp_ctrl(sysB)>status on SysA:8304 |
on login/password@host |
원격 로그인, 비밀번호 및 호스트 이름을 제공해야 하는 경우 원격 시스템에서 명령을 실행합니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.
예:sp_ctrl(sysB)>status on john/spot5489@SysA |
on login/password@host:portnumber |
원격 로그인, 비밀번호, 호스트 이름 및 포트 번호를 제공해야 하는 경우 원격 시스템에서 명령을 실행합니다. 사용되는 경우 명령 구문의 마지막 구성 요소여야 합니다.
예: sp_ctrl(sysB)>status on john/spot5489@SysA:8304 |