Para cambiar el nombre de un conjunto de réplicas, debe apagar todos los miembros del conjunto de réplicas y luego configurar el nombre de cada miembro. local base de datos con el nuevo nombre del conjunto de réplicas.
Este procedimiento requiere tiempo de inactividad.
Requisitos previos
Asegúrese de que su conjunto de réplicas no esté fragmentado. El procedimiento de cambio de nombre solo se aplica a conjuntos de réplicas no fragmentados.
Antes de cambiar el nombre de un conjunto de réplicas, realice una copia de seguridad de su implementación de MongoDB.
Cuando
findinsertremovela autenticación esté habilitada,system.replsetlocalasegúrese de que su rol de usuario tenga privilegios, y en la colección en la base de datos de cada miembro.Tip
Puede ver los privilegios de un rol emitiendo el comando
rolesInfocon los camposshowPrivilegesyshowBuiltinRolesambos configurados entrue.
Procedimiento
Apagar los miembros del conjunto de réplicas.
Siga el procedimiento en Detener un conjunto de réplicas para confirmar que los miembros del conjunto de réplicas estén apagados.
Advertencia
Este paso requiere tiempo de inactividad ya que todos los miembros de la réplica deberán apagarse.
Cambie el nombre del conjunto de réplicas.
Realiza los siguientes pasos para cada set de réplicas:
Inicie el miembro del conjunto de réplicas en un puerto diferente sin la
--replSetopción.Actualice el nombre del conjunto de réplicas.
Si utiliza un archivo de configuración, establezca con el nuevo
replication.replSetNamenombre.Si utiliza el
mongodcomando de inicio con la--replSetopción, anote el nombre del nuevo conjunto de réplicas para utilizarlo en el paso f.
Conectarse al miembro del conjunto de réplicas.
Actualice el nombre del conjunto de réplicas en la base de datos local con los siguientes comandos:
/* Set `newId` to the new replica set name */ var newId = '<new replica set name>' var doc = db.getSiblingDB("local").system.replset.findOne() var oldId = doc._id doc._id = newId db.getSiblingDB("local").system.replset.insertOne(doc) db.getSiblingDB("local").system.replset.deleteOne({_id: oldId}) Apague el miembro del conjunto de réplicas.
Nota
Gerente de Operaciones
Si utiliza Ops Manager, debe detener la administración del conjunto de réplicas antes de cerrar el miembro del conjunto de réplicas. Para obtener más información sobre este procedimiento, consulte Eliminar un proceso de la gestión de operaciones
Inicie el miembro del conjunto de réplicas en su puerto original.
Si utiliza un archivo de configuración, asegúrese de que
replication.replSetNameesté configurado con el nuevo nombre del conjunto de réplicas.Si utiliza el
mongodcomando de inicio con la opción, pase el nuevo nombre--replSet--replSetdel conjunto de réplicas a la opción.