2つのSQL 2012データベースサーバーがミラーで構成されており、自動フェールオーバーのミラーリングが行われています。
昨日、プライマリサーバーでHDDの劣化が発生してフェイルオーバーがトリガーされましたが、セカンダリサーバーが原則になると、一部のSPROCの実行で多くのエラーが発生し始めました。
オブジェクト '[sp_name]'の定義は、コンパイル後に変更されました
これは、新しい原則でsp_recompile
を実行することで解決できることを理解しています。これにより、すべてのSPROC、関数、およびトリガーが強制的に再コンパイルされます。
フェイルオーバー時に手動で介入する必要があるため、これは理想的ではありません。これは構成を修正することで解決できる問題ですか、それともSQL Serverの既知のバグですか?
どのSQLエディションを使用していますか?エンジンがメタデータカタログを参照できず、このようなエラーが発生する場合がありました。これはバグとして識別されました。ただし、この問題を解決するには回避策があります。次にsp_recompile
を使用して実行したときに、ストアドプロシージャを再コンパイルできた場合。
コンパイルと再コンパイルの詳細については、以下で説明します。
SSMSのストアドプロシージャを更新し、プロシージャを呼び出す別のアプリケーションを実行します。プロシージャを編集しているセッションを終了する必要があります。変更は、コミットされるまで編集セッションでのみ表示されます。
以下のリンクを確認してください: