

# Amazon RDS for Db2 사용자 정의 함수 참조
<a name="db2-user-defined-functions"></a>

Db2 엔진을 실행 중인 Amazon RDS DB 인스턴스에 사용할 수 있는 사용자 정의 함수는 다음과 같습니다.

**Topics**
+ [rdsadmin.get\$1task\$1status](#db2-udf-get-task-status)
+ [rdsadmin.list\$1databases](#db2-udf-list-databases)
+ [rdsadmin.list\$1modifiable\$1db\$1params](#db2-udf-list-modi-db-params)

## rdsadmin.get\$1task\$1status
<a name="db2-udf-get-task-status"></a>

작업의 상태를 반환합니다.

### 구문
<a name="db2-udf-get-task-status-syntax"></a>

```
db2 "select task_id, task_type, database_name, lifecycle,
    varchar(bson_to_json(task_input_params), 500) as task_params,
    cast(task_output as varchar(500)) as task_output
    from table(rdsadmin.get_task_status(task_id,'database_name','task_type'))"
```

### 파라미터
<a name="db2-udf-get-task-status-parameters"></a>

다음 파라미터는 선택 사항입니다. 파라미터를 제공하지 않으면 사용자 정의 함수는 모든 데이터베이스의 모든 작업 상태를 반환합니다. Amazon RDS는 35일 동안 작업 기록을 유지합니다.

*task\$1id*  
실행 중인 작업의 ID입니다. 이 ID는 작업을 실행할 때 반환됩니다. 기본값: `0`.

*database\$1name*  
작업이 실행되고 있는 데이터베이스의 이름입니다.

*task\$1type*  
쿼리할 작업의 유형입니다. 유효한 값은 `ADD_GROUPS`, `ADD_USER`, `ALTER_BUFFERPOOL`, `ALTER_TABLESPACE`, `CHANGE_PASSWORD`, `COMPLETE_ROLLFORWARD`, `CREATE_BUFFERPOOL`, `CREATE_DATABASE`, `CREATE_ROLE`, `CREATE_TABLESPACE`, `DROP_BUFFERPOOL`, `DROP_DATABASE`, `DROP_TABLESPACE`, `LIST_USERS`, `REMOVE_GROUPS`, `REMOVE_USER`, `RESTORE_DB`, `ROLLFORWARD_DB_LOG`, `ROLLFORWARD_STATUS`, `UPDATE_DB_PARAM`입니다.

### 사용 노트
<a name="db2-udf-get-task-status-usage-notes"></a>

`rdsadmin.get_task_status` 사용자 정의 함수를 사용하여 다음 Amazon RDS for Db2 작업의 상태를 확인할 수 있습니다. 단, 이 목록이 전부는 아닙니다.
+ 버퍼 풀 생성, 변경 또는 삭제
+ 테이블스페이스 생성, 변경 또는 삭제
+ 데이터베이스 생성 또는 삭제
+ Amazon S3에서 데이터베이스 백업 복원
+ Amazon S3에서 데이터베이스 로그 롤포워딩

### 예제
<a name="db2-udf-get-task-status-examples"></a>

다음 예제에서는 `rdsadmin.get_task_status`가 호출될 때 반환된 열을 표시합니다.

```
db2 "describe select * from table(rdsadmin.get_task_status())"
```

다음 예제에서는 모든 작업의 상태를 나열합니다.

```
db2 "select task_id, task_type, database_name, lifecycle, 
    varchar(bson_to_json(task_input_params), 500) as task_params, 
    cast(task_output as varchar(500)) as task_output 
    from table(rdsadmin.get_task_status(null,null,null))"
```

다음 예제에서는 특정 작업의 상태를 나열합니다.

```
db2 "select task_id, task_type, database_name, 
    varchar(bson_to_json(task_input_params), 500) as task_params 
    from table(rdsadmin.get_task_status(1,null,null))"
```

다음 예제에서는 특정 작업 및 데이터베이스의 상태를 나열합니다.

```
db2 "select task_id, task_type, database_name, 
    varchar(bson_to_json(task_input_params), 500) as task_params 
    from table(rdsadmin.get_task_status(2,'SAMPLE',null))"
```

다음 예제에서는 모든 `ADD_GROUPS` 작업의 상태를 나열합니다.

```
db2 "select task_id, task_type, database_name, 
    varchar(bson_to_json(task_input_params), 500) as task_params 
    from table(rdsadmin.get_task_status(null,null,'add_groups'))"
```

다음 예제에서는 특정 데이터베이스의 모든 작업 상태를 나열합니다.

```
db2 "select task_id, task_type, database_name, 
    varchar(bson_to_json(task_input_params), 500) as task_params 
    from table(rdsadmin.get_task_status(null,'testdb', null))"
```

다음 예제는 JSON 값을 열로 출력합니다.

```
db2 "select varchar(r.task_type,25) as task_type, varchar(r.lifecycle,10) as lifecycle, r.created_at, u.* from 
    table(rdsadmin.get_task_status(null,null,'restore_db')) as r, json_table(r.task_input_params, 'strict $' columns(s3_prefix varchar(500) 
    null on empty, s3_bucket_name varchar(500) null on empty) error on error ) as U"
```

### 응답
<a name="db2-udf-get-task-status-response"></a>

`rdsadmin.get_task_status` 사용자 정의 함수는 다음 열을 반환합니다.

`TASK_ID`  
작업의 ID입니다.

`TASK_TYPE`  
입력 파라미터에 따라 다릅니다.  
+ `ADD_GROUPS` – 그룹을 추가합니다.
+ `ADD_USER` – 사용자를 추가합니다.
+ `ALTER_BUFFERPOOL` – 버퍼 풀을 변경합니다.
+ `ALTER_TABLESPACE` – 테이블스페이스를 변경합니다.
+ `CHANGE_PASSWORD ` – 사용자의 암호를 변경합니다.
+ `COMPLETE_ROLLFORWARD` – `rdsadmin.rollforward_database` 작업을 완료하고 데이터베이스를 활성화합니다.
+ `CREATE_BUFFERPOOL` – 버퍼 풀을 생성합니다.
+ `CREATE_DATABASE` – 데이터베이스를 생성합니다.
+ `CREATE_ROLE` – 사용자의 Db2 역할을 생성합니다.
+ `CREATE_TABLESPACE` – 테이블스페이스를 생성합니다.
+ `DROP_BUFFERPOOL` – 버퍼 풀을 삭제합니다.
+ `DROP_DATABASE` – 데이터베이스를 삭제합니다.
+ `DROP_TABLESPACE` – 테이블스페이스를 삭제합니다.
+ `LIST_USERS` – 모든 사용자를 나열합니다.
+ `REMOVE_GROUPS` – 그룹을 제거합니다.
+ `REMOVE_USER` – 사용자를 제거합니다.
+ `RESTORE_DB` – 전체 데이터베이스를 복원합니다.
+ `ROLLFORWARD_DB_LOG` – 데이터베이스 로그에 대한 `rdsadmin.rollforward_database` 작업을 수행합니다.
+ `ROLLFORWARD_STATUS ` – `rdsadmin.rollforward_database` 작업 상태를 반환합니다.
+ `UPDATE_DB_PARAM` – 데이터 파라미터를 업데이트합니다.

`DATABASE_NAME`  
작업이 연결되어 있는 데이터베이스의 이름입니다.

`COMPLETED_WORK_BYTES`  
작업이 복원한 바이트 수입니다.

`DURATION_MINS`  
작업을 완료하는 데 걸린 시간입니다.

`LIFECYCLE`  
작업의 상태입니다. 가능한 상태:  
+ `CREATED` – Amazon RDS에 작업을 제출한 후 Amazon RDS는 상태를 `CREATED`로 설정합니다.
+ `IN_PROGRESS` – 작업이 시작되면 Amazon RDS는 상태를 `IN_PROGRESS`로 설정합니다. `CREATED`에서 `IN_PROGRESS`로 상태가 변경되려면 최대 5분이 걸릴 수 있습니다.
+ `SUCCESS` – 작업이 완료되면 Amazon RDS는 상태를 `SUCCESS`로 설정합니다.
+ `ERROR` – 복원 작업이 실패할 경우 Amazon RDS는 상태를 `ERROR`로 설정합니다. 오류에 대한 자세한 내용은 `TASK_OUPUT` 섹션을 참조하세요.

`CREATED_BY`  
명령을 생성한 `authid`입니다.

`CREATED_AT`  
작업을 생성한 날짜와 시간입니다.

`LAST_UPDATED_AT`  
작업이 마지막으로 업데이트된 날짜와 시간입니다.

`TASK_INPUT_PARAMS`  
파라미터는 작업 유형에 따라 다릅니다. 모든 입력 파라미터는 JSON 객체로 표시됩니다. 예를 들어, `RESTORE_DB` 작업의 JSON 키는 다음과 같습니다.  
+ `DBNAME`
+ `RESTORE_TIMESTAMP`
+ `S3_BUCKET_NAME`
+ `S3_PREFIX`

`TASK_OUTPUT`  
작업에 대한 추가 정보입니다. 기본 복원 중에 오류가 발생하면 이 열에 오류에 대한 정보가 포함됩니다.

### 응답 예제
<a name="db2-udf-get-task-status-response-examples"></a>

다음 응답 예제는 `TESTJP`라는 데이터베이스가 성공적으로 생성되었음을 보여줍니다. 자세한 내용은 [rdsadmin.create\$1database](db2-sp-managing-databases.md#db2-sp-create-database) 저장 프로시저를 참조하세요.

```
`1 SUCCESS CREATE_DATABASE RDSDB 2023-10-24-18.32.44.962689 2023-10-24-18.34.50.038523 1 TESTJP { "CODESET" : "IBM-437", "TERRITORY" : "JP", "COLLATION" : "SYSTEM", "AUTOCONFIGURE_CMD" : "", "PAGESIZE" : 4096 } 
2023-10-24-18.33.30.079048 Task execution has started.

2023-10-24-18.34.50.038523 Task execution has completed successfully`.
```

다음 응답 예제는 데이터베이스 삭제가 실패한 이유를 설명합니다. 자세한 내용은 [rdsadmin.drop\$1database](db2-sp-managing-databases.md#db2-sp-drop-database) 저장 프로시저를 참조하세요.

```
1 ERROR DROP_DATABASE RDSDB 2023-10-10-16.33.03.744122 2023-10-10-16.33.30.143797 - 2023-10-10-16.33.30.098857 Task execution has started.
2023-10-10-16.33.30.143797 Caught exception during executing task id 1, Aborting task. 
Reason Dropping database created via rds CreateDBInstance api is not allowed. 
Only database created using rdsadmin.create_database can be dropped
```

다음 응답 예제는 데이터베이스의 성공적인 복원을 보여줍니다. 자세한 내용은 [rdsadmin.restore\$1database](db2-sp-managing-databases.md#db2-sp-restore-database) 저장 프로시저를 참조하세요.

```
1 RESTORE_DB  SAMPLE  SUCCESS   
                                         
{ "S3_BUCKET_NAME" : "amzn-s3-demo-bucket", "S3_PREFIX" : "SAMPLE.0.rdsdb3.DBPART000.20230413183211.001", "RESTORE_TIMESTAMP" : "20230413183211", "BACKUP_TYPE" : "offline" }                                                                                                                                                                                                                                                                                                                                                   

2023-11-06-18.31.03.115795 Task execution has started.
2023-11-06-18.31.04.300231 Preparing to download
2023-11-06-18.31.08.368827 Download complete. Starting Restore
2023-11-06-18.33.13.891356 Task Completed Successfully
```

## rdsadmin.list\$1databases
<a name="db2-udf-list-databases"></a>

RDS for Db2 DB 인스턴스에서 실행되는 모든 데이터베이스 목록을 반환합니다.

### 구문
<a name="db2-udf-list-databases-syntax"></a>

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

### 사용 노트
<a name="db2-udf-list-databases-usage-notes"></a>

이 사용자 정의 함수는 데이터베이스가 활성화된 상태인지 비활성화된 상태인지 지정하지 않습니다.

목록에 데이터베이스가 표시되지 않으면 [rdsadmin.get\$1task\$1status](#db2-udf-get-task-status) 사용자 정의 함수를 직접 호출하고 오류 메시지를 찾습니다.

### 응답
<a name="db2-udf-list-databases-response"></a>

`rdsadmin.list_databases` 사용자 정의 함수는 다음 열을 반환합니다.

`DATABASE_NAME`  
데이터베이스의 이름입니다.

`CREATE_TIME`  
데이터베이스가 만들어진 날짜와 시간입니다.

`DATABASE_UNIQUE_ID`  
Db2 데이터베이스를 고유하게 식별하기 위해 RDS에서 생성된 GUID입니다.

`ARCHIVE_LOG_RETENTION_HOUR`  
아카이브 로그 파일을 유지하는 데 걸리는 시간입니다.

`ARCHIVE_LOG_COPY`  
데이터베이스에 대해 해당 기능이 활성화되었는지 비활성화되었는지를 표시합니다.

`ARCHIVE_LOG_LAST_UPLOAD_FILE `  
S3에 업로드된 마지막 아카이브 로그를 나타냅니다.

`ARCHIVE_LOG_LAST_UPLOAD_FILE_TIME`  
로그 파일이 아카이빙된 시간을 나타냅니다.

`ARCHIVE_LOG_COPY_STATUS`  
아카이브 로그 복사본의 상태를 표시합니다.  
UPLOADING: 아카이브 로그 파일이 S3에 업로드되고 있음을 나타냅니다.  
CONFIGURATION\$1ERROR: 주의가 필요한 구성 문제가 있음을 나타냅니다.  
자세한 오류를 보려면 Db 인스턴스에 대한 RDS 이벤트 메시지를 확인하세요. 이벤트 메시지는 [Amazon RDS 이벤트 보기](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ListEvents.html)에서 볼 수 있습니다.

### 응답 예제
<a name="db2-udf-list-databases-response-examples"></a>

다음 응답 예시는 데이터베이스 목록과 데이터베이스가 만들어진 시간을 보여줍니다. `rdsadmin`은 Amazon RDS가 관리하고 출력에 항상 표시되는 데이터베이스입니다.

```
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                                         0 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         -                            -                                 -
...
```

## rdsadmin.list\$1modifiable\$1db\$1params
<a name="db2-udf-list-modi-db-params"></a>

수정 가능한 모든 데이터베이스 구성 파라미터의 목록을 반환합니다.

### 구문
<a name="db2-udf-list-modi-db-params-syntax"></a>

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

### 사용 노트
<a name="db2-udf-list-modi-db-params-usage-notes"></a>

이 사용자 정의 함수는 수정 가능한 데이터베이스 파라미터의 선택된 목록을 표시합니다. 이러한 파라미터는 저장 프로시저 [rdsadmin.update\$1db\$1param](db2-sp-managing-databases.md#db2-sp-update-db-param)을 사용하여 업데이트할 수 있습니다.

이 목록에 포함되지 않은 데이터베이스 파라미터는 제한되어 있으며 수정할 수 없습니다.

### 응답
<a name="db2-udf-list-modi-db-params-response"></a>

`rdsadmin.list_modifiable_db_params` 사용자 정의 함수는 다음 열을 반환합니다.

`PARAM_NAME`  
수정할 수 있는 파라미터의 이름입니다.

`DEFAULT_VALUE`  
데이터베이스 생성 시 기본 파라미터 값입니다.

`RESTART_REQUIRED`  
데이터베이스 재시작이 필요한지 여부입니다.  
 Y = 예, 데이터베이스 재시작이 필요합니다.  
 N = 아니요, 데이터베이스 재시작이 필요 없습니다.

### 응답 예제
<a name="db2-udf-list-modi-db-params-response-examples"></a>

다음은 예상 출력의 샘플(일부 발췌) 목록입니다.

```
PARAM_NAME             DEFAULT_VALUE RESTART_REQUIRED
---------------------- ------------- ----------------
ACT_SORTMEM_LIMIT      NONE          N
ARCHRETRYDELAY         20            N
AUTHN_CACHE_DURATION   3             N
AUTHN_CACHE_USERS      0             N
AUTO_CG_STATS          OFF           N
...
```