Tôi đã viết một kịch bản sao lưu cho các bộ sao chép bị phân tách và nó gần như đã được thực hiện, ngoại trừ việc tôi dường như không thể lấy nó để khởi động lại bộ cân bằng thành công sau khi mọi thứ đã được nói và làm xong.
Đây là lệnh tôi đang cố sử dụng để khởi động bộ cân bằng; Hãy nhớ rằng điều này đang được chạy trên máy chủ mongos thực tế thông qua SSH.
sudo -s
mongo -u username -p password --authenticationDatabase db
use config
sh.setBalancerState(true)
exit
exit
exit
Tôi tiếp tục nhận được lỗi sau mỗi khi tập lệnh chạm vào startBalancer
hàm chạy mã trên.
SyncClusterConnection::udpate prepare failed: mongo-conf-0.foo.bar.com:27019:10276
DBClientBase::findN: transport error: mongo-conf-0.foo.bar.com:27019
ns: admin.$cmd query: { resetError: 1 }
Tôi đã thử kiểm tra trạng thái thoát của mongo
quá trình shell, sử dụng cái gì đó như
if (code != 0) {
return next('repeat');
} else {
return next();
}
nhưng bất kể điều gì thực sự xảy ra trong mongo-shell, mã thoát dường như luôn luôn là 0.
Vì vậy, bất kỳ ý tưởng nào về cách tôi có thể xác minh rằng quá trình mongos thực sự được kết nối với cả ba cấu hình trước khi tôi cố gắng kích hoạt lại bộ cân bằng - Tôi cho rằng đó là vấn đề, máy chủ mongos cố gắng kết nối với máy chủ cấu hình trước quá trình mongod đã có cơ hội kết thúc việc khởi động (một phần của quá trình sao lưu cho các bộ bản sao bị hủy đang tắt một trong các máy chủ cấu hình )