

# 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`  
データベースの機能が ENABLED か DISABLED かを表示します。

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