none
Dynamics CRMにログインできない。 「Failed to update database "XXX_MSCRM" because the database is read-only.」 RRS feed

  • 質問

  • はじめて質問させていただきます。

    社内で使用している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可用性グループ構成です。

     

    そのほか原因となる設定などご存知でしたらご教示いただきたく、よろしくお願いいたします。

    以上です。




    2018年2月5日 7:14

回答

  • こんにちは。

    質問者様とほぼ同じ構成のCRMを使っていますが、
    こちらとの差異は「DBが可用性グループ構成ではない」ことくらいです。

    可用性グループの環境下では読み取り専用のセカンダリDB(レプリカ)を構成することができますが、
    APのアクセス先がそのセカンダリDBに向いているということはないでしょうか?

    2018年2月5日 9:13

すべての返信

  • こんにちは。

    質問者様とほぼ同じ構成のCRMを使っていますが、
    こちらとの差異は「DBが可用性グループ構成ではない」ことくらいです。

    可用性グループの環境下では読み取り専用のセカンダリDB(レプリカ)を構成することができますが、
    APのアクセス先がそのセカンダリDBに向いているということはないでしょうか?

    2018年2月5日 9:13
  • sawara459様

    ご回答いただきありがとうございます。

     

    確かに事象発生前にフェールオーバが発生しており、その可能性は考えられます。

    ※フェールオーバの原因はわかっていません。

     

    最初の投稿で記載しておりませんでしたが、現在同一サーバ(インスタンス)上に3つの組織があり、

    2つが検証用で1つが本番用としています。今回問題となっているのは検証用の2つの組織です。

     

    WebサーバでDBの接続先(以下の設定)を確認しましたが、現在セカンダリとなっている1号機になっています。

    問題の発生していない本番用の組織も1号機になっています。

     「展開マネージャ -> 組織 -> 各組織のプロパティ -> SQL Server」

     

    AlwaysOnの場合は、一旦デフォルトのSQL Serverに接続し、

    そこからプライマリ接続先を取得する動作になるのでしょうか。

    ご存知であればご教示をお願いいたします。

     

    以上です。





    2018年2月6日 2:56
  • 製造業者0001様

    >WebサーバでDBの接続先(以下の設定)を確認しましたが、現在セカンダリとなっている1号機になっています。

    >問題の発生していない本番用の組織も1号機になっています。

    本番AP、検証APの接続先のDBサーバは同じ筐体を向いているという認識で合っていますでしょうか?
    それともDBのみ、分けていたりしますか?

    2018年2月6日 5:43
  • sawara459様

    返信ありがとうございます。

     

    >本番AP、検証APの接続先のDBサーバは同じ筐体を向いているという認識で合っていますでしょうか?

    はい、同じ筐体を向いているのですが、検証環境はエラーとなり

    本番環境は正常にログインできる状況です。

     

    以上です。

    2018年2月6日 6:20
  • 製造業者0001様

    ご回答ありがとうございます。

    筐体が分かれていたら、検証環境のみフェールオーバ処理によってプライマリサーバが
    2号機に変更されてしまったということも考えられたのですが、同じ筐体なのですね…。

    それでは、SSMSで以下のSQLを実行した結果はどうでしょうか?

    SELECT * FROM sys.databases WHERE is_read_only = 1

    最初の投稿で設定状況を確認されていたので大丈夫だとは思うのですが、
    ログインできない組織のDB情報が表示されたりはしないでしょうか。

    ちなみに私の扱っている環境で実行してみたところ、該当は0件でした。

    2018年2月6日 7:17
  • sawara459様

    返信ありがとうございます。

     

    いただいたSQLを実行してみましたが、該当は0件でした。

    (念のためプライマリ、セカンダリのDBで実行しましたがどちらも0件でした。)

     

    SELECT * FROM sys.databases WHERE is_read_only = 1

     

    Webサーバの再起動で事象が解消するかもしれないので検討したいと思います。

     

    以上です。

    2018年2月6日 9:10
  • 製造業者0001様

    SQL実行結果の共有、ありがとうございます。

    本事象のトリガはフェールオーバが発生したことだと考えてDB側の調査が必要かと
    思っておりましたが、もしかしたらAP側(あるいはネットワーク?)の問題かもしれませんね。
    (なぜRead-Onlyのエラーが出るのかは謎ですが…)

    >Webサーバの再起動で事象が解消するかもしれないので検討したいと思います。

    事象が解決したら、ぜひ情報共有いただきたいです。

    2018年2月7日 1:26
  • 状況について進展がありましたので追記します。

    今回の事象のトリガとなったフェールオーバ(1→2)発生後、

    再度、フェールオーバ(2→1)が発生しました。

    プライマリが1号機に戻ったことで接続できなかったテスト環境の組織へのログインが可能となりました。

    結局、Webサーバの再起動などは行っていません。

    やはり2号機への書き込み権限がないのか、

    フェールオーバ(1→2)が発生した後も1号機に書き込みに

    行っているためログインできない状態になったと思われます。

    引き続き、進展がありましたら追記致します。

    以上です。


    2018年5月31日 0:20