一般的なデータベースタスク
RDS for Db2 DB インスタンスでデータベースを作成、削除、または復元できます。データベースを作成、削除、または復元するには、マスターユーザーが使用できない上位レベルの SYSADM 権限が必要です。代わりに、Amazon RDS ストアドプロシージャを使用します。
また、モニタリング、メンテナンス、データベースに関する情報の収集など、一般的な管理タスクを実行することもできます。
トピック
データベースを作成する
RDS for Db2 DB インスタンスでデータベースを作成するには、rdsadmin.create_database ストアドプロシージャを呼び出します。詳細については、IBM Db2 ドキュメントの「CREATE DATABASE コマンド
注記
db2_compatibility_vector パラメータを変更する場合は、データベースを作成する前に変更します。詳細については、「db2_compatibility_vector パラメータの設定」を参照してください。
データベースを作成する
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、
rdsadminデータベースに接続します。次の例で、master_usernameとmaster_passwordを自分の情報に置き換えます。db2 "connect to rdsadmin usermaster_usernameusingmaster_password" -
rdsadmin.create_databaseを呼び出してデータベースを作成します。詳細については、「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.create_databaseを呼び出して作成します。各 Db2 DB インスタンスには、最大 50 個のデータベースを含めることができます。詳細については、「rdsadmin.create_database」を参照してください。db2 "call rdsadmin.create_database('database_name')" -
(オプション) 次のいずれかの方法を使用して、データベースが作成されたことを確認します。
-
rdsadmin.list_databasesを呼び出します。詳細については、「rdsadmin.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"
-
データベース設定の構成
RDS for Db2 DB インスタンスのデータベースの設定を構成するには、rdsadmin.set_configuration ストアドプロシージャを呼び出します。例えば、復元オペレーション中に作成するバッファまたはバッファマニピュレータの数を設定できます。
データベース設定の構成方法
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、
rdsadminデータベースに接続します。次の例で、master_usernameとmaster_passwordを自分の情報に置き換えます。db2 "connect to rdsadmin usermaster_usernameusingmaster_password" -
(オプション)
rdsadmin.show_configurationを呼び出して、現在の構成設定を確認します。詳細については、「rdsadmin.show_configuration」を参照してください。db2 "call rdsadmin.show_configuration('name')" -
rdsadmin.set_configurationを呼び出して、データベースの設定を構成します。詳細については、「rdsadmin.set_configuration」を参照してください。db2 "call rdsadmin.set_configuration( 'name', 'value')"
データベースのパラメータの修正
Amazon RDS for Db2 は、データベースマネージャー設定パラメータ、レジストリ変数、データベース設定パラメータの 3 種類のパラメータを使用します。最初の 2 つのタイプはパラメータグループで管理でき、最後のタイプは rdsadmin.update_db_param ストアドプロシージャで更新できます。
注記
既存のパラメータの値のみ変更できます。RDS for Db2 がサポートしていない新しいパラメータを追加することはできません。
これらのパラメータとその値を変更する方法の詳細については、「Amazon RDS for Db2 パラメータ」を参照してください。
ログの保持を設定
Amazon RDS が RDS for Db2 データベースのログファイルを保持する期間を設定するには、rdsadmin.set_archive_log_retention ストアドプロシージャを呼び出します。
データベースのログの保持の設定方法
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、
rdsadminデータベースに接続します。次の例で、master_usernameとmaster_passwordを自分の情報に置き換えます。db2 "connect to rdsadmin usermaster_usernameusingmaster_password" -
(オプション)
rdsadmin.show_archive_log_retentionを呼び出して、現在の設定でログの保持を確認します。詳細については、「rdsadmin.show_archive_log_retention」を参照してください。db2 "call rdsadmin.show_archive_log_retention( ?, 'database_name')" -
rdsadmin.set_archive_log_retentionを呼び出して、データベースのログ保持を設定します。詳細については、「rdsadmin.set_archive_log_retention」を参照してください。db2 "call rdsadmin.set_archive_log_retention( ?, 'database_name', 'archive_log_retention_hours')"
ログ情報の一覧表示
使用された合計ストレージサイズなど、アーカイブログファイルの詳細を一覧表示するには、rdsadmin.list_archive_log_information ストアドプロシージャを呼び出します。
データベースのログ情報を一覧表示するには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、
rdsadminデータベースに接続します。次の例で、master_usernameとmaster_passwordを自分の情報に置き換えます。db2 "connect to rdsadmin usermaster_usernameusingmaster_password" -
rdsadmin.list_archive_log_informationを呼び出して、ログファイル情報のリストを返します。詳細については、「rdsadmin.list_archive_log_information」を参照してください。db2 "call rdsadmin.list_archive_log_information( ?, 'database_name')"
きめ細かなアクセス制御 (FGAC) の使用
きめ細かなアクセス制御コマンドを使用して RDS for Db2 DB インスタンスのデータベース内のテーブルデータへのアクセスを制御するには、rdsadmin.fgac_command ストアドプロシージャを呼び出します。FGAC を使用して、ユーザーロールまたはデータ属性に基づいてデータへのアクセスを制限できます。例えば、データの種類や特定の医療プロバイダーに基づいて、患者の医療データへのアクセスを制限できます。
きめ細かなアクセス制御を使用してデータベース内のテーブルデータへのアクセスを制御するには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、
rdsadminデータベースに接続します。次の例で、master_usernameとmaster_passwordを自分の情報に置き換えます。db2 "connect to rdsadmin usermaster_usernameusingmaster_password" -
rdsadmin.fgac_commandを呼び出して、さまざまなきめ細かなアクセス制御コマンドを実行します。詳細については、「rdsadmin.fgac_command」を参照してください。db2 "call rdsadmin.fgac_command( ?, 'database_name', 'fgac_command')"
データベースの非アクティブ化
RDS for Db2 DB インスタンスのデータベースを非アクティブ化するには、rdsadmin.deactivate_database ストアドプロシージャを呼び出します。
デフォルトでは、Amazon RDS は RDS for Db2 DB インスタンスでデータベースを作成するときに、データベースをアクティブ化します。使用頻度の低いデータベースを非アクティブ化して、メモリリソースを節約できます。
データベースを非アクティブ化するには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、
rdsadminデータベースに接続します。次の例で、master_usernameとmaster_passwordを自分の情報に置き換えます。db2 "connect to rdsadmin usermaster_usernameusingmaster_password" -
rdsadmin.deactivate_databaseを呼び出してデータベースを非アクティブ化します。詳細については、「rdsadmin.deactivate_database」を参照してください。db2 "call rdsadmin.deactivate_database( ?, 'database_name')"
データベースのアクティブ化
スタンドアロン RDS for Db2 DB インスタンスのデータベースをアクティブ化するには、rdsadmin.activate_database ストアドプロシージャを呼び出します。
デフォルトでは、Amazon RDS は RDS for Db2 DB インスタンスでデータベースを作成するときに、データベースをアクティブ化します。使用頻度の低いデータベースを非アクティブ化してメモリリソースを節約したり、後でそのデータベースをアクティブ化したりできます。
データベースをアクティブ化するには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、
rdsadminデータベースに接続します。次の例で、master_usernameとmaster_passwordを自分の情報に置き換えます。db2 "connect to rdsadmin usermaster_usernameusingmaster_password" -
rdsadmin.activate_databaseを呼び出してデータベースをアクティブ化します。詳細については、「rdsadmin.activate_database」を参照してください。db2 "call rdsadmin.activate_database( ?, 'database_name')"
データベースの再アクティブ化
レプリカソースの 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 インスタンスのデータベースを再アクティブ化することもできます。詳細については、「データベースの非アクティブ化」および「データベースのアクティブ化」を参照してください。
データベースを再アクティブ化するには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、
rdsadminデータベースに接続します。次の例で、master_usernameとmaster_passwordを自分の情報に置き換えます。db2 "connect to rdsadmin usermaster_usernameusingmaster_password" -
rdsadmin.reactivate_databaseを呼び出してデータベースを再アクティブ化します。詳細については、「rdsadmin.reactivate_database」を参照してください。db2 "call rdsadmin.reactivate_database( ?, 'database_name')"
データベースの削除
RDS for Db2 DB インスタンスからデータベースを削除するには、rdsadmin.drop_database ストアドプロシージャを呼び出します。詳細については、「IBM Db2 ドキュメント」の「データベースの削除
注記
特定の条件が満たされた場合にのみ、ストアドプロシージャを呼び出してデータベースを削除できます。詳細については、「rdsadmin.drop_database の 使用に関する注意事項」を参照してください。
データベースを削除するには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、
rdsadminデータベースに接続します。次の例で、master_usernameとmaster_passwordを自分の情報に置き換えます。db2 "connect to rdsadmin usermaster_usernameusingmaster_password" -
rdsadmin.drop_databaseを呼び出してデータベースを削除します。詳細については、「rdsadmin.drop_database」を参照してください。db2 "call rdsadmin.drop_database('database_name')"
データベースのバックアップ
RDS for Db2 DB インスタンスのデータベースを Amazon S3 にバックアップするには、rdsadmin.backup_database ストアドプロシージャを呼び出します。詳細については、「IBM Db2 ドキュメント」の「BACKUP DATABASE command
注記
このストアドプロシージャでは、Amazon S3 との統合を使用します。続行する前に、統合が設定されていることを確認してください。詳細については、「Amazon RDS for Db2 DB インスタンスと Amazon S3 の統合」を参照してください。
データベースをバックアップするには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、
rdsadminデータベースに接続します。次の例で、master_usernameとmaster_passwordを自分の情報に置き換えます。db2 "connect to rdsadmin usermaster_usernameusingmaster_password" -
S3 の VPC ゲートウェイエンドポイントを作成します。S3 用の VPC ゲートウェイエンドポイントが既にある場合は、ステップ 4 に進みます。
RDS for Db2 DB インスタンスから Amazon S3 と対話できるようにするには、プライベートサブネットが使用する VPC と Amazon S3 ゲートウェイエンドポイントが必要です。詳細については、「ステップ 1: これにより、Amazon S3 用の VPC ゲートウェイエンドポイントを作成する」を参照してください。
-
S3 の VPC ゲートウェイエンドポイントを確認します。詳細については、「ステップ 2: Amazon S3 の VPC ゲートウェイエンドポイントが存在することを確認する」を参照してください。
-
rdsadmin.backup_databaseを呼び出してデータベースをバックアップします。詳細については、「rdsadmin.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')" -
接続を終了します。
terminate -
(オプション) バックアップファイルが
s3_prefix/dbi_resource_id/db_nameで Amazon S3 バケットにアップロードされたことを確認します。ファイルがs3_prefix/dbi_resource_id/db_nameに表示されない場合は、データベースのバックアップのステータスを確認して問題を特定します。詳細については、「rdsadmin.get_task_status」を参照してください。特定された問題を解決できない場合は、AWS サポートにお問い合わせください。 -
(オプション) Amazon S3 へのバックアップが完了したら、バックアップを RDS for Db2 DB インスタンスまたはローカルサーバーなどの別の場所に復元できます。RDS for Db2 DB インスタンスに復元する方法については、「データベースの復元」を参照してください。
データベースの復元
Amazon S3 バケットのデータベースを RDS for Db2 DB インスタンスに移動するには、rdsadmin.restore_database ストアドプロシージャを呼び出します。詳細については、IBM Db2 ドキュメントの「RESTORE DATABASE コマンド
データベースを復元するには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、
rdsadminデータベースに接続します。次の例で、master_usernameとmaster_passwordを自分の情報に置き換えます。db2 "connect to rdsadmin usermaster_usernameusingmaster_password" -
(オプション)
rdsadmin.show_configurationを呼び出して復元オペレーションを最適化するには、現在の設定を確認します。詳細については、「rdsadmin.show_configuration」を参照してください。db2 "call rdsadmin.show_configuration('name')" -
rdsadmin.set_configurationを呼び出して、復元オペレーションを最適化するように設定します。これらの値を明示的に設定すると、大量のデータを含むデータベースを復元する際のパフォーマンスを向上させることができます。詳細については、「rdsadmin.set_configuration」を参照してください。db2 "call rdsadmin.set_configuration( 'name', 'value')" -
rdsadmin.restore_databaseを呼び出してデータベースを復元します。詳細については、「rdsadmin.restore_database」を参照してください。db2 "call rdsadmin.restore_database( ?, 'database_name', 's3_bucket_name', 's3_prefix',restore_timestamp, 'backup_type')" -
(オプション) データベースが復元されたことを、
rdsadmin.list_databasesを呼び出して確認し、そのデータベースがリストにあるかをチェックします。詳細については、「rdsadmin.list_databases」を参照してください。 -
rdsadmin.rollforward_databaseを呼び出して、データベースをオンラインにし、追加のトランザクションログを適用します。詳細については、「rdsadmin.rollforward_database」を参照してください。db2 "call rdsadmin.rollforward_database( ?, 'database_name', 's3_bucket_name',s3_prefix, 'rollforward_to_option', 'complete_rollforward')" -
(オプション) rdsadmin.rollforward_status ストアドプロシージャを呼び出して、
rdsadmin.rollforward_databaseストアドプロシージャのステータスを確認します。 -
前のステップで
complete_rollforwardをFALSEに設定した場合は、rdsadmin.complete_rollforwardを呼び出してデータベースをオンラインに戻す必要があります。詳細については、「rdsadmin.complete_rollforward」を参照してください。db2 "call rdsadmin.complete_rollforward( ?, 'database_name')" -
(オプション) rdsadmin.rollforward_status ストアドプロシージャを呼び出して、
rdsadmin.complete_rollforwardストアドプロシージャのステータスを確認します。
データベースのリスト化
Amazon RDS for Db2 で実行中のすべてのデータベースを一覧表示するには、rdsadmin.list_databases ユーザー定義関数を呼び出します。
データベースを一覧表示するには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、
rdsadminデータベースに接続します。次の例で、master_usernameとmaster_passwordを自分の情報に置き換えます。db2 "connect to rdsadmin usermaster_usernameusingmaster_password" -
rdsadmin.list_databasesを呼び出してデータベースを一覧表示します。詳細については、「rdsadmin.list_databases」を参照してください。db2 "select * from table(rdsadmin.list_databases())"
データベースに関する情報の収集
RDS for Db2 DB インスタンスのデータベースに関する情報を収集するには、rdsadmin.db2pd_command ストアドプロシージャを呼び出します。この情報は、データベースのモニタリングや問題のトラブルシューティングに役立ちます。
データベースに関する情報を収集するには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、
rdsadminデータベースに接続します。次の例で、master_usernameとmaster_passwordを自分の情報に置き換えます。db2 "connect to rdsadmin usermaster_usernameusingmaster_password" -
rdsadmin.db2pd_commandを呼び出して、データベースに関する情報を収集します。詳細については、「rdsadmin.db2pd_command」を参照してください。db2 "call rdsadmin.db2pd_command('db2pd_cmd')"
データベースからのアプリケーションの強制削除
アプリケーションを RDS for Db2 DB インスタンスのデータベースから強制的にオフにするには、rdsadmin.force_application ストアドプロシージャを呼び出します。データベースのメンテナンスを実行する前に、アプリケーションをデータベースから強制的にオフにします。
データベースからアプリケーションを強制的に削除するには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、
rdsadminデータベースに接続します。次の例で、master_usernameとmaster_passwordを自分の情報に置き換えます。db2 "connect to rdsadmin usermaster_usernameusingmaster_password" -
rdsadmin.force_applicationを呼び出して、アプリケーションをデータベースから強制的に削除します。詳細については、「rdsadmin.force_application」を参照してください。db2 "call rdsadmin.force_application( ?, 'applications')"
パフォーマンスレポートの生成
プロシージャまたはスクリプトを使用して、パフォーマンスレポートを生成できます。手順の使用方法については、 IBM Db2 ドキュメントの「DBSUMMARY procedure ‐ Generate a summary report of system and application performance metrics
Db2 では ~sqllib/sample/perf ディレクトリに db2mon.sh ファイルを含めます。スクリプトを実行すると、低コストで広範な SQL メトリクスレポートが生成されます。db2mon.sh ファイルおよび関連するスクリプトファイルをダウンロードするには、IBM db2-samples GitHubリポジトリの perf
スクリプトを使用してパフォーマンスレポートを生成するには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、Db2 データベースに接続します。次の例で、
master_usernameとmaster_passwordを自分の情報に置き換えます。db2 connect to rdsadminusermaster_usernameusingmaster_password -
rdsadmin.create_bufferpoolを呼び出して、ページサイズが 4096 のdb2monbpという名前のバッファプールを作成します。詳細については、「rdsadmin.create_bufferpool」を参照してください。db2 "call rdsadmin.create_bufferpool('database_name','db2monbp',4096)" -
rdsadmin.create_tablespaceを呼び出して、db2monbpバッファプールを使用するdb2montmptbspという名前の一時テーブルスペースを作成します。詳細については、「rdsadmin.create_tablespace」を参照してください。db2 "call rdsadmin.create_tablespace('database_name',\ 'db2montmptbsp','db2monbp',4096,1000,100,'T')" -
db2mon.shスクリプトを開き、データベースへの接続に関する行を変更します。-
次の行を削除します。
db2 -v connect to $dbName -
前のステップの行を次の行に置き換えます。次の例では、
master_usernameとmaster_passwordを RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードに置き換えます。db2 -v connect to $dbName usermaster_usernameusingmaster_password -
次の行を削除します。
db2 -v create bufferpool db2monbp db2 -v create user temporary tablespace db2montmptbsp bufferpool db2monbp db2 -v drop tablespace db2montmptbsp db2 -v drop bufferpool db2monbp
-
-
db2mon.shスクリプトを実行して、指定した間隔でレポートを出力します。次の例では、absolute_pathをスクリプトファイルへの完全なパスに、rds_database_aliasをデータベースの名前に、secondsをレポート生成間の秒数 (0~3600) に置き換えます。absolute_path/db2mon.shrds_database_aliasseconds| tee -a db2mon.out例
次の例は、スクリプトファイルが
perfディレクトリの下のhomeディレクトリにあることを示しています。/home/db2inst1/sqllib/samples/perf/db2mon.shrds_database_aliasseconds| tee -a db2mon.out -
db2mon.shファイル用に作成されたバッファプールとテーブルスペースを削除します。次の例では、master_usernameとmaster_passwordを RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードに置き換えます。database_nameをデータベースの名前に置き換えます。詳細については、「rdsadmin.drop_tablespace」および「rdsadmin.drop_bufferpool」を参照してください。db2 connect to rdsadmin usermaster_usernameusingmaster_passworddb2 "call rdsadmin.drop_tablespace('database_name','db2montmptbsp')" db2 "call rdsadmin.drop_bufferpool('database_name','db2monbp')"