다음을 통해 공유


Oracle 마이그레이션에 대한 보안, 액세스 및 작업

이 문서는 Oracle에서 Azure Synapse Analytics로 마이그레이션하는 방법의 지침을 제공하는 7부 시리즈 중 3부입니다. 이 문서는 보안 액세스 작업에 대한 모범 사례에 중점을 두고 있습니다.

보안 고려 사항

Oracle 환경은 최소한의 위험과 사용자 영향으로 Azure Synapse로 마이그레이션하는 데 필요할 수 있는 액세스 및 인증을 위한 몇 가지 방법을 제공합니다. 이 문서에서는 기존 연결 방법과 사용자, 역할 및 권한 구조를 있는 그대로 마이그레이션하려는 것으로 가정합니다. 그렇지 않은 경우 Azure Portal을 사용하여 새 보안 체제를 만들고 관리합니다.

Azure Synapse 보안 옵션에 대한 자세한 내용은 Azure Synapse Analytics 보안을 참조하세요.

연결 및 인증

인증은 일반적으로 시스템의 리소스에 대한 액세스 권한을 부여하기 위한 필수 조건으로 컴퓨터 시스템의 사용자, 디바이스 또는 기타 엔터티의 ID를 확인하는 프로세스입니다.

Oracle 및 Azure Synapse 인증은 "데이터베이스에서" 또는 외부 메서드를 통해 수행할 수 있습니다.

Oracle 권한 부여 옵션

Oracle 시스템은 데이터베이스 사용자에게 이러한 인증 방법을 제공합니다.

  • 데이터베이스 인증: Oracle 데이터베이스는 데이터베이스 인증을 통해 사용자 계정을 관리하고 사용자를 인증합니다. Oracle 데이터베이스는 인증을 수행하기 위해 새 사용자에 대한 암호를 생성하고 암호화된 형식으로 암호를 저장합니다. 사용자는 언제든지 암호를 변경할 수 있습니다. Oracle은 계정 잠금, 암호 에이징 및 만료, 암호 기록 및 암호 복잡성 확인을 통한 암호 관리를 권장합니다. 데이터베이스 인증은 이전 Oracle 설치에서 일반적입니다.

  • 외부 인증: 외부 인증을 사용하면 Oracle 데이터베이스가 사용자 계정을 유지 관리하고, 외부 서비스가 암호 관리 및 사용자 인증을 수행합니다. 외부 서비스는 운영 체제 또는 Oracle Net과 같은 네트워크 서비스일 수 있습니다. 데이터베이스는 기본 운영 체제 또는 네트워크 인증 서비스를 사용하여 데이터베이스 계정에 대한 액세스를 제한합니다. 이 유형의 기호는 데이터베이스 암호를 사용하지 않습니다. 다음과 같은 두 가지 외부 인증 옵션이 있습니다.

    • 운영 체제 인증: 기본적으로 Oracle은 원격 사용자가 네트워크 연결을 통해 운영 체제 사용자를 가장하지 못하도록 하기 위해 운영 체제가 인증하는 로그인에 대한 보안 연결을 요구합니다. 이 요구 사항은 Oracle Net 및 공유 서버 구성의 사용을 배제합니다.

    • 네트워크 인증: 스마트 카드, 지문, Kerberos 및 운영 체제와 같은 여러 네트워크 인증 메커니즘을 사용할 수 있습니다. Kerberos와 같은 많은 네트워크 인증 서비스는 Single Sign-On을 지원하므로 사용자가 기억해야 할 암호가 적습니다.

  • 전역 인증 및 권한 부여: 전역 인증 및 권한 부여를 사용하여 LDAP 기반 디렉터리 서비스에서 권한 부여를 비롯한 사용자 관련 정보의 관리를 중앙 집중화할 수 있습니다. 사용자는 데이터베이스에서 전역 사용자로 식별됩니다. 즉, TLS/SSL에 의해 인증되고 사용자 관리는 데이터베이스 외부에서 발생합니다. 중앙 집중식 디렉터리 서비스가 사용자 관리를 수행합니다. 이 방법은 TLS/SSL, Kerberos 또는 Windows 네이티브 인증을 사용하여 강력한 인증을 제공하며, 엔터프라이즈 전체에서 사용자 및 권한을 중앙 집중식으로 관리할 수 있도록 합니다. 엔터프라이즈의 모든 데이터베이스에 있는 모든 사용자에 대한 스키마를 만들 필요가 없으므로 관리가 더 수월해집니다. Single Sign-On도 지원되므로 사용자가 한 번만 로그인하면 여러 데이터베이스 및 서비스에 액세스할 수 있습니다.

  • 프록시 인증 및 권한 부여: 클라이언트를 안전하게 프록시하도록 중간 계층 서버를 지정할 수 있습니다. Oracle은 다음과 같은 다양한 프록시 인증 옵션을 제공합니다.

    • 중간 계층 서버는 데이터베이스 서버를 사용하여 자신을 인증할 수 있습니다. 이 경우 애플리케이션 사용자 또는 다른 애플리케이션에 해당하는 클라이언트는 중간 계층 서버에서 자신을 인증합니다. 클라이언트 ID는 데이터베이스까지 유지할 수 있습니다.

    • 이 경우 데이터베이스 사용자에 해당하는 클라이언트는 중간 계층 서버에서 인증되지 않습니다. 클라이언트의 ID 및 데이터베이스 암호는 인증을 위해 중간 계층 서버를 통해 데이터베이스 서버로 전달됩니다.

    • 이 경우 전역 사용자에 해당하는 클라이언트는 중간 계층 서버에서 인증되고 클라이언트의 사용자 이름을 검색하기 위해 중간 계층을 통해 DN(고유 이름) 또는 인증서를 전달합니다.

