기존 변환 작업공간은 이전의 더 제한적인 유형의 변환 작업공간입니다. 기존 변환 워크스페이스는 Gemini 기반 변환 기능이나 대화형 SQL 편집기를 지원하지 않습니다. Ora2Pg 마이그레이션 도구로 소스 스키마를 변환하는 데만 사용할 수 있습니다.
기존 유형의 전환 워크스페이스는 전환 워크플로에 여러 가지 다른 제한사항이 있으므로 마이그레이션에 사용하지 않는 것이 좋습니다.
대화형 변환 작업공간 | 기존 변환 작업공간 |
---|---|
스키마 및 코드 객체 변환은 Database Migration Service에서 이루어집니다. | Ora2Pg 마이그레이션 도구를 사용하여 Database Migration Service 외부에서 스키마 및 코드 객체 변환을 실행합니다. |
Database Migration Service에서 변환된 소스를 대상 데이터베이스에 직접 적용할 수 있습니다. | 변환된 스키마를 PostgreSQL용 Cloud SQL 대상 인스턴스의 대상 데이터베이스에 적용하는 것은 사용자의 책임입니다. |
Database Migration Service에서 직접 초안 스키마와 코드를 테스트하여 대상 인스턴스에 성공적으로 적용할 수 있는지 확인할 수 있습니다. | 대상 인스턴스에 영향을 주지 않고 초안 스키마와 코드를 테스트할 수 없습니다. |
기본 키와 고유 제약 조건이 없는 테이블에 누락된 rowid 열을 자동으로 추가합니다. |
스키마를 적용한 후 대상 테이블에 누락된 기본 키를 추가해야 합니다. |
기존 변환 작업공간 사용
시나리오에서 기존 전환 작업공간을 사용해야 하는 경우 다음 작업으로 마이그레이션 프로세스를 수정하세요.
Ora2Pg 구성 파일을 작성합니다.
Ora2Pg 변환 도구 사용 방법에 관한 안내는 Ora2Pg 문서를 참고하세요. Database Migration Service에서 지원되는 전체 지시어 목록을 보려면 다음 섹션을 펼치세요.
Database Migration Service에서 지원되는 Ora2Pg 구성
Database Migration Service는 Ora2Pg 파일에 대해 다음 구성 항목을 지원합니다.
BOOLEAN_VALUES
DATA_TYPE
DEFAULT_NUMERIC
ENABLE_MICROSECOND
EXPORT_SCHEMA
MODIFY_STRUCT
MODIFY_TYPE
PG_INTEGER_TYPE
PG_NUMERIC_TYPE
PG_SCHEMA
PRESERVE_CASE
REPLACE_AS_BOOLEAN
REPLACE_COLS
REPLACE_TABLES
REPLACE_ZERO_DATE
SCHEMA
Database Migration Service는 연결 프로필을 사용하여 연결 세부정보를 정의하므로 Or2Pg 구성 파일에서 다음 정보를 정의할 필요가 없습니다.
ORACLE_DSN
ORACLE_HOME
ORACLE_PWD
ORACLE_USER
PG_DSN
PG_PWD
PG_USER
또한 Database Migration Service는
WHERE
구성 지시어를 사용하여 마이그레이션할 레코드를 제한하지 않습니다.- 기존 변환 작업공간을 만들고 스키마를 변환할 Ora2Pg 파일을 업로드합니다.
변환된 스키마를 대상 데이터베이스에 수동으로 적용합니다.
Ora2Pg 구성을 만들고 작업공간을 만든 후 생성된 코드를 대상 데이터베이스에 직접 적용해야 합니다.
기본 키가 없는 테이블을 마이그레이션합니다.
Database Migration Service는 기본 키가 있는 테이블만 마이그레이션합니다. 소스 데이터베이스에 기본 키가 없는 테이블이 포함된 경우 변환된 스키마를 적용한 후 대상 데이터베이스의 변환된 테이블에서 기본 키 또는 고유 제약 조건을 수동으로 만들어야 합니다. 자세한 내용은 다음 섹션을 펼치세요.
대상 데이터베이스에 기본 키 제약 조건 추가
기본 키가 없는 Oracle 테이블을 마이그레이션하려면 다음 단계를 따르세요.
- SQL 클라이언트로 대상 Cloud SQL 인스턴스에 연결합니다. 다음 방법을 사용할 수 있습니다.
-
psql
client. 이 방법을 사용하여 인스턴스 비공개 IP에 연결할 수 있지만 Compute Engine 가상 머신을 만들어야 할 수 있습니다. -
gcloud sql connect
명령어. 이 명령어는 공개 IP 주소가 사용 설정된 Cloud SQL 인스턴스에만 작동합니다.
-
- 테이블에 누락된 기본 키 제약 조건을 만듭니다. 기본 키에 대한 자세한 내용은 PostgreSQL 문서의
기본 키를 참고하세요.
다음 섹션을 펼쳐 샘플 SQL 명령어를 확인할 수도 있습니다.
기존 열을 사용하여 기본 키 만들기
테이블에 열 또는 열 조합을 기반으로 하는 논리적 기본 키가 이미 있을 수 있습니다. 예를 들어 고유 제약 조건이나 색인이 구성된 열이 있을 수 있습니다. 이러한 열을 사용하여 소스 데이터베이스의 테이블에 새 기본 키를 생성합니다. 예를 들면 다음과 같습니다.
ALTER TABLE TABLE_NAME ADD PRIMARY KEY (COLUMN_NAME);
모든 열을 사용하여 기본 키 만들기
기본 키로 사용할 수 있는 기존 제약 조건이 없는 경우 테이블의 모든 열을 사용하여 기본 키를 만듭니다. PostgreSQL 인스턴스에서 허용하는 기본 키의 최대 길이를 초과하지 않도록 합니다. 예를 들면 다음과 같습니다.
ALTER TABLE TABLE_NAME ADD PRIMARY KEY (COLUMN_NAME_1, COLUMN_NAME_2, COLUMN_NAME_3, ...);
이와 같이 복합 기본 키를 만들 때는 사용할 모든 열 이름을 명시적으로 나열해야 합니다. 이 목적으로 문을 사용하여 모든 열 이름을 가져올 수는 없습니다.
ROWID
의사 열을 사용하여 고유 제약 조건 만들기Oracle 데이터베이스는
ROWID
유사 열을 사용하여 테이블의 각 행 위치를 저장합니다. 기본 키가 없는 Oracle 테이블을 마이그레이션하려면 대상 PostgreSQL 데이터베이스에ROWID
열을 추가하면 됩니다. Database Migration Service는 소스 OracleROWID
유사 열의 해당 숫자 값으로 열을 채웁니다.열을 추가하고 기본 키로 설정하려면 다음을 실행하세요.
ALTER TABLE TABLE_NAME ADD COLUMN rowid numeric(33,0) NOT NULL; CREATE SEQUENCE TABLE_NAME_rowid_seq INCREMENT BY -1 START WITH -1 OWNED BY TABLE_NAME.rowid; ALTER TABLE TABLE_NAME ALTER COLUMN rowid SET DEFAULT nextval('TABLE_NAME_rowid_seq'); ALTER TABLE TABLE_NAME ADD CONSTRAINT CONSTRAINT_DISPLAY_NAME PRIMARY KEY (rowid);
- SQL 클라이언트로 대상 Cloud SQL 인스턴스에 연결합니다. 다음 방법을 사용할 수 있습니다.
다음 단계
기존 작업공간으로 변환 워크플로를 실행한 후 표준 마이그레이션 절차를 진행할 수 있습니다. 마이그레이션 작업 만들기를 참고하세요.