sp_add_log_file_recover_suspect_db (Transact-SQL)

ログの空き容量が不足していたため (エラー 9002)、データベースの復旧を完了できなかったときに、ログファイルをファイル グループに追加します。ファイルが追加された後、sp_add_log_file_recover_suspect_db は未復旧の設定をオフにして、データベースの復旧を完了します。このパラメータは、ALTER DATABASE database_name ADD LOG FILE のパラメータと同じです。

重要な注意事項重要

このストアド プロシージャを使用する前に、「データ ディスク領域の不足に関するトラブルシューティング」で説明されている他の方法を検討してください。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

sp_add_log_file_recover_suspect_db [ @dbName= ] 'database' , 
    [ @name = ] 'logical_file_name' , 
    [ @filename= ] 'os_file_name' , 
    [ @size = ] 'size' , 
    [ @maxsize = ] 'max_size' , 
    [ @filegrowth = ] 'growth_increment'

引数

  • [ @dbName = ] 'database'
    データベースの名前を指定します。database のデータ型は sysname で、既定値はありません。

  • [ @name= ] 'logical_file_name'
    ファイルを参照する場合に SQL Server 2005 データベース エンジンで使用される名前を指定します。サーバー内で一意な名前を指定する必要があります。logical_file_name のデータ型は nvarchar(260) で、既定値はありません。

  • [ @filename = ] 'os_file_name'
    オペレーティング システムが使用するファイルのパスとファイル名を指定します。このファイルは、データベース エンジンがインストールされているサーバーに存在している必要があります。os_file_name のデータ型は nvarchar(260) で、既定値はありません。

  • [ @size= ] **'**size '
    ファイルの初期サイズを指定します。size のデータ型は nvarchar(20) で、既定値は NULL です。整数値を指定してください。小数点以下は指定できません。サフィックス MB、KB を使用してメガバイト、キロバイトを指定できます。既定の単位は MB です。最小値は 512 KB です。size を指定しない場合の既定値は 1 MB です。

  • [ @maxsize= ] **'**max_size '
    ファイルを拡張できる最大サイズを指定します。max_size のデータ型は nvarchar(20) で、既定値は NULL です。整数値を指定してください。小数点以下は指定できません。サフィックス MB、KB を使用してメガバイト、キロバイトを指定できます。既定の単位は MB です。

    max_size を指定しない場合、ファイルはディスクがいっぱいになるまで拡張されます。ディスク容量の上限まで近づくと、Microsoft Windows アプリケーション ログが管理者に対して警告を発します。

  • [ @filegrowth= ] **'**growth_increment '
    新しい領域が必要とされるたびにファイルに追加される領域の容量を指定します。growth_increment のデータ型は nvarchar(20) で、既定値は NULL です。値に 0 を指定した場合、ファイルの拡張は行われません。整数値を指定してください。小数点以下は指定できません。値は MB、KB、またはパーセント (%) の単位で指定できます。% を指定すると、1 回の増加量は、増加時のファイル サイズに指定されたパーセンテージを掛けた値になります。MB、KB、% などのサフィックスを省略した場合、既定では MB が使用されます。

    growth_increment の値が NULL の場合、既定値は 10% で、最小サイズ値は 64 KB になります。指定したサイズの値は、最も近い 64 KB の倍数値に丸められます。

リターン コードの値

0 (成功) または 1 (失敗)

結果セット

なし

権限

実行権限は、既定では sysadmin 固定サーバー ロールのメンバに与えられています。この権限は譲渡できません。

次の例では、ログの空き容量が不足していたため (エラー 9002)、復旧中に db1 データベースに未復旧のマークが付いています。

USE master;
GO
EXEC sp_add_log_file_recover_suspect_db db1, logfile2,
'C:\Program Files\Microsoft SQL
    Server\MSSQL10.MSSQLSERVER\MSSQL\Data\db1_logfile2.ldf', 
    '1MB';