Azure Synapse 권한 부여 옵션

Azure Synapse는 연결 및 권한 부여에 대한 두 가지 기본 옵션을 지원합니다.

  • SQL 인증: SQL 인증에는 데이터베이스 식별자, 사용자 ID 및 암호와 기타 선택적 매개 변수를 포함하는 데이터베이스 연결이 사용됩니다. 이 인증 방법은 Oracle 데이터베이스 인증과 기능적으로 동일합니다.

  • Microsoft Entra 인증: Microsoft Entra 인증을 사용하면 데이터베이스 사용자 및 Microsoft 서비스의 ID를 하나의 위치에서 관리할 수 있습니다. 중앙 집중식 관리는 Azure Synapse 사용자 관리를 위한 단일 위치를 제공하며 권한 관리를 간소화합니다. Microsoft Entra 인증은 LDAP 및 Kerberos 서비스에 대한 연결을 지원합니다. 예를 들어 Microsoft Entra 인증을 사용하여 기존 LDAP 디렉터리(데이터베이스 마이그레이션 후 그대로 유지되는 경우)에 연결할 수 있습니다.

사용자 역할 및 권한

Oracle과 Azure Synapse는 모두 사용자, 역할 및 권한의 조합을 통해 데이터베이스 액세스 제어를 구현합니다. 표준 SQL 문 CREATE USERCREATE ROLE/GROUP을 사용하여 사용자 및 역할을 정의할 수 있습니다. GRANTREVOKE 문은 사용자 및/또는 역할에 대한 권한을 할당하거나 제거합니다.

마이그레이션 프로젝트가 성공하려면 계획을 수립해야 합니다. 개략적인 접근 방식 결정부터 시작합니다.

개념적으로 Oracle 및 Azure Synapse 데이터베이스는 비슷하며 기존 사용자 ID, 그룹 및 권한의 마이그레이션을 어느 정도 자동화할 수 있습니다. Oracle 시스템 카탈로그 테이블에서 레거시 사용자 및 그룹 정보를 추출한 다음, 일치하는 동일한 CREATE USERCREATE ROLE 문을 생성합니다. Azure Synapse에서 해당 문을 실행하여 동일한 사용자/역할 계층 구조를 다시 만듭니다.

경과 시간과 오류 범위를 줄이기 위해 가능하면 마이그레이션 프로세스를 자동화하세요.

데이터 추출 후에는 Oracle 시스템 카탈로그 테이블을 사용하여 동일한 GRANT 문을 생성하여 권한을 할당합니다(해당하는 명령문이 있는 경우).

Chart showing how to automate the migration of privileges from an existing system.

사용자 및 역할

Oracle 시스템의 현재 사용자 및 그룹에 대한 정보는 시스템 카탈로그 뷰(예: ALL_USERSDBA_USERS)에 보관됩니다. Oracle SQL*Plus 또는 Oracle SQL Developer를 통해 일반적인 방식으로 이러한 보기를 쿼리할 수 있습니다. 다음 쿼리는 기본 예제입니다.

--List of users
select * from dba_users order by username;

--List of roles
select * from dba_roles order by role;

--List of users and their associated roles
select * from user_role_privs order by username, granted_role;

Oracle SQL Developer에는 다음 스크린샷과 같이 보고서 창에 사용자 및 역할 정보를 표시하는 기본 제공 옵션이 있습니다.

Screenshot showing the Reports pane for user roles in Oracle SQL Developer.

일련의 CREATE USERCREATE GROUP 문인 결과 집합을 생성하도록 예제 SELECT 문을 수정할 수 있습니다. 이렇게 하려면 SELECT 문 내에 적절한 텍스트를 리터럴로 포함합니다.

기존 Oracle 암호를 검색할 수 있는 방법이 없으므로, Azure Synapse에서 새로운 초기 암호를 할당하기 위한 체계를 구현해야 합니다.

데이터 웨어하우스를 마이그레이션하려면 테이블, 보기, SQL 문 외에도 많은 것을 마이그레이션해야 합니다.

사용 권한

