一般的なデータベースタスク - Amazon Relational Database Service

一般的なデータベースタスク

RDS for Db2 DB インスタンスでデータベースを作成、削除、または復元できます。データベースを作成、削除、または復元するには、マスターユーザーが使用できない上位レベルの SYSADM 権限が必要です。代わりに、Amazon RDS ストアドプロシージャを使用します。

また、モニタリング、メンテナンス、データベースに関する情報の収集など、一般的な管理タスクを実行することもできます。

データベースを作成する

RDS for Db2 DB インスタンスでデータベースを作成するには、rdsadmin.create_database ストアドプロシージャを呼び出します。詳細については、IBM Db2 ドキュメントの「CREATE DATABASE コマンド」を参照してください。

注記

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

データベースを作成する
  1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、rdsadmin データベースに接続します。次の例で、master_usernamemaster_password を自分の情報に置き換えます。

    db2 "connect to rdsadmin user master_username using master_password"
  2. rdsadmin.create_database を呼び出してデータベースを作成します。詳細については、「rdsadmin.create_database」を参照してください。

    db2 "call rdsadmin.create_database('database_name')"
  3. (オプション) 作成する各データベースを、rdsadmin.create_database を呼び出して作成します。各 Db2 DB インスタンスには、最大 50 個のデータベースを含めることができます。詳細については、「rdsadmin.create_database」を参照してください。

    db2 "call rdsadmin.create_database('database_name')"
  4. (オプション) 次のいずれかの方法を使用して、データベースが作成されたことを確認します。

    • 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 ストアドプロシージャを呼び出します。例えば、復元オペレーション中に作成するバッファまたはバッファマニピュレータの数を設定できます。

データベース設定の構成方法
  1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、rdsadmin データベースに接続します。次の例で、master_usernamemaster_password を自分の情報に置き換えます。

    db2 "connect to rdsadmin user master_username using master_password"
  2. (オプション) rdsadmin.show_configuration を呼び出して、現在の構成設定を確認します。詳細については、「rdsadmin.show_configuration」を参照してください。

    db2 "call rdsadmin.show_configuration('name')"
  3. 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 ストアドプロシージャを呼び出します。

データベースのログの保持の設定方法
  1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、rdsadmin データベースに接続します。次の例で、master_usernamemaster_password を自分の情報に置き換えます。

    db2 "connect to rdsadmin user master_username using master_password"
  2. (オプション) rdsadmin.show_archive_log_retention を呼び出して、現在の設定でログの保持を確認します。詳細については、「rdsadmin.show_archive_log_retention」を参照してください。

    db2 "call rdsadmin.show_archive_log_retention( ?, 'database_name')"
  3. 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 ストアドプロシージャを呼び出します。

データベースのログ情報を一覧表示するには
  1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、rdsadmin データベースに接続します。次の例で、master_usernamemaster_password を自分の情報に置き換えます。

    db2 "connect to rdsadmin user master_username using master_password"
  2. rdsadmin.list_archive_log_information を呼び出して、ログファイル情報のリストを返します。詳細については、「rdsadmin.list_archive_log_information」を参照してください。

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

データベースの非アクティブ化

RDS for Db2 DB インスタンスのデータベースを非アクティブ化するには、rdsadmin.deactivate_database ストアドプロシージャを呼び出します。

デフォルトでは、Amazon RDS は RDS for Db2 DB インスタンスでデータベースを作成するときに、データベースをアクティブ化します。使用頻度の低いデータベースを非アクティブ化して、メモリリソースを節約できます。

データベースを非アクティブ化するには
  1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、rdsadmin データベースに接続します。次の例で、master_usernamemaster_password を自分の情報に置き換えます。

    db2 "connect to rdsadmin user master_username using master_password"
  2. 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 インスタンスでデータベースを作成するときに、データベースをアクティブ化します。使用頻度の低いデータベースを非アクティブ化してメモリリソースを節約したり、後でそのデータベースをアクティブ化したりできます。

データベースをアクティブ化するには
  1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、rdsadmin データベースに接続します。次の例で、master_usernamemaster_password を自分の情報に置き換えます。

    db2 "connect to rdsadmin user master_username using master_password"
  2. rdsadmin.activate_database を呼び出してデータベースをアクティブ化します。詳細については、「rdsadmin.activate_database」を参照してください。

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

データベースの再アクティブ化

データベースを再アクティブ化するには、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 インスタンスのデータベースを再アクティブ化することもできます。詳細については、「データベースの非アクティブ化」および「データベースのアクティブ化」を参照してください。

データベースを再アクティブ化するには
  1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、rdsadmin データベースに接続します。次の例で、master_usernamemaster_password を自分の情報に置き換えます。

    db2 "connect to rdsadmin user master_username using master_password"
  2. 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 の 」を参照してください。

データベースを削除するには
  1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、rdsadmin データベースに接続します。次の例で、master_usernamemaster_password を自分の情報に置き換えます。

    db2 "connect to rdsadmin user master_username using master_password"
  2. rdsadmin.drop_database を呼び出してデータベースを削除します。詳細については、「rdsadmin.drop_database」を参照してください。

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

データベースの復元

Amazon S3 バケットのデータベースを RDS for Db2 DB インスタンスに移動するには、rdsadmin.restore_database ストアドプロシージャを呼び出します。詳細については、IBM Db2 ドキュメントの「RESTORE DATABASE コマンド」を参照してください。

