이 페이지에서는 알려진 제한사항 (예: 기본 키 또는 외부 키 및 트리거와 같은 항목 처리에 관한 특별 고려사항 포함)과 Database Migration Service를 사용한 이질적인 Oracle 마이그레이션에 관한 추천사항을 설명합니다.
이전되지 않는 항목
- 사용자 및 권한이 이전되지 않습니다.
- 진행 중인 마이그레이션 작업 중에 발생하는 스키마 변경사항은 자동으로 마이그레이션되지 않습니다. 이전 중에 스키마를 변경하는 경우 먼저 스키마 변경사항으로 변환 워크스페이스를 업데이트한 다음 관련 마이그레이션 작업을 새로고침해야 합니다. 자세한 내용은 업데이트된 스키마 또는 테이블을 이전 작업에 추가를 참고하세요.
-
SAVEPOINT
문은 지원되지 않으며 롤백 시 데이터 불일치가 발생할 수 있습니다. -
Database Migration Service는 사용자 정의 데이터 유형을 복제하지만 사용자 정의 유형을 파생하는 기본 데이터 유형만 저장합니다.
예를 들어
USERNAME
데이터 유형을 기반으로VARCHAR2
데이터 유형을 정의하는 경우 데이터는 대상에VARCHAR
로 저장됩니다.
데이터베이스, 트랜잭션, 데이터 일관성
- Database Migration Service는 각 트랜잭션이 발생할 때마다 복제하지 않으므로 마이그레이션은 궁극적으로 일관됩니다. 마이그레이션을 통해 여러 테이블의 데이터가 가져옵니다. 데이터가 대상에 로드되는 순서는 다를 수 있지만 소스의 쓰기가 중지되고 마이그레이션 버퍼가 지워진 후 소스와 다시 정렬됩니다.
- 이질적인 Oracle 마이그레이션의 경우 Database Migration Service는 마이그레이션 작업당 하나의 데이터베이스만 마이그레이션할 수 있습니다.
- Database Migration Service는 Oracle 멀티 테넌트 아키텍처 (CDB/PDB)를 지원하지만 마이그레이션 작업당 플러그인 가능한 데이터베이스 하나만 마이그레이션할 수 있습니다.
- Oracle 라벨 보안(OLS)은 복제되지 않습니다.
- 대상 데이터베이스의 이름은 데이터베이스에 연결하는 데 사용되는 사용자 이름과 동일해야 합니다.
- 마이그레이션 프로세스 중에 소스 데이터베이스에서 롤백된 트랜잭션은 트랜잭션이 충분히 길면 대상에 일시적으로 표시될 수 있습니다.
- Database Migration Service는 Oracle Real Application Clusters (RAC) 환경에서 단일 클라이언트 액세스 이름(SCAN) 기능을 사용하여 데이터베이스에 대한 직접 연결을 지원하지 않습니다. 이러한 환경에서 공개 IP 허용 목록 연결을 사용하는 잠재적인 해결 방법은 Oracle SCAN 오류 문제 해결을 참고하세요.
데이터 인코딩
- Database Migration Service는 대상 데이터베이스의
UTF8
세트 인코딩만 지원합니다.UTF8
인코딩 세트에 포함되지 않은 문자가 포함된 스키마 및 테이블 이름은 지원되지 않습니다. - Database Migration Service는 Oracle 데이터베이스에 대해 다음 문자 집합 인코딩을 지원합니다.
AL16UTF16
AL32UTF8
IN8ISCII
JA16SJIS
US7ASCII
UTF8
WE8ISO8859P1
WE8ISO8859P9
WE8ISO8859P15
WE8MSWIN1252
ZHT16BIG5
테이블, 스키마, 기타 객체
- 이전 중에 데이터, 스키마, 메타데이터에 대한 데이터 정의 언어 (DDL) 변경사항은 지원되지 않습니다. 이전 중에 스키마를 업데이트하는 경우 변경사항을 변환 작업공간으로 가져와 코드를 변환하고 대상을 정리한 후 이전 작업을 다시 실행해야 합니다.
- 영숫자 문자 또는 밑줄 (
_
) 이외의 문자가 포함된 테이블 열 이름은 지원되지 않습니다. - 색인 구성 테이블(IOT)은 지원되지 않습니다.
- 전역 임시 테이블을 사용하려면 대상에
pgtt
PostgreSQL 확장 프로그램이 설치되고 생성되어야 합니다. BFILE
유형 열의 경우 파일 경로만 복제됩니다. 파일 콘텐츠는 복제되지 않습니다.- Oracle 11g의 경우 데이터 유형이
ANYDATA
또는UDT
인 열이 있는 테이블은 지원되지 않으며 전체 테이블이 복제되지 않습니다. -
dbms_job
또는dbms_scheduler
를 사용하여 예약된 작업은 마이그레이션되지 않습니다. - 구체화된 뷰 정의는 마이그레이션되지만 구체화된 데이터는 마이그레이션되지 않습니다. 마이그레이션이 완료되면 구체화된 뷰를 새로고침하여 마이그레이션된 테이블의 데이터로 채웁니다.
- 시퀀스 값은 마이그레이션되지만 마이그레이션이 완료되기 전에 소스 데이터베이스의 값이 계속 증가할 수 있습니다. 마이그레이션이 완료되면 대상 인스턴스의 시퀀스 값을 소스 데이터베이스의 값과 일치하도록 업데이트합니다.
- 이전 작업은 테이블 10,000개로 제한됩니다.
- 행의 크기 제한은 100MB입니다. 100MB 한도를 초과하는 행은 이전되지 않으며 이전 작업에 오류로 표시됩니다.
- 이전이 시작된 후에 생성된 테이블은 자동으로 이전되지 않습니다. 먼저 변환 작업공간에서 스키마를 가져와 변환된 정의를 대상에 적용하고 마이그레이션 작업을 업데이트해야 합니다.
데이터 유형 제한사항
Oracle 이전에는 다음 데이터 유형이 지원되지 않습니다.
ANYDATA
(Oracle 11g의 경우ANYDATA
가 있는 테이블은 완전히 지원되지 않으며 복제되지 않습니다.)BFILE
INTERVAL DAY TO SECOND
INTERVAL YEAR TO MONTH
LONG/LONG RAW
SDO_GEOMETRY
UDT
UROWID
XMLTYPE
TIMESTAMP
의 제로 날짜
기본 키 고려사항
기본 키가 없는 테이블은 일관된 복제를 보장하지 않습니다. Database Migration Service는 기본 키가 있는 테이블만 마이그레이션합니다. 소스 데이터베이스에 기본 키가 없는 테이블이 포함된 경우 소스 코드 및 스키마를 변환할 때 Database Migration Service 변환 워크스페이스는 대상 테이블에 누락된 기본 키를 자동으로 만듭니다.
기존 전환 작업공간을 사용하는 경우 이전을 시작하기 전에 대상 데이터베이스의 변환된 테이블에 기본 키 제약 조건을 수동으로 만들어야 합니다. 자세한 내용은 기존 변환 작업공간을 참고하세요.
외래 키 및 트리거 고려사항
소스 데이터베이스에 있는 외래 키와 트리거로 인해 데이터 무결성 문제가 발생하거나 마이그레이션 작업이 실패할 수도 있습니다.
마이그레이션 사용자의 REPLICATION
옵션을 사용하여 외래 키와 트리거를 건너뛰면 이러한 문제를 방지할 수 있습니다.
또는 대상 데이터베이스의 모든 외래 키와 트리거를 삭제하고 마이그레이션이 완료되면 다시 만들 수도 있습니다.
트리거
Database Migration Service에서 복제한 데이터에는 이미 소스 데이터베이스의 트리거에 의해 적용된 변경사항이 포함되어 있습니다. 대상에서 트리거가 사용 설정된 경우 트리거가 다시 실행되어 데이터를 조작할 수 있으며, 이로 인해 데이터 무결성 또는 중복 문제가 발생할 수 있습니다.
외래 키
Database Migration Service는 트랜잭션 방식으로 데이터를 복제하지 않으므로 테이블이 순서대로 마이그레이션되지 않을 수 있습니다. 외래 키가 있고 외래 키를 사용하는 하위 테이블이 상위 테이블보다 먼저 이전되면 복제 오류가 발생할 수 있습니다.
권장사항
-
대상 Cloud SQL 데이터베이스를 만들 때 마이그레이션 요구사항을 충족하기에 충분한 컴퓨팅 및 메모리 리소스를 사용해야 합니다. 적어도 1개의 듀얼 코어 CPU가 있는 머신 유형을 사용하는 것이 좋습니다.
예를 들어 머신 이름이
db-custom
이고 CPU 2개와 3,840MB의 RAM을 사용하는 경우 머신 유형 이름의 형식은db-custom-2-3840
입니다. - 필요한 경우 데이터 조작 언어 (DML) 변경사항을 적용할 수 있도록 마이그레이션 중에 대상 Cloud SQL 데이터베이스에 쓸 수 있습니다. 마이그레이션 프로세스가 중단되거나 데이터 무결성에 영향을 미칠 수 있는 데이터베이스 구성 또는 테이블 구조를 변경하지 않도록 주의하세요.
할당량
- 어느 시점에든지 최대 2,000개의 연결 프로필과 1,000개의 마이그레이션 작업이 존재할 수 있습니다. 더 많은 항목을 위한 여유 공간을 확보하려면 마이그레이션 작업 (완료된 작업 포함) 및 연결 프로필을 삭제할 수 있습니다.