Oracle 시스템에서는 사용자 및 역할에 대한 액세스 권한이 시스템 DBA_ROLE_PRIVS 뷰에 보관됩니다. SELECT 액세스 권한이 있는 경우 해당 뷰를 쿼리하여 시스템 내에 정의된 현재 액세스 권한 목록을 가져올 수 있습니다. 다음 Oracle SQL Developer 스크린샷은 액세스 권한 목록 예제를 보여 줍니다.

Screenshot showing the Reports pane for user access rights in Oracle SQL Developer.

또한 쿼리를 만들어 기존 Oracle 권한에 따라 Azure Synapse에 대한 일련의 CREATEGRANT 문인 스크립트를 생성할 수 있습니다. 다음 Oracle SQL Developer 스크린샷은 해당 스크립트의 예제를 보여 줍니다.

Screenshot showing how to create a script of CREATE and GRANT statements in Oracle SQL Developer.

이 표에서는 사용자, 역할 및 권한 정보를 보는 데 필요한 데이터 사전 뷰를 나열하고 설명합니다.

보기 설명
DBA_COL_PRIVS
ALL_COL_PRIVS
USER_COL_PRIVS
DBA 뷰는 데이터베이스의 모든 열 개체 권한 부여를 설명합니다. ALL 뷰는 현재 사용자 또는 PUBLIC이 개체 소유자, 부여자 또는 피부여자인 모든 열 개체 권한 부여를 설명합니다. USER 뷰는 현재 사용자가 개체 소유자, 부여자 또는 피부여자인 열 개체 권한 부여를 설명합니다.
ALL_COL_PRIVS_MADE
USER_COL_PRIVS_MADE
ALL 뷰는 현재 사용자가 개체 소유자 또는 부여자인 열 개체 권한 부여를 나열합니다. USER 뷰는 현재 사용자가 부여자인 열 개체 권한 부여를 설명합니다.
ALL_COL_PRIVS_RECD
USER_COL_PRIVS_RECD
ALL 뷰는 현재 사용자 또는 PUBLIC이 피부여자인 열 개체 권한 부여를 설명합니다. USER 뷰는 현재 사용자가 피부여자인 열 개체 권한 부여를 설명합니다.
DBA_TAB_PRIVS
ALL_TAB_PRIVS
USER_TAB_PRIVS
DBA 뷰는 데이터베이스의 모든 개체에 대한 모든 권한 부여를 나열합니다. ALL 뷰는 사용자 또는 PUBLIC이 피부여자인 개체에 대한 권한 부여를 나열합니다. USER 뷰는 현재 사용자가 피부여자인 모든 개체에 대한 권한 부여를 나열합니다.
ALL_TAB_PRIVS_MADE
USER_TAB_PRIVS_MADE
ALL 뷰는 현재 사용자가 부여하거나 현재 사용자가 소유한 개체에 대해 부여된 권한을 나열합니다. USER 뷰는 현재 사용자가 소유한 모든 개체에 대한 권한 부여를 나열합니다.
ALL_TAB_PRIVS_RECD
USER_TAB_PRIVS_RECD
ALL 뷰는 사용자 또는 PUBLIC이 피부여자인 개체 권한 부여를 나열합니다. USER 뷰는 현재 사용자가 피부여자인 개체 권한 부여를 나열합니다.
DBA_ROLES 이 뷰는 데이터베이스에 있는 모든 역할을 나열합니다.
DBA_ROLE_PRIVS
USER_ROLE_PRIVS
DBA 뷰는 사용자 및 역할에 부여된 역할을 나열합니다. USER 뷰는 현재 사용자에게 부여된 역할을 나열합니다.
DBA_SYS_PRIVS
USER_SYS_PRIVS
DBA 뷰는 사용자 및 역할에 부여된 시스템 권한을 나열합니다. USER 뷰는 현재 사용자에게 부여된 시스템 권한을 나열합니다.
ROLE_ROLE_PRIVS 이 뷰는 다른 역할에 부여된 역할을 설명합니다. 사용자가 액세스할 수 있는 역할에 대한 정보만 제공됩니다.
ROLE_SYS_PRIVS 이 뷰는 역할에 부여된 시스템 권한에 대한 정보를 포함합니다. 사용자가 액세스할 수 있는 역할에 대한 정보만 제공됩니다.
ROLE_TAB_PRIVS 이 뷰는 역할에 부여된 개체 권한에 대한 정보를 포함합니다. 사용자가 액세스할 수 있는 역할에 대한 정보만 제공됩니다.
SESSION_PRIVS 이 뷰는 현재 사용자에 대해 사용하도록 설정된 권한을 나열합니다.
SESSION_ROLES 이 뷰는 현재 사용자에 대해 사용하도록 설정된 역할을 나열합니다.

Oracle은 다음과 같은 다양한 유형의 권한을 지원합니다.

  • 시스템 권한: 피부여자는 시스템 권한을 통해 데이터베이스에서 표준 관리자 작업을 수행할 수 있습니다. 일반적으로 이러한 권한은 신뢰할 수 있는 사용자로 제한됩니다. 많은 시스템 권한은 Oracle 작업과 관련이 있습니다.

  • 개체 권한: 각 개체 유형에는 연결된 권한이 있습니다.

  • 테이블 권한: 테이블 권한은 DML(데이터 조작 언어) 또는 DDL(데이터 정의 언어) 수준에서 보안을 사용하도록 설정합니다. 테이블 권한을 해당하는 Azure Synapse 권한에 직접 매핑할 수 있습니다.

  • 뷰 권한: 테이블과 유사한 뷰에 DML 개체 권한을 적용할 수 있습니다. 뷰 권한을 해당하는 Azure Synapse 권한에 직접 매핑할 수 있습니다.

  • 프로시저 권한: 프로시저 권한은 독립 실행형 프로시저 및 함수를 포함한 프로시저에 EXECUTE 권한을 부여할 수 있도록 허용합니다. 프로시저 권한을 해당하는 Azure Synapse 권한에 직접 매핑할 수 있습니다.

  • 형식 권한: 개체 형식(VARRAYs) 및 중첩 테이블과 같은 명명된 형식에 시스템 권한을 부여할 수 있습니다. 일반적으로 이러한 권한은 Oracle에만 적용되며 Azure Synapse에는 해당 권한이 없습니다.

Azure Synapse에는 DML 및 DDL과 같은 기본 데이터베이스 작업을 위한 동일한 권한이 있습니다.

다음 표에서는 Azure Synapse에 직접적으로 해당하는 권한이 있는 일반적인 Oracle 관리자 권한을 나열합니다.

관리자 권한 설명 동등한 Synapse
[Create] Database 사용자가 데이터베이스를 만들 수 있습니다. 기존 데이터베이스에 대해 작업을 수행하는 권한은 개체 권한을 통해 제어됩니다. CREATE DATABASE
[Create] External Table 사용자가 외부 테이블을 만들 수 있습니다. 기존 테이블에 대해 작업을 수행하는 권한은 개체 권한을 통해 제어됩니다. CREATE TABLE
[Create] Function 사용자가 UDF(사용자 정의 함수)를 만들 수 있습니다. 기존 UDF에 대해 작업을 수행하는 권한은 개체 권한을 통해 제어됩니다. CREATE FUNCTION
[Create] Role 사용자가 그룹을 만들 수 있습니다. 기존 그룹에 대해 작업을 수행하는 권한은 개체 권한을 통해 제어됩니다. CREATE ROLE
[Create] Index 시스템에서만 사용됩니다. 사용자는 인덱스를 만들 수 없습니다. CREATE INDEX
[Create] Materialized View 사용자가 구체화된 뷰를 만들 수 있습니다. 보기 만들기
[Create] Procedure 사용자가 저장 프로시저를 만들 수 있습니다. 기존 저장 프로시저에 대해 작업을 수행하는 권한은 개체 권한을 통해 제어됩니다. 절차 만들기
[Create] Schema 사용자가 스키마를 만들 수 있습니다. 기존 스키마에 대해 작업을 수행하는 권한은 개체 권한을 통해 제어됩니다. CREATE SCHEMA
[Create] Table 사용자가 테이블을 만들 수 있습니다. 기존 테이블에 대해 작업을 수행하는 권한은 개체 권한을 통해 제어됩니다. CREATE TABLE
[Create] Temporary Table 사용자가 임시 테이블을 만들 수 있습니다. 기존 테이블에 대해 작업을 수행하는 권한은 개체 권한을 통해 제어됩니다. CREATE TABLE
[Create] User 사용자가 사용자를 만들 수 있습니다. 기존 사용자에 대해 작업을 수행하는 권한은 개체 권한을 통해 제어됩니다. CREATE USER
[Create] View 사용자가 뷰를 만들 수 있습니다. 기존 뷰에 대해 작업을 수행하는 권한은 개체 권한을 통해 제어됩니다. 보기 만들기

이 섹션의 앞부분에서 설명한 대로 Oracle 카탈로그 테이블에서 Azure Synapse의 해당 스크립트를 생성하여 이러한 권한의 마이그레이션을 자동화할 수 있습니다.

다음 표에서는 Azure Synapse에 직접적으로 해당하는 권한이 있는 일반적인 Oracle 개체 권한을 나열합니다.

개체 권한 설명 동등한 Synapse
변경 사용자가 개체 특성을 수정할 수 있습니다. 모든 개체에 적용됩니다. ALTER
삭제 사용자가 테이블 행을 삭제할 수 있습니다. 테이블에만 적용됩니다. Delete
Drop 사용자가 개체를 삭제할 수 있습니다. 모든 개체 형식에 적용됩니다. DROP
실행 사용자가 사용자 정의 함수, 사용자 정의 집계 또는 저장 프로시저를 실행할 수 있습니다. CREATE 문을 실행하기 전에
삽입 사용자가 테이블에 행을 삽입할 수 있습니다. 테이블에만 적용됩니다. 삽입
List 사용자가 목록이나 다른 방식으로 개체 이름을 표시할 수 있습니다. 모든 개체에 적용됩니다. 명단 등록
선택 사용자가 테이블 내에서 행을 선택(또는 쿼리)할 수 있습니다. 테이블 및 뷰에 적용됩니다. SELECT
Truncate 사용자가 테이블의 모든 행을 삭제할 수 있습니다. 테이블에만 적용됩니다. TRUNCATE
엽데이트 사용자가 테이블 행을 수정할 수 있습니다. 테이블에만 적용됩니다. UPDATE

Azure Synapse 권한에 대한 자세한 내용은 데이터베이스 엔진 사용 권한을 참조하세요.

사용자, 역할 및 권한 마이그레이션

지금까지 CREATE USER, CREATE ROLEGRANT SQL 명령을 사용하여 사용자, 역할 및 권한을 Azure Synapse로 마이그레이션하는 일반적인 방법을 설명했습니다. 그러나 권한을 부여할 수 있는 모든 Oracle 작업을 새 환경으로 마이그레이션할 필요는 없습니다. 예를 들어 시스템 관리 작업은 새 환경에 적용할 수 없거나 해당 기능이 자동이거나 데이터베이스 외부에서 관리됩니다. 다음 단계에서는 Azure Synapse 환경에 직접적으로 해당하는 항목이 있는 사용자, 역할 및 권한의 하위 집합의 마이그레이션 프로세스를 설명합니다.

  1. Oracle 스키마, 테이블 및 뷰 정의를 Azure Synapse 환경으로 마이그레이션합니다. 이 단계에서는 데이터가 아닌 테이블 정의만 마이그레이션합니다.

  2. Oracle 시스템 테이블에서 마이그레이션하려는 기존 사용자 ID를 추출하고, Azure Synapse에 대한 CREATE USER 문 스크립트를 생성한 다음, Azure Synapse 환경에서 해당 스크립트를 실행합니다. Oracle 환경에서 암호를 추출할 수 없으므로 새 초기 암호를 만드는 방법을 찾습니다.

  3. Oracle 시스템 테이블에서 기존 역할을 추출하고, Azure Synapse에 해당하는 CREATE ROLE 문 스크립트를 생성한 다음, Azure Synapse 환경에서 해당 스크립트를 실행합니다.

  4. Oracle 시스템 테이블에서 사용자/역할 조합을 추출하고, Azure Synapse에서 사용자에게 역할을 GRANT하는 스크립트를 생성한 다음, Azure Synapse 환경에서 해당 스크립트를 실행합니다.

  5. Oracle 시스템 테이블에서 관련 권한 정보를 추출한 다음, Azure Synapse에서 사용자 및 역할에 적절한 권한을 GRANT하는 스크립트를 생성한 후 Azure Synapse 환경에서 해당 스크립트를 실행합니다.

운영상의 고려 사항

이 섹션에서는 사용자에게 미치는 영향과 위험을 최소화하면서 Azure Synapse에서 일반적인 Oracle 운영 작업을 구현할 수 있는 방법에 대해 설명합니다.

프로덕션 환경의 모든 데이터 웨어하우스 제품과 마찬가지로, 시스템을 효율적으로 실행하고 모니터링 및 감사 데이터를 제공하기 위해 지속적인 관리 작업이 필요합니다. 기타 운영 고려 사항에는 리소스 사용률, 향후 성장을 위한 용량 계획 및 데이터의 백업/복원이 포함됩니다.

데이터 웨어하우스를 효율적으로 운영하려면 운영 작업이 필요합니다.

Oracle 관리 작업은 일반적으로 다음 두 가지 범주로 나뉩니다.

  • 시스템 관리: 시스템 관리는 하드웨어, 구성 설정, 시스템 상태, 액세스, 디스크 공간, 사용량, 업그레이드 및 기타 작업의 관리를 말합니다.

  • 데이터베이스 관리: 데이터베이스 관리는 사용자 데이터베이스 및 해당 콘텐츠, 데이터 로드, 데이터 백업, 데이터 복구, 데이터 및 권한에 대한 액세스 관리를 말합니다.

Oracle은 시스템 및 데이터베이스 관리 작업을 수행하는 데 사용할 수 있는 다음과 같은 여러 가지 방법 및 인터페이스를 제공합니다.

  • Oracle Enterprise Manager는 Oracle의 온-프레미스 관리 플랫폼입니다. 데이터 센터 또는 Oracle 클라우드에서 고객의 모든 Oracle 배포를 관리하기 위한 단일 창을 제공합니다. Oracle Enterprise Manager는 Oracle의 제품 스택과 긴밀한 통합을 통해 Oracle 애플리케이션, 데이터베이스, 미들웨어, 하드웨어 및 엔지니어링된 시스템에 대한 관리 및 자동화 지원을 제공합니다.

  • Oracle Instance Manager는 Oracle 인스턴스를 개략적으로 관리하기 위한 UI를 제공합니다. Oracle Instance Manager는 시작, 종료 및 로그 보기와 같은 작업을 지원합니다.

  • Oracle Database Configuration Assistant는 다양한 데이터베이스 기능의 관리 및 구성을 허용하는 UI입니다.

  • SQL 데이터베이스 세션 내에서 관리 작업 및 쿼리를 지원하는 SQL 명령. Oracle SQL*Plus 명령 인터프리터, Oracle SQL Developer UI에서 또는 ODBC, JDBC 및 OLE DB 공급자와 같은 SQL API를 통해 SQL 명령을 실행할 수 있습니다. 수행하는 쿼리 및 작업에 대한 적절한 권한으로 SQL 명령을 실행할 수 있는 데이터베이스 사용자 계정이 있어야 합니다.

