변환 작업공간을 사용하면 변환 문제를 해결하고, 대화형 편집기로 객체를 수정하고, 변환된 스키마를 대상 데이터베이스에 적용할 수 있습니다. 이 페이지에서는 전환 워크스페이스로 수행할 수 있는 모든 작업을 간략히 설명합니다.
소스 스키마에서 객체 삭제
객체를 소스 스키마에서 삭제하여 변환에서 제외합니다. 필요한 경우 나중에 삭제된 객체를 추가할 수 있습니다.
- Google Cloud 콘솔에서 변환 작업공간으로 이동하여 작업공간을 선택합니다.
- Oracle 탭에서 삭제하려는 객체 옆에 있는 > 삭제를 선택합니다. 더보기
- 객체 삭제 확인 대화상자에서 삭제를 클릭합니다.
- 변환된 스키마를 새로고침합니다.
PostgreSQL용 AlloyDB 초안 탭에서 변환된 스키마를 검사할 수 있습니다.
소스 변환을 클릭합니다.
이제 Database Migration Service가 변경사항을 분석하고 업데이트된 PostgreSQL 스키마를 생성합니다.
소스 스키마에 객체 추가
이전에 소스 스키마에서 삭제된 객체를 추가하여 변환에 추가할 수 있습니다.
- Google Cloud 콘솔에서 변환 작업공간으로 이동하여 작업공간을 선택합니다.
- Oracle 탭에서 객체 추가를 클릭합니다.
- 객체 추가 섹션에서 소스 목록을 사용하여 소스 스키마에 추가할 모든 항목을 선택합니다.
객체 필터링 버튼을 사용하여 표시되는 객체 수를 줄일 수 있습니다. 소스 스키마 보기에서 객체 필터링을 참고하세요.
- 객체 추가를 클릭합니다.
- 변환된 스키마를 새로고침합니다.
PostgreSQL용 AlloyDB 초안 탭에서 변환된 스키마를 검사할 수 있습니다.
소스 변환을 클릭합니다.
이제 Database Migration Service가 변경사항을 분석하고 업데이트된 PostgreSQL 스키마를 생성합니다.
소스 스키마 및 코드 스냅샷 가져오기
언제든지 소스 데이터베이스에서 스키마와 코드를 변환 작업공간으로 가져올 수 있습니다. 소스를 가져오면 전환에서 새 객체를 추가하거나 기존 객체를 업데이트할 수 있습니다.
업데이트된 데이터베이스 스키마와 코드를 가져오더라도 커스텀 매핑을 명시적으로 삭제하지 않는 한 변환 작업공간에 있는 커스텀 매핑은 재설정되지 않습니다.
또한 소스를 가져와도 코드 객체의 SQL 변경사항이 재정의되지 않습니다. 이러한 변경사항은 객체 수준에서 직접 재설정할 수 있습니다.
- Google Cloud 콘솔에서 변환 작업공간으로 이동하여 작업공간을 선택합니다.
- > 소스 스키마 스냅샷 다시 가져오기를 클릭합니다. 구성 수정
- 대화상자에서 다음을 수행합니다.
- (선택사항) 커스텀 매핑 재설정을 선택하여 기존 커스텀 매핑 및 DDL 수정사항을 삭제합니다.
- 스키마 스냅샷 가져오기를 클릭합니다.
Database Migration Service가 소스 데이터베이스에서 새 스냅샷을 가져옵니다.
- 변환된 스키마를 새로고침합니다.
PostgreSQL용 AlloyDB 초안 탭에서 변환된 스키마를 검사할 수 있습니다.
소스 변환을 클릭합니다.
이제 Database Migration Service가 변경사항을 분석하고 업데이트된 PostgreSQL 스키마를 생성합니다.
맞춤 전환 매핑 사용
전환 매핑 파일을 사용하여 전환 로직을 맞춤설정할 수 있습니다. 변환 매핑 파일은 Oracle 객체를 PostgreSQL 객체로 변환하는 방법에 관한 정확한 안내(변환 디렉티브라고 함)가 포함된 텍스트 파일입니다.
맞춤 매핑 파일 작성
맞춤 매핑 파일을 작성하려면 다음 단계를 따르세요.
구성 파일 예시를 참고하세요.
텍스트 편집기에서 맞춤 전환 매핑을 작성하고 변환 작업공간에 업로드합니다.
맞춤 매핑 파일 추가
워크스페이스에 맞춤 변환 매핑 파일을 추가하려면 다음 단계를 따르세요.
- Google Cloud 콘솔에서 변환 작업공간으로 이동하여 작업공간을 선택합니다.
- 전환 편집기 페이지에서 > 구성 파일로 매핑 맞춤설정을 선택합니다. 구성 수정
- 구성 파일 상자에서 찾아보기를 클릭하고 시스템 파일 선택 도구를 사용하여 구성 파일을 선택합니다.
- > 매핑 만들기를 클릭합니다. 파일 추가
커스텀 매핑 파일 삭제
작업공간에서 맞춤 전환 매핑 파일을 삭제하려면 다음 단계를 따르세요.
- Google Cloud 콘솔에서 변환 작업공간으로 이동하여 작업공간을 선택합니다.
- 전환 편집기 페이지에서 > 맞춤 매핑 삭제를 선택합니다. 구성 수정
변환 결과 검토
소스 변환을 실행한 후 워크스페이스 편집기 영역에서 변환 결과와 변환된 각 개별 객체의 발생 가능한 문제를 검토할 수 있습니다. Google Cloud CLI를 사용하여 모든 결과와 문제를 일괄적으로 텍스트 파일에 저장할 수도 있습니다.
콘솔
Google Cloud 콘솔에서 변환 작업공간으로 이동합니다.
작업할 변환 작업공간의 표시 이름을 클릭합니다.
변환 작업공간 편집기가 열립니다.
Oracle 탭을 선택하고 트리 보기 표에서 전환 결과를 검토할 객체를 찾습니다.
객체를 선택합니다. SQL 및 전환 문제 탭을 사용하여 전환을 검토합니다.
gcloud
Google Cloud CLI를 사용하면 모든 전환 결과 또는 문제를 터미널에 출력할 수 있습니다. 더 편리하게 일괄 객체를 검토할 수 있도록 출력을 파일로 리디렉션합니다.
전환 결과 목록 가져오기
gcloud CLI는 터미널에 데이터 정의 언어 (DDL) 문 형식으로 변환 결과를 표시합니다. 변환 결과를 파일에 저장하려면 다음 명령어를 실행합니다.
gcloud database-migration conversion-workspaces describe-ddls \
CONVERSION_WORKSPACE_ID \
--region=REGION_ID \
> OUTPUT_FILE_PATH
다음과 같이 바꿉니다.
CONVERSION_WORKSPACE_ID
를 변환 작업공간 식별자로 바꿉니다. 변환 작업공간 식별자를 검색하는 방법에 관한 자세한 내용은 변환 작업공간 세부정보 보기를 참고하세요.REGION_ID
을 변환 워크스페이스가 있는 리전 이름으로 바꿉니다.OUTPUT_FILE_PATH
를 출력을 저장할 텍스트 파일의 경로로 바꿉니다.예:
gcloud database-migration conversion-workspaces describe-issues \ my-conversion-workspace \ --region=us-central1 \ > ./my-conversion-issues.txt
결과:
스키마 변환 결과는 텍스트 형식으로 저장되며 첫 번째 줄에는
DDLs
가 표시되고 후속 줄에는 SQL 문이 표시됩니다.DDLs CREATE SCHEMA IF NOT EXISTS "SCHEMA1"; ALTER TABLE "SCHEMA1"."EMPLOYEES" ADD CONSTRAINT PK_ID PRIMARY KEY ("ID"); CREATE OR REPLACE FUNCTION mockschema.func_test_datatype(str1 VARCHAR(65000)) RETURNS DECIMAL LANGUAGE plpgsql AS $$ DECLARE str2 VARCHAR(100); BEGIN SELECT employees.first_name INTO STRICT STR2 FROM mockschema.employees WHERE employees.employee_id = CAST(FUNC_TEST_DATATYPE.str1 as DECIMAL) ; RAISE NOTICE '%', concat('Input : ', FUNC_TEST_DATATYPE.str1, ' Output : ', str2); RETURN 0; END; $$; CREATE OR REPLACE PROCEDURE greetings AS BEGIN dbms_output.put_line('Hello World!'); END; CREATE SYNONYM TABLE "SCHEMA1"."SYNONYM1" ON "SCHEMA1"."EMPLOYEES"; CREATE OR REPLACE VIEW "SCHEMA1"."VIEW1" AS SELECT * FROM JOBS;
전환 문제 목록 가져오기
변환 문제를 파일에 저장하려면 다음 명령어를 실행합니다.
gcloud database-migration conversion-workspaces describe-issues \
CONVERSION_WORKSPACE_ID \
--region=REGION_ID \
> OUTPUT_FILE_PATH
다음과 같이 바꿉니다.
-
CONVERSION_WORKSPACE_ID
를 변환 작업공간 식별자로 바꿉니다. 변환 작업공간 식별자를 검색하는 방법에 관한 자세한 내용은 변환 작업공간 세부정보 보기를 참고하세요. -
REGION_ID
을 변환 워크스페이스가 있는 리전의 이름으로 바꿉니다. -
OUTPUT_FILE_PATH
를 출력을 저장할 텍스트 파일의 경로로 바꿉니다.
예:
gcloud database-migration conversion-workspaces describe-issues \
my-conversion-workspace \
--region=us-central1 \
> ./my-conversion-issues.txt
결과:
워크스페이스에 포함된 모든 전환 문제는 텍스트 형식으로 저장되며, 첫 번째 줄에는 열 헤더가 포함되고 이후 각 줄에는 별도의 전환 문제가 포함됩니다.
PARENT NAME ENTITY_TYPE ISSUE_TYPE ISSUE_SEVERITY ISSUE_CODE ISSUE_MESSAGE
SCHEMA1 EMPLOYEES TABLE DDL ERROR 500 unable to parse DDL.
SCHEMA1 EMPLOYEES TABLE CONVERT WARNING 206 no conversion done.
SCHEMA1 STORED_PROCEDURE1 STORED_PROCEDURE DDL ERROR 500 invalid DDL.
SCHEMA1 SYNONYM1 SYNONYM CONVERT WARNING 206 synonym warning message.
변환 문제 해결
Database Migration Service에서 전체 소스를 자동으로 변환하지 못할 수도 있습니다. 대부분의 Oracle 객체의 경우 Database Migration Service에서 직접 변환 편집기를 사용하여 생성된 SQL을 조정할 수 있습니다. 다른 경우에는 소스 데이터베이스에서 직접 객체를 변경한 다음 소스 스냅샷을 다시 가져와야 할 수 있습니다.
Database Migration Service에서 변환 워크스페이스에서 직접 수정할 수 있는 객체의 전체 목록은 수정 가능한 Oracle 객체를 참고하세요.
내장 편집기에서 지원하는 객체 관련 문제 해결
워크스페이스 편집기에서 지원되지 않는 객체와 관련된 문제를 해결하려면 다음 중 하나를 실행합니다.
내장 편집기에서 지원되지 않는 객체 관련 문제 해결
워크스페이스 편집기에서 지원되지 않는 객체와 관련된 문제를 해결하려면 다음 중 하나를 실행합니다.
- 소스의 결함 있는 객체 업데이트
- 일부 문제의 경우 소스 데이터베이스에서 직접 Oracle 문을 변경해야 할 수 있습니다. 다음 단계를 따르세요.
- 소스 데이터베이스에서 직접 스키마와 코드를 업데이트합니다.
- Database Migration Service로 업데이트된 소스를 가져옵니다.
- 소스를 다시 변환하고 문제가 지속되는지 확인합니다.
- 전환 매핑 파일로 매핑 추가
-
변환 매핑 파일을 사용하여 Database Migration Service가 특정 PostgreSQL 객체를 변환하는 방법을 정확하게 정의할 수 있습니다. 전환 매핑 파일을 사용하려면 다음 단계를 따르세요.
- 소스 탭에서 객체를 삭제해 보세요.
- Database Migration Service를 사용하면 . 전환 프로세스를 차단 해제하려면 나중에 결함이 있는 객체를 자세히 살펴볼 수 있습니다. 소스 탭에서 객체를 삭제합니다.
대상에서 스키마 테스트
스키마를 대상 데이터베이스에 적용하기 전에 먼저 테스트 실행을 수행하여 발생할 수 있는 문제를 사전에 확인할 수 있습니다. 테스트를 실행하기 위해 Database Migration Service는 임시 데이터베이스를 만듭니다. 테스트 실행은 대상 PostgreSQL용 AlloyDB 클러스터에 영향을 미치지 않습니다.
전담 이전 사용자에게
CREATEDB
권한이 있는지 확인합니다. 자세한 내용은 대상 PostgreSQL용 AlloyDB 클러스터 만들기 및 구성을 참고하세요.Google Cloud 콘솔에서 변환 작업공간으로 이동합니다.
작업할 변환 작업공간의 표시 이름을 클릭합니다.
변환 작업공간 편집기가 열립니다.
대상에 적용 > 테스트 (권장)를 클릭합니다.
대상 데이터베이스에 스키마를 적용하는 마법사가 표시됩니다.
대상 정의 섹션에서 대상 데이터베이스를 가리키는 연결 프로필을 선택합니다.
정의하고 계속하기를 클릭합니다.
객체 선택 및 애플리케이션 테스트 섹션에서 대상 데이터베이스에 대해 테스트할 데이터베이스 항목의 스키마를 선택합니다.
객체 필터링 버튼을 사용하여 표시되는 객체 수를 줄일 수 있습니다. 소스 스키마 보기에서 객체 필터링을 참고하세요.
애플리케이션 테스트를 클릭합니다.
PostgreSQL용 AlloyDB 탭에서 애플리케이션 상태를 검토할 수 있습니다.
대상에 스키마 적용
대상 데이터베이스에서 사용할 스키마가 요구사항 및 매핑에 따라 변환되면 결과를 대상 데이터베이스에 적용할 수 있습니다. 대상에 스키마를 적용해도 소스 데이터베이스의 데이터는 변경되지 않습니다.
Google Cloud 콘솔에서 변환 작업공간으로 이동합니다.
작업할 변환 작업공간의 표시 이름을 클릭합니다.
변환 작업공간 편집기가 열립니다.
대상에 적용 > 적용을 클릭합니다.
대상 데이터베이스에 스키마를 적용하는 마법사가 표시됩니다.
대상 정의 섹션에서 대상 데이터베이스를 가리키는 연결 프로필을 선택합니다.
정의하고 계속하기를 클릭합니다.
객체 검토 및 대상에 변환 적용 섹션에서 대상 데이터베이스에 만들 데이터베이스 항목의 스키마를 선택합니다.
객체 필터링 버튼을 사용하여 표시되는 객체 수를 줄일 수 있습니다. 소스 스키마 보기에서 객체 필터링을 참고하세요.
배송지에 적용을 클릭합니다.
PostgreSQL용 AlloyDB 탭에서 애플리케이션 상태를 검토할 수 있습니다.
변환 편집기에서 마이그레이션 작업 만들기
변환 편집기 인터페이스에서 직접 변환 작업공간을 사용하는 마이그레이션 작업을 만들 수 있습니다.
Google Cloud 콘솔에서 변환 작업공간으로 이동합니다.
작업할 변환 작업공간의 표시 이름을 클릭합니다.
변환 작업공간 편집기가 열립니다.
마이그레이션 작업 만들기를 클릭합니다.
마이그레이션 작업 만들기에 설명된 대로 표준 마이그레이션 작업 단계를 진행합니다.
소스 스키마 뷰에서 객체 필터링
데이터베이스 스키마에는 종종 수천 개의 객체가 포함되어 있어 변환 작업을 분할하기가 어렵습니다. 스키마 스냅샷의 객체를 소스 스키마 뷰에 추가할 때 필터를 사용하여 표시되는 객체 수를 제한할 수 있습니다. 필터를 사용하면 더 세부적으로 객체를 추가하고 스키마의 일부 하위 집합을 변환하는 데 집중할 수 있습니다.
소스 스키마 뷰에 객체를 추가할 때는 필터링된 뷰를 사용하세요.
- 필터 필드에서 다음 필터링 방법 중 하나를 사용합니다.
- 속성 목록에서 다음 자동 추천 옵션 중 하나를 선택합니다.
- 객체 이름: 이름(예:
ADMIN
)으로 객체를 필터링합니다. - 객체 유형: 함수 또는 테이블과 같은 여러 유형으로 객체를 필터링합니다.
- 전환 상태: 조치 필요 또는 문제 없음과 같은 전환 상태를 기준으로 객체를 필터링합니다.
필터 속성을 논리 연산자와 결합할 수 있습니다.
- 객체 이름: 이름(예:
- 쿼리를 입력합니다. 예를 들면
type=table
입니다.필터링 구문에 관한 자세한 내용은 지원되는 필터링 구문을 참고하세요.
- 소스 스키마 뷰에 추가할 객체를 선택합니다.
지원되는 필터링 문법
기본 텍스트 검색을 사용하여 이름으로 객체를 필터링하거나 전용 type
속성을 사용할 수 있습니다.
두 접근 방식 모두
필터링을 위한 Google API 공식 사양을 지원하므로 와일드 카드와 함께 리터럴을 사용할 수 있으며 논리 및 비교 연산자도 사용할 수 있습니다.
- 자유 텍스트 필터링
-
텍스트를 사용하여 이름으로 객체를 필터링합니다. 이 접근 방식은 대소문자를 구분하며 와일드 카드를 지원합니다.
예:
*JOB*
쿼리는 와일드 카드를 사용하여JOB
하위 문자열이 포함된 항목을 검색합니다. 필터링된 보기는 일부 테이블과 하나의 저장 프로시저를 반환합니다. type
속성을 사용하여 필터링-
Database Migration Service에서 지원되는 모든 표준 유형을 기준으로 객체를 필터링할 수 있습니다.
type
속성은 등호 (=
) 및 부등호 (!=
) 연산자를 사용하여 다음 리터럴을 지원합니다.database
,schema
,table
,column
,index
,sequence
,stored_procedure
,function
,view
,synonym
,materialized_view
,udt
,constraint
,database_package
,trigger
,event_trigger
예:
type=table
필터는 스키마에 있는 테이블만 반환합니다.
필터링 조건 결합
논리 연산자와 결합하여 여러 조건을 지정할 수 있습니다.
예를 들어 이름에 JOB
또는 EMPLOYEE
하위 문자열이 포함된 테이블만 검색하려면 다음 쿼리를 사용하세요.
type=table AND (*JOB* OR *EMPLOYEE*)
따라서 필터에 일치하는 모든 테이블이 표시됩니다.
