

# Amazon RDS for Db2 DB 인스턴스 관리
<a name="db2-administering-db-instance"></a>

이 주제에서는 Amazon RDS for Db2 DB 인스턴스와 관련하여 수행하는 일반적인 관리 작업을 안내합니다. 일부 작업은 모든 Amazon RDS DB 인스턴스에서 동일합니다. RDS for Db2에만 해당되는 작업도 있습니다.

다음 작업은 모든 RDS 데이터베이스에 공통적으로 적용됩니다. 표준 SQL 클라이언트를 사용하여 RDS for Db2 데이터베이스에 연결하는 것과 같이 RDS for Db2 전용 작업도 있습니다.


| 작업 영역 | 관련 설명서 | 
| --- | --- | 
|  **인스턴스 클래스, 스토리지 및 PIOPS** 프로덕션 인스턴스를 생성하는 경우 Amazon RDS에서 인스턴스 클래스, 스토리지 유형 및 프로비저닝된 IOPS가 작동하는 방식을 알아봅니다.  |  [DB 인스턴스 클래스](Concepts.DBInstanceClass.md) [Amazon RDS 스토리지 유형](CHAP_Storage.md#Concepts.Storage)  | 
|  **다중 AZ 배포** 프로덕션 DB 인스턴스에서는 다중 AZ 배포를 사용해야 합니다. 다중 AZ 배포는 DB 인스턴스를 위해 향상된 가용성, 데이터 내구성 및 내결함성을 제공합니다.  |  [Amazon RDS에 대한 다중 AZ 배포 구성 및 관리](Concepts.MultiAZ.md)  | 
|  ** Amazon VPC** AWS 계정에 기본 Virtual Private Cloud(VPC)가 있는 경우에는 DB 인스턴스가 기본 VPC 내부에 자동으로 생성됩니다. 계정에 기본 VPC가 없는데 VPC 안에 DB 인스턴스를 만들려면 VPC와 서브넷 그룹을 만든 후 DB 인스턴스를 만듭니다.  |  [VPC에서 DB 인스턴스를 사용한 작업](USER_VPC.WorkingWithRDSInstanceinaVPC.md)  | 
|  **보안 그룹** 기본적으로 DB 인스턴스는 액세스를 막는 방화벽을 사용합니다. 따라서 DB 인스턴스에 액세스하기 위한 알맞은 IP 주소와 네트워크 구성으로 보안 그룹을 생성해야 합니다.  |  [보안 그룹을 통한 액세스 제어](Overview.RDSSecurityGroups.md)  | 
|  **파라미터 그룹** RDS for Db2 DB 인스턴스에 `rds.ibm_customer_id` 및 `rds.ibm_site_id` 파라미터를 추가해야 하므로, DB 인스턴스를 생성하기 전에 파라미터 그룹을 생성해야 합니다. DB 인스턴스에 다른 특정 데이터베이스 파라미터가 필요한 경우 DB 인스턴스를 생성하기 전에 이 파라미터 그룹에 추가합니다.  |  [RDS for Db2 DB 인스턴스의 파라미터 그룹에 IBM ID 추가](db2-licensing.md#db2-licensing-options-byol-adding-ids) [Amazon RDS의 파라미터 그룹](USER_WorkingWithParamGroups.md)  | 
|  **옵션 그룹 수** DB 인스턴스에 특정 데이터베이스 옵션이 필요할 경우, 옵션 그룹을 생성한 후 DB 인스턴스를 생성합니다.  |  [Amazon RDS for Db2 DB 인스턴스 옵션](Db2.Options.md)  | 
|  **DB 인스턴스에 연결** 보안 그룹을 만들고 이를 DB 인스턴스에 연결한 후 IBM Db2 CLP와 같은 표준 SQL 클라이언트 애플리케이션을 사용하여 DB 인스턴스에 연결할 수 있습니다.  |  [DB 인스턴스에 연결](USER_ConnectToDb2DBInstance.md)  | 
|  **백업 및 복원** DB 인스턴스를 구성하여 자동 스토리지 백업을 생성하거나 수동 스토리지 스냅샷을 생성한 다음 백업 또는 스냅샷에서 인스턴스를 복원할 수 있습니다.  | [데이터 백업, 복원 및 내보내기](CHAP_CommonTasks.BackupRestore.md) | 
|  **모니터링** IBM Db2 Data Management Console을 사용하여 RDS for Db2 DB 인스턴스를 모니터링할 수 있습니다. CloudWatch Amazon RDS 지표, 이벤트 및 향상된 모니터링 기능을 통해 RDS for Db2 DB 인스턴스를 모니터링할 수도 있습니다.  |  [IBM Db2 Data Management Console을 사용하여 Amazon RDS for Db2 DB 인스턴스에 연결](db2-connecting-with-ibm-data-management-console.md) [Amazon RDS 콘솔에서 지표 보기](USER_Monitoring.md) [Amazon RDS 이벤트 보기](USER_ListEvents.md) [Enhanced Monitoring을 사용하여 OS 지표 모니터링](USER_Monitoring.OS.md)  | 
|  **로그 파일** RDS for Db2 DB 인스턴스의 로그 파일에 액세스할 수 있습니다.  |  [Amazon RDS 로그 파일 모니터링](USER_LogAccess.md)  | 

**Topics**
+ [Amazon RDS for Db2 DB 인스턴스에 대한 공통 시스템 작업 수행](db2-performing-common-system-tasks-db-instances.md)
+ [Amazon RDS for Db2 DB 인스턴스에 대한 공통 데이터베이스 작업 수행](db2-performing-common-database-tasks-db-instances.md)

# Amazon RDS for Db2 DB 인스턴스에 대한 공통 시스템 작업 수행
<a name="db2-performing-common-system-tasks-db-instances"></a>

Db2를 실행하는 Amazon RDS DB 인스턴스에서 시스템과 관련된 일반적인 데이터베이스 관리 작업을 수행할 수 있습니다. 관리형 서비스 환경을 제공하기 위해 Amazon RDS는 DB 인스턴스에 대해 shell 액세스를 제공하지 않으며, 고급 권한이 필요한 특정 시스템 절차와 테이블에 대한 액세스를 제한합니다.

RDS for Db2에서 권한을 부여 및 취소하고 원격 데이터베이스에 연결하는 방법에 대한 자세한 내용은 다음 주제를 참조하세요.

**주제**
+ [RDS for Db2에 대한 권한 부여 및 취소](db2-granting-revoking-privileges.md)
+ [원격 RDS for Db2 DB 인스턴스에 연결](db2-attaching-to-remote.md)

## 사용자 지정 데이터베이스 엔드포인트 생성
<a name="db2-creating-custom-database-endpoint"></a>

Amazon RDS for Db2로 마이그레이션할 때 사용자 지정 데이터베이스 엔드포인트 URL을 사용하여 애플리케이션 변경을 최소화할 수 있습니다. 예를 들어, `db2.example.com`을 현재 DNS 레코드로 사용하는 경우 Amazon Route 53에 추가할 수 있습니다. Route 53에서는 프라이빗 호스팅 영역을 사용하여 현재 DNS 데이터베이스 엔드포인트를 RDS for Db2 데이터베이스 엔드포인트에 매핑할 수 있습니다. Amazon RDS 데이터베이스 엔드포인트에 대해 사용자 지정 `A` 또는 `CNAME` 레코드를 추가하려면 **Amazon Route 53 개발자 안내서의 [Amazon Route 53을 사용한 도메인 등록 및 관리](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar.html)를 참조하세요.

**참고**  
도메인을 Route 53으로 이전할 수 없는 경우 DNS 공급자를 사용하여 RDS for Db2 데이터베이스 엔드포인트 URL에 대한 `CNAME` 레코드를 생성할 수 있습니다. DNS 공급자 설명서를 참조하세요.

# RDS for Db2에 대한 권한 부여 및 취소
<a name="db2-granting-revoking-privileges"></a>

사용자는 데이터베이스에 연결된 그룹의 멤버십을 통해 데이터베이스에 액세스할 수 있습니다.

다음 프로시저를 사용하여 데이터베이스에 대한 액세스를 제어할 수 있는 권한을 부여하거나 취소할 수 있습니다.

이 프로시저는 로컬 머신에서 IBM Db2 CLP를 실행하여 RDS for Db2 DB 인스턴스에 연결합니다. 로컬 머신에서 실행되는 RDS for Db2 DB 인스턴스에 연결하려면 TCPIP 노드와 데이터베이스를 카탈로그화해야 합니다. 자세한 내용은 [IBM Db2 CLP을 사용하여 Amazon RDS for Db2 DB 인스턴스에 연결](db2-connecting-with-clp-client.md) 섹션을 참조하세요.

**Topics**
+ [사용자에게 데이터베이스 액세스 권한 부여](#db2-granting-user-access)
+ [사용자의 암호 변경](#db2-changing-user-password)
+ [사용자에게 그룹 추가](#db2-adding-group-to-user)
+ [사용자로부터 그룹 제거](#db2-removing-groups-from-user)
+ [사용자 제거](#db2-removing-user)
+ [사용자 표시](#db2-listing-users-database)
+ [역할 생성](#db2-creating-role)
+ [역할 부여](#db2-granting-role)
+ [역할 취소](#db2-revoking-role)
+ [역할 삭제](#db2-dropping-role)
+ [데이터베이스 권한 부여](#db2-granting-dbadmin-auth)
+ [데이터베이스 권한 취소](#db2-revoking-dbadmin-auth)

## 사용자에게 데이터베이스 액세스 권한 부여
<a name="db2-granting-user-access"></a>

**사용자에게 데이터베이스 액세스 권한을 부여하려면**

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

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

   다음 예제와 비슷한 출력이 생성됩니다.

   ```
   Database Connection Information
       
   Database server        = DB2/LINUXX8664 11.5.8.0
   SQL authorization ID   = ADMIN
   Local database alias   = RDSADMIN
   ```

1. `rdsadmin.add_user`를 호출하여 권한 부여 목록에 사용자를 추가합니다. 자세한 내용은 [rdsadmin.add\$1user](db2-sp-granting-revoking-privileges.md#db2-sp-add-user) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.add_user(
       'username',
       'password',
       'group_name,group_name')"
   ```

1. (선택 사항) `rdsadmin.add_groups`를 호출하여 사용자에게 그룹을 더 추가합니다. 자세한 내용은 [rdsadmin.add\$1groups](db2-sp-granting-revoking-privileges.md#db2-sp-add-groups) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.add_groups(
       'username',
       'group_name,group_name')"
   ```

1. 사용자가 사용할 수 있는 권한을 확인합니다. 다음 예제에서 *rds\$1database\$1alias*, *master\$1user*, *master\$1password*를 사용자 자체 정보로 바꿉니다. *username*도 사용자의 사용자 이름으로 대체합니다.

   ```
   db2 terminate
   db2 connect to rds_database_alias user master_user using master_password
   db2 "SELECT SUBSTR(AUTHORITY,1,20) AUTHORITY, D_USER, D_GROUP, D_PUBLIC
          FROM TABLE (SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID ('username', 'U') ) AS T
          ORDER BY AUTHORITY"
   ```

   다음 예제와 비슷한 출력이 생성됩니다.

   ```
   AUTHORITY            D_USER D_GROUP D_PUBLIC
   -------------------- ------ ------- --------
   ACCESSCTRL           N      N       N
   BINDADD              N      N       N
   CONNECT              N      N       N
   CREATETAB            N      N       N
   CREATE_EXTERNAL_ROUT N      N       N
   CREATE_NOT_FENCED_RO N      N       N
   CREATE_SECURE_OBJECT N      N       N
   DATAACCESS           N      N       N
   DBADM                N      N       N
   EXPLAIN              N      N       N
   IMPLICIT_SCHEMA      N      N       N
   LOAD                 N      N       N
   QUIESCE_CONNECT      N      N       N
   SECADM               N      N       N
   SQLADM               N      N       N
   SYSADM               *      N       *
   SYSCTRL              *      N       *
   SYSMAINT             *      N       *
   SYSMON               *      N       *
   WLMADM               N      N       N
   ```

1. 사용자를 추가한 그룹에 RDS for Db2 역할 `ROLE_NULLID_PACKAGES`, `ROLE_TABLESPACES`, `ROLE_PROCEDURES`를 부여합니다. 자세한 내용은 [Amazon RDS for Db2 기본 역할](db2-default-roles.md) 섹션을 참조하세요.
**참고**  
`RESTRICTIVE` 모드에서 RDS for Db2 DB 인스턴스를 생성합니다. 따라서 RDS for Db2 역할 `ROLE_NULLID_PACKAGES`, `ROLE_TABLESPACES`, `ROLE_PROCEDURES`는 IBM Db2 CLP 및 Dynamic SQL에 대해 `NULLID` 패키지에서 실행 권한을 부여합니다. 또한 이러한 역할은 테이블스페이스에 대한 사용자 권한을 부여합니다.

   1. Db2 데이터베이스에 연결합니다. 다음 예제에서 *database\$1name*, *master\$1user*, *master\$1password*를 사용자 자체 정보로 바꿉니다.

      ```
      db2 connect to database_name user master_user using master_password
      ```

   1. 그룹에 `ROLE_NULLED_PACKAGES` 역할을 부여합니다. 다음 예제에서 *group\$1name*을 역할을 추가하려는 그룹의 이름으로 바꿉니다.

      ```
      db2 "grant role ROLE_NULLID_PACKAGES to group group_name"
      ```

   1. 동일한 그룹에 `ROLE_TABLESPACES` 역할을 부여합니다. 다음 예제에서 *group\$1name*을 역할을 추가하려는 그룹의 이름으로 바꿉니다.

      ```
      db2 "grant role ROLE_TABLESPACES to group group_name"
      ```

   1. 동일한 그룹에 `ROLE_PROCEDURES` 역할을 부여합니다. 다음 예제에서 *group\$1name*을 역할을 추가하려는 그룹의 이름으로 바꿉니다.

      ```
      db2 "grant role ROLE_PROCEDURES to group group_name"
      ```

1. 사용자를 추가한 그룹에 `connect`, `bindadd`, `createtab`, `IMPLICIT_SCHEMA` 권한을 부여합니다. 다음 예제에서 *group\$1name*을 사용자를 추가한 두 번째 그룹의 이름으로 대체합니다.

   ```
   db2 "grant usage on workload SYSDEFAULTUSERWORKLOAD to public"
   db2 "grant connect, bindadd, createtab, implicit_schema on database to group group_name"
   ```

1. 사용자를 추가한 각 추가 그룹에 대해 4\$16단계를 반복합니다.

1. 사용자로 연결하고, 표를 만들고, 표에 값을 넣고, 표에서 데이터를 반환하여 사용자의 액세스 권한을 테스트합니다. 다음 예제에서 *rds\$1database\$1alias*, *username*, *password*를 데이터베이스 이름과 사용자의 사용자 이름 및 암호로 바꿉니다.

   ```
   db2 connect to rds_database_alias user username using password
   db2 "create table t1(c1 int not null)"
   db2 "insert into t1 values (1),(2),(3),(4)"
   db2 "select * from t1"
   ```

## 사용자의 암호 변경
<a name="db2-changing-user-password"></a>

**사용자의 암호를 변경하려면**

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

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

1. `rdsadmin.change_password`를 호출하여 암호를 변경합니다. 자세한 내용은 [rdsadmin.change\$1password](db2-sp-granting-revoking-privileges.md#db2-sp-change-password) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.change_password(
       'username',
       'new_password')"
   ```

## 사용자에게 그룹 추가
<a name="db2-adding-group-to-user"></a>

**사용자에게 그룹을 추가하려면**

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

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

1. `rdsadmin.add_groups`를 호출하여 사용자에게 그룹을 추가합니다. 자세한 내용은 [rdsadmin.add\$1groups](db2-sp-granting-revoking-privileges.md#db2-sp-add-groups) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.add_groups(
       'username',
       'group_name,group_name')"
   ```

## 사용자로부터 그룹 제거
<a name="db2-removing-groups-from-user"></a>

**사용자로부터 그룹을 제거하려면**

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

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

1. `rdsadmin.remove_groups`를 호출하여 그룹을 제거합니다. 자세한 내용은 [rdsadmin.remove\$1groups](db2-sp-granting-revoking-privileges.md#db2-sp-remove-groups) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.remove_groups(
       'username',
       'group_name,group_name')"
   ```

## 사용자 제거
<a name="db2-removing-user"></a>

**권한 부여 목록에서 사용자를 제거하려면**

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

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

1. `rdsadmin.remove_user`를 호출하여 권한 부여 목록에서 사용자를 제거합니다. 자세한 내용은 [rdsadmin.remove\$1user](db2-sp-granting-revoking-privileges.md#db2-sp-remove-user) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.remove_user('username')"
   ```

## 사용자 표시
<a name="db2-listing-users-database"></a>

권한 부여 목록에 사용자를 표시하려면 `rdsadmin.list_users` 저장 프로시저를 호출하세요. 자세한 내용은 [rdsadmin.list\$1users](db2-sp-granting-revoking-privileges.md#db2-sp-list-users) 섹션을 참조하세요.

```
db2 "call rdsadmin.list_users()"
```

## 역할 생성
<a name="db2-creating-role"></a>

[rdsadmin.create\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-create-role) 저장 프로시저를 사용하여 역할을 생성할 수 있습니다.

**역할을 생성하려면**

1. `rdsadmin` 데이터베이스에 연결합니다. 다음 예제에서 *master\$1username* 및 *master\$1password*를 사용자 정보로 대체합니다.

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

1. 콘텐츠를 출력하도록 Db2를 설정합니다.

   ```
   db2 set serveroutput on 
   ```

1. 역할을 생성합니다. 자세한 내용은 [rdsadmin.create\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-create-role) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.create_role(
       'database_name',
       'role_name')"
   ```

1. 콘텐츠를 출력하지 않도록 Db2를 설정합니다.

   ```
   db2 set serveroutput off
   ```

## 역할 부여
<a name="db2-granting-role"></a>

[rdsadmin.grant\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-grant-role) 저장 프로시저를 사용하여 역할, 사용자 또는 그룹에 역할을 할당할 수 있습니다.

**역할을 할당하려면**

1. `rdsadmin` 데이터베이스에 연결합니다. 다음 예제에서 *master\$1username* 및 *master\$1password*를 사용자 정보로 대체합니다.

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

1. 콘텐츠를 출력하도록 Db2를 설정합니다.

   ```
   db2 set serveroutput on 
   ```

1. 역할을 할당합니다. 자세한 내용은 [rdsadmin.grant\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-grant-role) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.grant_role(
       'database_name',
       'role_name',
       'grantee',
       'admin_option')"
   ```

1. 콘텐츠를 출력하지 않도록 Db2를 설정합니다.

   ```
   db2 set serveroutput off
   ```

## 역할 취소
<a name="db2-revoking-role"></a>

[rdsadmin.revoke\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-revoke-role) 저장 프로시저를 사용하여 역할, 사용자 또는 그룹에서 역할을 취소할 수 있습니다.

**역할을 취소하려면 다음과 같이 하세요.**

1. `rdsadmin` 데이터베이스에 연결합니다. 다음 예제에서 *master\$1username* 및 *master\$1password*를 사용자 정보로 대체합니다.

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

1. 역할을 취소합니다. 자세한 내용은 [rdsadmin.revoke\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-revoke-role) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.revoke_role(
       ?,
       'database_name',
       'role_name',
       'grantee')"
   ```

## 역할 삭제
<a name="db2-dropping-role"></a>

[rdsadmin.drop\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-drop-role) 저장 프로시저를 사용하여 역할을 삭제할 수 있습니다.

**역할을 삭제하는 방법**

1. `rdsadmin` 데이터베이스에 연결합니다. 다음 예제에서 *master\$1username* 및 *master\$1password*를 사용자 정보로 대체합니다.

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

1. 역할을 삭제합니다. 자세한 내용은 [rdsadmin.drop\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-drop-role) 섹션을 참조하세요.

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

## 데이터베이스 권한 부여
<a name="db2-granting-dbadmin-auth"></a>

`DBADM` 권한을 가진 마스터 사용자는 역할, 사용자 또는 그룹에 `DBADM`, `ACCESSCTRL` 또는 `DATAACCESS` 권한을 부여할 수 있습니다.

**데이터베이스에 권한을 부여하려면**

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

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

1. `rdsadmin.dbadm_grant`를 호출하여 사용자에게 액세스 권한을 부여합니다. 자세한 내용은 [rdsadmin.dbadm\$1grant](db2-sp-granting-revoking-privileges.md#db2-sp-dbadm-grant) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.dbadm_grant(
       ?,
       'database_name,
       'authorization',
       'grantee')"
   ```

**사용 사례**

다음 절차는 역할 생성, 역할에 `DBADM` 권한 부여, 사용자에게 역할 할당 및 그룹에 역할 할당 과정을 안내합니다.

****

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

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

1. `TESTDB` 데이터베이스에 대해 `PROD_ROLE` 역할을 생성합니다. 자세한 내용은 [rdsadmin.create\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-create-role) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.create_role(
       'TESTDB',
       'PROD_ROLE')"
   ```

1. `PROD_USER` 사용자에게 역할을 할당합니다. `PROD_USER`에 역할을 할당할 수 있는 관리자 권한이 부여됩니다. 자세한 내용은 [rdsadmin.grant\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-grant-role) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.grant_role(
       ?,
       'TESTDB',
       'PROD_ROLE',
       'USER PROD_USER',
       'Y')"
   ```

1. (선택 사항) 추가 권한을 제공합니다. 다음 예제에서는 `FUNDPROD` 데이터베이스에 대해 `PROD_ROLE` 역할에 `DBADM` 권한을 부여합니다. 자세한 내용은 [rdsadmin.dbadm\$1grant](db2-sp-granting-revoking-privileges.md#db2-sp-dbadm-grant) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.dbadm_grant(
       ?,
       'FUNDPROD',
       'DBADM',
       'ROLE PROD_ROLE')"
   ```

1. 세션을 종료합니다.

   ```
   db2 terminate
   ```

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

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

1. 역할에 더 많은 권한을 추가합니다.

   ```
   db2 "grant connect, implicit_schema on database to role PROD_ROLE"
   ```

1. 그룹에 `PROD_ROLE` 역할을 부여합니다.

   ```
   db2 "grant role PROD_ROLE to group PRODGRP"
   ```

`PRODGRP` 그룹에 속한 사용자는 이제 `TESTDB` 데이터베이스 연결, 테이블 생성 또는 스키마 생성과 같은 작업을 수행할 수 있습니다.

## 데이터베이스 권한 취소
<a name="db2-revoking-dbadmin-auth"></a>

`DBADM` 권한을 가진 마스터 사용자는 역할, 사용자 또는 그룹의 `DBADM`, `ACCESSCTRL` 또는 `DATAACCESS` 권한을 취소할 수 있습니다.

**데이터베이스 권한을 취소하려면**

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

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

1. `rdsadmin.dbadm_revoke`를 호출하여 사용자 액세스 권한을 취소합니다. 자세한 내용은 [rdsadmin.dbadm\$1revoke](db2-sp-granting-revoking-privileges.md#db2-sp-dbadm-revoke) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.dbadm_revoke(
       ?,
       'database_name,
       'authorization',
       'grantee')"
   ```

# 원격 RDS for Db2 DB 인스턴스에 연결
<a name="db2-attaching-to-remote"></a>

다음 단계에 따라 원격 RDS for Db2 DB 인스턴스에 연결하고 `get snapshot` 작업을 실행합니다.

**원격 RDS for Db2 DB 인스턴스에 연결하려면**

1. 클라이언트 측 IBM Db2 CLP 세션을 실행합니다. RDS for Db2 DB 인스턴스 및 데이터베이스 카탈로그화에 대한 자세한 내용은 [IBM Db2 CLP을 사용하여 Amazon RDS for Db2 DB 인스턴스에 연결](db2-connecting-with-clp-client.md) 섹션을 참조하세요. RDS for Db2 DB 인스턴스의 마스터 사용자 이름과 마스터 암호를 기록해 둡니다.

1. RDS for Db2 DB 인스턴스에 연결합니다. 다음 예제에서 *node\$1name*, *master\$1username*, *master\$1password*를 카탈로그화한 TCPIP 노드 이름과 RDS for Db2 DB 인스턴스의 마스터 사용자 이름 및 마스터 암호로 대체합니다.

   ```
   db2 attach to node_name user master_username using master_password
   ```

원격 RDS for Db2 DB 인스턴스에 연결한 후 다음 명령 및 기타 `get snapshot` 명령을 실행할 수 있습니다. 자세한 내용은 IBM Db2 설명서의 [GET SNAPSHOT 명령](https://www.ibm.com/docs/en/db2/11.5?topic=commands-get-snapshot)을 참조하세요.

```
db2 list applications
db2 get snapshot for all databases
db2 get snapshot for database manager
db2 get snapshot for all applications
```

# Amazon RDS for Db2 DB 인스턴스에 대한 공통 데이터베이스 작업 수행
<a name="db2-performing-common-database-tasks-db-instances"></a>

Amazon RDS for Db2 DB 인스턴스에서 데이터베이스와 관련된 일반적인 DBA 작업을 수행할 수 있습니다. 관리형 서비스 환경을 제공하기 위해 Amazon RDS는 DB 인스턴스에 대해 shell 액세스를 제공하지 않습니다. 또한 마스터 사용자는 `SYSADM`, `SYSMAINT` 또는 `SYSCTRL` 권한을 요구하는 명령이나 유틸리티를 실행할 수 없습니다.

버퍼 풀, 데이터베이스 및 테이블스페이스의 일반적인 작업에 대한 자세한 내용은 다음 주제를 참조하세요.

**주제**
+ [버퍼 풀의 일반적인 작업](db2-managing-buffer-pools.md)
+ [공통 데이터베이스 작업](db2-managing-databases.md)
+ [테이블스페이스의 일반적인 작업](db2-managing-tablespaces.md)

# 버퍼 풀의 일반적인 작업
<a name="db2-managing-buffer-pools"></a>

RDS for Db2 데이터베이스의 버퍼 풀을 생성, 변경 또는 삭제할 수 있습니다. 버퍼 풀을 생성, 변경 또는 삭제하려면 마스터 사용자가 사용할 수 없는 더 높은 수준의 `SYSADM` 또는 `SYSCTRL` 권한이 필요합니다. 대신 Amazon RDS 저장 프로시저를 사용하세요.

버퍼 풀을 플러시할 수도 있습니다.

**Topics**
+ [버퍼 풀 생성](#db2-creating-buffer-pool)
+ [버퍼 풀 변경](#db2-altering-buffer-pool)
+ [버퍼 풀 삭제](#db2-dropping-buffer-pool)
+ [버퍼 풀 플러시](#db2-flushing-buffer-pools)

## 버퍼 풀 생성
<a name="db2-creating-buffer-pool"></a>

RDS for Db2 데이터베이스용 버퍼 풀을 만들려면 `rdsadmin.create_bufferpool` 저장 프로시저를 호출합니다. 자세한 내용은 IBM Db2 설명서의 [CREATE BUFFERPOOL 문](https://www.ibm.com/docs/en/db2/11.5?topic=statements-create-bufferpool)을 참조하세요.

**버퍼 풀을 생성하려면**

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

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

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

   ```
   db2 "call rdsadmin.create_bufferpool(
       'database_name', 
       'buffer_pool_name', 
       buffer_pool_size, 
       'immediate', 
       'automatic', 
       page_size, 
       number_block_pages, 
       block_size)"
   ```

## 버퍼 풀 변경
<a name="db2-altering-buffer-pool"></a>

RDS for Db2 데이터베이스용 버퍼 풀을 변경하려면 `rdsadmin.alter_bufferpool` 저장 프로시저를 호출합니다. 자세한 내용은 IBM Db2 설명서의 [ALTER BUFFERPOOL 문](https://www.ibm.com/docs/en/db2/11.5?topic=statements-alter-bufferpool)을 참조하세요.

**버퍼 풀을 변경하려면**

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

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

1. `rdsadmin.alter_bufferpool`을 호출하여 버퍼 풀을 변경합니다. 자세한 내용은 [rdsadmin.alter\$1bufferpool](db2-sp-managing-buffer-pools.md#db2-sp-alter-buffer-pool) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.alter_bufferpool(
       'database_name', 
       'buffer_pool_name', 
       buffer_pool_size, 
       'immediate', 
       'automatic', 
       change_number_blocks, 
       number_block_pages, 
       block_size)"
   ```

## 버퍼 풀 삭제
<a name="db2-dropping-buffer-pool"></a>

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

**중요**  
삭제하려는 버퍼 풀에 테이블스페이스가 할당되어 있지 않은지 확인합니다.

**버퍼 풀을 삭제하려면**

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

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

1. `rdsadmin.drop_bufferpool`을 호출하여 버퍼 풀을 삭제합니다. 자세한 내용은 [rdsadmin.drop\$1bufferpool](db2-sp-managing-buffer-pools.md#db2-sp-drop-buffer-pool) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.drop_bufferpool(
       'database_name', 
       'buffer_pool_name')"
   ```

## 버퍼 풀 플러시
<a name="db2-flushing-buffer-pools"></a>

RDS for Db2가 메모리의 페이지를 스토리지에 기록하도록 버퍼 풀을 플러시하여 체크포인트를 강제 적용할 수 있습니다.

**참고**  
버퍼 풀을 플러시할 필요는 없습니다. Db2는 트랜잭션을 커밋하기 전에 로그를 동기적으로 기록합니다. 더티 페이지가 여전히 버퍼 풀에 있을 수 있지만, Db2는 이러한 페이지를 스토리지에 비동기적으로 작성합니다. 시스템이 예기치 않게 종료되더라도 데이터베이스를 다시 시작하면 Db2가 자동으로 충돌 복구를 수행합니다. 충돌 복구 중에 Db2는 커밋된 변경 내용을 데이터베이스에 쓰거나 커밋되지 않은 트랜잭션의 변경 내용을 롤백합니다.

**버퍼 풀을 플러시하려면**

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

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

1. 버퍼 풀을 플러시합니다.

   ```
   db2 flush bufferpools all
   ```

# 공통 데이터베이스 작업
<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')"
   ```

## 스토리지 관리
<a name="db2-managing-storage"></a>

Db2는 자동 스토리지를 사용하여 표, 인덱스, 임시 파일과 같은 데이터베이스 객체의 물리적 스토리지를 관리합니다. 스토리지 공간을 수동으로 할당하고 사용 중인 스토리지 경로를 추적하는 대신, 자동 스토리지를 통해 Db2 시스템은 필요에 따라 스토리지 경로를 생성하고 관리할 수 있습니다. 이를 통해 Db2 데이터베이스 관리를 단순화하고 사람의 실수로 인한 오류 가능성을 줄일 수 있습니다. 자세한 내용은 IBM Db2 설명서의 [자동 스토리지](https://www.ibm.com/docs/en/db2/11.5?topic=overview-automatic-storage)를 참조하세요.

RDS for Db2를 사용하면 논리적 볼륨과 파일 시스템을 자동으로 확장하여 스토리지 크기를 동적으로 늘릴 수 있습니다. 자세한 내용은 [Amazon RDS DB 인스턴스 스토리지 작업](USER_PIOPS.StorageTypes.md) 섹션을 참조하세요.

# 테이블스페이스의 일반적인 작업
<a name="db2-managing-tablespaces"></a>

RDS for Db2 데이터베이스의 테이블스페이스를 생성, 변경, 삭제 또는 이름을 변경할 수 있습니다. 테이블스페이스를 생성, 변경, 삭제 또는 이름을 변경하려면 마스터 사용자가 사용할 수 없는 더 높은 수준의 `SYSADM` 권한이 필요합니다. 대신 Amazon RDS 저장 프로시저를 사용하세요.

**Topics**
+ [테이블스페이스 생성](#db2-creating-tablespace)
+ [테이블스페이스 변경](#db2-altering-tablespace)
+ [테이블스페이스 이름 변경](#db2-renaming-tablespace)
+ [테이블스페이스 삭제](#db2-dropping-tablespace)
+ [테이블스페이스의 상태 확인](#db2-checking-tablespaces-procedure)
+ [테이블스페이스에 관한 세부 정보 반환](#db2-tablespaces-info-db2pd)
+ [테이블스페이스의 상태 및 스토리지 그룹 나열](#db2-state-storage-group-tablespace-sql)
+ [표의 테이블스페이스 나열](#db2-return-tablespaces-sql)
+ [테이블스페이스 컨테이너 나열](#db2-listing-tablespace-containers)

## 테이블스페이스 생성
<a name="db2-creating-tablespace"></a>

RDS for Db2 데이터베이스용 테이블스페이스를 만들려면 `rdsadmin.create_tablespace` 저장 프로시저를 호출합니다. 자세한 내용은 IBM Db2 설명서의 [CREATE TABLESPACE 문](https://www.ibm.com/docs/en/db2/11.5?topic=statements-create-tablespace)을 참조하세요.

**중요**  
테이블스페이스를 만들려면 테이블스페이스와 연결할 페이지 크기가 같은 버퍼 풀이 있어야 합니다. 자세한 내용은 [버퍼 풀의 일반적인 작업](db2-managing-buffer-pools.md) 섹션을 참조하세요.

**테이블스페이스를 생성하려면**

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

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

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

   ```
   db2 "call rdsadmin.create_tablespace(
       'database_name', 
       'tablespace_name',
       'buffer_pool_name', 
       tablespace_initial_size, 
       tablespace_increase_size, 
       'tablespace_type')"
   ```

## 테이블스페이스 변경
<a name="db2-altering-tablespace"></a>

RDS for Db2 데이터베이스용 테이블스페이스를 변경하려면 `rdsadmin.alter_tablespace` 저장 프로시저를 호출합니다. 이 저장 프로시저를 사용하여 테이블스페이스의 버퍼 풀을 변경하거나, 하이 워터 마크를 낮추거나, 테이블스페이스를 온라인으로 전환할 수 있습니다. 자세한 내용은 IBM Db2 설명서의 [ALTER TABLESPACE 문](https://www.ibm.com/docs/en/db2/11.5?topic=statements-alter-tablespace)을 참조하세요.

**테이블스페이스를 변경하려면**

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

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

1. `rdsadmin.alter_tablespace`를 호출하여 테이블스페이스를 변경합니다. 자세한 내용은 [rdsadmin.alter\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-alter-tablespace) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.alter_tablespace(
       'database_name', 
       'tablespace_name', 
       'buffer_pool_name', 
       buffer_pool_size, 
       tablespace_increase_size, 
       'max_size', 'reduce_max', 
       'reduce_stop', 
       'reduce_value', 
       'lower_high_water', 
       'lower_high_water_stop', 
       'switch_online')"
   ```

## 테이블스페이스 이름 변경
<a name="db2-renaming-tablespace"></a>

RDS for Db2 데이터베이스용 테이블스페이스의 이름을 변경하려면 `rdsadmin.rename_tablespace` 저장 프로시저를 호출합니다. 자세한 내용은 IBM Db2 설명서의 [RENAME TABLESPACE 문](https://www.ibm.com/docs/en/db2/11.5?topic=statements-rename-tablespace)을 참조하세요.

**테이블스페이스 이름을 변경하는 방법**

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

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

1. `rdsadmin.rename_tablespace`를 직접 호출하여 테이블스페이스의 이름을 변경합니다. 테이블스페이스의 이름으로 지정할 수 있는 것에 대한 제한 사항을 비롯한 자세한 내용은 [rdsadmin.rename\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-rename-tablespace) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.rename_tablespace(
       'database_name', 
       'source_tablespace_name',
       'target_tablespace_name')"
   ```

## 테이블스페이스 삭제
<a name="db2-dropping-tablespace"></a>

RDS for Db2 데이터베이스용 테이블스페이스를 삭제하려면 `rdsadmin.drop_tablespace` 저장 프로시저를 호출합니다. 테이블스페이스를 삭제하기 전에 먼저 표, 인덱스 또는 대형 객체(LOB)와 같은 테이블스페이스의 모든 객체를 삭제해야 합니다. 자세한 내용은 IBM Db2 설명서의 [테이블스페이스 삭제](https://www.ibm.com/docs/en/db2/11.5?topic=spaces-dropping-table)를 참조하세요.

**테이블스페이스를 삭제하려면**

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

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

1. `rdsadmin.drop_tablespace`를 호출하여 테이블스페이스를 삭제합니다. 자세한 내용은 [rdsadmin.drop\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-drop-tablespace) 섹션을 참조하세요.

   ```
   db2 "call rdsadmin.drop_tablespace(
       'database_name', 
       'tablespace_name')"
   ```

## 테이블스페이스의 상태 확인
<a name="db2-checking-tablespaces-procedure"></a>

 `cast` 함수를 사용하여 테이블스페이스의 상태를 확인할 수 있습니다.

**테이블스페이스의 상태를 확인하려면**

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

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

1. 요약 출력을 반환합니다.

   요약 출력은 다음과 같습니다.

   ```
   db2 "select cast(tbsp_id as smallint) as tbsp_id,
   cast(tbsp_name as varchar(35)) as tbsp_name,
   cast(tbsp_type as varchar(3)) as tbsp_type,
   cast(tbsp_state as varchar(10)) as state,
   cast(tbsp_content_type as varchar(8)) as contents from table(mon_get_tablespace(null,-1)) order by tbsp_id"
   ```

## 테이블스페이스에 관한 세부 정보 반환
<a name="db2-tablespaces-info-db2pd"></a>

`cast` 함수를 사용하여 한 구성원 또는 모든 구성원의 테이블스페이스 정보를 반환할 수 있습니다.

**테이블스페이스에 관한 세부 정보를 반환하려면**

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

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

1. 한 멤버 또는 모든 멤버의 데이터베이스에 있는 모든 테이블스페이스에 대한 세부 정보를 반환합니다.

   한 멤버의 경우에는 다음과 같습니다.

   ```
   db2 "select cast(member as smallint) as member,
   cast(tbsp_id as smallint) as tbsp_id,
   cast(tbsp_name as varchar(35)) as tbsp_name,
   cast(tbsp_type as varchar(3)) as tbsp_type,
   cast(tbsp_state as varchar(10)) as state,
   cast(tbsp_content_type as varchar(8)) as contents,
   cast(tbsp_total_pages as integer) as total_pages,
   cast(tbsp_used_pages as integer) as used_pages,
   cast(tbsp_free_pages as integer) as free_pages,
   cast(tbsp_page_top as integer) as page_hwm,
   cast(tbsp_page_size as integer) as page_sz,
   cast(tbsp_extent_size as smallint) as extent_sz,
   cast(tbsp_prefetch_size as smallint) as prefetch_sz,
   cast(tbsp_initial_size as integer) as initial_size,
   cast(tbsp_increase_size_percent as smallint) as increase_pct,
   cast(storage_group_name as varchar(12)) as stogroup from table(mon_get_tablespace(null,-1)) order by member, tbsp_id "
   ```

   모든 멤버의 경우에는 다음과 같습니다.

   ```
   db2 "select cast(member as smallint) as member
   cast(tbsp_id as smallint) as tbsp_id,
   cast(tbsp_name as varchar(35)) as tbsp_name,
   cast(tbsp_type as varchar(3)) as tbsp_type,
   cast(tbsp_state as varchar(10)) as state,
   cast(tbsp_content_type as varchar(8)) as contents,
   cast(tbsp_total_pages as integer) as total_pages,
   cast(tbsp_used_pages as integer) as used_pages,
   cast(tbsp_free_pages as integer) as free_pages,
   cast(tbsp_page_top as integer) as page_hwm,
   cast(tbsp_page_size as integer) as page_sz,
   cast(tbsp_extent_size as smallint) as extent_sz,
   cast(tbsp_prefetch_size as smallint) as prefetch_sz,
   cast(tbsp_initial_size as integer) as initial_size,
   cast(tbsp_increase_size_percent as smallint) as increase_pct,
   cast(storage_group_name as varchar(12)) as stogroup from table(mon_get_tablespace(null,-2)) order by member, tbsp_id "
   ```

## 테이블스페이스의 상태 및 스토리지 그룹 나열
<a name="db2-state-storage-group-tablespace-sql"></a>

SQL 문을 실행하여 테이블스페이스의 상태 및 스토리지 그룹을 나열할 수 있습니다.

테이블스페이스의 상태 및 스토리지 그룹을 나열하려면 다음 SQL 문을 실행합니다.

```
db2 "SELECT varchar(tbsp_name, 30) as tbsp_name,
                  varchar(TBSP_STATE, 30) state,
                  tbsp_type,
                  varchar(storage_group_name,30) storage_group
FROM TABLE(MON_GET_TABLESPACE('',-2)) AS t"
```

## 표의 테이블스페이스 나열
<a name="db2-return-tablespaces-sql"></a>

SQL 문을 실행하여 표의 테이블스페이스를 나열할 수 있습니다.

표의 테이블스페이스를 나열하려면 다음 SQL 문을 실행합니다. 다음 예제에서 *SCHEMA\$1NAME* 및 *TABLE\$1NAME*을 다음과 같이 스키마 및 테이블 이름으로 바꿉니다.

```
db2 "SELECT 
   VARCHAR(SD.TBSPACE,30) AS DATA_SPACE,
   VARCHAR(SL.TBSPACE,30) AS LONG_SPACE,
   VARCHAR(SI.TBSPACE,30) AS INDEX_SPACE
 FROM 
   SYSCAT.DATAPARTITIONS P 
   JOIN SYSCAT.TABLESPACES SD ON SD.TBSPACEID = P.TBSPACEID 
   LEFT JOIN SYSCAT.TABLESPACES SL ON SL.TBSPACEID = P.LONG_TBSPACEID
   LEFT JOIN SYSCAT.TABLESPACES SI ON SI.TBSPACEID = P.INDEX_TBSPACEID
 WHERE
    TABSCHEMA = 'SCHEMA_NAME'
 AND TABNAME   = 'TABLE_NAME'"
```

## 테이블스페이스 컨테이너 나열
<a name="db2-listing-tablespace-containers"></a>

`cast` 명령을 사용하여 모든 테이블스페이스 컨테이너 또는 특정 테이블스페이스 컨테이너를 나열할 수 있습니다.

**테이블스페이스의 테이블스페이스 컨테이너를 나열하려면**

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

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

1. 데이터베이스 또는 특정 테이블스페이스 컨테이너의 모든 테이블스페이스 컨테이너 목록을 반환합니다.

   모든 테이블스페이스 컨테이너의 경우에는 다음과 같습니다.

   ```
   db2 "select cast(member as smallint) as member,
   cast(tbsp_name as varchar(35)) as tbsp_name,
   cast(container_id as smallint) as id,
   cast(container_name as varchar(60)) as container_path, container_type as type from table(mon_get_container(null,-2)) order by member,tbsp_id,container_id"
   ```

   특정 테이블스페이스 컨테이너의 경우에는 다음과 같습니다.

   ```
   db2 "select cast(member as smallint) as member,
   cast(tbsp_name as varchar(35)) as tbsp_name,
   cast(container_id as smallint) as id,
   cast(container_name as varchar(60)) as container_path, container_type as type from table(mon_get_container('TBSP_1',-2)) order by member, tbsp_id,container_id"
   ```