RDS for Db2 のデータベースのストアドプロシージャ - Amazon Relational Database Service

RDS for Db2 のデータベースのストアドプロシージャ

このトピックで説明した組み込みのストアドプロシージャは、Amazon RDS for Db2 のデータベースを管理します。これらのプロシージャを実行する場合、マスターユーザーはまず rdsadmin データベースに接続する必要があります。

これらのストアドプロシージャは、さまざまなタスクで使用されます。これはすべてを網羅したリストではありません。

構文、パラメータ、使用上の注意、例については、以下の組み込みストアドプロシージャを参照してください。

rdsadmin.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')"

パラメータ

注記

このストアドプロシージャでは、必須パラメータの組み合わせは検証されません。rdsadmin.get_task_status を呼び出すと、database_codesetdatabase_territorydatabase_collation の組み合わせが無効であるため、ユーザー定義関数がエラーを返す可能性があります。詳細については、 IBM Db2 ドキュメントの「Choosing the code page, territory, and collation for your database」を参照してください。

以下のパラメータは必須です。

database_name

作成するデータベースの名前。データ型は varchar です。

以下のパラメータはオプションです。

database_page_size

データベースのデフォルトのページサイズ。有効な値は、409681921638432768 です。データ型は integer です。デフォルトは 8192 です。

重要

Amazon RDS は、4 KiB、8 KiB、16 KiB のページでの書き込みの原子性をサポートしています。一方、32 KiB のページには、Torn Writes (一部のデータしかディスクに書き込まれない) というリスクがあります。32 KiB のページを使用している場合は、ポイントインタイムリカバリと自動バックアップを有効にすることをお勧めします。有効にしない場合、データの不整合があるページから復元できなくなるリスクが発生します。詳細については、「バックアップの概要」および「Amazon RDS の DB インスタンスを特定の時点に復元する」を参照してください。

database_code_set

データベースのコードセット。データ型は varchar です。デフォルトは UTF-8 です。

database_territory

データベースの 2 文字の国コード。データ型は varchar です。デフォルトは US です。

database_collation

データベースに保存されている文字列をソートして比較する方法を決定する照合順序。データ型は varchar です。

有効な値:

  • COMPATIBILITY – IBM Db2 バージョン 2 の照合順序。

  • EBCDIC_819_037 – ISO ラテンコードページ、照合、CCSID 037 (EBCDIC 米国英語)。

  • EBCDIC_819_500 – ISO ラテンコードページ、照合、CCSID 500 (EBCDIC 国際標準)。

  • EBCDIC_850_037 – ASCII ラテンコードページ、照合、CCSID 037 (EBCDIC 米国英語)。

  • EBCDIC_850_500 – ASCII ラテンコードページ、照合、CCSID 500 (EBCDIC 国際標準)。

  • EBCDIC_932_5026 – ASCII 日本語コードページ、照合、CCSID 5026 (EBCDIC 米国英語)。

  • EBCDIC_932_5035 – ASCII 日本語コードページ、照合、CCSID 5035 (EBCDIC 国際標準)。

  • EBCDIC_1252_037 – Windows ラテンコードページ、照合、CCSID 037 (EBCDIC 米国英語)。

  • EBCDIC_1252_500 – Windows ラテンコードページ、照合、CCSID 500 (EBCDIC 国際標準)。

  • IDENTITY - デフォルトの照合順序。文字列はバイト単位で比較されます。

  • IDENTITY_16BIT – Compatibility Encoding Scheme for UTF-16: 8-bit (CESU-8) 照合順序。詳細については、Unicode Consortium ウェブサイトの「Unicode Technical Report #26」を参照してください。

  • NLSCHAR – タイ語のコードページ (CP874) でのみ使用されます。

  • SYSTEMSYSTEM を使用する場合、データベースは database_codesetdatabase_territory で自動的に照合順序を使用します。

デフォルトは IDENTITY です。

さらに、RDS for Db2 は照合順序のグループ language-aware-collation および locale-sensitive-collation をサポートしています。詳細については、 IBM Db2 ドキュメントの「Choosing a collation for a Unicode database」を参照してください。

database_autoconfigure_str

AUTOCONFIGURE コマンド構文 ('AUTOCONFIGURE APPLY DB' など)。データ型は varchar です。デフォルトは空の文字列または null です。

詳細については、IBM Db2 ドキュメントの「AUTOCONFIGURE コマンド」を参照してください。

database_non-restrictive

データベース内のデフォルトの権限と特権の付与。データ型は varchar です。デフォルトは N です。

有効な値:

  • N – 作成されたデータベースは制限されており、権限や特権を付与しません。

  • Y – 作成されたデータベースは制限がなく、特別なグループ PUBLIC にアクセス許可のセットを付与します。詳細については、「IBM Db2 ドキュメント」の「Default privileges granted on creating a database」を参照してください。

使用に関する注意事項

db2_compatibility_vector パラメータを変更する場合は、データベースを作成する前に変更します。詳細については、「db2_compatibility_vector パラメータの設定」を参照してください。

特別な考慮事項:

  • Db2 インスタンスに送信される CREATE DATABASE コマンドでは、RESTRICTIVE オプションを使用します。

  • RDS for Db2 は AUTOMATIC STORAGE テーブルスペースのみを使用します。

  • RDS for Db2 では、 NUMSEGSDFT_EXTENT_SZ にデフォルト値が使用されます。

  • RDS for Db2 ではストレージ暗号化が使用され、データベース暗号化はサポートされていません。

これらのコマンドの詳細については、 IBM Db2 ドキュメントの「CREATE DATABASE command」を参照してください。

rdsadmin.create_database を呼び出す前に、rdsadmin データベースに接続する必要があります。次の例では、master_usernamemaster_password を RDS for Db2 DB インスタンス情報に置き換えます。

db2 connect to rdsadmin user master_username using master_password

データベースの作成ステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。

rdsadmin.create_database を呼び出すときに返されるエラーメッセージについては、「ストアドプロシージャエラー」を参照してください。

次の例では、日本向けの database_code_set パラメータ、database_territory パラメータ、および database_collation パラメータを適切に組み合わせた TESTJP というデータベースを作成します。

db2 "call rdsadmin.create_database('TESTJP', 4096, 'IBM-437', 'JP', 'SYSTEM')"

rdsadmin.deactivate_database

データベースを非アクティブ化します。

構文

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

パラメータ

次のアウトプットパラメータが必要です。

?

エラーメッセージを出力するパラメータマーカー。このパラメータは、? のみを受け入れます。

次の入力パラメータが必要です。

database_name

非アクティブ化するデータベースの名前。データ型は varchar です。

使用に関する注意事項

データベースを非アクティブ化してメモリリソースを節約したり、他のデータベース設定を変更したりできます。非アクティブ化されたデータベースをオンラインに戻すには、rdsadmin.activate_database ストアドプロシージャを呼び出します。

rdsadmin.deactivate_database ストアドプロシージャを呼び出して、レプリケーション中にソース DB インスタンスのデータベースを非アクティブ化することはできません。

データベースの非アクティブ化ステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。

rdsadmin.deactivate_database を呼び出すときに返されるエラーメッセージについては、「ストアドプロシージャエラー」を参照してください。

次の例では、TESTDB という名前のデータベースを非アクティブ化します。

db2 "call rdsadmin.deactivate_database(?, 'TESTDB')"

rdsadmin.activate_database

データベースをアクティブ化します。

rdsadmin.reactivate_databaserdsadmin.activate_database との違いについては、「使用に関する注意事項」を参照してください。

構文

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

パラメータ

次のアウトプットパラメータが必要です。

?

エラーメッセージを出力するパラメータマーカー。このパラメータは、? のみを受け入れます。

次の入力パラメータが必要です。

database_name

非アクティブ化するデータベースの名前。データ型は varchar です。

使用に関する注意事項

すべてのデータベースは、作成時にデフォルトでアクティブ化されます。スタンドアロン DB インスタンスのデータベースを非アクティブ化してメモリリソースを節約したり、他のデータベース設定を変更したりする場合は、rdsadmin.activate_database ストアドプロシージャを呼び出してデータベースを再度アクティブ化します。

このストアドプロシージャは、スタンドアロン DB インスタンスにあり、rdsadmin.deactivate_database ストアドプロシージャを呼び出して非アクティブ化されたデータベースのみをアクティブ化します。レプリカソース DB インスタンスでデータベースをアクティブ化するには、rdsadmin.reactivate_database ストアドプロシージャを呼び出す必要があります。

データベースのアクティブ化ステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。

rdsadmin.activate_database を呼び出すときに返されるエラーメッセージについては、「ストアドプロシージャエラー」を参照してください。

次の例では、TESTDB という名前のデータベースをアクティブ化します。

db2 "call rdsadmin.activate_database(?, 'TESTDB')"

rdsadmin.reactivate_database

データベースを再アクティブ化します。

rdsadmin.activate_databaserdsadmin.reactivate_database との違いについては、「使用に関する注意事項」を参照してください。

構文

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

パラメータ

次のアウトプットパラメータが必要です。

?

エラーメッセージを出力するパラメータマーカー。このパラメータは、? のみを受け入れます。

次の入力パラメータが必要です。

database_name

再アクティブ化するデータベースの名前。データ型は varchar です。

使用に関する注意事項

rdsadmin.reactivate_database ストアドプロシージャを呼び出すと、このストアドプロシージャはまず rdsadmin.deactivate_database ストアドプロシージャを呼び出してデータベースを非アクティブ化し、次に rdsadmin.activate_database ストアドプロシージャを呼び出してデータベースをアクティブ化します。

データベース設定を変更した後、RDS for Db2 DB インスタンスのデータベースを再アクティブ化する必要が生じる場合があります。データベースを再アクティブ化する必要があるかどうかを判断するには、データベースに接続して db2 get db cfg show detail を実行します。

スタンドアロン DB インスタンスのデータベースの場合、rdsadmin.reactivate_database ストアプロシージャを使用してデータベースを再アクティブ化できます。または、rdsadmin.deactivate_database ストアドプロシージャを既に呼び出している場合は、rdsadmin.activate_database ストアドプロシージャを代わりに呼び出すことができます。

レプリカソース DB インスタンスのデータベースの場合、rdsadmin.reactivate_database ストアプロシージャを使用してデータベースを再アクティブ化する必要があります。

データベースの再アクティブ化ステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。

rdsadmin.reactivate_database を呼び出すときに返されるエラーメッセージについては、「ストアドプロシージャエラー」を参照してください。

次の例では、TESTDB という名前のデータベースを再アクティブ化します。

db2 "call rdsadmin.reactivate_database(?, 'TESTDB')"

rdsadmin.drop_database

データベースを削除します。

構文

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

パラメータ

以下のパラメータは必須です。

database_name

削除するデータベースの名前。データ型は varchar です。

使用に関する注意事項

次の条件が満たされた場合にのみ、rdsadmin.drop_database を呼び出してデータベースを削除できます。

  • Amazon RDS コンソールまたは AWS CLI を使用して RDS for Db2 DB インスタンスを作成したときにデータベースの名前を指定しなかった。詳細については、「DB インスタンスの作成」を参照してください。

  • rdsadmin.create_database ストアドプロシージャを呼び出してデータベースを作成した。

  • rdsadmin.restore_database ストアドプロシージャを呼び出して、オフラインまたはバックアップされたイメージからデータベースを復元した。

rdsadmin.drop_database を呼び出す前に、rdsadmin データベースに接続する必要があります。次の例では、master_usernamemaster_password を RDS for Db2 DB インスタンス情報に置き換えます。

db2 connect to rdsadmin user master_username using master_password

データベースの削除ステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。

rdsadmin.drop_database を呼び出すときに返されるエラーメッセージについては、「ストアドプロシージャエラー」を参照してください。

次の例では、TESTDB という名前のデータベースを削除します。

db2 "call rdsadmin.drop_database('TESTDB')"

rdsadmin.update_db_param

データベースパラメータを更新します。

構文

db2 "call rdsadmin.update_db_param( 'database_name', 'parameter_to_modify', 'changed_value', 'restart_database')"

パラメータ

以下のパラメータは必須です。

database_name

タスクの実行対象のデータベース名。データ型は varchar です。

parameter_to_modify

変更するパラメータの名前。データ型は varchar です。詳細については、「Amazon RDS for Db2 パラメータ」を参照してください。

changed_value

パラメータの値を変更した後の値。データ型は varchar です。

次のパラメータはオプションです。

restart_database

再起動が必要な場合に RDS がデータベースを再起動するかどうかを指定します。データ型は varchar です。logprimary および logfilsiz を変更するには、このパラメータを 'YES' に設定します。

使用に関する注意事項

データベースパラメータの更新ステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。

rdsadmin.update_db_param を呼び出すときに返されるエラーメッセージについては、「ストアドプロシージャエラー」を参照してください。

例 1: パラメータを更新する

次の例では、TESTDB というデータベースで archretrydelay パラメータを 100 に更新します。

db2 "call rdsadmin.update_db_param( 'TESTDB', 'archretrydelay', '100')"

例 2: オブジェクトの検証を回避する

次の例では、依存関係のチェックを回避するために、TESTDB というデータベースにおいて作成したオブジェクトの検証を延期します。

db2 "call rdsadmin.update_db_param( 'TESTDB', 'auto_reval', 'deferred_force')"

rdsadmin.set_configuration

データベースの特定の設定を構成します。

構文

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

パラメータ

以下のパラメータは必須です。

.name

構成設定の名前。データ型は varchar です。

の値を保持します

構成設定の値。データ型は varchar です。

使用に関する注意事項

次の表は、rdsadmin.set_configuration で制御できる構成設定を示しています。

名前 説明

RESTORE_DATABASE_NUM_BUFFERS

復元オペレーション中に作成するバッファの数。この値は、DB インスタンスクラスの合計メモリサイズよりも小さくする必要があります。この設定を構成しないと、Db2 は復元オペレーション中に使用する値を決定します。詳細については、「IBM Db2 ドキュメント」の「RESTORE DATABASE コマンド」を参照してください。

RESTORE_DATABASE_PARALLELISM

復元オペレーション中に作成するバッファマニピュレータの数。この値は、DB インスタンスの vCPU 数の 2 倍未満にする必要があります。この設定を構成しないと、Db2 は復元オペレーション中に使用する値を決定します。詳細については、「IBM Db2 ドキュメント」の「RESTORE DATABASE コマンド」を参照してください。

RESTORE_DATABASE_NUM_MULTI_PATHS

Amazon S3 オペレーションからの復元中に使用するパス (または I/O ストリーム) の数。この設定を使用するには、複数のバックアップファイルが必要です。この値は、複数のデータベースバックアップファイルを並行して復元するため、大量のデータを含むデータベースを復元する際のパフォーマンスを向上させることができます。データベースバックアップファイルの数と一致するようにこの値を設定することをお勧めします。詳細については、「IBM Db2 ドキュメント」の「BACKUP DATABASE command」を参照してください。

USE_STREAMING_RESTORE

最初にバックアップ全体を RDS for Db2 DB インスタンスにダウンロードしてから抽出するのではなく、復元中にバックアップデータを直接ストリーミングするかどうかを指定します。USE_STREAMING_RESTORETRUE に設定すると、ストレージ要件が大幅に削減され、復元パフォーマンスが向上します。この設定には、IBM Db2 エンジンバージョン 11.5.9.0.sb00063198.r1 以降と、データベースの Elastic Network Interface (ENI) を介した Amazon S3 接続が必要です。詳細については、「IBM Db2 ドキュメント」の「Remote storage」を参照してください。

例 1: 作成するバッファの数を指定する

次の例では、RESTORE_DATABASE_NUM_BUFFERS150 に設定します。

db2 "call rdsadmin.set_configuration( 'RESTORE_DATABASE_NUM_BUFFERS', '150')"

例 2: 作成するバッファマニピュレータの数を指定する

次の例では、RESTORE_DATABASE_PARALLELISM8 に設定します。

db2 "call rdsadmin.set_configuration( 'RESTORE_DATABASE_PARALLELISM', '8')"

例 3: 復元時に使用するパスまたは I/O ストリームの数を指定する

次の例では、RESTORE_DATABASE_NUM_MULTI_PATHS5 に設定します。

db2 "call rdsadmin.set_configuration( 'RESTORE_DATABASE_NUM_MULTI_PATHS', '5')"

例 4: バックアップデータをストリーミングするための復元の設定

次の例では、USE_STREAMING_RESTORETRUE に設定します。

db2 "call rdsadmin.set_configuration( 'USE_STREAMING_RESTORE', 'TRUE')"

rdsadmin.show_configuration

ストアドプロシージャ rdsadmin.set_configuration を使用して指定できる現在の設定を返します。

構文

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

パラメータ

次のパラメータはオプションです。

.name

情報を返す対象の構成設定の名前。データ型は varchar です。

有効な設定名は次のとおりです。

  • RESTORE_DATABASE_NUM_BUFFERS – 復元オペレーション中に作成するバッファの数。

  • RESTORE_DATABASE_PARALLELISM – 復元オペレーション中に作成するバッファマニピュレータの数。

  • RESTORE_DATABASE_NUM_MULTI_PATHS – Amazon S3 オペレーションからの復元中に使用するパス (または I/O ストリーム) の数。

  • USE_STREAMING_RESTORE – 最初にバックアップデータ全体を RDS for Db2 DB インスタンスにダウンロードしてから抽出するのではなく、復元中にバックアップデータを直接ストリーミングするかどうかを指定します。

使用に関する注意事項

構成設定の名前を指定しないと、rdsadmin.show_configuration は、ストアドプロシージャ rdsadmin.set_configuration を使用して設定できるすべての構成設定に関する情報を返します。

次の例では、現在の RESTORE_DATABASE_PARALLELISM 設定に関する情報を返します。

db2 "call rdsadmin.show_configuration( 'RESTORE_DATABASE_PARALLELISM')"

rdsadmin.backup_database

RDS for Db2 DB インスタンスから Amazon S3 バケットにデータベースをバックアップします。

構文

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

パラメータ

次のアウトプットパラメータが必要です。

?

エラーメッセージを出力するパラメータマーカー。このパラメータは、? のみを受け入れます。

次の入力パラメータが必要となります。

database_name

バックアップする RDS for Db2 DB インスタンスのターゲットデータベースの名前。データ型は varchar です。

データベースは DB インスタンスに存在する必要があります。rdsadmin データベースをバックアップすることはできません。

s3_bucket_name

バックアップを保存する Amazon S3 バケットの名前。データ型は varchar です。

