一般的なデータベースタスク
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 user
master_username
usingmaster_password
" -
rdsadmin.create_database
を呼び出してデータベースを作成します。詳細については、「rdsadmin.create_database」を参照してください。db2 "call rdsadmin.create_database('
database_name
')" -
(オプション) 作成する各データベースを、
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 user
master_username
usingmaster_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 user
master_username
usingmaster_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 user
master_username
usingmaster_password
" -
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 インスタンスでデータベースを作成するときに、データベースをアクティブ化します。使用頻度の低いデータベースを非アクティブ化して、メモリリソースを節約できます。
データベースを非アクティブ化するには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、
rdsadmin
データベースに接続します。次の例で、master_username
とmaster_password
を自分の情報に置き換えます。db2 "connect to rdsadmin user
master_username
usingmaster_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 user
master_username
usingmaster_password
" -
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 インスタンスのデータベースを再アクティブ化することもできます。詳細については、「データベースの非アクティブ化」および「データベースのアクティブ化」を参照してください。
データベースを再アクティブ化するには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、
rdsadmin
データベースに接続します。次の例で、master_username
とmaster_password
を自分の情報に置き換えます。db2 "connect to rdsadmin user
master_username
usingmaster_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 user
master_username
usingmaster_password
" -
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 コマンド
データベースを復元するには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、
rdsadmin
データベースに接続します。次の例で、master_username
とmaster_password
を自分の情報に置き換えます。db2 "connect to rdsadmin user
master_username
usingmaster_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
')" -
前のステップで
complete_rollforward
をFALSE
に設定した場合は、rdsadmin.complete_rollforward
を呼び出してデータベースをオンラインに戻す必要があります。詳細については、「rdsadmin.complete_rollforward」を参照してください。db2 "call rdsadmin.complete_rollforward( ?, '
database_name
')"
データベースのリスト化
Amazon RDS for Db2 で実行中のすべてのデータベースを一覧表示するには、rdsadmin.list_databases
ユーザー定義関数を呼び出します。
データベースを一覧表示するには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、
rdsadmin
データベースに接続します。次の例で、master_username
とmaster_password
を自分の情報に置き換えます。db2 "connect to rdsadmin user
master_username
usingmaster_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 user
master_username
usingmaster_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 user
master_username
usingmaster_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 rdsadmin
master_username
usingmaster_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 user
master_username
usingmaster_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_alias
seconds
| tee -a db2mon.out例
次の例は、スクリプトファイルが
perf
ディレクトリの下のhome
ディレクトリにあることを示しています。/home/db2inst1/sqllib/samples/perf/db2mon.sh
rds_database_alias
seconds
| 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 user
master_username
usingmaster_password
db2 "call rdsadmin.drop_tablespace('database_name
','db2montmptbsp')" db2 "call rdsadmin.drop_bufferpool('database_name
','db2monbp')"