1

私の問題は次のようなものです: 私のマシンに SqlServer 2012 のコピーがインストールされていました。3年以上使用していますが、特に不具合はありません。ちょうど 4 ~ 5 日前に、問題が発生しました。私がManagement Studioを始めたとき、それは私に言った

msdb が破損しているため、開くことができません。

完全なメッセージは次のようなものです。

ユーザーにアクセス許可がないため、サーバー レベルでポリシーの正常性状態を表示できません。この機能が正しく動作するには、データベース msdb へのアクセス許可が必要です。

では、ここで何が間違っているのでしょうか? これを不安定にしたのは、どのような突然の変化/異常が忍び込んだ可能性がありますか? 可能性が広いからかもしれないと誰かが言ってた。理由は何でもいい。一部の nuget パッケージでさえ、データベースに影響を与えます。最初は、これはログインや権限などの問題である可能性があると思っていたので、管理者としても実行しようとしました。いいえ、この問題は解決しませんでした。新しいデータベースを作成しようとしても、それはできないとだけ言われます。メッセージは次のようなものです。

T-SQL ステートメントまたはバッチの実行中に例外が発生しました。[Microsoft.SqlServer.ConnectionInfo]。データベース msdb を開けません。回復によって SUSPECT としてマークされています。[Microsoft Sql サーバー、エラー:926]

これから回復するにはどうすればよいですか?ご案内いただけますか?または、問題のヒントを正確に探すための手がかりは? 私の仕事はすべて止まっています。私の病気の sqlserver インストールを回復するためのあらゆる種類の支援は、謙虚に受け取られます.

だから、皆さんに道を教えてほしいと頼んでいます。ありがとうございます。

4

2 に答える 2

0

MSDB が破損している場合は、最新のバックアップから復元してください。それが最も安全な方法であり、それが最初にバックアップを用意している理由です。

MSDB のバックアップがない場合は、いくつかのオプションがあります。

  1. 再作成します。詳細な手順はこちら: https://msdn.microsoft.com/en-us/library/dd207003(v=sql.110).aspx#CreateMSDB . これは、クリーンで機能的な MSDB を確実に取得するための最良の方法であり、再起動して実行するための最速の方法です。重要: これを行うと、MSDB に保存されているすべてのジョブ、バックアップ履歴などが失われます。完了したら、すべてのメンテナンス ジョブを再作成することを忘れないでください。そうしないと、次の障害が発生するのを待っているだけです (たとえば、トランザクション ログのバックアップが実行されなくなり、ディスク容量がなくなるまで tlog が大きくなり、実行できなくなります)。トランザクションをコミットするクエリ)。

  2. DBCC CHECKDB WITH Repair_allow_data_loss は、問題をグーグル/ビングする場合におそらく見つかる別のオプションです。これはうまくいくかもしれませんが、お勧めしません。問題は、何が失われるか分からないことです。読み取れないものを削除し、リンクを修正してデータベースを物理的に機能させることで機能します。それが完了したら、戻って何が残っていて、まだ機能しているのかを把握する必要があります. これは面倒で、エラーが発生しやすくなります。さらに、この非常に徹底的な手動チェックを行ってすべてのジョブが損なわれていないことを確認する場合は、新しいクリーンな MSDB でジョブを再作成することをお勧めします。

于 2015-09-12T01:17:35.863 に答える