

# Amazon RDS for SQL Server の msdb トランザクションログファイルの縮小
<a name="Appendix.SQLServer.CommonDBATasks.ShrinkMsdbLog"></a>

`msdb` システムデータベースのトランザクションログファイルが必要以上に大きくなった場合は、`rds_shrink_msdb_log_file` ストアドプロシージャを使用して縮小できます。ターゲットサイズは、ログファイルの現在のサイズより小さくする必要があります。プロシージャの実行時に DB インスタンスのダウンタイムはありません。

`rds_shrink_msdb_log_file` プロシージャには以下のパラメータがあります。



| パラメータ名 | データ型 | デフォルト | 必須 | 説明 | 
| --- | --- | --- | --- | --- | 
| `@log_file_name` | SYSNAME | NULL | 必須 | 圧縮する `msdb` トランザクションログファイルの論理名。 | 
| `@TargetSizeMB` | int | NULL | 必須 | ログファイルの新しいサイズ (メガバイト単位)。値は 0 より大きく、ログファイルの現在のサイズより小さくする必要があります。 | 

次の例では、`msdb` トランザクションログファイルの論理名と現在のサイズを取得します。

```
USE msdb;
GO

SELECT name, size * 8 / 1024 AS size_mb FROM sys.database_files WHERE type_desc = 'LOG';
GO
```

次の例では、`msdb` トランザクションログファイルを 30 MB に縮小します。この例では、`@log_file_name` 値 {{MSDBLog}} をログファイルの論理名に置き換え、`@TargetSizeMB` 値 {{30}} をターゲットサイズ (MB 単位) に置き換えます。

```
EXEC msdb.dbo.rds_shrink_msdb_log_file @log_file_name = N'{{MSDBLog}}', @TargetSizeMB = {{30}};
```

このプロシージャは、論理ファイル名と、縮小オペレーションの前後におけるファイルサイズ (メガバイト単位) を含む結果セットを返します。