개념적으로는 다양한 데이터 웨어하우스에 대한 관리 및 운영 작업이 비슷하지만, 개별 구현은 다를 수 있습니다. Azure Synapse 같은 최신 클라우드 기반 제품은 Oracle과 같은 레거시 환경의 수동적인 접근 방식보다 더 자동화된 “시스템 관리형” 접근 방식을 통합하는 경향이 있습니다.

다음 섹션에서는 다양한 운영 작업에 대한 Oracle 및 Azure Synapse 옵션을 비교합니다.

하우스키핑 작업

대부분의 레거시 데이터 웨어하우스 환경에서는 정기적인 하우스키핑 작업에 많은 시간이 걸립니다. 이전 버전의 업데이트되거나 삭제된 행을 제거하여 디스크 스토리지 공간을 회수할 수 있습니다. 또는 효율성을 위해 데이터, 로그 파일 및 인덱스 블록을 다시 구성하여 디스크 스토리지 공간을 회수할 수 있습니다(예: Oracle에서 ALTER TABLE... SHRINK SPACE 실행).

하우스키핑 작업은 프로덕션 웨어하우스가 효율적으로 작동되도록 유지하고 스토리지 및 다른 리소스를 최적화합니다.

통계 수집은 시간이 오래 걸릴 수 있는 작업이며, 대량 데이터 수집 후에 쿼리 최적화 프로그램에 쿼리 실행 계획을 위한 최신 데이터를 제공하기 위해 필요합니다.

Oracle에는 통계 품질 분석에 도움이 되는 기본 제공 기능인 Optimizer Statistics Advisor가 있습니다. 이는 최적화 프로그램 통계에 대한 모범 사례를 나타내는 Oracle 규칙 목록을 통해 작동합니다. 관리자는 각 규칙을 확인하고 필요한 경우 DBMS_STATS 패키지 호출과 관련된 결과, 권장 사항 및 작업을 생성하여 수정 조치를 취합니다. 사용자는 다음 스크린샷과 같이 V$STATS_ADVISOR_RULES 뷰에서 규칙 목록을 볼 수 있습니다.

Screenshot showing how to display a list of rules by using the Optimizer Statistics Advisor.

Oracle 데이터베이스의 데이터 사전에는 자동으로 또는 특정 기능이 활성화된 후에 데이터를 누적하는 여러 로그 테이블이 포함되어 있습니다. 로그 데이터는 시간이 지날수록 커지기 때문에 영구 공간을 사용하지 않도록 이전 정보를 제거해야 합니다. Oracle은 로그 유지 관리를 자동화하는 옵션을 제공합니다.

Azure Synapse는 필요할 때 사용할 수 있도록 통계를 자동으로 만들 수 있습니다. 인덱스 및 데이터 블록의 조각 모음을 수동으로, 예약된 시간에 또는 자동으로 수행할 수 있습니다. 기본 제공 Azure 기능을 사용하면 마이그레이션 작업을 줄일 수 있습니다.

Azure에서 하우스키핑 작업을 자동화하고 모니터링합니다.

모니터링 및 감사

Oracle Enterprise Manager에는 활동, 성능, 큐 및 리소스 사용률과 같은 하나 이상의 Oracle 시스템의 다양한 측면을 모니터링하는 도구가 포함되어 있습니다. Oracle Enterprise Manager에는 사용자가 차트의 하위 수준 세부 정보로 드릴다운할 수 있게 해주는 대화형 UI가 있습니다.

Oracle Enterprise Manager는 Oracle 시스템에서 권장되는 모니터링 및 로깅 방법입니다.

다음 다이어그램에서는 Oracle 데이터 웨어하우스의 모니터링 환경에 대한 개요를 제공합니다.

Diagram showing an overview of the monitoring environment for an Oracle warehouse.

Azure Synapse도 Azure Portal 내에서 데이터 웨어하우스 워크로드에 대한 인사이트를 제공하는 다양한 모니터링 환경을 제공합니다. Azure Portal은 구성 가능한 보존 기간, 경고, 권장 사항, 메트릭과 로그용 사용자 지정 가능한 차트 및 대시보드를 제공하므로 데이터 웨어하우스를 모니터링하는 경우에 권장되는 도구입니다.

Azure Portal은 모든 Azure 데이터 및 프로세스에 대한 모니터링 및 감사 작업을 관리할 수 있는 UI를 제공합니다.

Azure Portal도 다음 스크린샷과 같이 성능 향상을 위한 권장 사항을 제공할 수 있습니다.

Screenshot of Azure portal recommendations for performance enhancements.

이 포털은 데이터 웨어하우스 및 전체 Azure 분석 플랫폼의 통합 모니터링 환경을 제공하기 위해 OMS(Operations Management Suite) 및 Azure Monitor와 같은 다른 Azure 모니터링 서비스와의 통합을 지원합니다. 자세한 내용은 Azure Synapse 운영 및 관리 옵션을 참조하세요.

HA(고가용성) 및 DR(재해 복구)

Oracle 환경은 1979년에 처음 출시된 이후 HA(고가용성) 및 DR(재해 복구) 옵션을 포함하여 엔터프라이즈 고객에게 필요한 다양한 기능을 포함하도록 발전했습니다. 이 분야에서 발표된 최신 기술은 HA 및 DR의 네 가지 수준에 대한 참조 아키텍처를 포함하는 MAA(최대 가용성 아키텍처)입니다.

  • Bronze 계층: 단일 인스턴스 HA 아키텍처
  • Silver 계층: 자동 장애 조치(failover)를 사용한 HA
  • Gold 계층: 포괄적인 HA 및 DR
  • Platinum 계층: Platinum 지원 애플리케이션에 대한 가동 중단 0

Azure Synapse는 데이터베이스 스냅샷을 사용하여 데이터 웨어하우스의 HA를 제공합니다. 데이터 웨어하우스 스냅샷은 데이터 웨어하우스를 이전 상태로 복원하는 데 사용할 수 있는 복원 지점을 만듭니다. Azure Synapse는 분산 시스템이므로 데이터 웨어하우스 스냅샷은 Azure Storage에 있는 여러 파일로 구성됩니다. 스냅샷은 데이터 웨어하우스에 저장된 데이터의 증분 변경 내용을 캡처합니다.

Azure Synapse는 빠른 복구 시간을 보장하기 위해 자동으로 스냅샷을 만듭니다.

Azure Synapse는 하루 종일 자동으로 스냅샷을 만들고, 7일 동안 사용할 수 있는 복원 지점을 만듭니다. 이 보존 기간은 변경할 수 없습니다. Azure Synapse는 8시간 RPO(복구 지점 목표)를 지원합니다. 지난 7일 동안 수행된 스냅샷 중 하나에서 주 지역의 데이터 웨어하우스를 복원할 수 있습니다.

키를 업데이트하기 전에 사용자 정의 스냅샷을 사용하여 복구 지점을 정의할 수 있습니다.

Azure Synapse는 수동으로 트리거된 스냅샷으로 생성된 사용자 정의 복원 지점을 지원합니다. 대규모 데이터 웨어하우스 수정 전후에 복원 지점을 만들어 복원 지점이 논리적으로 일관되도록 합니다. 사용자 정의 복원 지점은 워크로드 중단 또는 사용자 오류가 있는 경우 데이터 보호를 강화하고 복구 시간을 줄입니다.

스냅샷 외에도 Azure Synapse는 데이터 센터 쌍에 하루에 한 번 표준 지역 백업을 수행합니다. 지역 복원의 RPO는 24시간입니다. Azure Synapse가 지원되는 지역의 서버로 지역 백업을 복원할 수 있습니다. 지역 백업을 사용하면 주 지역의 복원 지점을 사용할 수 없는 경우 데이터 웨어하우스를 복원할 수 있습니다.

Microsoft Azure는 DR을 지원하기 위해 별도의 지리적 위치에 자동 백업을 제공합니다.

워크로드 관리

Oracle은 워크로드를 관리하기 위해 Enterprise Manager 및 DBRM(Database Resource Manager)과 같은 유틸리티를 제공합니다. 이러한 유틸리티에는 대규모 클러스터 간 부하 분산, 병렬 쿼리 실행, 성능 측정 및 우선 순위 지정과 같은 기능이 포함됩니다. 시스템이 어느 정도 자체 튜닝되도록 이러한 기능 중 상당수를 자동화할 수 있습니다.

일반적인 프로덕션 데이터 웨어하우스는 리소스 사용 특징이 서로 다른 혼합 워크로드를 동시에 실행합니다.

Azure Synapse는 리소스 사용률 통계를 자동으로 기록합니다. 메트릭에는 각 쿼리에 대한 CPU, 메모리, 캐시, I/O 및 임시 작업 영역에 대한 사용 통계가 포함됩니다. Azure Synapse는 실패한 연결 시도와 같은 연결 정보도 기록합니다.

하위 수준 및 시스템 수준 메트릭은 Azure 내에 자동으로 기록됩니다.

Azure Synapse에서 리소스 클래스는 쿼리 실행을 위한 컴퓨팅 리소스와 동시성을 관리하는 미리 결정된 리소스 제한입니다. 리소스 클래스를 사용하면 동시에 실행되는 쿼리 수와 각 쿼리에 할당되는 컴퓨팅 리소스에 대한 제한을 설정하여 워크로드를 관리할 수 있습니다. 메모리와 동시성 사이에는 장단점이 있습니다.

