Computer >> 컴퓨터 >  >> 프로그래밍 >> 데이터베이스

Oracle Database 18c 자동 인메모리(AIM) 설정 및 활용 가이드

이 글에서는 Oracle® 자동 인메모리(Automatic In-Memory, AIM)를 구성하여 IM 컬럼 스토어(In-Memory Column Store)의 객체를 관리하는 방법을 소개합니다.

소개

IM 컬럼 스토어 기능을 사용하면 세그먼트를 컬럼(columnar) 형식으로 메모리에 적재할 수 있습니다. 버퍼 캐시와 달리 IM 컬럼 스토어는 세그먼트 전체를 메모리에 한 번에 적재합니다. IM 컬럼 스토어 내 객체는 ADO(Automatic Data Optimization)와 AIM에 의해 관리됩니다.

AIM은 Oracle Database 18c에서 처음 도입된 기능으로, 액세스 추적 정보, 컬럼 통계 등 다양한 관련 통계를 활용해 IM 컬럼 스토어의 객체를 자동으로 관리합니다. AIM은 자주 사용되지 않는 콜드(cold) 세그먼트를 자동으로 축출(eviction)함으로써, 활발하게 사용되는 세그먼트가 항상 메모리에 유지되도록 보장합니다.

인메모리 세그먼트는 INMEMORY 우선순위(priority)가 NONE일 때에만 축출 대상이 되며, AIM은 IM 컬럼 스토어 공간이 부족해졌을 때 인메모리 세그먼트를 축출합니다. 데이터베이스는 적재된 세그먼트의 내부 통계를 기반으로 축출할 객체 집합을 결정합니다. 만약 인메모리 세그먼트의 축출을 방지하는 ADO 정책이 활성화되어 있다면, 해당 ADO 정책이 AIM보다 우선 적용되어 축출을 차단합니다.

AIM 활성화하기

시스템 레벨 초기화 파라미터인 INMEMORY_AUTOMATIC_LEVEL을 통해 AIM을 활성화할 수 있으며, 설정 가능한 값은 다음과 같습니다.

  • OFF(기본값): AIM을 비활성화합니다.
  • LOW: 메모리 부담(memory pressure)이 발생하면 콜드 세그먼트를 IM 컬럼 스토어에서 축출합니다.
  • MEDIUM: 메모리 부담으로 인해 적재되지 못한 핫(hot) 세그먼트를 우선적으로 적재되도록 보장합니다.

다음 이미지는 INMEMORY_AUTOMATIC_LEVEL 파라미터와 그 값을 수정하는 방법을 보여줍니다.

Oracle Database 18c 자동 인메모리(AIM) 설정 및 활용 가이드

AIM 확인 주기 설정하기

DBMS_INMEMORY_ADMIN 패키지를 사용하면 AIM이 참조하는 사용량 통계의 확인 주기를 설정할 수 있습니다. 기본값은 31일이며, 다음 예시와 같이 변경할 수 있습니다.

Oracle Database 18c 자동 인메모리(AIM) 설정 및 활용 가이드

AIM의 동작 방식 이해하기

동적 성능 뷰(dynamic performance view, V$) 중 하나인 V$IM_SEGMENTS를 조회하면 현재 IM 컬럼 스토어에 적재된 세그먼트 목록을 확인할 수 있고, 특정 스키마에서 INMEMORY ENABLED 상태인 테이블도 함께 점검할 수 있습니다. 아래 예시에서 세그먼트 TAB1은 우선순위가 HIGH로 설정되어 있기 때문에 이미 적재된 세그먼트 목록에 표시되는 것을 볼 수 있습니다.

Oracle Database 18c 자동 인메모리(AIM) 설정 및 활용 가이드

이제 INMEMORY ENABLED로 설정된 다른 테이블들을 추가로 적재해 볼 수 있습니다. 테이블은 실제로 액세스된 후에 IM 컬럼 스토어에 적재됩니다. 다음 예시를 참고하세요.

Oracle Database 18c 자동 인메모리(AIM) 설정 및 활용 가이드

다음으로, 우선순위가 NONE인 세그먼트보다 우선권을 갖도록 EXAMPLE3 테이블을 HIGH 우선순위로 적재해 보겠습니다. 이후 V$IM_SEGMENTS를 조회해 보면 우선순위가 NONE인 테이블은 목록에 나타나지 않습니다. 그 이유는 IM 컬럼 스토어에 메모리 부담이 발생했기 때문입니다. 또한 EXAMPLE3가 일부만 적재(partially populated)되었으며, BYTES_NOT_POPULATED 값이 0이 아님을 확인할 수 있습니다.这正是 AIM이 다른 콜드 세그먼트(즉, 우선순위가 NONE인 세그먼트)를 축출한 결과입니다. 참고로 세그먼트가 부분적으로만 적재된 경우에도 해당 객체에 접근하는 쿼리는 정상적으로 실행되며, IM 컬럼 스토어에서 찾지 못한 나머지 데이터는 데이터베이스로부터 직접 읽어옵니다.

Oracle Database 18c 자동 인메모리(AIM) 설정 및 활용 가이드

DBA_INMEMORY_AIMTASKS를 조회하면 AIM이 생성한 모든 작업(task)의 상태를 확인할 수 있고, DBA_INMEMORY_AIMTASKDETAILS는 IM 컬럼 스토어의 세그먼트에 대해 AIM이 수행한 모든 조치 내역을 상세하게 보여줍니다. 아래 이미지에서 TAB1에는 어떤 조치도 수행되지 않았습니다. 우선순위가 HIGH이기 때문이며, 앞서 설명한 대로 EXAMPLE3 테이블을 적재하는 과정에서 IM 컬럼 스토어에 메모리 부담이 발생해 AIM이 다른 세그먼트들을 축출한 것입니다.

Oracle Database 18c 자동 인메모리(AIM) 설정 및 활용 가이드

결론

AIM은 IM 컬럼 스토어의 객체 관리를 자동화하는 데 매우 유용한 기능이지만, 클라우드 기반 시스템이나 엔지니어드 시스템(Engineered Systems)에 호스팅된 데이터베이스에서만 활성화할 수 있다는 제약이 있습니다. 온프레미스 시스템과 같은 다른 유형의 시스템에서 AIM을 활성화하려고 하면 오류가 발생하니 유의하시기 바랍니다.

전문적인 운영·관리·구성 서비스로 환경 최적화하기

Rackspace의 애플리케이션 서비스 전문가들(RAS)은 폭넓은 애플리케이션 포트폴리오를 대상으로 다음과 같은 전문 서비스와 관리형 서비스를 제공합니다.

  • e커머스 및 디지털 경험(Digital Experience) 플랫폼
  • ERP(Enterprise Resource Planning, 전사적 자원 관리)
  • 비즈니스 인텔리전스(BI)
  • Salesforce CRM(고객 관계 관리)
  • 데이터베이스
  • 이메일 호스팅 및 생산성 솔루션

Rackspace가 드리는 가치는 다음과 같습니다.

  • 중립적인 전문성: 즉각적인 가치를 창출하는 역량에 집중하여 고객의 IT 현대화 여정을 단순화하고 안내합니다.
  • Fanatical Experience™: "프로세스가 먼저, 기술은 그다음(Process first. Technology second.)"이라는 철학과 전담 기술 지원을 결합해 종합적인 솔루션을 제공합니다.
  • 타의 추종을 불허하는 포트폴리오: 풍부한 클라우드 경험을 바탕으로 올바른 클라우드에 최적의 기술을 선택·배포할 수 있도록 지원합니다.
  • 애자일한 서비스 제공: 고객의 여정이 어느 단계에 있든 그 자리에서 함께하며, 고객의 성공과 우리의 성공을 함께 만들어갑니다.

궁금한 점이 있다면 지금 바로 문의해 시작해 보세요.