

# 공통 데이터베이스 작업
<a name="db2-managing-databases"></a>

RDS for Db2 DB 인스턴스에서 데이터베이스를 생성, 삭제 또는 복원할 수 있습니다. 데이터베이스를 생성, 삭제 또는 복원하려면 더 높은 수준의 `SYSADM` 권한이 필요하며, 이 권한은 마스터 사용자가 사용할 수 없습니다. 대신 Amazon RDS 저장 프로시저를 사용하세요.

또한 모니터링, 유지 관리, 데이터베이스 정보 수집과 같은 일반적인 관리 작업을 수행할 수 있습니다.

**Topics**
+ [데이터베이스 생성](#db2-creating-database)
+ [데이터베이스 설정 구성](#db2-configuring-database)
+ [데이터베이스 파라미터 수정](#db2-modifying-db-parameters)
+ [로그 보존 구성](#db2-configuring-log-retention)
+ [로그 정보 나열](#db2-listing-log-information)
+ [세분화된 액세스 제어(FGAC) 사용](#db2-using-fine-grained-access-control)
+ [데이터베이스 비활성화](#db2-deactivating-database)
+ [데이터베이스 활성화](#db2-activating-database)
+ [데이터베이스 재활성화](#db2-reactivating-database)
+ [데이터베이스 삭제](#db2-dropping-database)
+ [데이터베이스 백업](#db2-backing-up-database)
+ [Amazon S3에 아카이브 로그 복사](#db2-copying-archive-logs-to-s3)
+ [데이터베이스 복원](#db2-restoring-database)
+ [데이터베이스 나열](#db2-listing-databases)
+ [데이터베이스에 대한 정보 수집](#db2-collecting-info-db)
+ [데이터베이스의 애플리케이션 강제 종료](#db2-forcing-application-off-db)
+ [성능 보고서 생성](#db2-generating-performance-reports)

## 데이터베이스 생성
<a name="db2-creating-database"></a>

RDS for Db2 DB 인스턴스에서 데이터베이스를 만들려면 `rdsadmin.create_database` 저장 프로시저를 직접 호출합니다. 자세한 내용은 IBM Db2 설명서의 [CREATE DATABASE 명령](https://www.ibm.com/docs/en/db2/11.5?topic=commands-create-database)을 참조하세요.

**참고**  
`db2_compatibility_vector` 파라미터를 수정하려는 경우 데이터베이스를 만들기 전에 파라미터를 수정합니다. 자세한 내용은 [db2\$1compatibility\$1vector 파라미터 설정](db2-known-issues-limitations.md#db2-known-issues-limitations-db2-compatibility-vector) 섹션을 참조하세요.

**데이터베이스를 생성하려면**

1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 `rdsadmin` 데이터베이스에 연결합니다. 다음 예제에서 *master\$1username* 및 *master\$1password*를 사용자 자체 정보로 대체합니다.

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. `rdsadmin.create_database`를 직접 호출하여 데이터베이스를 생성합니다. 자세한 내용은 [rdsadmin.create\$1database](db2-sp-managing-databases.md#db2-sp-create-database) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.create_database(
       'database_name',
       'database_page_size',
       'database_code_set',
       'database_territory',
       'database_collation',
       'database_autoconfigure_str',
       'database_non-restrictive')"
   ```

1. (선택 사항) 만들려는 각 데이터베이스에 대해 `rdsadmin.create_database`를 직접 호출하여 추가 데이터베이스를 만듭니다. 각 Db2 DB 인스턴스에는 최대 50개의 데이터베이스를 포함할 수 있습니다. 자세한 내용은 [rdsadmin.create\$1database](db2-sp-managing-databases.md#db2-sp-create-database) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.create_database('database_name')"
   ```

1. (선택 사항) 다음 방법 중 하나를 사용하여 데이터베이스가 만들어졌는지 확인합니다.
   + 를 호출합니다`rdsadmin.list_databases` 자세한 내용은 [rdsadmin.list\$1databases](db2-user-defined-functions.md#db2-udf-list-databases) 섹션을 참조하세요.
   + 다음 SQL 명령을 실행합니다.

     ```
     db2 "select varchar(r.task_type,25) as task_type, r.database_name, 
         varchar(r.lifecycle,15) as lifecycle, r.created_at, r.database_name,
         varchar(bson_to_json(task_input_params),256) as input_params, 
         varchar(r.task_output,1024) as task_output 
         from table(rdsadmin.get_task_status(null,null,'create_database')) 
         as r order by created_at desc"
     ```

## 데이터베이스 설정 구성
<a name="db2-configuring-database"></a>

RDS for Db2 DB 인스턴스에서 데이터베이스용 설정을 구성하려면 `rdsadmin.set_configuration` 저장 프로시저를 직접 호출합니다. 예를 들어, 복원 작업 중에 생성할 버퍼나 버퍼 조작기 개수를 구성할 수 있습니다.

**데이터베이스 설정을 구성하려면**

1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 `rdsadmin` 데이터베이스에 연결합니다. 다음 예제에서 *master\$1username* 및 *master\$1password*를 사용자 자체 정보로 대체합니다.

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. (선택 사항) `rdsadmin.show_configuration`을 직접 호출하여 현재 구성 설정을 확인합니다. 자세한 내용은 [rdsadmin.show\$1configuration](db2-sp-managing-databases.md#db2-sp-show-configuration) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.show_configuration('name')"
   ```

1. `rdsadmin.set_configuration`을 직접 호출하여 데이터베이스 설정을 구성합니다. 자세한 내용은 [rdsadmin.set\$1configuration](db2-sp-managing-databases.md#db2-sp-set-configuration) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.set_configuration(
       'name',  
       'value')"
   ```

## 데이터베이스 파라미터 수정
<a name="db2-modifying-db-parameters"></a>

Amazon RDS for Db2는 데이터베이스 관리자 구성 파라미터, 레지스트리 변수, 데이터베이스 구성 파라미터 등 세 가지 유형의 파라미터를 사용합니다. 처음 두 유형은 파라미터 그룹을 통해 업데이트하고 마지막 유형은 [rdsadmin.update\$1db\$1param](db2-sp-managing-databases.md#db2-sp-update-db-param) 저장 프로시저를 통해 업데이트할 수 있습니다.

**참고**  
기존 파라미터 값만 수정할 수 있습니다. RDS for Db2는 지원하지 않는 파라미터 새로 추가할 수 없습니다.

이러한 파라미터 및 파라미터 값 수정 방법에 대한 자세한 내용은 [Amazon RDS for Db2 파라미터](db2-supported-parameters.md) 섹션을 참조하세요.

## 로그 보존 구성
<a name="db2-configuring-log-retention"></a>

Amazon RDS에서 RDS for Db2 데이터베이스용 로그 파일을 보관하는 기간을 구성하려면 `rdsadmin.set_archive_log_retention` 저장 프로시저를 직접 호출합니다.

**데이터베이스의 로그 보존을 구성하려면**

1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 `rdsadmin` 데이터베이스에 연결합니다. 다음 예제에서 *master\$1username* 및 *master\$1password*를 사용자 자체 정보로 대체합니다.

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. (선택 사항) `rdsadmin.show_archive_log_retention`을 직접 호출하여 현재 로그 보존 구성을 확인합니다. 자세한 내용은 [rdsadmin.show\$1archive\$1log\$1retention](db2-sp-managing-databases.md#db2-sp-show-archive-log-retention) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.show_archive_log_retention(
       ?,
       'database_name')"
   ```

1. `rdsadmin.set_archive_log_retention`을 직접 호출하여 데이터베이스의 로그 보존을 구성합니다. 자세한 내용은 [rdsadmin.set\$1archive\$1log\$1retention](db2-sp-managing-databases.md#db2-sp-set-archive-log-retention) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.set_archive_log_retention(
       ?,            
       'database_name',  
       'archive_log_retention_hours')"
   ```

## 로그 정보 나열
<a name="db2-listing-log-information"></a>

사용된 총 스토리지 크기와 같은 세부 정보를 포함하여 아카이브 로그 파일에 대한 세부 정보를 나열하려면 `rdsadmin.list_archive_log_information` 저장 프로시저를 호출합니다.

**데이터베이스에 대한 로그 정보를 나열하려면 다음과 같이 합니다.**

1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 `rdsadmin` 데이터베이스에 연결합니다. 다음 예제에서 *master\$1username* 및 *master\$1password*를 사용자 자체 정보로 대체합니다.

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. `rdsadmin.list_archive_log_information`을 호출하여 로그 파일 정보 목록을 반환합니다. 자세한 내용은 [rdsadmin.list\$1archive\$1log\$1information](db2-sp-managing-databases.md#db2-sp-list-archive-log-information) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.list_archive_log_information(
       ?,            
       'database_name')"
   ```

## 세분화된 액세스 제어(FGAC) 사용
<a name="db2-using-fine-grained-access-control"></a>

세분화된 액세스 제어 명령을 사용하여 RDS for Db2 DB 인스턴스의 데이터베이스에 있는 테이블 데이터에 대한 액세스를 제어하려면 `rdsadmin.fgac_command` 저장 프로시저를 직접적으로 호출합니다. FGAC를 사용하여 사용자 역할 또는 데이터 속성에 따라 데이터에 대한 액세스를 제한할 수 있습니다. 예를 들어 데이터 유형에 따라 환자 의료 데이터 또는 특정 의료 서비스 공급자에 대한 액세스를 제한할 수 있습니다.

**세분화된 액세스 제어를 사용하여 데이터베이스의 테이블 데이터에 대한 액세스 제어**

1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 `rdsadmin` 데이터베이스에 연결합니다. 다음 예제에서 *master\$1username* 및 *master\$1password*를 사용자 자체 정보로 대체합니다.

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. `rdsadmin.fgac_command`를 직접적으로 호출하여 다양한 세분화된 액세스 제어 명령을 실행합니다. 자세한 내용은 [rdsadmin.fgac\$1command파라미터](db2-sp-managing-databases.md#db2-sp-fgac-command) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.fgac_command(     
       ?,
       'database_name',
       'fgac_command')"
   ```

## 데이터베이스 비활성화
<a name="db2-deactivating-database"></a>

RDS for Db2 DB 인스턴스에서 데이터베이스를 비활성화하려면 `rdsadmin.deactivate_database` 저장 프로시저를 직접적으로 호출합니다.

기본적으로 Amazon RDS는 RDS for Db2 DB 인스턴스에서 데이터베이스를 만들 때 데이터베이스를 활성화합니다. 자주 사용하지 않는 데이터베이스를 비활성화하여 메모리 리소스를 절약할 수 있습니다.

**데이터베이스를 비활성화하는 방법**

1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 `rdsadmin` 데이터베이스에 연결합니다. 다음 예제에서 *master\$1username* 및 *master\$1password*를 사용자 자체 정보로 대체합니다.

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. `rdsadmin.deactivate_database`를 직접 호출하여 데이터베이스를 비활성화합니다. 자세한 내용은 [rdsadmin.deactivate\$1database](db2-sp-managing-databases.md#db2-sp-deactivate-database) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.deactivate_database(    
       ?, 
       'database_name')"
   ```

## 데이터베이스 활성화
<a name="db2-activating-database"></a>

독립형 RDS for Db2 DB 인스턴스에서 데이터베이스를 활성화하려면 `rdsadmin.activate_database` 저장 프로시저를 직접적으로 호출합니다.

기본적으로 Amazon RDS는 RDS for Db2 DB 인스턴스에서 데이터베이스를 만들 때 데이터베이스를 활성화합니다. 자주 사용하지 않는 데이터베이스를 비활성화하여 메모리 리소스를 보존한 다음 나중에 비활성화된 데이터베이스를 활성화할 수 있습니다.

**데이터베이스를 활성화하는 방법**

1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 `rdsadmin` 데이터베이스에 연결합니다. 다음 예제에서 *master\$1username* 및 *master\$1password*를 사용자 자체 정보로 대체합니다.

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. `rdsadmin.activate_database`를 직접 호출하여 데이터베이스를 활성화합니다. 자세한 내용은 [rdsadmin.activate\$1database](db2-sp-managing-databases.md#db2-sp-activate-database) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.activate_database(
       ?, 
       'database_name')"
   ```

## 데이터베이스 재활성화
<a name="db2-reactivating-database"></a>

복제본 소스 RDS for Db2 DB 인스턴스에서 데이터베이스를 재활성화하려면 `rdsadmin.reactivate_database` 저장 프로시저를 직접적으로 호출합니다. 데이터베이스 구성을 변경한 후 RDS for Db2 DB 인스턴스에서 데이터베이스를 재활성화해야 할 수 있습니다. 데이터베이스를 재활성화해야 하는지 확인하려면 데이터베이스에 연결하고 `db2 get db cfg show detail`을 실행합니다.

데이터베이스 구성을 변경한 후 이 저장 프로시저를 직접적으로 호출하여 독립형 RDS for Db2 DB 인스턴스에서 데이터베이스를 재활성화할 수도 있습니다. 또는 먼저 `rdsadmin.deactivate_database` 저장 프로시저를 직접적으로 호출한 다음 `rdsadmin.activate_database` 저장 프로시저를 직접적으로 호출하여 독립형 RDS for Db2 DB 인스턴스에서 데이터베이스를 재활성화할 수 있습니다. 자세한 내용은 [데이터베이스 비활성화](#db2-deactivating-database) 및 [데이터베이스 활성화](#db2-activating-database)(을)를 참조하세요.

**데이터베이스를 재활성화하려면**

1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 `rdsadmin` 데이터베이스에 연결합니다. 다음 예제에서 *master\$1username* 및 *master\$1password*를 사용자 자체 정보로 대체합니다.

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. `rdsadmin.reactivate_database`를 직접적으로 호출하여 데이터베이스를 재활성화합니다. 자세한 내용은 [rdsadmin.reactivate\$1database](db2-sp-managing-databases.md#db2-sp-reactivate-database) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.reactivate_database(
       ?, 
       'database_name')"
   ```

## 데이터베이스 삭제
<a name="db2-dropping-database"></a>

RDS for Db2 DB 인스턴스에서 데이터베이스를 삭제하려면 `rdsadmin.drop_database` 저장 프로시저를 직접 호출합니다. 자세한 내용은 IBM Db2 설명서의 [데이터베이스 삭제](https://www.ibm.com/docs/en/db2/11.5?topic=databases-dropping)를 참조하세요.

**참고**  
특정 조건이 충족되는 경우에만 저장 프로시저를 직접 호출하여 데이터베이스를 삭제할 수 있습니다. 자세한 내용은 `rdsadmin.drop_database`에 대한 [사용 노트](db2-sp-managing-databases.md#db2-sp-drop-database-usage-notes)를 참조하세요.

**데이터베이스를 삭제하려면**

1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 `rdsadmin` 데이터베이스에 연결합니다. 다음 예제에서 *master\$1username* 및 *master\$1password*를 사용자 자체 정보로 대체합니다.

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. `rdsadmin.drop_database`를 직접 호출하여 데이터베이스를 삭제합니다. 자세한 내용은 [rdsadmin.drop\$1database](db2-sp-managing-databases.md#db2-sp-drop-database) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.drop_database('database_name')"
   ```

## 데이터베이스 백업
<a name="db2-backing-up-database"></a>

RDS for Db2 DB 인스턴스의 데이터베이스를 Amazon S3로 백업하려면 `rdsadmin.backup_database` 저장 프로시저를 직접적으로 호출합니다. 자세한 내용은 IBM Db2 설명서의 [BACKUP DATABASE 명령](https://www.ibm.com/docs/en/db2/11.5.x?topic=commands-backup-database)을 참조하세요.

**참고**  
이 저장 프로시저는 Amazon S3와의 통합을 사용합니다. 계속하기 전에 통합을 구성했는지 확인합니다. 자세한 내용은 [Amazon RDS for Db2 DB 인스턴스와 Amazon S3 통합](db2-s3-integration.md) 섹션을 참조하세요.

**데이터베이스 백업**

1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 `rdsadmin` 데이터베이스에 연결합니다. 다음 예제에서 *master\$1username* 및 *master\$1password*를 사용자 자체 정보로 대체합니다.

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. S3에 대한 VPC 게이트웨이 엔드포인트 생성 S3용 VPC 게이트웨이 엔드포인트가 이미 있는 경우 4단계로 건너뜁니다.

   RDS for Db2 DB 인스턴스가 Amazon S3와 상호 작용하려면 프라이빗 서브넷을 사용할 수 있는 VPC와 Amazon S3 게이트웨이 엔드포인트가 있어야 합니다. 자세한 내용은 [1단계: Amazon S3에 대한 VPC 게이트웨이 엔드포인트 생성](db2-troubleshooting.md#db2-creating-endpoint) 섹션을 참조하세요.

1. S3의 VPC 게이트웨이 엔드포인트를 확인합니다. 자세한 내용은 [2단계: Amazon S3용 VPC 게이트웨이 엔드포인트가 존재하는지 확인](db2-troubleshooting.md#db2-confirming-endpoint) 섹션을 참조하세요.

1. `rdsadmin.backup_database`를 직접적으로 호출하여 데이터베이스를 백업합니다. 자세한 내용은 [rdsadmin.backup\$1database](db2-sp-managing-databases.md#db2-sp-backup-database) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.backup_database(
       ?,
       'database_name', 
       's3_bucket_name', 
       's3_prefix', 
       'backup_type',
       'compression_option',
       'util_impact_priority', 
       'num_files',
       'parallelism',
       'num_buffers')"
   ```

1. 연결을 종료합니다.

   ```
   terminate
   ```

1. (선택 사항) 백업 파일이 *s3\$1prefix/dbi\$1resource\$1id/db\$1name*으로 Amazon S3 버킷에 업로드되었는지 확인합니다. 파일이 *s3\$1prefix/dbi\$1resource\$1id/db\$1name*에 표시되지 않는 경우 데이터베이스 백업 상태를 확인하여 문제를 식별합니다. 자세한 내용은 [rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status) 섹션을 참조하세요. 식별된 문제를 해결할 수 없는 경우 [AWS Support](https://aws.amazon.com/premiumsupport/)에 문의하세요.

1. (선택 사항) Amazon S3에 대한 백업이 완료되면 백업을 RDS for Db2 DB 인스턴스 또는 로컬 서버와 같은 다른 위치로 복원할 수 있습니다. RDS for Db2 DB 인스턴스로 복원하는 것에 대한 자세한 내용은 [데이터베이스 복원](#db2-restoring-database) 섹션을 참조하세요.

## Amazon S3에 아카이브 로그 복사
<a name="db2-copying-archive-logs-to-s3"></a>

이제 RDS for Db2 DB 인스턴스에서 Amazon S3로 Db2 아카이브 로그를 복사할 수 있습니다. `rdsadmin.backup_database`를 통해 생성된 기본 백업과 아카이브 로그를 사용하여 다른 RDS for Db2 인스턴스 또는 EC2 데이터베이스에서 특정 시점으로 데이터베이스를 복원하고 롤포워드할 수 있습니다.

 이 기능을 구성하기 전에 저장 프로시저 `rdsadmin.backup_database`를 사용하여 RDS for Db2 데이터베이스를 설정합니다.

이 기능은 RDS for Db2 DB 인스턴스 수준에서 작동하지만 데이터베이스별로 아카이브 로그 복사를 활성화하거나 비활성화할 수 있습니다.

**Amazon S3로의 아카이브 로그 복사를 구성하려면**

1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 `rdsadmin` 데이터베이스에 연결합니다. 다음 예제에서 *master\$1username* 및 *master\$1password*를 사용자 자체 정보로 대체합니다.

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. [rdsadmin.set\$1configuration](db2-sp-managing-databases.md#db2-sp-set-configuration)을 직접적으로 호출하여 S3로의 아카이브 로그 백업을 설정합니다.

   ```
   db2 "call rdsadmin.set_configuration(
       'name',
       'value')"
   ```

    **예제:** 

   ```
   db2 "call rdsadmin.set_configuration('ARCHIVE_LOG_COPY_TARGET_S3_ARN', 'arn:aws:s3:::my_rds_db2_backups/archive-log-copy/')"
   ```

1. `rdsadmin.enable_archive_log_copy`를 직접적으로 호출하여 데이터베이스에 대한 아카이브 로그 복사를 활성화합니다. *database\$1name*을 해당 데이터베이스 이름으로 바꿉니다.

   ```
   db2 "call rdsadmin.enable_archive_log_copy(?, 'database_name')"
   ```

1. 마찬가지로 데이터베이스에 대한 아카이브 로그 복사를 비활성화하려면 `rdsadmin.disable_archive_log_copy`를 직접적으로 호출합니다.

   ```
   db2 "call rdsadmin.disable_archive_log_copy(?, 'database_name')"
   ```

1. `rdsadmin.list_databases`를 직접적으로 호출하여 아카이브 로그 복사 상태를 확인합니다.

   ```
   db2 "select * from table(rdsadmin.list_databases())"
   ```

    **샘플 출력:** 

   ```
   DATABASE_NAME   CREATE_TIME                DATABASE_UNIQUE_ID                                 ARCHIVE_LOG_RETENTION_HOURS ARCHIVE_LOG_COPY ARCHIVE_LOG_LAST_UPLOAD_FILE ARCHIVE_LOG_LAST_UPLOAD_FILE_TIME ARCHIVE_LOG_COPY_STATUS
   --------------- -------------------------- -------------------------------------------------- --------------------------- ---------------- ---------------------------- --------------------------------- ------------------------------
   RDSADMIN        2026-01-06-02.03.42.569069 RDSADMIN                                                                     0 DISABLED         -                            -                                 -
   FOO             2026-01-06-02.13.42.885650 F0D81C7E-7213-4565-B376-4F33FCF420E3                                         7 ENABLED          S0006536.LOG                 2026-01-28-19.15.10.000000        UPLOADING
   CODEP           2026-01-14-19.42.42.508476 106EEF95-6E30-4FFF-85AE-B044352DF095                                         0 DISABLED         -                            -                                 -
   ...
   ```

## 데이터베이스 복원
<a name="db2-restoring-database"></a>

Amazon S3 버킷에서 RDS for Db2 DB 인스턴스로 데이터베이스를 이동하려면 `rdsadmin.restore_database` 저장 프로시저를 직접 호출합니다. 자세한 내용은 IBM Db2 설명서의 [RESTORE DATABASE 명령](https://www.ibm.com/docs/en/db2/11.5?topic=commands-restore-database)을 참조하세요.

**데이터베이스를 복원하려면**

1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 `rdsadmin` 데이터베이스에 연결합니다. 다음 예제에서 *master\$1username* 및 *master\$1password*를 사용자 자체 정보로 대체합니다.

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. (선택 사항) `rdsadmin.show_configuration`을 직접 호출하고 현재 구성 설정을 확인하여 복원 작업을 최적화합니다. 자세한 내용은 [rdsadmin.show\$1configuration](db2-sp-managing-databases.md#db2-sp-show-configuration) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.show_configuration('name')"
   ```

1. `rdsadmin.set_configuration`을 직접 호출하여 복원 작업을 최적화하도록 설정을 구성합니다. 이러한 값을 명시적으로 설정하면 대량 데이터가 있는 데이터베이스를 복원할 때 성능이 향상될 수 있습니다. 자세한 내용은 [rdsadmin.set\$1configuration](db2-sp-managing-databases.md#db2-sp-set-configuration) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.set_configuration(
       'name',  
       'value')"
   ```

1. `rdsadmin.restore_database`를 호출하여 데이터베이스를 복원합니다. 자세한 내용은 [rdsadmin.restore\$1database](db2-sp-managing-databases.md#db2-sp-restore-database) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.restore_database(
       ?,
       'database_name', 
       's3_bucket_name', 
       's3_prefix', 
       restore_timestamp, 
       'backup_type')"
   ```

1. (선택 사항) `rdsadmin.list_databases`를 직접 호출하고 복원된 데이터베이스가 나열되었는지 확인하여 데이터베이스가 복원되었는지 확인합니다. 자세한 내용은 [rdsadmin.list\$1databases](db2-user-defined-functions.md#db2-udf-list-databases) 섹션을 참조하세요.

1. `rdsadmin.rollforward_database`를 직접 호출하여 데이터베이스를 다시 온라인 상태로 만들고 추가 트랜잭션 로그를 적용합니다. 자세한 내용은 [rdsadmin.rollforward\$1database](db2-sp-managing-databases.md#db2-sp-rollforward-database) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.rollforward_database(
       ?,
       'database_name',
       's3_bucket_name', 
       s3_prefix, 
       'rollforward_to_option', 
       'complete_rollforward')"
   ```

1. (선택 사항) `rdsadmin.rollforward_database` 저장 프로시저를 직접적으로 호출하여 [rdsadmin.rollforward\$1status](db2-sp-managing-databases.md#db2-sp-rollforward-status) 저장 프로시저의 상태를 확인합니다.

1. 이전 단계에서 `complete_rollforward`를 `FALSE`로 설정한 경우에는 `rdsadmin.complete_rollforward`를 직접 호출하여 데이터베이스를 다시 온라인 상태로 전환하는 작업을 완료해야 합니다. 자세한 내용은 [rdsadmin.complete\$1rollforward](db2-sp-managing-databases.md#db2-sp-complete-rollforward) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.complete_rollforward(
       ?,
       'database_name')"
   ```

1. (선택 사항) `rdsadmin.complete_rollforward` 저장 프로시저를 직접적으로 호출하여 [rdsadmin.rollforward\$1status](db2-sp-managing-databases.md#db2-sp-rollforward-status) 저장 프로시저의 상태를 확인합니다.

## 데이터베이스 나열
<a name="db2-listing-databases"></a>

`rdsadmin.list_databases` 사용자 정의 함수를 직접 호출하여 Amazon RDS for Db2에서 실행되는 모든 데이터베이스를 나열할 수 있습니다.

**데이터베이스를 나열하는 방법**

1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 `rdsadmin` 데이터베이스에 연결합니다. 다음 예제에서 *master\$1username* 및 *master\$1password*를 사용자 자체 정보로 대체합니다.

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. `rdsadmin.list_databases`를 직접 호출하여 데이터베이스를 나열합니다. 자세한 내용은 [rdsadmin.list\$1databases](db2-user-defined-functions.md#db2-udf-list-databases) 섹션을 참조하세요.

   ```
   db2 "select * from table(rdsadmin.list_databases())"
   ```

## 데이터베이스에 대한 정보 수집
<a name="db2-collecting-info-db"></a>

RDS for Db2 DB 인스턴스에서 데이터베이스에 대한 정보를 수집하려면 `rdsadmin.db2pd_command` 저장 프로시저를 직접적으로 호출합니다. 이 정보를 사용하면 데이터베이스를 모니터링하거나 문제를 해결할 수 있습니다.

**데이터베이스에 대한 정보를 수집하려면 다음과 같이 하세요.**

1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 `rdsadmin` 데이터베이스에 연결합니다. 다음 예제에서 *master\$1username* 및 *master\$1password*를 사용자 자체 정보로 대체합니다.

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. `rdsadmin.db2pd_command`를 직접 호출하여 데이터베이스에 대한 정보를 수집합니다. 자세한 내용은 [rdsadmin.db2pd\$1command](db2-sp-managing-databases.md#db2-sp-db2pd-command) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.db2pd_command('db2pd_cmd')"
   ```

## 데이터베이스의 애플리케이션 강제 종료
<a name="db2-forcing-application-off-db"></a>

RDS for Db2 인스턴스의 데이터베이스에서 애플리케이션을 강제 종료하려면 `rdsadmin.force_application` 저장 프로시저를 직접적으로 호출합니다. 데이터베이스 유지 관리를 수행하기 전에 데이터베이스에서 애플리케이션을 강제로 제거해야 합니다.

**데이터베이스의 애플리케이션을 강제 종료하려면 다음과 같이 하세요.**

1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 `rdsadmin` 데이터베이스에 연결합니다. 다음 예제에서 *master\$1username* 및 *master\$1password*를 사용자 자체 정보로 대체합니다.

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. `rdsadmin.force_application`을 직접적으로 호출하여 데이터베이스의 애플리케이션을 강제 종료합니다. 자세한 내용은 [rdsadmin.force\$1application](db2-sp-managing-databases.md#db2-sp-force-application) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.force_application(     
       ?,
       'applications')"
   ```

## 성능 보고서 생성
<a name="db2-generating-performance-reports"></a>

프로시저 또는 스크립트를 사용하여 성능 보고서를 생성할 수 있습니다. 프로시저 사용에 대한 자세한 내용은 IBM Db2 설명서의 [DBSUMMARY 프로시저 - 시스템 및 애플리케이션 성능 지표에 대한 요약 보고서 생성](https://www.ibm.com/docs/en/db2/11.5?topic=mm-dbsummary-procedure-generate-summary-report-system-application-performance-metrics)을 참조하세요.

Db2는 `~sqllib/sample/perf` 디렉터리에 `db2mon.sh` 파일을 포함합니다. 스크립트를 실행하면 합리적인 비용으로 광범위한 SQL 지표 보고서를 생성할 수 있습니다. `db2mon.sh` 파일 및 관련 스크립트 파일을 다운로드하려면 IBM db2-samples GitHub 리포지토리의 [https://github.com/IBM/db2-samples/tree/master/perf](https://github.com/IBM/db2-samples/tree/master/perf) 디렉터리를 참조하세요.

**스크립트를 사용하여 성능 보고서를 생성하려면**

1. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 사용하여 Db2 데이터베이스에 연결합니다. 다음 예제에서 *master\$1username* 및 *master\$1password*를 사용자 자체 정보로 대체합니다.

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. `rdsadmin.create_bufferpool`을 호출하여 페이지 크기가 4096인 버퍼 풀 `db2monbp`를 생성합니다. 자세한 내용은 [rdsadmin.create\$1bufferpool](db2-sp-managing-buffer-pools.md#db2-sp-create-buffer-pool) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.create_bufferpool('database_name','db2monbp',4096)"
   ```

1. `rdsadmin.create_tablespace`을 호출하여 `db2monbp` 버퍼 풀을 사용하는 임시 테이블스페이스 `db2montmptbsp`를 생성합니다. 자세한 내용은 [rdsadmin.create\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-create-tablespace) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.create_tablespace('database_name',\
       'db2montmptbsp','db2monbp',4096,1000,100,'T')"
   ```

1. `db2mon.sh` 스크립트를 열고 데이터베이스 연결에 대한 줄을 수정합니다.

   1. 다음과 같은 줄을 제거합니다.

      ```
      db2 -v connect to $dbName
      ```

   1. 이전 단계의 줄을 다음 줄로 바꿉니다. 다음 예제에서 *master\$1username* 및 *master\$1password*를 RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호로 대체합니다.

      ```
      db2 -v connect to $dbName user master_username using master_password
      ```

   1. 다음과 같은 줄을 제거합니다.

      ```
      db2 -v create bufferpool db2monbp
      
      db2 -v create user temporary tablespace db2montmptbsp bufferpool db2monbp
      
      db2 -v drop tablespace db2montmptbsp
      
      db2 -v drop bufferpool db2monbp
      ```

1. `db2mon.sh` 스크립트를 실행하여 지정된 간격으로 보고서를 출력합니다. 다음 예제에서 *absolute\$1path*는 스크립트 파일의 전체 경로로, *rds\$1database\$1alias*는 데이터베이스 이름으로, *seconds*는 보고서 생성 사이의 시간(0\$13,600초)으로 바꿉니다.

   ```
   absolute_path/db2mon.sh rds_database_alias seconds | tee -a db2mon.out
   ```

   **예제**

   다음 예제는 스크립트 파일이 `home` 디렉터리 아래의 `perf` 디렉터리에 있음을 보여줍니다.

   ```
   /home/db2inst1/sqllib/samples/perf/db2mon.sh rds_database_alias seconds | tee -a db2mon.out
   ```

1. 버퍼 풀과 `db2mon.sh` 파일용으로 생성된 테이블스페이스를 삭제합니다. 다음 예제에서 *master\$1username* 및 *master\$1password*를 RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호로 대체합니다. *database\$1name*을 데이터베이스의 이름으로 바꿉니다. 자세한 내용은 [rdsadmin.drop\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-drop-tablespace) 및 [rdsadmin.drop\$1bufferpool](db2-sp-managing-buffer-pools.md#db2-sp-drop-buffer-pool)(을)를 참조하세요.

   ```
   db2 connect to rdsadmin user master_username using master_password
   
   db2 "call rdsadmin.drop_tablespace('database_name','db2montmptbsp')"
   
   db2 "call rdsadmin.drop_bufferpool('database_name','db2monbp')"
   ```