トップ回答者
Dynamics CRMにログインできない。 「Failed to update database "XXX_MSCRM" because the database is read-only.」

質問
-
はじめて質問させていただきます。
社内で使用しているCRMにログインできなくなりました。
解決方法などご存知でしたらご教示ください。
先日まで問題なくCRMにログインできていたのですが、
急にCRMの画面が開かず(ログインできず)、エラーとなってしまいます。
※先日からDBなどの設定変更等は行っていません。
Webサーバのイベントログを確認したところ以下のエラーが出力されておりました。
DBへの更新ができないためにログインできない状態になっているようです。
「Failed to update database "XXX_MSCRM" because the database is read-only.」
データベースが読み取り専用になっていると考え、SSMSから設定状況を確認したところ
オプションの読み取り専用データベースの項目は「False」となっていました。
また、アクセスの制限についても「MULTI_USER」となっており、DBの更新ができなくなるような設定にはなっていません。
【環境】
・Microsoft Dynamics CRM 2016
・SQL Server 2014 Service Pack 2 (12.0.4487.0)
※DBは、AlwaysOn可用性グループ構成です。
そのほか原因となる設定などご存知でしたらご教示いただきたく、よろしくお願いいたします。
以上です。
- 編集済み 製造業者0001 2018年2月5日 7:21
回答
すべての返信
-
sawara459様
ご回答いただきありがとうございます。
確かに事象発生前にフェールオーバが発生しており、その可能性は考えられます。
※フェールオーバの原因はわかっていません。
最初の投稿で記載しておりませんでしたが、現在同一サーバ(インスタンス)上に3つの組織があり、
2つが検証用で1つが本番用としています。今回問題となっているのは検証用の2つの組織です。
WebサーバでDBの接続先(以下の設定)を確認しましたが、現在セカンダリとなっている1号機になっています。
問題の発生していない本番用の組織も1号機になっています。
「展開マネージャ -> 組織 -> 各組織のプロパティ -> SQL Server」
AlwaysOnの場合は、一旦デフォルトのSQL Serverに接続し、
そこからプライマリ接続先を取得する動作になるのでしょうか。
ご存知であればご教示をお願いいたします。
以上です。
- 編集済み 製造業者0001 2018年2月6日 4:35
-
製造業者0001様
ご回答ありがとうございます。
筐体が分かれていたら、検証環境のみフェールオーバ処理によってプライマリサーバが
2号機に変更されてしまったということも考えられたのですが、同じ筐体なのですね…。それでは、SSMSで以下のSQLを実行した結果はどうでしょうか?
SELECT * FROM sys.databases WHERE is_read_only = 1
最初の投稿で設定状況を確認されていたので大丈夫だとは思うのですが、
ログインできない組織のDB情報が表示されたりはしないでしょうか。ちなみに私の扱っている環境で実行してみたところ、該当は0件でした。
-
状況について進展がありましたので追記します。
今回の事象のトリガとなったフェールオーバ(1→2)発生後、
再度、フェールオーバ(2→1)が発生しました。
プライマリが1号機に戻ったことで接続できなかったテスト環境の組織へのログインが可能となりました。
結局、Webサーバの再起動などは行っていません。
やはり2号機への書き込み権限がないのか、
フェールオーバ(1→2)が発生した後も1号機に書き込みに
行っているためログインできない状態になったと思われます。
引き続き、進展がありましたら追記致します。
以上です。
- 編集済み 製造業者0001 2018年5月31日 0:20