구성 스크립트
설명
SharePlex 는 Oracle 소스 객체를 지정하기 위해 구성 파일의 빌드를 자동화하는 다음과 같은 스크립트를 제공합니다.
- config.sql: 데이터베이스의 모든 테이블과 모든 시퀀스(선택 사항)를 구성합니다.
- build_config.sql: 스키마에서 여러 테이블 또는 모든 테이블을 구성합니다.
지원되는 소스 및 타겟 데이터베이스
오라클 간 마이그레이션
config.sql 사용
config.sql 스크립트를 사용하면 데이터베이스의 모든 스키마에 있는 모든 테이블과 모든 시퀀스(선택 사항)를 나열하는 구성을 빌드할 수 있습니다. 이 스크립트는 고가용성 복제 전략을 설정하거나 전체 데이터베이스를 동일한 보조 데이터베이스에 복제하려는 기타 시나리오를 설정할 때 시간을 절약합니다.
config.sql 사용 조건
config.sql을 실행하려면 다음을 수행합니다.
-
디렉토리를 SharePlex variable-data 디렉토리의 config 하위 디렉토리로 변경합니다. config.sql 스크립트는 현재 작업 디렉토리에 구성을 저장하고 SharePlex 구성은 config 하위 디렉토리에 있어야 합니다.
cd /vardir/config
- SQL*Plus에 SYSTEM으로 로그온합니다.
-
SharePlex product 디렉토리의 util 하위 디렉토리에서 전체 경로를 사용하여 config.sql을 실행합니다.
@ /proddir/util/config.sql
프롬프트를 따를 때 다음 표를 참조하십시오.
타겟 시스템 |
타겟 시스템의 이름(예: SystemB)입니다. |
소스 데이터베이스 SID |
소스(기본) Oracle 인스턴스의 ORACLE_SID입니다(예: oraA). o. 키워드는 포함하지 마십시오. ORACLE_SID는 대소문자를 구분합니다. |
타겟 데이터베이스 SID |
타겟(대상) Oracle 인스턴스의 ORACLE_SID입니다(예: oraB). o. 키워드는 포함하지 마십시오. ORACLE_SID는 대소문자를 구분합니다. |
시퀀스 복제 |
시퀀스를 복제하려면 y를 입력하고, 시퀀스를 복제하지 않으려면 n을 입력합니다. |
SharePlex Oracle 사용자 이름 |
소스 데이터베이스의 SharePlex 사용자 이름입니다. 이 항목은 복제 문제가 발생할 수 있는 SharePlex 스키마가 복제되는 것을 방지합니다. 유효한 이름이 제공되지 않으면 스크립트가 실패합니다. |
참고: SharePlex가 구성에 할당한 이름은 config.file입니다. 스크립트를 다시 실행하여 다른 구성 파일을 생성하면 첫 번째 파일을 덮어씁니다. 기존 파일을 보존하려면 두 번째 파일을 만들기 전에 이름을 바꾸십시오.
다음 단계:
-
테이블이나 소유자가 대소문자를 구분하는 경우 sp_ctrl에서 edit config 명령을 사용하여 구성 파일을 연 다음, 텍스트 편집기를 사용하여 대소문자 구분 테이블 및 소유자 이름을 큰따옴표로 묶습니다(예: "scott"."emp"). 스크립트는 대소문자 구분을 적용하기 위해 Oracle에서 요구하는 따옴표를 추가하지 않습니다.
sp_ctrl> edit config filename
-
구성이 올바른 위치에 있는지 확인하려면 list config 명령을 실행합니다. 구성 이름이 표시되지 않으면 잘못된 디렉토리에 생성된 것입니다. 파일을 찾아 variable-data 디렉토리의 config 하위 디렉토리로 이동합니다.
sp_ctrl> list config
build_config.sql 사용
build_config.sql 스크립트를 사용하면 스키마에 여러(또는 모든) 테이블을 포함하는 구성을 빌드할 수 있습니다. 구성의 각 구성 요소를 단계별로 묻는 대화형 스크립트입니다. 각 객체 및 라우팅에 대한 정보를 개별적으로 입력하는 대신 와일드카드를 사용하여 특정 테이블을 한 번에 선택하거나 스키마의 모든 테이블을 선택할 수 있습니다.
build_config.sql 사용 조건
- 소스 테이블 이름과 타겟 테이블 이름이 동일해야 합니다.
- 스크립트는 시퀀스를 지원하지 않습니다. 스크립트가 빌드하는 구성을 활성화하기 전에 sp_ctrl에서 edit config 명령을 사용하여 시퀀스 항목을 추가할 수 있습니다.
- 스크립트는 파티셔닝된 복제를 지원하지 않습니다. copy config 명령을 사용하여 스크립트가 빌드하는 구성을 복사한 다음, edit config 명령을 사용하여 파티셔닝된 복제를 사용하는 테이블에 대한 항목을 추가할 수 있습니다. 기존 구성이 아닌 새 구성을 활성화합니다.
- 스크립트는 SYS, SYSTEM 및 SharePlex 스키마의 객체를 구성하지 않습니다. 이러한 스키마는 시스템 및/또는 인스턴스별로 다르므로 복제할 수 없습니다.
- 여러 스키마에 대해 build_config.sql을 실행한 다음, 텍스트 편집기를 사용하여 해당 구성을 하나의 구성으로 결합할 수 있습니다. 파일에서 주석 처리되지 않은 첫 번째 줄인 Datasource:o.SID 줄 하나만 제외하고 모두 제거해야 합니다. config 하위 디렉토리 밖으로 파일을 이동하지 마십시오.
- edit config 명령을 사용하여 구성이 빌드된 후 필요에 따라 다른 변경 작업을 수행할 수 있습니다.
build_config.sql을 실행하려면 다음을 수행합니다.
-
디렉토리를 SharePlex variable-data 디렉토리의 config 하위 디렉토리로 변경합니다. build_config.sql 스크립트는 현재 작업 디렉토리에 구성을 저장하고 SharePlex 구성은 config 하위 디렉토리에 있어야 합니다.
cd /vardir/config
- SQL*Plus에 SYSTEM으로 로그온합니다.
-
SharePlex product 디렉토리의 util 하위 디렉토리에서 전체 경로를 사용하여 build_config.sql을 실행합니다.
@ /proddir/util/build_config.sql
프롬프트를 따를 때 다음 표를 참조하십시오.
타겟 시스템 |
타겟 시스템의 이름(예: SystemB)입니다. |
소스 데이터베이스 SID |
소스(기본) Oracle 인스턴스의 ORACLE_SID입니다(예: oraA). o. 키워드는 포함하지 마십시오. ORACLE_SID는 대소문자를 구분합니다. |
타겟 데이터베이스 SID |
타겟(대상) Oracle 인스턴스의 ORACLE_SID입니다(예: oraB). o. 키워드는 포함하지 마십시오. ORACLE_SID는 대소문자를 구분합니다. |
소스 데이터베이스 테이블의 소유자 |
소스 테이블의 소유자입니다. |
타겟 데이터베이스 테이블의 소유자 |
타겟 테이블의 소유자입니다. |
포함할 테이블 이름(모두 비어 있음) |
다음 중 하나를 수행합니다.
- Enter 키를 눌러 기본값을 적용합니다. 기본값은 소스 소유자에게 속한 모든 테이블을 선택합니다.
- 특정 테이블을 선택하려면 와일드카드(%) 문자와 문자열을 입력합니다(예: %e_salary%).
- 개별 테이블 이름을 입력합니다.
|
생성할 출력 파일의 이름 |
구성의 이름입니다. 스크립트는 파일에 .lst 접미사를 제공합니다(예: Scott_config.lst). |
다음 단계:
-
테이블이나 소유자가 대소문자를 구분하는 경우 sp_ctrl에서 edit config 명령을 사용하여 구성을 연 다음, 텍스트 편집기를 사용하여 대소문자 구분 테이블 및 소유자 이름을 큰따옴표로 묶습니다(예: "scott"."emp"). 스크립트는 대소문자 구분을 적용하기 위해 Oracle에서 요구하는 따옴표를 추가하지 않습니다.
sp_ctrl> edit config filename
-
구성이 올바른 위치에 있는지 확인하려면 list config 명령을 실행합니다. 구성 이름이 표시되지 않으면 잘못된 디렉토리에 생성된 것입니다. 파일을 찾아 variable-data 디렉토리의 config 하위 디렉토리로 이동합니다.
sp_ctrl> list config
PostgreSQL용 구성 스크립트
설명
SharePlex는 온프레미스 PostgreSQL 및 PostgreSQL 데이터베이스를 서비스 소스 객체로 지정하기 위해 구성 파일의 빌드를 자동화하는 다음과 같은 스크립트를 제공합니다.
- pg_config.sql: 데이터베이스의 모든 테이블을 구성합니다.
- pg_build_config.sql: 스키마에서 여러 테이블 또는 모든 테이블을 구성합니다.
지원되는 소스 및 타겟 데이터베이스
PostgreSQL-PostgreSQL
pg_config.sql 사용
pg_config.sql 스크립트를 사용하면 데이터베이스의 모든 스키마에 있는 모든 테이블과 모든 시퀀스(선택 사항)를 나열하는 구성을 빌드할 수 있습니다. 이 스크립트는 고가용성 복제 전략을 설정하거나 전체 데이터베이스를 동일한 보조 데이터베이스에 복제하려는 기타 시나리오를 설정할 때 시간을 절약합니다.
pg_config.sql 사용 조건
pg_config.sql을 실행하려면 다음을 수행합니다.
-
디렉토리를 SharePlex variable-data 디렉토리의 config 하위 디렉토리로 변경합니다. pg_config.sql 스크립트는 현재 작업 디렉토리에 구성을 저장하고 SharePlex 구성은 config 하위 디렉토리에 있어야 합니다.
cd /vardir/config
- PostgreSQL에 로그온합니다.
-
SharePlex product 디렉토리의 util 하위 디렉토리에서 전체 경로를 사용하여 pg_config.sql을 실행합니다.
\i proddir/util/pg_config.sql
프롬프트를 따를 때 다음 표를 참조하십시오.
타겟 시스템 |
타겟 시스템의 이름(예: SystemB)입니다. |
소스 데이터베이스 이름 |
소스(기본) PostgreSQL 인스턴스의 데이터베이스 이름(예: dbnameA)입니다. r. 키워드는 포함하지 마십시오. 데이터베이스 이름은 대소문자를 구분합니다. |
타겟 데이터베이스 이름 |
타겟(대상) PostgreSQL 인스턴스의 데이터베이스 이름(예: dbnameB)입니다. r. 키워드는 포함하지 마십시오. 데이터베이스 이름은 대소문자를 구분합니다. |
SharePlex PostgreSQL 사용자 이름 |
소스 데이터베이스의 SharePlex 사용자 이름입니다. 이 항목은 복제 문제가 발생할 수 있는 SharePlex 스키마가 복제되는 것을 방지합니다. 유효한 이름이 제공되지 않으면 스크립트가 실패합니다. |
참고: SharePlex가 구성에 할당한 이름은 pg_config.file입니다. 스크립트를 다시 실행하여 다른 구성 파일을 생성하면 첫 번째 파일을 덮어씁니다. 기존 파일을 보존하려면 두 번째 파일을 만들기 전에 이름을 바꾸십시오.
다음 단계:
-
테이블이나 스키마가 대소문자를 구분하는 경우 sp_ctrl에서 edit config 명령을 사용하여 구성 파일을 연 다음, 텍스트 편집기를 사용하여 대소문자 구분 테이블 및 스키마 이름을 큰따옴표로 묶습니다(예: “SCOTT”.“EMP”). 스크립트는 대소문자 구분을 적용하기 위해 PostgreSQL에서 요구하는 따옴표를 추가하지 않습니다.
sp_ctrl> edit config filename
-
구성이 올바른 위치에 있는지 확인하려면 list config 명령을 실행합니다. 구성 이름이 표시되지 않으면 잘못된 디렉토리에 생성된 것입니다. 파일을 찾아 variable-data 디렉토리의 config 하위 디렉토리로 이동합니다.
sp_ctrl> list config
pg_build_config.sql 사용
build_config.sql 스크립트를 사용하면 스키마에 여러(또는 모든) 테이블을 포함하는 구성을 빌드할 수 있습니다. 구성의 각 구성 요소를 단계별로 묻는 대화형 스크립트입니다. 각 객체 및 라우팅에 대한 정보를 개별적으로 입력하는 대신 와일드카드를 사용하여 특정 테이블을 한 번에 선택하거나 스키마의 모든 테이블을 선택할 수 있습니다.
pg_build_config.sql 사용 조건
- 소스 테이블 이름과 타겟 테이블 이름이 동일해야 합니다.
- 스크립트는 파티셔닝된 복제를 지원하지 않습니다. copy config 명령을 사용하여 스크립트가 빌드하는 구성을 복사한 다음, edit config 명령을 사용하여 파티셔닝된 복제를 사용하는 테이블에 대한 항목을 추가할 수 있습니다. 기존 구성이 아닌 새 구성을 활성화합니다.
- 여러 스키마에 대해 pg_build_config.sql을 실행한 다음, 텍스트 편집기를 사용하여 해당 구성을 하나의 구성으로 결합할 수 있습니다. 파일에서 주석 처리되지 않은 첫 번째 줄인 Datasource:r.dbname 줄 하나만 제외하고 모두 제거해야 합니다. config 하위 디렉토리 밖으로 파일을 이동하지 마십시오.
- edit config 명령을 사용하여 구성이 빌드된 후 필요에 따라 다른 변경 작업을 수행할 수 있습니다.
pg_build_config.sql을 실행하려면 다음을 수행합니다.
-
디렉토리를 SharePlex variable-data 디렉토리의 config 하위 디렉토리로 변경합니다. pg_build_config.sql 스크립트는 현재 작업 디렉토리에 구성을 저장하고 SharePlex 구성은 config 하위 디렉토리에 있어야 합니다.
cd /vardir/config
- PostgreSQL에 로그온합니다.
-
SharePlex product 디렉토리의 util 하위 디렉토리에서 전체 경로를 사용하여 pg_build_config.sql을 실행합니다.
\i proddir/util/pg_build_config.sql
프롬프트를 따를 때 다음 표를 참조하십시오.
타겟 시스템 |
타겟 시스템의 이름(예: SystemB)입니다. |
소스 데이터베이스 이름 |
소스(기본) PostgreSQL 인스턴스의 데이터베이스 이름(예: dbnameA)입니다. r. 키워드는 포함하지 마십시오. 데이터베이스 이름은 대소문자를 구분합니다. |
타겟 데이터베이스 이름 |
타겟(대상) PostgreSQL 인스턴스의 데이터베이스 이름(예: dbnameB)입니다. r. 키워드는 포함하지 마십시오. 데이터베이스 이름은 대소문자를 구분합니다. |
소스 데이터베이스 스키마 |
소스 데이터베이스 스키마의 이름입니다. |
타겟 데이터베이스 스키마 |
타겟 데이터베이스 스키마의 이름입니다. |
포함할 테이블 이름(모두 비어 있음) |
다음 중 하나를 수행합니다.
- Enter 키를 눌러 기본값을 적용합니다. 기본값은 소스 소유자에게 속한 모든 테이블을 선택합니다.
- 특정 테이블을 선택하려면 와일드카드(%) 문자와 문자열을 입력합니다(예: %e_salary%).
- 개별 테이블 이름을 입력합니다.
|
생성할 출력 파일의 이름 |
구성의 이름입니다. |
다음 단계:
-
테이블이나 스키마가 대소문자를 구분하는 경우 sp_ctrl에서 edit config 명령을 사용하여 구성을 연 다음, 텍스트 편집기를 사용하여 대소문자 구분 테이블 및 스키마 이름을 큰따옴표로 묶습니다(예: “SCOTT”.“EMP”). 스크립트는 대소문자 구분을 적용하기 위해 PostgreSQL에서 요구하는 따옴표를 추가하지 않습니다.
sp_ctrl> edit config filename
-
구성이 올바른 위치에 있는지 확인하려면 list config 명령을 실행합니다. 구성 이름이 표시되지 않으면 잘못된 디렉토리에 생성된 것입니다. 파일을 찾아 variable-data 디렉토리의 config 하위 디렉토리로 이동합니다.
sp_ctrl> list config
cleanup.sql
설명
cleanup.sql 스크립트를 사용하여 SHAREPLEX_PARTITION 테이블(다시 필요할 수도 있는 파티션 scheme 포함)을 제외한 모든 SharePlex 내부 테이블을 자를 수 있습니다.
참고: cleanup.sql 스크립트는 SharePlex 테이블에서 SharePlex Oracle 사용자, 비밀번호 또는 데모 객체를 제거하지 않습니다.
cleanup.sql 스크립트는 SharePlex variable-data 디렉토리에 복제 데이터를 유지합니다. 다른 유틸리티는 다음과 같은 관련 옵션을 제공합니다.
- SharePlex 테이블을 자르지 않고 variable-data 디렉토리를 정리하려면 Clean_vardir.sh를 참조하십시오.
- variable-data 디렉토리를 정리하고 SharePlex 테이블을 자르려면 Ora_cleansp를 참조하십시오. 이 유틸리티는 SharePlex를 초기 상태로 완전히 복원합니다.
cleanup.sql을 처음 실행하기 전에 Quest 기술 지원에 문의하십시오. SharePlex 문서의 프로시저에서 clean_vardir.sh 실행을 요구하지 않는 한 이 유틸리티는 프로덕션 환경에 거의 적합하지 않습니다. 구성이 비활성화되고 부적절하게 사용하면 복제 문제가 발생하고 데이터를 재동기화해야 할 수 있습니다. 일반적으로는 다른 대안이 있습니다.
지원되는 데이터베이스
Unix의 Oracle
cleanup.sql을 실행하려면 다음을 수행합니다.
-
SharePlex 데이터베이스 사용자로 Oracle에 로그인합니다. SharePlex 테이블은 해당 사용자에 속합니다. Unix 및 Linux에서 여러 variable-data 디렉토리가 있는 sp_cop의 여러 인스턴스를 실행하는 경우 각 인스턴스마다 SharePlex Oracle 사용자가 있습니다. 이 스크립트를 올바른 스크립트로 실행하십시오.
-
(Unix 및 Linux) SP_SYS_VARDIR 환경 변수가 SharePlex variable-data 디렉토리를 가리키도록 설정합니다.
ksh 셸:
export SP_SYS_VARDIR=/full_path_of_variable-data_directory
csh 셸:
setenv SP_SYS_VARDIR=/full_path_of_variable-data_directory
-
SharePlex 관리자로 cleanup.sql을 실행합니다. 이 스크립트는 SharePlex product 디렉토리의 bin 하위 디렉토리에 있습니다. 다음 구문을 사용합니다. 여기서, Oracle_version은 SharePlex가 지원하는 Oracle 버전 중 하나입니다.
SQL> @proddir/bin/cleanup.sql
clean_vardir.sh
설명
clean_vardir.sh 스크립트를 사용하여 variable-data 디렉토리를 정리해 초기 상태로 복원할 수 있습니다.
clean_vardir.sh 스크립트는 SharePlex 내부 테이블의 내용을 유지합니다.
- variable-data 디렉토리를 정리하지 않고 SharePlex 테이블을 자르려면 Cleanup.sql을 참조하십시오.
- variable-data 디렉토리를 정리하고 SharePlex 테이블을 자르려면 적절한 database_cleansp 유틸리티를 참조하십시오. 여기서, 데이터베이스는 데이터베이스 유형입니다. 이 유틸리티는 SharePlex를 초기 상태로 완전히 복원합니다.
중요! clean_vardir.sh를 처음 실행하기 전에 Quest 기술 지원에 문의하십시오. SharePlex 문서의 프로시저에서 clean_vardir.sh 실행을 요구하지 않는 한 이 유틸리티는 프로덕션 환경에 거의 적합하지 않습니다. 구성이 비활성화되고 부적절하게 사용하면 복제 문제가 발생하고 데이터를 재동기화해야 할 수 있습니다. 일반적으로는 다른 대안이 있습니다.
이 유틸리티의 기능
clean_vardir.sh 스크립트는 다음을 제거합니다.
- rim 하위 디렉토리에 있는 큐 파일
- log 하위 디렉토리에 있는 로그 파일. 이벤트 로그에는 clean_vardir.sh 프로시저를 반영하는 하나의 항목이 유지됩니다.
- data 하위 디렉토리에 있는 statusdb 파일의 내용
- dump 및 state 하위 디렉토리의 내용
clean_vardir.sh 스크립트는 구성 파일, 충돌 해결 파일, 힌트 파일, paramdb 및 oramsglist 파일과 같은 사용자 생성 파일을 유지합니다.
clean_vardir.sh 스크립트는 구성을 비활성화합니다. clean_vardir.sh 실행 후 복제를 시작하려면 구성을 활성화해야 합니다.
지원되는 데이터베이스
UNIX 및 Linux의 Oracle
셸 요구 사항
이 유틸리티를 사용하려면 Korn(ksh) 셸이 시스템에 설치되어 있어야 합니다. 유틸리티는 처리 중에 이 셸을 호출합니다.
clean_vardir.sh를 실행하려면 다음을 수행합니다.
참고: Unix 및 Linux 시스템에서만 이 스크립트를 실행하십시오.
- sp_cop을 종료합니다.
-
SP_SYS_VARDIR 환경 변수가 SharePlex variable-data 디렉토리를 가리키도록 설정합니다. SP_SYS_VARDIR이 설정되지 않은 경우 clean_vardir.sh는 proddir/data/default.yaml 파일에 나열된 디렉토리에 영향을 미칩니다. 여기서, proddir은 SharePlex product 디렉토리의 bin 하위 디렉토리입니다.
ksh 셸:
export SP_SYS_VARDIR=/full_path_of_variable-data_directory
csh 셸:
setenv SP_SYS_VARDIR=/full_path_of_variable-data_directory
-
SharePlex 관리자로 clean_vardir.sh를 실행합니다. 이 스크립트는 SharePlex product 디렉토리의 bin 하위 디렉토리에 있습니다. 다음 구문을 사용합니다. 여기서, Oracle_version은 SharePlex가 지원하는 Oracle 버전 중 하나입니다.
proddir/bin/clean_vardir.sh Oracle_version
스크립트 실행이 완료되면 명령 프롬프트로 돌아갑니다.
참고: 스크립트가 save_SharePlex_version 디렉토리를 제거할 수 없다는 오류 메시지를 생성하는 경우, 해당 디렉토리를 수동으로 제거할 수 있습니다.