Visual Studio Code PostgreSQL 확장은 Oracle 스키마 및 애플리케이션 변환을 위한 안내 워크플로를 제공합니다. 마법사는 Oracle에 연결하고, 스키마를 선택하고, 검색 결과를 검토하고, PostgreSQL 스크래치 데이터베이스를 선택하고, Microsoft Foundry를 구성하는 방법을 안내합니다. 변환 후 HTML 보고서 및 변환 개체 탐색기를 검토한 다음 Setup Experience를 사용하여 배포를 준비합니다. 행 데이터 마이그레이션을 별도로 계획합니다.
Important
Oracle-PostgreSQL 마이그레이션 워크플로는 Visual Studio Code만 사용할 수 있습니다.
스키마 및 애플리케이션 변환이 서로 어떻게 연계되는지
확장은 Oracle 워크로드를 두 번의 패스로 변환합니다. 스키마 변환은 먼저 실행되고 데이터베이스 개체에 대한 DDL(PostgreSQL 데이터 정의 언어)을 생성합니다. 애플리케이션 변환은 나중에 실행되고 해당 개체를 호출하는 코드를 업데이트합니다.
스키마 변환
스키마 변환은 선택한 스키마에 대한 Oracle 데이터 사전을 읽고 Microsoft Foundry 배포를 사용하여 PostgreSQL DDL을 생성합니다. 이 도구는 스크래치 데이터베이스에서 컴파일을 시도하고 사용 가능한 정적 검사를 사용하여 문제를 식별합니다. 이러한 검사는 동등한 런타임 동작 또는 프로덕션 준비 상태를 보장하지 않습니다. 실행 결과로 다음이 생성됩니다:
- Oracle 스키마 및 개체 유형별로 구성된 개체 수준 PostgreSQL
.sql파일입니다. - 탐지, 추출 및 변환 결과, 변환 속도 및 개체 수준 노트가 있는 HTML 변환 보고서입니다.
- 수동으로 변경해야 하는 개체를 포함하여 변환 개체 탐색기에서 검사할 수 있는 개체 매핑 및 메모입니다.
- 별도의 배포 작업에 대한 설정 지침 및 스크립트
- 스키마에 있는 Oracle 패턴과 PostgreSQL에 매핑하는 방법을 설명하는 코딩 참고 사항입니다.
애플리케이션 변환
애플리케이션 변환은 데이터베이스를 둘러싸는 Oracle 관련 코드(SQL 스크립트, 저장 프로시저 호출, 로더 제어 파일, 셸 스크립트 및 Java 파일)를 대상으로 합니다. 스키마 변환의 코딩 노트를 입력으로 사용하므로 변환된 애플리케이션 코드는 스키마 변환이 실제로 생성한 개체 이름, 형식 및 호출 규칙과 일치합니다.
이 확장에서 데이터베이스 관련 애플리케이션 코드를 변환하거나, 전면적인 현대화 작업을 위해 GitHub Copilot 앱 현대화 확장에 작업을 맡길 수 있습니다.
두 패스 순서 지정
먼저 스키마 변환을 실행하세요. 애플리케이션 변환은 스키마 변환에서 코딩 노트 및 변환된 개체 이름을 사용합니다. 애플리케이션 코드를 변환하기 전에 스키마를 검토하고 필요한 변경 사항을 반영합니다. 나중에 PostgreSQL 정의를 편집하는 경우 해당 정의를 호출하는 애플리케이션을 다시 확인하세요. 완료된 스키마 변환을 다시 실행하는 것은 지원되지 않습니다.
필수 조건
시작하기 전에 다음 사항을 확인하세요.
- Visual Studio Code 설치되었습니다.
- PostgreSQL 확장이 설치되었습니다.
- 스키마 메타데이터 및 데이터 딕셔너리 뷰에 대한 읽기 권한이 있는 Oracle 원본 데이터베이스에 대한 액세스 권한 행 데이터 액세스는 필요하지 않습니다.
- 보존할 필요가 없는 비어 있거나, 전용이면서 사용되지 않는 스크래치 데이터베이스가 있는 Azure Database for PostgreSQL 유연한 서버입니다. 접속 사용자는 대응하는 스키마를 삭제했다가 다시 생성하고 유효성 검사 객체를 생성할 수 있어야 합니다. 스키마 변환은 Azure HorizonDB를 스크래치 데이터베이스로 지원하지 않습니다.
- 배포된
gpt-5.2모델과 분당 1,000,000토큰(TPM)보다 큰 할당량을 가진 Microsoft Foundry 리소스입니다. 액세스 권한이 있는 엔드포인트 URL과 API 키 또는 Microsoft Entra ID 계정이 필요합니다.
운영 체제, 버전, 사용 권한 및 연결 요구 사항은 스키마 변환 자습서 사전 요구 사항을 참조하세요.
마이그레이션 기능이 사용하도록 설정되어 있는지 확인
이 설정은 pgsql.enableMigrations마이그레이션 보기 및 모든 마이그레이션 명령을 제어합니다. 이 설정은 기본적으로 사용하도록 설정됩니다.
사이드바에 Migrations 보기가 표시되지 않으면 Visual Studio Code 설정(Ctrl+, Windows/Linux, Cmd+, macOS)을 열고 pgsql.enableMigrations이(가) true로 설정되어 있는지 확인하세요.
마이그레이션 프로젝트 생성
마이그레이션 프로젝트 마법사는 프로젝트 작업 영역을 만들기 전에 원본, 검색 대상 범위, 스크래치 데이터베이스 연결 및 AI 설정을 입력받습니다.
1단계: Project 설정
사이드바에서 Migrations 보기를 여세요.
다음 방법 중 하나로 새 프로젝트를 시작합니다.
- 작업 영역에 아직 마이그레이션 프로젝트가 없으면 해당 보기에서 + 마이그레이션 프로젝트 만들기를 선택합니다.
- 보기 도구 모음에서 + 단추를 선택합니다.
- 탐색기에서 작업 영역 폴더를 마우스 오른쪽 단추로 클릭하고 마이그레이션 Project 열기를 선택합니다.
새 Oracle to Azure Database for PostgreSQL 마이그레이션 프로젝트 페이지가 열리고 필요한 항목이 나열됩니다.
- 원본 데이터베이스에 대한 연결 세부 정보
- 변환할 스키마의 이름
- Microsoft Foundry 리소스에 대한 엔드포인트 URL 및 키
- 기존 Azure Database for PostgreSQL 인스턴스의 연결 이름
Project 이름 필드에 이름을 입력합니다.
다음: Oracle 연결을 선택합니다.
2단계: Oracle에 연결
Oracle에 연결 페이지에서 Oracle 원본 데이터베이스 자격 증명을 수집하고 스키마를 로드할 수 있습니다.
Oracle 연결 필드를 완료합니다.
Field Description Oracle 호스트 이름 Oracle 데이터베이스 서버의 호스트 이름 또는 IP 주소입니다. Oracle 포트 수신기 포트(기본값: 1521).Oracle SID 또는 서비스 이름 데이터베이스 인스턴스의 Oracle SID 또는 서비스 이름입니다. Oracle 사용자 이름 스키마 메타데이터 및 데이터 딕셔너리 뷰에 액세스할 수 있는 데이터베이스 사용자입니다. Oracle 암호 Oracle 사용자의 암호입니다. 스키마 로드를 선택하여 사용 가능한 스키마 목록을 연결하고 검색합니다.
스키마 드롭다운 목록에서 마이그레이션할 스키마를 하나 이상 선택합니다.
다음: 검색을 선택합니다.
3단계: 검색 검토
Discovery는 원본 사용 권한을 확인하고 DDL 추출 전에 선택한 스키마를 목록화합니다.
- 권한 검사를 검토하고 누락된 소스 접근 권한 문제를 해결하세요.
- 개체 유형 세부정보 및 제외 이유와 함께 발견됨, 추출 예정, 제외됨 및 잘못된 개체를 검토합니다.
- 스키마 종속성을 검토합니다. 종속 스키마는 선택하지 않은 참조된 스키마를 나열합니다. 종속성을 나열해도 변환 범위에 해당 스키마가 포함되지 않습니다.
- 소스 범위를 확인합니다. 선택을 변경한 경우 계속하기 전에 Discovery를 새로 고치십시오.
- 검토된 범위를 확인하고 다음: PostgreSQL 연결을 선택합니다.
전체 Discovery 화면 및 지침은 자습서의 Discovery 결과 검토를 참조하세요.
4단계: Azure Database for PostgreSQL 스크래치 데이터베이스 선택
Azure Database for PostgreSQL 스크래치 데이터베이스 선택 페이지에서 변환된 DDL의 유효성을 검사하는 데 사용되는 데이터베이스를 선택합니다.
Warning
변환은 DROP SCHEMA ... CASCADE를 사용하여 선택한 Oracle 스키마에 해당하는 스키마를 삭제한 다음 다시 만듭니다. 이 작업은 해당 스키마의 기존 개체와 데이터를 삭제하고 다른 스키마에서 종속 개체를 제거할 수 있습니다. 빈 스크래치 데이터베이스 또는 보존해야 하는 개체나 데이터가 없는 사용되지 않는 전용 스크래치 데이터베이스를 사용합니다.
- PostgreSQL 연결 드롭다운 목록에서 기존 연결 프로필을 선택합니다. 필요한 연결이 나열되지 않은 경우 프로필 새로 고침 을 선택하여 사용 가능한 프로필을 다시 로드하거나 연결 및 ID 보기에서 새 연결을 먼저 만듭니다.
- PostgreSQL 데이터베이스 드롭다운 목록에서 대상 데이터베이스를 선택합니다. 목록이 비어 있는 경우 데이터베이스 로드 를 선택합니다.
- 확장 프로그램 확인을 선택하여 권장 확장 프로그램을 확인합니다. 누락된 확장이 있으면 변환에 필요한 확장을 서버의 허용 목록에 추가한 다음 설치합니다. 노란색 경고는 계속 진행을 차단하지 않지만 종속 개체에는 수동 변경이 필요할 수 있습니다.
- 변환하는 동안 일치하는 스크래치 스키마가 삭제되고 다시 생성된다는 확인을 선택합니다.
- 다음: Microsoft Foundry 모델 구성을 선택합니다.
5단계: Microsoft Foundry 모델 구성
Microsoft Foundry 모델 선택 페이지에서는 스키마 및 코드 변환을 지원하는 Microsoft Foundry 배포를 구성합니다.
언어 모델 필드를 완료합니다.
Field Description 모델 이름 gpt-5.2;Microsoft Foundry 엔드포인트 Microsoft Foundry 리소스 엔드포인트 URL(예: https://<resource>.openai.azure.com/)입니다.인증 방법 API 키 또는 Microsoft Entra ID를 선택합니다. Microsoft Foundry API 키 Microsoft Foundry 리소스에 대한 API 키입니다(인증 방법이API 키인 경우 표시됨). Azure 계정 리소스에 액세스할 수 있는 Microsoft 계정(인증 방법이 Microsoft Entra ID인 경우 표시됨) 테 넌 트 계정용 Microsoft Entra 테넌트(인증 방법이Microsoft Entra ID인 경우 표시됨). 배포 이름 Microsoft Foundry 리소스에 배포된 모델의 이름입니다. Microsoft Foundry 연결 테스트를 선택하여 연결을 확인합니다.
마이그레이션 프로젝트 만들기를 선택하세요.
1,000,000TPM보다 큰 배포 할당량을 할당합니다. Microsoft Foundry 용량 구성을 참조하세요.
스키마 마이그레이션 실행
프로젝트를 만든 후 변환을 실행하고 마이그레이션 프로젝트의 결과를 검토합니다.
스키마 추출 및 변환
- 마이그레이션을 선택하여 추출 및 변환을 시작하세요.
- 추출 및 변환 진행률을 모니터링합니다.
- 프로젝트에 스키마 변환이 완료된 것으로 표시되면변환 요약 검토를 선택합니다.
변환이 완료되면 HTML 보고서가 자동으로 열립니다. 변환 요약에서 변환 보고서를 선택하여 다시 엽니다. 검색/발견, 추출 및 변환 합계를 개별적으로 검토합니다. 서로 다른 단계를 설명합니다.
변환된 개체 검토
Conversion 개체 탐색기를 사용하여 변환된 개체와 변환되지 않은 개체를 모두 검사합니다.
- 개체를 열어 사용 가능한 Oracle 및 PostgreSQL 정의를 비교하고 변환 메모를 읽습니다.
- 설명을 보려면 질문을, PostgreSQL 파일에 대해 Copilot의 지원을 받아 편집하려면 수정을 선택합니다.
- 스키마가 이미 비프로덕션 데이터베이스에 배포된 경우 활성 서버 및 데이터베이스를 확인하고, 전체 SQL 문을 선택하고, 해당 선택 항목만 실행하여 수정 사항을 컴파일합니다. 그렇지 않으면 먼저 다음 섹션에 설명된 배포를 준비합니다.
- 배포 SQL에 배포하려는 수정 사항이 포함되어 있는지 확인합니다. 개체 파일을 편집해도 데이터베이스 개체 또는 생성된 배포 스크립트가 변경된 것은 아닙니다.
필터, 패키지 멤버 및 자세한 단계는 Conversion 개체 탐색기 참조하세요.
배포 준비
변환 요약에서 설치 지침을 선택하여 생성된 배포 지침을 열고 설치 디렉터리를 표시합니다. 패키지를 검토하고 유효성 검사 전용 검사를 실행한 다음 별도의 비프로덕션 대상 데이터베이스에 대해 생성된 배포 스크립트를 실행합니다. 설치 파일을 생성해도 스키마는 배포되지 않습니다.
프로덕션 사용 전에 배포 보고서를 검토하고 데이터 및 애플리케이션 동작의 유효성을 독립적으로 검사합니다. 필수 구성 요소, 데이터베이스 모드 및 명령은 Setup Experience를 사용하여 변환된 스키마 배포를 참조하세요.
애플리케이션 코드 마이그레이션
스키마 마이그레이션 후 Oracle 관련 애플리케이션 코드(SQL 스크립트, 저장 프로시저, 로더 컨트롤 파일, 셸 스크립트 또는 Java 파일)를 PostgreSQL 호환 파일로 변환합니다. 애플리케이션 마이그레이션은 미리 보기 기능입니다.
마이그레이션 방법 선택
확장은 애플리케이션 코드 마이그레이션을 위한 두 가지 경로를 제공합니다.
- 전체 앱 현대화: GitHub Copilot 앱 현대화 확장을 설치하는 경우 앱 현대화를 사용하여 마이그레이션을 선택하여 스키마 변환의 코딩 메모를 사용하여 마이그레이션을 계속합니다. 계속하기 전에 생성된 지침을 검토하려면 코딩 노트 보기를 선택합니다.
- 데이터베이스 전용 옵션: 이 확장 내에서 데이터베이스 관련 애플리케이션 코드만 변환하려면 PostgreSQL 확장을 사용하여 마이그레이션을 선택합니다.
확장 내에서 애플리케이션 코드 변환
- 애플리케이션 마이그레이션 카드에서 데이터 마이그레이션(또는 앱 현대화 확장이 검색된 경우 메서드 선택)을 선택합니다.
- 애플리케이션 변환 페이지에서 변환할 Oracle 애플리케이션 선택을 선택하고 Oracle 애플리케이션 코드가 포함된 폴더를 선택합니다.
- 변환 컨텍스트에 대해 PostgreSQL 연결 및 PostgreSQL 데이터베이스 를 선택합니다.
- 데이터베이스 목록이 비어 있는 경우 데이터베이스 로드 를 선택합니다.
- 변환을 시작하려면 애플리케이션 변환을 선택합니다.
애플리케이션 마이그레이션에 Copilot 도구 사용
확장은 마이그레이션 지원을 위해 두 Copilot 언어 모델 도구를 등록합니다.
Oracle 클라이언트 코드 애플리케이션 변환기 (
pgsql_migration_oracle_app): 프롬프트 템플릿 및 스키마 마이그레이션 분석의 코딩 지침을 사용하여 Oracle 클라이언트 애플리케이션 코드를 PostgreSQL 등가물로 변환합니다. 다음 매개 변수를 허용합니다.- 애플리케이션 코드베이스 폴더 (필수): 변환할 코드의 위치입니다.
- 코딩 노트 위치 경로(선택 사항): 스키마 마이그레이션의 코딩 노트 경로입니다.
- Postgres DB 이름 (선택 사항): 변환 컨텍스트에 대한 PostgreSQL 데이터베이스의 이름입니다.
- Postgres DB 연결 (선택 사항): PostgreSQL 데이터베이스의 연결 이름입니다.
Oracle에서 Postgres로 마이그레이션 보고서 표시 (
pgsql_migration_show_report): 스키마 변환에 의해 생성된 마이그레이션 보고서를 표시합니다. 보고서 파일 경로 매개 변수가 필요합니다.
Copilot 도구 사용에 대한 자세한 내용은 Copilot 통합을 참조하세요.
변환된 파일 비교
변환 후 기본 제공 diff 명령을 사용하여 변경 내용을 나란히 검토합니다.
- 탐색기에서 마이그레이션 프로젝트의 또는
oracle폴더 아래에서postgres변환된 SQL 파일을 마우스 오른쪽 단추로 클릭하고 DDL 마이그레이션 파일 쌍 비교를 선택합니다. - 변환된 애플리케이션 코드 파일(
.sql,.ctl, 또는.sh.load.java)의 경우 파일을 마우스 오른쪽 단추로 클릭하고 애플리케이션 마이그레이션 파일 쌍 비교를 선택합니다.
병렬 차이 보기는 변환된 PostgreSQL 출력과 함께 원래 Oracle 원본을 표시하므로 수동 조정이 필요한 아티팩트도 식별할 수 있습니다.
DDL 마이그레이션 파일 쌍 비교 명령은 일치하는 쌍을 찾기 위해 구조 folder/oracle|postgres/SCHEMA_NAME/DDL-TYPE/filename.sql가 필요합니다. 스키마 변환 출력의 경우 변환 개체 탐색기 사용하여 원본-대상 매핑을 탐색합니다.
마이그레이션 프로젝트 관리
사이드바의 마이그레이션 보기를 사용하여 프로젝트를 관리하세요.
| 조치 | Description |
|---|---|
| 마이그레이션 프로젝트 열기 | 대시보드에서 기존 마이그레이션 프로젝트를 엽니다. |
| 탐색기에서 표시 | 탐색기 보기에 프로젝트 폴더를 표시합니다. |
| Delete | 마이그레이션 프로젝트를 제거합니다. 삭제하기 전에 확인하라는 메시지가 표시됩니다. |
| 새로 고침 | 현재 작업 영역에서 마이그레이션 프로젝트 목록을 다시 로드합니다. |
관련 콘텐츠
- Oracle에서 Azure Database for PostgreSQL 유연한 서버로의 스키마 변환이란 무엇인가요?
- 자습서: Oracle에서 Azure Database for PostgreSQL 유연한 서버로의 스키마 변환
- Oracle에서 Azure Database for PostgreSQL 유연한 서버로의 스키마 변환 모범 사례
- Conversion 개체 탐색기 변환된 개체 검토
- HTML 변환 보고서 보기
- Setup Experience를 사용하여 변환된 스키마를 배포
- Oracle에서 Azure Database for PostgreSQL 유연한 서버로의 스키마 변환 제한 사항
- Copilot 통합
- 연결 및 자격 증명
- 설정 참조
- Copilot 도구 참조