DBAtlas · データベース運用アトラス

10107 NotWritablePrimary: not master / not writable primary(マスターではない / 書き込み可能なプライマリではない)

MongoDB

意味

書き込み (またはプライマリを必要とする他の操作) が、現在プライマリではないレプリカセットメンバーに送信された。書き込みを受け付けるのはプライマリのみであるため、操作は拒否された。

原因

アプリケーションがセカンダリに書き込んでいる、フェイルオーバー (選出) 中に旧プライマリがセカンダリとなりクライアントがまだそこに接続している、またはドライバの読み書き設定とトポロジ情報が古い。接続文字列に replicaSet パラメータがないことが典型的な原因。

対処方法

ドライバにレプリカセットの全メンバーとレプリカセット名を設定する (接続文字列に replicaSet=... と全ホスト)。これによりドライバがプライマリを自動検出し、フェイルオーバー時に再ルーティングする。書き込みをプライマリにルーティングするデフォルトの読み書き設定を使用する。一時的なエラーであるため、アプリケーションで retryable writes を有効にする。どのメンバーが PRIMARY かを rs.status() で確認する。

DBAtlas で開く →

同じデータベースの他の項目