

# Amazon RDS의 MariaDB를 위한 캐시 워밍
<a name="MariaDB.Concepts.XtraDBCacheWarming"></a>

InnoDB 캐시 워밍은 DB 인스턴스가 종료될 때 버퍼 풀의 현재 상태를 저장한 다음 DB 인스턴스가 시작될 때 저장된 정보에서 버퍼 풀을 다시 로드하여 MariaDB DB 인스턴스의 성능 향상을 제공할 수 있습니다. 이렇게 하면 보통 데이터베이스 사용에서 "준비"까지의 버퍼 풀에 대한 필요를 무시하고, 대신 알려진 공용 쿼리에 대한 페이지와 함께 버퍼 풀을 미리 로드합니다. 캐시 워밍에 대한 자세한 내용은 MariaDB 설명서에서 [Dumping and restoring the buffer pool](http://mariadb.com/kb/en/mariadb/xtradbinnodb-buffer-pool/#dumping-and-restoring-the-buffer-pool)을 참조하세요.

캐시 워밍은 MariaDB 10.3 이상 DB 인스턴스에서 기본적으로 활성화됩니다. 캐시 워밍을 활성화하려면 DB 인스턴스의 파라미터 그룹에서 `innodb_buffer_pool_dump_at_shutdown` 및 `innodb_buffer_pool_load_at_startup` 파라미터를 1로 설정합니다. 파라미터 그룹에서 이들 파라미터 값을 변경하면 파라미터 그룹을 사용하는 모든 MariaDB DB 인스턴스가 영향을 받습니다. 특정 MariaDB DB 인스턴스에 대해 캐시 워밍을 활성화하려면, 이들 DB 인스턴스에 대한 새 파라미터 그룹을 생성해야 할 수도 있습니다. 파라미터 그룹에 대한 자세한 내용은 [Amazon RDS의 파라미터 그룹](USER_WorkingWithParamGroups.md) 섹션을 참조하세요.

캐시 워밍은 주로 표준 스토리지를 사용하는 DB 인스턴스를 위해 성능 혜택을 제공합니다. PIOPS 스토리지를 사용하는 경우에는 통상적으로 성능 혜택이 현저하지 않습니다.

**중요**  
MariaDB DB 인스턴스가 정상적으로 종료되지 않는 경우(예: 장애 조치 도중), 버퍼 풀 상태가 디스크에 저장되지 않습니다. 이 경우 MariaDB는 DB 인스턴스가 다시 시작될 때 이용 가능한 모든 버퍼 풀 파일을 로드합니다. 어떤 손상도 발생하지 않지만, 복원된 버퍼 풀은 대부분의 경우 다시 시작하기 이전의 버퍼 풀 최신 상태를 반영하지 못할 수도 있습니다. 시작 시 캐시를 워밍하기 위해 버퍼 풀의 최신 상태를 이용할 수 있게 하려면, "요청 시" 버퍼 풀을 주기적으로 덤프하는 것이 좋습니다. 사용자가 요청 시 버퍼 풀을 덤프 또는 로드할 수 있습니다.  
버퍼 풀을 자동으로 그리고 정기적으로 덤프하는 이벤트를 생성할 수 있습니다. 예를 들면, 다음 문은 매 시간마다 버퍼 풀을 덤프하는 이름이 `periodic_buffer_pool_dump`인 이벤트를 생성합니다.  

```
1. CREATE EVENT periodic_buffer_pool_dump 
2.    ON SCHEDULE EVERY 1 HOUR 
3.    DO CALL mysql.rds_innodb_buffer_pool_dump_now();
```
자세한 내용은 MariaDB 설명서에서 [Events](http://mariadb.com/kb/en/mariadb/stored-programs-and-views-events/)를 참조하세요.

## 요청 시 버퍼 풀 덤핑 및 로딩
<a name="MariaDB.Concepts.XtraDBCacheWarming.OnDemand"></a>

다음의 저장 프로시저를 사용해 요청 시 캐시를 저장하고 로드할 수 있습니다.
+ 버퍼 풀의 현재 상태를 디스크에 덤프하려면 [mysql.rds\_innodb\_buffer\_pool\_dump\_now](mysql-stored-proc-warming.md#mysql_rds_innodb_buffer_pool_dump_now) 저장 프로시저를 호출합니다.
+ 디스크에서 저장된 버퍼 풀의 상태를 로드하려면 [mysql.rds\_innodb\_buffer\_pool\_load\_now](mysql-stored-proc-warming.md#mysql_rds_innodb_buffer_pool_load_now) 저장 프로시저를 호출합니다.
+ 진행 중인 로드 작업을 취소하려면 [mysql.rds\_innodb\_buffer\_pool\_load\_abort](mysql-stored-proc-warming.md#mysql_rds_innodb_buffer_pool_load_abort) 저장 프로시저를 호출합니다.