S3 バケットは、rdsadmin.backup_database を呼び出す前に存在し、バックアップする RDS for Db2 DB インスタンスのターゲットデータベースと同じ AWS リージョンにあり、DB インスタンスにアタッチされた IAM ロールを介してアクセスできる必要があります。

s3_prefix

RDS for Db2 がバックアップファイルをアップロードする Amazon S3 へのパスのプレフィックス。データ型は varchar です。

プレフィックスは 1024 文字に限定されます。先頭または末尾にスラッシュ (/) を含めることはできません。IBM から Amazon S3 へのストリーミングには制限があるため、プレフィックスにサブディレクトリを含めることをお勧めします。

ファイル管理を向上させるために、RDS for Db2 は s3_prefix の後に追加のディレクトリを作成します。RDS for Db2 は、すべてのバックアップファイルを s3_prefix/dbi_resource_id/db_name にアップロードします。num_files1 より大きく設定した場合、db_name ディレクトリには複数のバックアップファイルが含まれます。

バックアップファイルの Amazon S3 の場所の例を次に示します。この例では、backups/dailys3_prefix パラメータに設定された値です。

backups/daily/db-5N7FXOY4GDP7RG2NSH2ZTAI2W4/SAMPLEDB
backup_type

バックアップ中にデータベースを使用できるかどうかを決定するバックアップのタイプ。データ型は varchar です。

有効な値:

  • OFFLINE – バックアップ中はデータベースを使用できません。このタイプは高速ですが、ダウンタイムが発生します。

  • ONLINE – データベースはバックアップ中も引き続き使用できます。デフォルトで、ONLINEINCLUDE LOGS に設定されています。

以下のパラメータはオプションです。

compression_option

バックアップ時間、CPU 使用率、ストレージコストに影響する圧縮アルゴリズムのタイプ。データ型は varchar です。デフォルトは NONE です。

有効な値:

  • NONE – 最大ファイルサイズ、最小の CPU 使用率、最低のストレージコスト。

  • STANDARD – 標準 Db2 圧縮。libdb2compr.so を使用します。

  • ZLIB – 拡張された Db2 圧縮。libdb2zcompr.so を使用しますが、CPU を大量に消費し、ストレージコストが最も高くなります。

util_impact_priority

バックアップがシステムリソースに与える影響を制御する設定。データ型は integer です。有効な値: 1100 (低から高)。デフォルトは 50 です。

値を小さくすると、バックアップがシステムリソースに与える影響は軽減されますが、データベースのバックアップにかかる時間が長くなる可能性があります。値を大きくすると、データベースのバックアップを迅速に完了できますが、他のオペレーションに影響する可能性があります。実際の影響は、システム全体の使用率と util_impact_lim 設定によって異なります。パラメータグループで util_impact_lim 設定を表示および変更できます。詳細については、「Amazon RDS for Db2 パラメータ」を参照してください。

num_files

Amazon S3 への並列アップロードストリームの数。データ型は integer です。有効値: 1256

このパラメータは、Amazon RDS が自動的に計算するデフォルトのバックアップパフォーマンスを確認した後にのみ設定することをお勧めします。値を大きくすると、特に高帯域幅接続では、大規模なバックアップのパフォーマンスが向上する可能性がありますが、特定の時点では、値を大きくするとパフォーマンスが低下します。また、使用可能なシステムリソースとネットワーク容量も考慮してください。

parallelism

バックアップユーティリティが並行して読み取ることができるテーブルスペースの数。データ型は integer です。有効値: 1256

このパラメータは、Db2 エンジンが最適な値として自動的に計算するバックアップパフォーマンスをデフォルトで確認した後にのみ設定することをお勧めします。このパラメータを設定すると、Amazon RDS は使用可能なプロセッサに対して検証し、処理能力が不十分な場合はバックアップリクエストを実行しません。

num_buffers

使用するバッファの数。データ型は integer です。有効値: 1268435456

このパラメータは、Amazon RDS がメモリに基づいて自動的に計算するデフォルトのバックアップパフォーマンスを確認した後にのみ設定することをお勧めします。このパラメータを設定すると、Amazon RDS は使用可能なメモリに対して検証し、使用可能なメモリが不足している場合はバックアップリクエストを実行しません。複数の場所にバックアップする場合 (num_files1 以上に設定されている)、バッファの数が多いほどパフォーマンスが向上する可能性があります。compression_optionNONE に設定しない場合、num_buffersparallelism を増やすことでパフォーマンスを向上させることができます。

使用に関する注意事項

このストアドプロシージャは、Amazon S3 統合を使用してデータベースのバックアップを Amazon S3 バケットに直接ストリーミングする非同期バックアップタスクを作成します。ローカルサーバーからでも、RDS for Db2 DB インスタンスからでもバックアップを作成し、Amazon S3 にストリーミングして、任意の場所に復元することができます。データベースを RDS for Db2 DB インスタンスに復元する方法については、「rdsadmin.restore_database」を参照してください。

ストアドプロシージャを呼び出す前に、以下の考慮事項を確認してください。

rdsadmin.backup_database を呼び出す前に、rdsadmin データベースに接続する必要があります。次の例では、master_usernamemaster_password を RDS for Db2 DB インスタンス情報に置き換えます。

db2 connect to rdsadmin user master_username using master_password

データベースをバックアップしたら、必ず接続を終了してください。

terminate

データベースのバックアップのステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。

rdsadmin.backup_database を呼び出すときに返されるエラーメッセージについては、「ストアドプロシージャエラー」を参照してください。

すべての例では、MYDB というデータベースを amzn-s3-demo-bucket という Amazon S3 バケットにバックアップし、s3_prefixbackups/daily に設定します。

例 #1: 使用率の中央値と単一のアップロードストリームでデータベースがオフラインで使用不可であることを指定する

次の例では、データベースはオフラインです。これは高速ですが、バックアップ中にデータベースが使用できないことを意味します。この例では、ファイルの圧縮を実行せず、システムリソースへの影響は中程度であり、Amazon S3 への単一のアップロードストリームを使用します。

db2 call "rdsadmin.backup_database( ?, 'MYDB', 'amzn-s3-demo-bucket', 'backups/daily', 'OFFLINE', 'NONE', 50, 1)"

例 #2: 拡張圧縮、使用率の中央値、少数の並列アップロードストリームを使用して、データベースをオンラインで使用可能に指定する

