次の方法で共有


サーバー構成: 復旧モデルのエラーを抑制する

適用対象:Azure SQL Managed Instance

SQL Server の復旧モデルでは、トランザクション ログのメンテナンスが制御されます。 完全復旧モデルでは、データ ファイルが失われたり破損したりしたために作業が失われないようにし、バックアップ保持ポリシー内の任意の時点への復旧をサポートします。 完全復旧モデルは、Azure SQL Managed Instance でサポートされている既定の復旧モデルであり、唯一の復旧モデルです。 SQL Managed Instance で復旧モデルを変更しようとすると、エラー メッセージが返されます。

Azure SQL Managed Instance では、 suppress recovery model errors 高度な構成オプションを使用して、データベース復旧モデルを変更するためのコマンドがエラーを返すか、警告のみを返すかを指定できます。 このオプションを 1 (有効) に設定すると、コマンド ALTER DATABASE SET RECOVERY を実行してもデータベースの復旧モデルは変更されません。エラー メッセージではなく警告メッセージが返されます。 このオプションを 0 (無効) に設定すると、コマンド ALTER DATABASE SET RECOVERY を実行するとエラー メッセージが返されます。

suppress recovery model errors オプションは、レガシアプリケーションまたはサードパーティ製アプリケーションが、重要または必須の要件ではないにもかかわらず、復旧モデルを Simple または Bulk logged に変更しようとする場合に役立ちます。 復旧モデルの変更が SQL Managed Instance を使用するための唯一の阻害要因である場合、 suppress recovery model errors 構成オプションをオンにすると、そのブロックが削除されます。 このオプションは、アプリケーション コードを変更する代替ソリューションが実現不可能または手頃な価格でない場合に特に便利です。

次の例では、データベース復旧モデルの変更に関連するエラー メッセージを抑制し、データベース復旧モデルを変更するためのコマンドを実行し、警告のみを返します。 復旧モデルは実際には変更されません。 <database>を実際のデータベース名に置き換えます。

-- Turn advanced configuration options on:
EXECUTE sp_configure 'show advanced options', 1;
GO

RECONFIGURE;
GO

-- Enable suppression of error messages for recovery model change:
EXECUTE sp_configure 'suppress recovery model errors', 1;
GO

RECONFIGURE;
GO

-- Execute command for changing recovery model to Simple:
ALTER DATABASE <database> SET RECOVERY SIMPLE;
GO