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/
のエラーログストリームに保存されます。ログストリームはフェイルオーバー中でも変更されず、各ノードのエラーログストリームには、プライマリインスタンスまたはセカンダリインスタンスのエラーログを含めることができます。マルチ AZ では、ログストリームは自動的に作成され、my_instance.node2
/error/aws/rds/instance/
は DB インスタンスのフェイルオーバーなどのイベントデータを保存します。my_instance
/rds-events
注記
SQL Server ログの CloudWatch Logs への発行はデフォルトでは有効にされていません。トレースファイルおよびダンプファイルの発行はサポートされていません。SQL Server ログの CloudWatch Logs への発行は、アジアパシフィック (香港) を除くすべてのリージョンでサポートされています。
AWS Management Console から CloudWatch Logs に SQL Server DB ログを公開するには
Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[データベース] を選択し、変更する DB インスタンスを選択します。
-
[Modify] を選択します。
-
[ログのエクスポート] セクションで、CloudWatch Logs に公開するログを選択します。
エージェントログ、エラーログ、またはその両方を選択できます。
-
[続行] を選択し、概要ページで [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
値は、error
、agent
、または両方を含むことができる JSON 文字列です。
Linux、macOS、Unix の場合:
aws rds create-db-instance \ --db-instance-identifier
mydbinstance
\ --enable-cloudwatch-logs-exports '["error","agent"]' \ --db-instance-classdb.m4.large
\ --enginesqlserver-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
であり、その値は error
、agent
、または両方を含む文字列の配列です。
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
であり、その値は error
、agent
、または両方を含む文字列の配列です。
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 コードでは、二重引用符 (") の前にバックスラッシュ (\) を付けてエスケープする必要があります。