Amazon RDS for Microsoft SQL Server データベースのログファイル - Amazon Relational Database Service

Amazon RDS for Microsoft SQL Server データベースのログファイル

Amazon RDS コンソール、AWS CLI、または RDS API を使用して、Microsoft SQL Server のエラーログ、エージェントログ、トレースファイル、ダンプファイルにアクセスできます。ファイルベースのデータベースログの表示、ダウンロード、モニタリングの詳細については、「Amazon RDS ログファイルのモニタリング」を参照してください。

保持期間スケジュール

ログファイルは、毎日、および DB インスタンスが再開されるたびにローテーションされます。以下は、Amazon RDS の Microsoft SQL Server ログの保持期間スケジュールです。

ログタイプ 保持期間スケジュール

エラーログ

最大 30 のエラーログを保持します。Amazon RDS は 7 日を経過したエラーログを削除する場合があります。

エージェントログ

最大 10 のエージェントログを保持します。Amazon RDS は 7 日を経過したエージェントログを削除する場合があります。

トレースファイル

トレースファイルは、DB インスタンスのトレースファイル保持期間に応じて保持されます。トレースファイルのデフォルトの保持期間は 7 日です。DB インスタンスのトレースファイル保持期間を変更するには、「トレースファイルおよびダンプファイルの保持期間を設定する」を参照してください。

ダンプファイル

ダンプファイルは、DB インスタンスのダンプファイル保持期間に応じて保持されます。ダンプファイルのデフォルトの保持期間は 7 日です。DB インスタンスのダンプファイル保持期間を変更するには、「トレースファイルおよびダンプファイルの保持期間を設定する」を参照してください。

rds_read_error_log プロシージャを使用して SQL Server エラーログを表示する

エラーログおよびエージェントログを表示するには、Amazon RDS ストアドプロシージャ rds_read_error_log を使用できます。詳細については、「エラーログとエージェントログの表示」を参照してください。

Amazon CloudWatch Logs への SQL Server ログの発行

Amazon RDS for SQL Server ではエラーおよびエージェントログを直接 Amazon CloudWatch Logs に発行できます。CloudWatch Logs を使用してログデータを分析し、CloudWatch を使用してアラームを作成し、メトリクスを表示することができます。

CloudWatch Logs では、次のことを実行できます。

  • ログは、ユーザーが定義する保持期間で耐久性の高いストレージ領域に保存します。

  • ログデータを検索しフィルタリングします。

  • アカウント間でログデータを共有します。

  • ログを Amazon S3 にエクスポートします。

  • Amazon OpenSearch Service へのデータのストリーミング

  • Amazon Kinesis Data Streams を使用してログデータをリアルタイムで処理します。詳細については、「Amazon Managed Service for Apache Flink for Apache Flink デベロッパーガイド」内の「Amazon CloudWatch Logs の使用」を参照してください。

Amazon RDS は、各 SQL Server データベースログを、ロググループの別個のデータストリーミングとして発行します。例えば、エージェントログとエラーログを発行した場合、エラーデータは /aws/rds/instance/my_instance/error ロググループのエラーログストリームに保存され、エージェントログデータは /aws/rds/instance/my_instance/agent ロググループに保存されます。

マルチ AZ DB インスタンスの場合、Amazon RDS はデータベースログをロググループ内の 2 つの独立したストリームとして公開します。例えば、エラーログを発行する場合、エラーデータは /aws/rds/instance/my_instance.node1/error および /aws/rds/instance/my_instance.node2/error のエラーログストリームに保存されます。ログストリームはフェイルオーバー中でも変更されず、各ノードのエラーログストリームには、プライマリインスタンスまたはセカンダリインスタンスのエラーログを含めることができます。マルチ AZ では、ログストリームは自動的に作成され、/aws/rds/instance/my_instance/rds-events は DB インスタンスのフェイルオーバーなどのイベントデータを保存します。

注記

SQL Server ログの CloudWatch Logs への発行はデフォルトでは有効にされていません。トレースファイルおよびダンプファイルの発行はサポートされていません。SQL Server ログの CloudWatch Logs への発行は、アジアパシフィック (香港) を除くすべてのリージョンでサポートされています。

AWS Management Console から CloudWatch Logs に SQL Server DB ログを公開するには
  1. Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[データベース] を選択し、変更する DB インスタンスを選択します。

  3. [Modify] を選択します。

  4. [ログのエクスポート] セクションで、CloudWatch Logs に公開するログを選択します。

    エージェントログエラーログ、またはその両方を選択できます。

  5. [続行] を選択し、概要ページで [Modify DB Instance] (DB インスタンスの変更) を選択します。

Oracle ログを発行するには、以下のパラメータを指定して modify-db-instance コマンドを使用します。

  • --db-instance-identifier

  • --cloudwatch-logs-export-configuration

注記

--cloudwatch-logs-export-configuration オプションへの変更は常に DB インスタンスに即時適用されます。それで、--apply-immediately--no-apply-immediately オプションは効果がありません。

以下のコマンドを使用して SQL Server ログを発行することもできます。

次の例では、CloudWatch Logs の発行を有効にした SQL Server DB インスタンスを作成します。--enable-cloudwatch-logs-exports 値は、erroragent、または両方を含むことができる JSON 文字列です。

Linux、macOS、Unix の場合:

aws rds create-db-instance \ --db-instance-identifier mydbinstance \ --enable-cloudwatch-logs-exports '["error","agent"]' \ --db-instance-class db.m4.large \ --engine sqlserver-se

Windows の場合:

aws rds create-db-instance ^ --db-instance-identifier mydbinstance ^ --enable-cloudwatch-logs-exports "[\"error\",\"agent\"]" ^ --db-instance-class db.m4.large ^ --engine sqlserver-se
注記

Windows コマンドプロンプトを使用する場合、JSON コードでは、二重引用符 (") の前にバックスラッシュ (\) を付けてエスケープする必要があります。

次の例では、ログファイルが CloudWatch Logs に発行されるよう既存の SQL Server DB インスタンスを変更します。--cloudwatch-logs-export-configuration 値は JSON オブジェクトです。このオブジェクトのキーは EnableLogTypes であり、その値は erroragent、または両方を含む文字列の配列です。

Linux、macOS、Unix の場合:

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["error","agent"]}'

Windows の場合:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --cloudwatch-logs-export-configuration "{\"EnableLogTypes\":[\"error\",\"agent\"]}"
注記

Windows コマンドプロンプトを使用する場合、JSON コードでは、二重引用符 (") の前にバックスラッシュ (\) を付けてエスケープする必要があります。

次の例では、既存の SQL Server DB インスタンスを変更して、ログファイルを CloudWatch Logs に発行できないようにします。--cloudwatch-logs-export-configuration 値は JSON オブジェクトです。このオブジェクトのキーは DisableLogTypes であり、その値は erroragent、または両方を含む文字列の配列です。

Linux、macOS、Unix の場合:

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --cloudwatch-logs-export-configuration '{"DisableLogTypes":["agent"]}'

Windows の場合:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --cloudwatch-logs-export-configuration "{\"DisableLogTypes\":[\"agent\"]}"
注記

Windows コマンドプロンプトを使用する場合、JSON コードでは、二重引用符 (") の前にバックスラッシュ (\) を付けてエスケープする必要があります。