Ответ 1
Просто удалите хост из набора реплик (rs.remove('host:port')
), перезапустите его без параметра replSet
, и он будет снова автономным.
Считаем, что у меня есть 4 набора реплик и конфигурация такова:
{
"_id": "rs_0",
"version": 5,
"members" : [
{"_id": 1, "host": "127.0.0.1:27001"},
{"_id": 2, "host": "127.0.0.1:27002"},
{"_id": 3, "host": "127.0.0.1:27003"},
{"_id": 4, "host": "127.0.0.1:27004"}
]
}
Я могу подключиться ко всем наборам, используя
mongo --port <port>
Есть документы для получения информации о Преобразование автономного набора реплик, но может ли кто-нибудь сказать мне, как конвертировать обратно в автономный реплик установить?
Просто удалите хост из набора реплик (rs.remove('host:port')
), перезапустите его без параметра replSet
, и он будет снова автономным.
Удалите все вторичные хосты из набора реплик (rs.remove('host: port')), перезапустите mongo deamon без параметра replSet (редактирование/etc/mongo.conf), а вторичные хосты снова запускаются в автономном режиме.
Основной хост сложный, потому что вы не можете удалить его из набора реплик с помощью rs.remove. Когда у вас есть только первичный node в наборе реплик, вы должны выйти из оболочки манго и остановить монго. Затем вы редактируете файл /etc/mongo.conf и удаляете параметр replSet и снова запускаете манго. Когда вы запустите mongo, вы уже находитесь в автономном режиме, но оболочка mongo предложит следующее сообщение:
2015-07-31T12: 02: 51.112 + 0100 [initandlisten] ** ПРЕДУПРЕЖДЕНИЕ: mongod запущен без --replSet еще 1 документ присутствует в local.system.replset
чтобы удалить предупреждение, вы можете выполнить 2 процедуры: 1) Разрыв локального db и перезапуск манго:
use local
db.dropDatabase();
/etc/init.d/mongod restart
2) Или, если вы не хотите быть настолько радикальным, вы можете сделать:
use local
db.system.replset.find()
и он выдает сообщение, например:
{ "_id" : "replicaSetName", "version" : 1, "members" : [ { "_id" : 0, "host" : "hostprimary:mongoport" } ] }
то вы удалите его, используя:
db.system.replset.remove({ "_id" : "replicaSetName", "version" : 1, "members" : [ { "_id" : 0, "host" : "hostprimary:mongoport" } ] })
и это, вероятно, подскажет:
WriteResult({ "nRemoved" : 1 })
Теперь вы можете перезапустить мангу, и предупреждение должно исчезнуть, и вы будете иметь свой манго в автономном режиме без предупреждений
Документация MongoDB предлагает выполнить следующие действия для обслуживания элемента набора реплик, что переводит элемент набора реплик в автономный режим для дальнейших операций. С небольшими изменениями это может быть сделано автономно:
sh.startBalancer(timeout, interval)
db.adminCommand( { removeShard: "mongodb0" } )
rs.stepDown(300)
узел является основным, выполните rs.stepDown(300)
db.shutdownServer()
rs.remove("host:port")
После этого рассматриваемый узел должен быть запущен в автономном режиме.
1) Перейдите в оболочку mongo на вторичных серверах.
2) Остановите вторичные серверы, используя следующую команду:
use admin
db.shutdownServer()
После выполнения нижеприведенной команды. Ваш основной автоматически станет автономным сервером.
Для получения дополнительной информации, пожалуйста, проверьте ссылку ниже: http://www.tutespace.com/2016/03/stopping-and-starting-mongodb.html
На машине с Ubuntu
#replication: #replSetName: rs0
use local
db.dropDatabase()