我想将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