データベースを復元するには
  1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、rdsadmin データベースに接続します。次の例で、master_usernamemaster_password を自分の情報に置き換えます。

    db2 "connect to rdsadmin user master_username using master_password"
  2. (オプション) rdsadmin.show_configuration を呼び出して復元オペレーションを最適化するには、現在の設定を確認します。詳細については、「rdsadmin.show_configuration」を参照してください。

    db2 "call rdsadmin.show_configuration('name')"
  3. rdsadmin.set_configuration を呼び出して、復元オペレーションを最適化するように設定します。これらの値を明示的に設定すると、大量のデータを含むデータベースを復元する際のパフォーマンスを向上させることができます。詳細については、「rdsadmin.set_configuration」を参照してください。

    db2 "call rdsadmin.set_configuration( 'name', 'value')"
  4. rdsadmin.restore_database を呼び出してデータベースを復元します。詳細については、「rdsadmin.restore_database」を参照してください。

    db2 "call rdsadmin.restore_database( ?, 'database_name', 's3_bucket_name', 's3_prefix', restore_timestamp, 'backup_type')"
  5. (オプション) データベースが復元されたことを、rdsadmin.list_databases を呼び出して確認し、そのデータベースがリストにあるかをチェックします。詳細については、「rdsadmin.list_databases」を参照してください。

  6. rdsadmin.rollforward_database を呼び出して、データベースをオンラインにし、追加のトランザクションログを適用します。詳細については、「rdsadmin.rollforward_database」を参照してください。

    db2 "call rdsadmin.rollforward_database( ?, 'database_name', 's3_bucket_name', s3_prefix, 'rollforward_to_option', 'complete_rollforward')"
  7. 前のステップで complete_rollforwardFALSE に設定した場合は、rdsadmin.complete_rollforward を呼び出してデータベースをオンラインに戻す必要があります。詳細については、「rdsadmin.complete_rollforward」を参照してください。

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

データベースのリスト化

Amazon RDS for Db2 で実行中のすべてのデータベースを一覧表示するには、rdsadmin.list_databases ユーザー定義関数を呼び出します。

データベースを一覧表示するには
  1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、rdsadmin データベースに接続します。次の例で、master_usernamemaster_password を自分の情報に置き換えます。

    db2 "connect to rdsadmin user master_username using master_password"
  2. rdsadmin.list_databases を呼び出してデータベースを一覧表示します。詳細については、「rdsadmin.list_databases」を参照してください。

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

データベースに関する情報の収集

RDS for Db2 DB インスタンスのデータベースに関する情報を収集するには、rdsadmin.db2pd_command ストアドプロシージャを呼び出します。この情報は、データベースのモニタリングや問題のトラブルシューティングに役立ちます。

データベースに関する情報を収集するには
  1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、rdsadmin データベースに接続します。次の例で、master_usernamemaster_password を自分の情報に置き換えます。

    db2 "connect to rdsadmin user master_username using master_password"
  2. rdsadmin.db2pd_command を呼び出して、データベースに関する情報を収集します。詳細については、「rdsadmin.db2pd_command」を参照してください。

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

データベースからのアプリケーションの強制削除

アプリケーションを RDS for Db2 DB インスタンスのデータベースから強制的にオフにするには、rdsadmin.force_application ストアドプロシージャを呼び出します。データベースのメンテナンスを実行する前に、アプリケーションをデータベースから強制的にオフにします。

データベースからアプリケーションを強制的に削除するには
  1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、rdsadmin データベースに接続します。次の例で、master_usernamemaster_password を自分の情報に置き換えます。

    db2 "connect to rdsadmin user master_username using master_password"
  2. 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 ディレクトリを参照してください。

スクリプトを使用してパフォーマンスレポートを生成するには
  1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、Db2 データベースに接続します。次の例で、master_usernamemaster_password を自分の情報に置き換えます。

    db2 connect to rdsadmin user master_username using master_password
  2. rdsadmin.create_bufferpool を呼び出して、ページサイズが 4096 の db2monbp という名前のバッファプールを作成します。詳細については、「rdsadmin.create_bufferpool」を参照してください。

    db2 "call rdsadmin.create_bufferpool('database_name','db2monbp',4096)"
  3. rdsadmin.create_tablespace を呼び出して、db2monbp バッファプールを使用する db2montmptbsp という名前の一時テーブルスペースを作成します。詳細については、「rdsadmin.create_tablespace」を参照してください。

    db2 "call rdsadmin.create_tablespace('database_name',\ 'db2montmptbsp','db2monbp',4096,1000,100,'T')"
  4. db2mon.sh スクリプトを開き、データベースへの接続に関する行を変更します。

    1. 次の行を削除します。

      db2 -v connect to $dbName
    2. 前のステップの行を次の行に置き換えます。次の例では、master_usernamemaster_password を RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードに置き換えます。

      db2 -v connect to $dbName user master_username using master_password
    3. 次の行を削除します。

      db2 -v create bufferpool db2monbp db2 -v create user temporary tablespace db2montmptbsp bufferpool db2monbp db2 -v drop tablespace db2montmptbsp db2 -v drop bufferpool db2monbp
  5. db2mon.sh スクリプトを実行して、指定した間隔でレポートを出力します。次の例では、absolute_path をスクリプトファイルへの完全なパスに、rds_database_alias をデータベースの名前に、seconds をレポート生成間の秒数 (0~3600) に置き換えます。

    absolute_path/db2mon.sh rds_database_alias seconds | tee -a db2mon.out

    次の例は、スクリプトファイルが perf ディレクトリの下の home ディレクトリにあることを示しています。

    /home/db2inst1/sqllib/samples/perf/db2mon.sh rds_database_alias seconds | tee -a db2mon.out
  6. db2mon.sh ファイル用に作成されたバッファプールとテーブルスペースを削除します。次の例では、master_usernamemaster_password を RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードに置き換えます。database_name をデータベースの名前に置き換えます。詳細については、「rdsadmin.drop_tablespace」および「rdsadmin.drop_bufferpool」を参照してください。

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