Mongodb分片群集从3.4.23升级到3.6.12的问题

时间:2019-11-29 04:04:06

标签: mongodb

我想将mongodb分片群集从3.4.23升级到3.6.12。

我遵循官方文档升级3配置服务器和第一个分片服务器组。当主分片服务器降压并将mongodb版本升级到3.6.12时,mongod服务无法启动。检查mongod日志并找到以下错误消息。谁能帮我?谢谢。

Location40415:BSON字段“ MinValidDocument.h”是未知字段。

结构:

class UserPair < ApplicationRecord
  belongs_to :user_1, class_name: "User"
  belongs_to :user_2, class_name: "User"

  before_save :sort_users

  scope :between, -> (user_1_id,user_2_id) do
    # records are always saved in sorted id order, so sort before querying
    user_1_id, user_2_id = [user_1_id, user_2_id].sort
    where(user_1_id: user_1_id, user_2_id: user_2_id)
  end

  # always put lowest id first for easy lookup
  def sort_users
    if user_1.present? && user_2.present? && user_1.id > user_2.id
      self.user_1, self.user_2 = user_2, user_1
    end
  end
end

class Convo < ApplicationRecord
  belongs_to :sender, :foreign_key => :sender_id, class_name: 'User'
  belongs_to :recipient, :foreign_key => :recipient_id, class_name: 'User'
  belongs_to :user_pair

  before_validation :set_user_pair

  scope :involving, -> (user) do
    where("convos.sender_id =? OR convos.recipient_id =?",user.id,user.id)
  end

  # since UserPair records are always user_id sorted, we can just use
  # that model's scope here without need to repeat it, using `merge`
  scope :between, -> (sender_id,recipient_id) do
    joins(:user_pair).merge(UserPair.between(sender_id, recipient_id))
  end

  def set_user_pair
    self.user_pair = UserPair.find_or_initialize_by(user_1: sender, user_2: recipient)
  end
end

完整的启动日志:

config server: 
  cfg:
    172.18.102.12
    172.18.102.13
    172.18.102.14
shards server: 
  sh00:
    172.18.102.21    ARB
    172.18.102.22
    172.18.102.23
  sh01:
    172.18.102.26    ARB
    172.18.102.27
    172.18.102.28

0 个答案:

没有答案