Oracle 데이터베이스 마이그레이션: 아키텍처 변경

Azure SQL Managed Instance
Azure Virtual Machines

Microsoft SQL Server를 사용하는 작업이 편리합니까? 그렇다면 Azure SQL Managed Instance를 사용하여 데이터베이스 아키텍처를 변경할 수 있습니다. 다음과 같은 이유로 사용하기 좋은 옵션입니다.

아키텍처

프라이빗 엔드포인트 연결을 통해 Azure SQL Database에 연결된 Azure SQL Managed Instance를 보여 주는 아키텍처 다이어그램

워크플로

  1. SSMA를 사용하여 Oracle 스키마를 SQL 스키마로 변환합니다.

  2. 새 스키마를 Azure SQL Managed Instance로 마이그레이션합니다.

  3. SQL Managed Instance를 Azure SQL 데이터베이스에 연결합니다.

구성 요소

  • Azure SQL Managed Instance는 확장 가능한 지능형 클라우드 데이터베이스 서비스로, 가장 광범위한 SQL Server 데이터베이스 엔진 호환성을 완전히 관리되는 에버그린 PAAS(Platform as a Service)의 모든 이점에 결합합니다.

  • Azure SQL은 전체 SQL 포트폴리오에서 통합된 환경과 다양한 배포 옵션을 제공합니다.

  • Azure Virtual Network는 Azure 환경의 프라이빗 네트워크입니다.

시나리오 배포

Oracle 데이터베이스 평가

MAP(Microsoft Assessment and Planning) 도구 키트를 사용하여 기존 Oracle 데이터베이스와 스키마를 평가합니다. 자세한 내용은 Oracle에서 SQL Server로: 마이그레이션 가이드를 참조하세요.

Oracle 개체 변환 결과

SSMA를 다운로드하고 Oracle 스키마 및 데이터 마이그레이션에 사용합니다(Oracle용 Microsoft SQL Server Migration Assistant).

다음 표에서는 SSMA에서 수행한 Oracle 개체를 SQL Server 개체로 변환 결과를 보여줍니다.

Oracle 개체 결과 SQL Server 개체
함수 함수를 Transact-SQL 직접 변환할 수 있으면 SSMA에서 함수를 만듭니다.
경우에 따라 함수를 저장 프로시저로 변환해야 합니다. 이 경우 SSMA에서 저장 프로시저와 저장 프로시저를 호출하는 함수를 만듭니다.
프로시저 프로시저를 Transact-SQL로 직접 변환할 수 있으면 SSMA에서 저장 프로시저를 만듭니다.
경우에 따라 자율 트랜잭션에서 저장 프로시저를 호출해야 합니다. 이 경우 SSMA는 프로시저를 구현하는 저장 프로시저와 구현 중인 저장 프로시저를 호출하는 데 사용되는 다른 저장 프로시저 등 저장 프로시저 두 개를 만듭니다.
패키지 SSMA는 유사한 개체 이름으로 통합되는 저장 프로시저와 함수의 집합을 만듭니다.
시퀀스 SSMA는 시퀀스 개체(SQL Server 2012 또는 SQL Server 2014)를 만들거나 Oracle 시퀀스를 에뮬레이트합니다.
인덱스 및 트리거와 같은 종속 개체가 있는 테이블 SSMA는 종속 개체를 사용하여 테이블을 만듭니다.
트리거와 같은 종속 개체를 사용하여 보기 SSMA는 종속 개체를 사용하여 뷰를 만듭니다.
구체화된 뷰 SSMA는 몇 가지 예외를 제외하고 SQL 서버에 인덱싱된 뷰를 만듭니다. 구체화된 뷰에 다음 구문 중 하나 이상이 포함된 경우 변환이 실패합니다.:

사용자 정의 함수

SELECT, WHERE 또는 GROUP BY 절의 비결정적 필드/함수/식

SELECT*, WHERE 또는 GROUP BY 절에서 Float 열 사용(이전 문제의 특수 사례)

사용자 지정 데이터 형식(중첩된 표 포함)

COUNT(고유 <필드>)

FETCH
OUTER 조인(LEFT, RIGHT 또는 FULL)
하위 쿼리, 기타 보기
OVER, RANK, LEAD, LOG
MIN, MAX
UNION, MINUS, INTERSECT
HAVING
트리거 SSMA는 다음 규칙에 따라 트리거를 만듭니다.

BEFORE 트리거는 INSTEAD OF 트리거로 변환됩니다.

AFTER 트리거는 AFTER 트리거로 변환됩니다.

INSTEAD OF 트리거는 INSTEAD OF 트리거로 변환됩니다. 같은 작업에 정의된 INSTEAD OF 트리거 여러 개가 트리거 하나로 결합됩니다.

행 수준 트리거는 커서를 통해 에뮬레이트됩니다.

연계 트리거는 개별 트리거 여로 개로 변환됩니다.
동의어 동의어는 다음 개체 형식에 생성됩니다.

테이블 및 개체 테이블
뷰 및 개체 뷰
저장 프로시저
함수

다음 개체의 동의어는 직접 개체 참조로 확인되고 대체됩니다.

시퀀스

패키지

Java 클래스 스키마 개체

사용자 정의 개체 형식
다른 동의어의 동의어는 마이그레이션될 수 없으며 오류로 표시됩니다.

동의어는 구체화된 뷰에 생성되지 않습니다.
사용자 정의 형식 SSMA에서는 사용자 정의 형식을 변환할 수 없습니다. PL/SQL 프로그램의 사용을 포함한 User-Defined 형식은 다음 규칙에 따라 안내되는 특수 변환 오류로 표시됩니다.:

사용자 정의 형식의 테이블 열은 VARCHAR(8000)로 변환됩니다.

저장 프로시저나 함수에 대한 사용자 정의 형식의 인수는 VARCHAR(8000)로 변환됩니다.
PL/SQL 블록의 사용자 정의 형식 변수는 VARCHAR(8000)로 변환됩니다.

개체 테이블은 표준 테이블로 변환됩니다.
개체 보기는 표준 보기로 변환됩니다.

자세한 내용은 Oracle 스키마 변환(OracleToSQL)을 참조하세요.

Oracle 개체 변환 및 데이터 마이그레이션

SSMA를 설치하면 보고서를 만들어 Oracle 스키마를 변환하고 데이터를 Azure SQL Managed Instance로 마이그레이션합니다. 단계별 안내는 SQL Server Migration Assistant를 사용하여 Oracle 스키마를 Linux의 SQL Server 2017로 마이그레이션을 참조하세요.

마이그레이션 후 작업

전체 마이그레이션 후 클라이언트 구성 요소를 제거하여 ssma_oracle 스키마를 제거합니다.

참고

마이그레이션된 데이터베이스에서 더 이상 sysdb 데이터베이스의 ssma_oracle 스키마에 함수를 사용하지 않는 한 SQL Server에서 확장 팩을 제거하지 마세요.

자세한 내용은 Oracle 구성 요소에 대한 SSMA 제거를 참조하세요.

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

보안 주체 작성자:

비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인합니다.

다음 단계

Oracle 데이터베이스를 SQL로 마이그레이션하려면 Oracle용 SQL Server Migration Assistant(OracleToSQL)를 참조하세요.

참고

이 마이그레이션 경로가 비즈니스 요구 사항에 적합한 경로가 아닌 경우 마이그레이션 의사 결정 트리를 다시 참조하세요.