次の例では、データベースはオンラインであり、バックアップ中に使用できます。この例では、拡張圧縮を実行するため、ファイルサイズは小さくなりますが、CPU を大量に消費します。システムリソースへの影響の中央値をわずかに上回り、Amazon S3 への 5 つのアップロードストリームを使用します。

db2 call "rdsadmin.backup_database( ?, 'MYDB', 'amzn-s3-demo-bucket', 'backups/daily', 'ONLINE', 'ZLIB', 60, 5)"

例 #3: デフォルトとシステム計算を使用して、データベースがオフラインで使用できないことを指定する

次の例では、データベースはオフラインです。これは高速ですが、バックアップ中にデータベースが使用できないことを意味します。この例では、ファイルのデフォルトの圧縮を使用し、システムリソースに影響を及ぼします。また、RDS for Db2 では、Amazon S3 への並列アップロードストリームの数、並列で読み取るテーブルスペース、使用するバッファを計算できます。

db2 "call rdsadmin.backup_database( ?, 'MYDB', 'amzn-s3-demo-bucket', 'backups/daily', 'OFFLINE')"

例 #4: 圧縮なし、高使用率、カスタム計算で、データベースをオフラインで使用不可に指定する

次の例では、データベースはオフラインです。これは高速ですが、バックアップ中にデータベースが使用できないことを意味します。この例では、ファイルの圧縮は行わず、システムリソースに大きな影響を与え、Amazon S3 への 20 のアップロードストリームを使用します。並列に読み取るテーブルスペースの最大数を設定します。これにより、処理能力が不十分な場合にバックアップリクエストが失敗する可能性があります。また、使用するバッファの最大数も設定するため、メモリが不足している場合にバックアップリクエストが失敗する可能性があります。

db2 "call rdsadmin.backup_database( ?, 'MYDB', 'amzn-s3-demo-bucket', 'backups/daily', 'OFFLINE', 'NONE', 90, 20, 256, 268435456)"

rdsadmin.restore_database

Amazon S3 バケットから RDS for Db2 DB インスタンスにデータベースを復元します。

構文

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

パラメータ

次のアウトプットパラメータが必要です。

?

エラーメッセージを出力するパラメータマーカー。このパラメータは、? のみを受け入れます。

次の入力パラメータが必要となります。

database_name

RDS for Db2 で復元するターゲットデータベースの名前。データ型は varchar です。

例えば、ソースデータベース名が TESTDB である場合、database_nameNEWDB に設定すると、Amazon RDS はソースデータベースとして NEWDB を復元します。

s3_bucket_name

バックアップが保存されている Amazon S3 バケットの名前。データ型は varchar です。

s3_prefix

ダウンロード中のファイルマッチングに使用するプレフィックス。データ型は varchar です。

このパラメータが空の場合、Amazon S3 バケット内のすべてのファイルが処理されます。プレフィックスの例は、次のとおりです。

backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101
restore_timestamp

データベースバックアップイメージのタイムスタンプ。データ型は varchar です。

タイムスタンプはバックアップファイル名に含まれます。例えば、 20230615010101 はファイル名 SAMPLE.0.rdsdb.DBPART000.20230615010101.001 のタイムスタンプです。

backup_type

バックアップのタイプ。データ型は varchar です。有効な値: OFFLINEONLINE

ほぼゼロのダウンタイムで移行するには、ONLINE を使用します。詳細については、「Amazon RDS for Db2 のダウンタイムがほぼゼロの Linux から Linux への移行」を参照してください。

使用に関する注意事項

このストアドプロシージャを使用して、Db2 データベースを RDS for Db2 DB インスタンスに移行できます。詳細については、「AWS のサービスを使用して Db2 から Amazon RDS for Db2 にデータを移行する」を参照してください。このストアドプロシージャを使用して、同じデータベースの複数のコピーを異なるデータベース名で作成し、各コピーで同じ復元イメージを使用することもできます。

ストアドプロシージャを呼び出す前に、以下の考慮事項を確認してください。

  • データベースを復元する前に、バックアップとディスク上の元の Db2 データベースよりも大きいストレージスペースを RDS for Db2 DB インスタンス用にプロビジョンする必要があります。USE_STREAMING_RESTORE を有効にした場合、バックアップを復元すると、Amazon RDS はバックアップファイルを S3 バケットから RDS for Db2 DB インスタンスに直接ストリーミングします。USE_STREAMING_RESTORE を有効にしない場合、バックアップサイズとディスク上の元の Db2 データベースサイズの合計以上のストレージスペースを RDS for Db2 DB インスタンス用にプロビジョニングする必要があります。詳細については、「Insufficient disk space」を参照してください。

  • バックアップを復元すると、Amazon RDS は RDS for Db2 DB インスタンスのバックアップファイルを抽出します。各バックアップファイルは 5 TB 以下である必要があります。バックアップファイルが 5 TB を超える場合は、バックアップファイルを小さいファイルに分割する必要があります。

  • rdsadmin.restore_database ストアドプロシージャを使用してすべてのファイルを復元するには、ファイル名でタイムスタンプの後にファイル番号のサフィックスを含めません。例えば、s3_prefix backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101 は、以下のファイルを復元します。

    SAMPLE.0.rdsdb.DBPART000.20230615010101.001 SAMPLE.0.rdsdb.DBPART000.20230615010101.002 SAMPLE.0.rdsdb.DBPART000.20230615010101.003 SAMPLE.0.rdsdb.DBPART000.20230615010101.004 SAMPLE.0.rdsdb.DBPART000.20230615010101.005
  • RDS for Db2 は、非自動ストレージをサポートしていません。詳細については、「Tablespaces not restored」を参照してください。

  • RDS for Db2 は、フェンスされていないルーチンをサポートしていません。詳細については、「Non-fenced routines not allowed」を参照してください。

  • データベースの復元オペレーションのパフォーマンスを向上させるには、RDS で使用するバッファの数、バッファマニピュレータの数、および複数のバックアップパスの数を設定できます。ストレージの使用量を最適化し、パフォーマンスを向上させるために、Amazon S3 から直接バックアップをストリーミングすることもできます。現在の設定を確認するには、rdsadmin.show_configuration を使用します。設定を変更するには、rdsadmin.set_configuration を使用します。

