MSSQLSERVER_3859
適用対象: SQL サーバー
詳細
属性 | Value |
---|---|
製品名 | SQL Server |
イベント ID | 3859 |
イベント ソース | MSSQLSERVER |
コンポーネント | SQLEngine |
シンボル名 | DBCC_CHECKCAT_DIRECT_UPDATE |
メッセージ テキスト | 警告: システム カタログはデータベース ID %d で直接更新されました。最近では %S_DATE |
説明
このエラーは、ユーザーがシステム テーブルの変更を始めたことを示します。 システム テーブルを手動で更新することはサポートされていません。 システム テーブルは、SQL Server データベース エンジンによってのみ更新する必要があります。 SQL Server がシステム テーブルに対してユーザーが開始した変更を検出すると、次の 2 つのシナリオでエラー 3859 が発生します。
シナリオ 1
手動で更新されたシステム テーブルを含む SQL Server データベースを起動すると、次のようなイベントが SQL Server エラー ログに記録されるか、イベント ビューアーアプリケーション ログに記録されます。
ログ名: Application
ソース: MSSQLSERVER イベント ID: 3859
タスク カテゴリ:サーバー
レベル: Information
説明: 警告: システム カタログはデータベース ID %d で直接更新されました。最近は date_timeシナリオ 2
システム テーブルが手動で更新された後に
DBCC_CHECKDB
コマンドを実行すると、次の警告メッセージが返されます。'database_name' の DBCC 結果。
メッセージ 8992、レベル 16、状態 1、行 1
カタログ メッセージ 3859、状態 1: 警告: システム カタログがデータベース ID %d で直接更新されました。最近 date_time。
CHECKDB により、データベース 'db_name' に 0 個のアロケーション エラーと 0 個の一貫性エラーが見つかりました。
DBCC の実行が完了しました。 DBCC がエラー メッセージを出力した場合は、システム管理者に相談してください。
ユーザー アクション
この問題を解決するには、次のいずれかのメソッドを使用します。
方法 1
データベースのクリーン バックアップがある場合は、バックアップからデータベースを復元します。
Note
この方法は、バックアップにメタデータの不整合がない場合にのみ機能します。
方法 2
バックアップからデータベースを復元できない場合は、データとオブジェクトを新しいデータベースにエクスポートします。 次に、手動で更新されたデータベースの内容を新しいデータベースに転送します。 DBCC CHECKDB コマンドの REPAIR オプションを使用して、システム カタログの不整合を修復することはできないことにご注意ください。 したがって、コマンドでメタデータの破損を修復できないため、推奨される修復レベルは提供されません。
Note
システム テーブル内のデータは、システム カタログ ビューを使用して表示できます。
詳細
詳細については、「 システム基本テーブル」を参照してください。