web-dev-qa-db-ja.com

マスターデータベースのテーブル 'sys.sysbinobjs'にエラーがあります

SYSTEM_DATABASESをチェックするSQLサーバーのDatabaseIntegrityCheckジョブがあり、ログに以下のエラーメッセージが表示されます。

メッセージ2570、レベル16、状態2、行1ページ(1:354)、オブジェクトID 58のスロット28、インデックスID 1、パーティションID 281474980511744、割り当てユニットID 281474980511744(タイプ「行内データ」)。列「name」の値がデータ型「nvarchar」の範囲外です。列を有効な値に更新します。 CHECKDBは、テーブル 'sys.sysbinobjs'(オブジェクトID 58)で0個の割り当てエラーと1個の整合性エラーを検出しました。 CHECKDBは、データベース 'master'で0個の割り当てエラーと1個の整合性エラーを検出しました。

SP4をインストールすることをお勧めします-すでに実行されており、問題はまだ存在します。

マスターを再構築する以外の考えはありません-残念ながらバックアップは利用できません。

1
zapcon

それを修正するためにあなたができることは何もありません、私はバックアップなしでは、このようなシステムテーブルのエラーを修正することはできません、そして私は実際にSP4のインストールがうまくいったら、驚いたでしょう。

これを解決するための最良の(そしておそらく唯一の)方法は、SQL Serverの新しいクリーンインストールを別の場所に作成してから、すべてのユーザーを復元することです。そこにデータベースを作成し、ログインやジョブなどを新しいサイトにスクリプト化します。

理想的ではないことはわかっています。おそらく少し時間がかかりますが、簡単に実行でき、問題は確実に解決されます。あなたはそれをすべてをアップグレードする機会として販売/使用し、あなたが望む人を正確にシステムに指定し、すべてを更新することができるかもしれません。ある程度のダウンタイムが発生します(ただし、これは最小限に抑えることができます)。

This はあなたの状況に似ています(しかしおそらくもっと悪いです)そしてPaulRandalの返事はそれを非常に簡潔に述べています。 SSCのこれ は別の同様のものですが、答えはありません(できることがたくさんないという確認を除いて)。 最後に、このMSDNの投稿 問題も調査します-同じ結論。

3
Ian_H