データベースをオンラインにして、データベースを復元した後に追加のトランザクションログを適用するには、「rdsadmin.rollforward_database」を参照してください。

データベースの復元状況の確認については、「rdsadmin.get_task_status」を参照してください。

rdsadmin.restore_database を呼び出すときに返されるエラーメッセージについては、「ストアドプロシージャエラー」を参照してください。

次の例では、s3_prefix backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101 を持つ 1 つ以上のファイルでオフラインバックアップを復元します。

db2 "call rdsadmin.restore_database( ?, 'SAMPLE', 'amzn-s3-demo-bucket', 'backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101', 20230615010101, 'OFFLINE')"

rdsadmin.rollforward_database

rdsadmin.restore_database を呼び出して、データベースをオンラインにし、データベースを復元した後に追加のトランザクションログを適用します。

構文

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

パラメータ

次のアウトプットパラメータが必要です。

?

エラーメッセージを出力するパラメータマーカー。このパラメータは、? のみを受け入れます。

次の入力パラメータが必要となります。

database_name

オペレーションの実行対象のデータベースの名前。データ型は varchar です。

s3_bucket_name

バックアップが保存されている Amazon S3 バケットの名前。データ型は varchar です。

s3_prefix

ダウンロード中のファイルマッチングに使用するプレフィックス。データ型は varchar です。

このパラメータが空の場合、S3 バケット内のすべてのファイルがダウンロードされます。プレフィックスの例は次のとおりです。

backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101

次の入力パラメータは、オプションです。

rollforward_to_option

ロールフォワードするポイント。データ型は varchar です。有効な値: END_OF_LOGSEND_OF_BACKUP (タイムスタンプの形式は YYYY-MM-DD-HH.MM.SS)。デフォルトは END_OF_LOGS です。

complete_rollforward

ロールフォワードプロセスを完了するかどうかを指定します。データ型は varchar です。デフォルトは TRUE です。

TRUE の場合は、完了後、データベースはオンラインになり、アクセス可能になります。FALSE の場合は、データベースは ROLL-FORWARD PENDING 状態のままになります。

使用に関する注意事項

さまざまなシナリオにおいてオンプレミスで生成されたインクルードログを含むオンラインバックアップに rds.rollforward_database を使用できます。

シナリオ 1: データベースの復元、含まれているログのロールフォワード、データベースのオンライン化

rdsadmin.restore_database() が完了したら、例 1 の構文を使用して、トランザクションログを含むデータベースをオンラインにする。

シナリオ 2: データベースをオンラインにするが、含まれているログをロールフォワードしない。

rdsadmin.restore_database() が完了したら、例 2 の構文を使用して、トランザクションログなしでデータベースをオンラインにします。

シナリオ 3: バックアップに含まれるログをロールフォワードし、オンプレミスで生成された追加のトランザクションログを適用する

rdsadmin.restore_database() が完了したら、例 3 または例 4 の構文を使用して、データベースをオンラインにせずにログをロールフォワードします。

complete_rollforwardFALSE に設定すると、データベースは ROLL-FORWARD PENDING 状態になり、オフラインになります。データベースをオンラインにするには、rdsadmin.complete_rollforward を呼び出す必要があります。

データベースのロールフォワードステータスを確認する方法については、「rdsadmin.rollforward_status」を参照してください。

例 1: トランザクションログを含むデータベースをオンラインにする

次の例では、トランザクションログを使用してデータベースのオンラインバックアップにロールフォワードし、データベースをオンラインにします。

db2 "call rdsadmin.rollforward_database( ?, null, null, 'END_OF_LOGS', 'TRUE')"

例 2: トランザクションログなしでデータベースをオンラインにする

次の例では、トランザクションログなしでデータベースのオンラインバックアップにロールフォワードし、データベースをオンラインにします。

db2 "call rdsadmin.rollforward_database( ?, 'TESTDB', 'amzn-s3-demo-bucket', 'logsfolder/, 'END_OF_BACKUP', 'TRUE')"

例 3: トランザクションログを使用してデータベースをオンラインにしない

次の例では、トランザクションログを使用してデータベースのオンラインバックアップにロールフォワードします。ただし、データベースはオンラインにしません。

db2 "call rdsadmin.rollforward_database( ?, 'TESTDB', null, 'onlinebackup/TESTDB', 'END_OF_LOGS', 'FALSE')"

例 4: 追加のトランザクションログを使用してデータベースをオンラインにしない

次の例では、追加のトランザクションログを使用してデータベースのオンラインバックアップにロールフォワードします。ただし、データベースはオンラインにしません。

db2 "call rdsadmin.rollforward_database( ?, 'TESTDB', 'amzn-s3-demo-bucket', 'logsfolder/S0000155.LOG', 'END_OF_LOGS', 'FALSE')"

rdsadmin.rollforward_status

ROLLFORWARD DATABASE database_name QUERY STATUS の出力を返します。

構文

db2 "call rdsadmin.rollforward_status( ?, 'database_name')"

パラメータ

次のアウトプットパラメータが必要です。

?

エラーメッセージを出力するパラメータマーカー。このパラメータは、? のみを受け入れます。

次の入力パラメータが必要です。

database_name

オペレーションの実行対象のデータベースの名前。データ型は varchar です。

使用に関する注意事項

rdsadmin.rollforward_database を呼び出した後、rdsadmin.rollforward_status を呼び出して、データベースのロールフォワードのステータスを確認できます。

このストアドプロシージャのステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。

rdsadmin.complete_rollforward

データベースを ROLL-FORWARD PENDING 状態からオンラインにします。

構文

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

パラメータ

次のアウトプットパラメータが必要です。

?

エラーメッセージを出力するパラメータマーカー。このパラメータは、? のみを受け入れます。

次の入力パラメータが必要です。

database_name

オンラインにするデータベースの名前。データ型は varchar です。

使用に関する注意事項

complete_rollforwardFALSE に設定して rdsadmin.rollforward_database を呼び出すと、データベースは ROLL-FORWARD PENDING 状態になり、オフラインになります。ロールフォワードプロセスを完了し、データベースをオンラインにするには、rdsadmin.complete_rollforward を呼び出します。

ロールフォワードプロセスの完了のステータスを確認する方法については、「rdsadmin.rollforward_status」を参照してください。

次の例では、TESTDB データベースをオンラインにします。

db2 "call rdsadmin.complete_rollforward( ?, 'TESTDB')"

rdsadmin.db2pd_command

RDS for Db2 データベースに関する情報を収集します。

構文

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

パラメータ

次の入力パラメータが必要です。

db2pd_cmd

実行する db2pd コマンドの名前。データ型は varchar です。

パラメータはハイフンで始める必要があります。パラメータのリストについては、IBM Db2 ドキュメントの「db2pd - Db2 データベースのモニターおよびトラブルシューティングコマンド」を参照してください。

次のオプションはサポートされていません。

  • -addnode

  • -alldatabases

  • -alldbp

  • -alldbs

  • -allmembers

  • -alm_in_memory

  • -cfinfo

  • -cfpool

  • -command

  • -dbpartitionnum

  • -debug

  • -dump

  • -everything

  • -file | -o

  • -ha

  • -interactive

  • -member

  • -pages

    注記

    -pages summary がサポートされています。

  • -pdcollection

  • -repeat

  • -stack

  • -totalmem

file サブオプションはサポートされていません。例えば、db2pd -db testdb -tcbstats file=tcbstat.out

stacks オプションの使用はサポートされていません。例えば、db2pd -edus interval=5 top=10 stacks

使用に関する注意事項

このストアドプロシージャは、RDS for Db2 データベース のモニタリングとトラブルシューティングに役立つ情報を収集します。

ストアドプロシージャは、IBM db2pd ユーティリティを使用してさまざまなコマンドを実行します。db2pd ユーティリティには SYSADM 権限が必要です (RDS for Db2 マスターユーザーにはない権限です)。ただし、Amazon RDS ストアドプロシージャを使用すると、マスターユーザーはユーティリティを使用してさまざまなコマンドを実行できます。このユーティリティの詳細については、IBM Db2 ドキュメントの「db2pd - Db2 データベースのモニターおよびトラブルシューティングコマンド」を参照してください。

出力は最大 2 GB に制限されています。

データベースに関する情報の収集状況を確認する方法については、「rdsadmin.get_task_status」を参照してください。

例 1: DB インスタンスのアップタイムを返す

次の例は、RDS for Db2 DB インスタンスのアップタイムを返します。

db2 "call rdsadmin.db2pd_command('-')"

例 2: データベースのアップタイムを返す

次の例は、TESTDB という名前のデータベースのアップタイムを返します。

db2 "call rdsadmin.db2pd_command('-db TESTDB -')"

例 3: DB インスタンスのメモリ使用量を返す

次の例は、RDS for Db2 DB インスタンスのメモリ使用量を返します。

db2 "call rdsadmin.db2pd_command('-dbptnmem')"

例 4: DB インスタンスとデータベースのメモリセットを返す

次の例は、RDS for Db2 DB インスタンスとデータベース TESTDB のメモリセットを返します。

db2 "call rdsadmin.db2pd_command('-inst -db TESTDB -memsets')"

rdsadmin.force_application

RDS for Db2 データベースからアプリケーションを強制的に削除します。

構文

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

パラメータ

次のアウトプットパラメータが必要です。

?

エラーメッセージを出力するパラメータマーカー。このパラメータは、? のみを受け入れます。

次の入力パラメータが必要です。

アプリケーション

RDS for Db2 データベースから強制的に削除するアプリケーション。データ型は varchar です。有効な値: ALL または application_handle

複数のアプリケーションの名前はカンマで区切ります。例: 「application_handle_1, application_handle_2」。

使用に関する注意事項

このストアドプロシージャは、すべてのアプリケーションをデータベースから強制的に削除して、メンテナンスを実行できるようにします。

ストアドプロシージャは、IBM FORCE APPLICATION コマンドを使用します。FORCE APPLICATION コマンドには SYSADMSYSMAINT、または SYSCTRL 権限が必要です (RDS for Db2 マスターユーザーにはない権限です)。ただし、Amazon RDS ストアドプロシージャを使用すると、マスターユーザーはコマンドを使用できます。詳細については、IBM Db2 ドキュメントの「FORCE APPLICATION コマンド」を参照してください。

データベースからのアプリケーションの強制的な削除に関する状態を確認する方法については、「rdsadmin.get_task_status」を参照してください。

例 1: すべてのアプリケーションを指定する

次の例では、すべてのアプリケーションを RDS for Db2 データベースから強制的に削除します。

db2 "call rdsadmin.force_application( ?, 'ALL')"

例 2: 複数のアプリケーションを指定する

次の例では、RDS for Db2 データベースからアプリケーションハンドル 999188911192 を強制的に削除します。

db2 "call rdsadmin.force_application( ?, '9991, 8891, 1192')"

rdsadmin.set_archive_log_retention

指定した RDS for Db2 データベースのアーカイブログファイルを保持する時間 (時間単位) を設定します。

構文

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

パラメータ

次のアウトプットパラメータが必要です。

?

エラーメッセージを出力するパラメータマーカー。このパラメータは、? のみを受け入れます。

次の入力パラメータが必要となります。

database_name

アーカイブログの保持を設定するデータベースの名前。データ型は varchar です。

archive_log_retention_hours

アーカイブログファイルを保持する時間数。データ型は smallint です。デフォルトは 0 で、最大は 168 (7 日間) です。

値が 0 の場合、Amazon RDS はアーカイブログファイルを保持しません。

使用に関する注意事項

デフォルトでは、RDS for Db2 はログを 5 分間保持します。変更データキャプチャ (CDC) の AWS DMS や IBM Q Replication などのレプリケーションツールを使用する場合は、これらのツールでログ保持を 5 分以上設定することをお勧めします。

rdsadmin.show_archive_log_retention を呼び出すと、現在のアーカイブログ保持の設定を表示できます。

rdsadmin データベースに対してアーカイブログ保持の設定を構成することはできません。

例 1: 保持時間を設定する

次の例は、TESTDB というデータベースのアーカイブログ保持時間を 24 時間に設定しています。

db2 "call rdsadmin.set_archive_log_retention( ?, 'TESTDB', '24')"

例 2: 保持時間を無効にする

次の例では、TESTDB というデータベースのアーカイブログ保持を無効にします。

db2 "call rdsadmin.set_archive_log_retention( ?, 'TESTDB', '0')"

rdsadmin.show_archive_log_retention

指定したデータベースに関する現在のアーカイブログ保持の設定を返します。

構文

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

パラメータ

次のアウトプットパラメータが必要です。

?

エラーメッセージを出力するパラメータマーカー。このパラメータは、? のみを受け入れます。

次の入力パラメータが必要です。

database_name

アーカイブログ保持の設定を表示するデータベースの名前。データ型は varchar です。

次の例は、TESTDB というデータベースのアーカイブログ保持の設定を示しています。

db2 "call rdsadmin.show_archive_log_retention( ?, 'TESTDB')"

rdsadmin.list_archive_log_information

アーカイブログファイルのサイズ、作成日時、指定したデータベースの個々のログファイルの名前などの詳細を返します。また、データベース内のログファイルで使用される合計ストレージ量も返します。

構文

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

パラメータ

次のアウトプットパラメータが必要です。

?

エラーメッセージを出力するパラメータマーカー。このパラメータは、? のみを受け入れます。

次の入力パラメータが必要です。

database_name

アーカイブログ情報を一覧表示するデータベースの名前。データ型は varchar です。

次の例では、TESTDB というデータベースのアーカイブログ情報を返します。

db2 "call rdsadmin.list_archive_log_information( ?, 'TESTDB')"

rdsadmin.fgac_command

きめ細かなアクセス制御 (FGAC) コマンドを実行します。

構文

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

パラメータ

次のアウトプットパラメータが必要です。

?

エラーメッセージを出力するパラメータマーカー。このパラメータは、? のみを受け入れます。

次の入力パラメータが必要となります。

database_name

FGAC コマンドを実行するデータベースの名前。データ型は varchar です。

fgac_cmd

実行するきめ細かなアクセス制御コマンド。データ型は varchar です。

次のコマンドは有効です。

  • ALTER MASK – 行と列のアクセス制御 (RCAC) の既存の列マスクを変更します。

  • ALTER PERMISSION – RCAC の既存の行アクセス許可のプロパティを変更します。

  • ALTER SECURITY POLICY – RCAC の既存のセキュリティポリシーを変更します。

  • ALTER SECURITY LABEL – ラベルベースアクセス制御 (LBAC) の既存のセキュリティラベルのプロパティを変更します。

  • ALTER TABLE – RCAC または LBAC コントロールの追加など、テーブル構造を変更します。

  • CREATE MASK – RCAC の新しい列マスクを作成します。

  • CREATE PERMISSION – RCAC の新しい行アクセス許可を作成します。

  • CREATE SECURITY LABEL – LBAC の新しいセキュリティラベルを作成します。

  • CREATE SECURITY POLICY – RCAC の新しいセキュリティポリシーを作成します。

  • DROP MASK – 既存の列マスクを削除します。

  • DROP PERMISSION – 既存の行アクセス許可を削除します。

  • DROP SECURITY LABEL – LBAC からセキュリティラベルを削除します。

  • DROP SECURITY POLICY – 既存の RCAC セキュリティポリシーを削除します。

  • GRANT EXEMPTION ON RULE – ユーザーが特定の LBAC ルールをバイパスできるようにします。

  • GRANT SECURITY LABEL – LBAC セキュリティラベルをユーザーに割り当てます。

  • REVOKE EXEMPTION ON RULE – LBAC ルールからユーザーの免除を削除します。

  • REVOKE SECURITY LABEL – ユーザーから LBAC セキュリティラベルを削除します。

使用に関する注意事項

このストアドプロシージャは、RDS for Db2 DB インスタンスのデータベース内のテーブルデータへの行または列レベルでのアクセスを制御します。RDS for Db2 は、データベースで 2 種類の FGAC をサポートしています。

  • ラベルベースアクセス制御 (LBAC)

  • 行と列のアクセス制御 (RCAC)

ストアドプロシージャを呼び出す前に、以下の考慮事項を確認してください。

  • 一重引用符 (') をエスケープするには、追加の一重引用符を使用します。次の例は 'apple''banana' および 'fruit' をエスケープする方法を示しています。

    db2 "call rdsadmin.fgac_command( ?, 'testdb', 'CREATE SECURITY LABEL COMPONENT FRUITSET SET{''apple'',''banana''}')"
    db2 "call rdsadmin.fgac_command( ?, 'testdb', 'CREATE SECURITY LABEL COMPONENT FRUITTREE TREE(''fruit'' ROOT, ''apple'' UNDER ''fruit'', ''banana'' UNDER ''fruit'')')"
  • 角括弧 ([ ]) をエスケープするには、バックスラッシュ (\) を使用します。次の例は、[''apple'',''banana''] をエスケープする方法を示しています。

    db2 "call rdsadmin.fgac_command( ?, ' testdb', 'CREATE SECURITY LABEL COMPONENT FRUITARRAY ARRAY\[''apple'',''banana''\]')"

次の例はすべて、testdb というデータベースで FGAC コマンドを実行します。

例 1: FRUITSET という名前の新しいセキュリティラベルを作成する

db2 "call rdsadmin.fgac_command( ?, 'testdb', 'CREATE SECURITY LABEL COMPONENT FRUITSET SET{''apple'',''banana''}')"

例 2: EMP_ID が 3 未満に設定されている場合に有効になる EMP_ID 列の新しいマスクを作成する

db2 "call rdsadmin.fgac_command( ?, 'testdb', 'CREATE MASK id_MASK ON EMPLOYEE FOR COLUMN EMP_ID RETURN CASE WHEN (EMP_ID < 3) THEN EMP_ID ELSE NULL END ENABLE')"

例 3: SESSION_USERsecurity_user に設定されている場合に有効になる DEPARTMENT 列の新しいマスクを作成する

db2 "call rdsadmin.fgac_command( ?, 'testdb', 'CREATE MASK DEPARTMENT_MASK ON EMPLOYEE FOR COLUMN DEPARTMENT RETURN CASE WHEN SESSION_USER = ''security_user'' THEN DEPARTMENT ELSE NULL END ENABLE')"

例 4: treelabel という名前の新しいセキュリティラベルを作成する

db2 "call rdsadmin.fgac_command( ?, 'testdb', 'CREATE SECURITY LABEL COMPONENT treelabel TREE(''COMPANY'' ROOT, ''HR'' UNDER ''COMPANY'', ''FINANCE'' UNDER ''COMPANY'', ''IT'' UNDER ''COMPANY'')')"