Azure Synapse는 다음과 같은 기본 워크로드 관리 개념을 지원합니다.

  • 워크로드 분류: 중요도 수준을 설정하기 위해 워크로드 그룹에 요청을 할당할 수 있습니다.

  • 워크로드 중요도: 요청이 리소스에 액세스하는 순서에 영향을 줄 수 있습니다. 기본적으로 쿼리는 리소스를 사용할 수 있게 되면 선입선출 방식으로 큐에서 해제됩니다. 워크로드 중요도를 통해 우선 순위가 높은 쿼리가 큐와 관계없이 즉시 리소스를 받을 수 있습니다.

  • 워크로드 격리: 워크로드 그룹에 대한 리소스를 예약하고, 다양한 리소스에 대해 최대 및 최소 사용량을 할당하고, 요청 그룹이 사용할 수 있는 리소스를 제한하고, 런어웨이 쿼리를 자동으로 종료하도록 시간 제한 값을 설정할 수 있습니다.

혼합된 워크로드를 실행하면 사용량이 많은 시스템에서 리소스 문제가 발생할 수 있습니다. 성공적인 워크로드 관리 체계는 리소스를 효과적으로 관리하고, 매우 효율적인 리소스 사용률을 보장하며, ROI(투자 수익률)를 극대화합니다. 워크로드 분류, 워크로드 중요도워크로드 격리를 통해 워크로드가 시스템 리소스를 활용하는 방법을 더 잘 제어할 수 있습니다.

Azure Synapse가 용량 계획을 위해 수집하는 워크로드 메트릭을 사용하여 추가 사용자 또는 더 큰 애플리케이션 워크로드에 필요한 리소스를 확인할 수 있습니다. 워크로드 메트릭을 사용하여 사용량이 많은 워크로드의 비용 효율적인 지원을 위해 컴퓨팅 리소스의 스케일 업/다운을 계획할 수도 있습니다.

워크로드 관리 가이드에서는 워크로드를 분석하고 워크로드 중요도를 관리 및 모니터링하는 기술을 설명합니다.](../../sql-data-warehouse/sql-data-warehouse-how-to-manage-and-monitor-workload-importance.md) 및 리소스 클래스를 워크로드 그룹으로 변환하는 단계입니다. Azure PortalDMV의 T-SQL 쿼리를 사용하여 해당 리소스가 효율적으로 활용되도록 워크로드를 모니터링합니다. Azure Synapse 워크로드 관리의 모든 측면을 모니터링하기 위한 DMV(동적 관리 뷰) 세트를 제공합니다. 이러한 보기는 워크로드의 성능 병목 상태를 적극적으로 해결하고 식별할 때 유용합니다.

Azure Synapse의 워크로드 관리에 대한 자세한 내용은 리소스 클래스를 사용한 워크로드 관리를 참조하세요.

컴퓨팅 리소스 스케일링

Azure Synapse 아키텍처는 스토리지와 컴퓨팅을 분리하므로, 각각 독립적으로 스케일링할 수 있습니다. 따라서 데이터 스토리지에 관계없이 성능 요구 사항에 맞게 컴퓨팅 리소스를 스케일링할 수 있습니다. 또한 컴퓨팅 리소스를 일시 중지했다가 다시 시작할 수도 있습니다. 이 아키텍처의 또 다른 이점은 컴퓨팅 요금과 스토리지 요금이 각각 따로 청구된다는 것입니다. 데이터 웨어하우스를 사용하지 않는 경우 컴퓨팅을 일시 중지하여 컴퓨팅 비용을 절감할 수 있습니다.

Azure의 주요 이점은 피크 워크로드를 비용 효율적으로 처리할 수 있도록 컴퓨팅 리소스를 주문형으로 스케일 업 및 다운하는 기능입니다.

데이터 웨어하우스의 DWU(데이터 웨어하우스 단위) 설정을 조정하여 컴퓨팅 리소스를 스케일 업 또는 다운할 수 있습니다. 더 많은 DWU를 할당하면 로드 및 쿼리 성능이 선형적으로 증가합니다.

DWU를 늘리면 컴퓨팅 노드 수가 증가하여 컴퓨팅 성능이 향상되고 병렬 처리가 더 많이 지원됩니다. 컴퓨팅 노드 수가 늘어나면 컴퓨팅 노드당 배포 수가 줄어들어 쿼리에 더 많은 컴퓨팅 및 병렬 처리 성능이 제공됩니다. 마찬가지로 DWU를 줄이면 컴퓨팅 노드 수가 감소하여 쿼리에 사용할 컴퓨팅 리소스가 줄어듭니다.

다음 단계

시각화 및 보고에 대한 자세한 내용은 이 시리즈의 다음 문서인 Oracle 마이그레이션에 대한 시각화 및 보고를 참조하세요.