Para renombrar un set de réplicas de MongoDB, debes apagar todos los nodos del set de réplicas y luego configurar la local base de datos con el nuevo nombre del set de réplicas.
Este procedimiento requiere tiempo de inactividad.
Requisitos previos
Asegúrate de que tu set de réplicas no esté particionado. El procedimiento de cambio de nombre es solo para sets de réplicas no particionados.
Antes de cambiar el nombre de un conjunto de réplicas, realice una copia de seguridad de tu implementación de MongoDB.
Cuando está habilitada la autenticación, asegúrate de que tu rol de usuario tenga privilegios de
find,insertyremoveen la colecciónsystem.replsetde la base de datoslocalde cada nodo.Tip
Puede ver los privilegios de un rol emitiendo el comando
rolesInfocon los camposshowPrivilegesyshowBuiltinRolesambos configurados entrue.
Procedimiento
Apagar el set de réplicas.
Siga el procedimiento en Detener un set de réplicas para confirmar que los miembros del set de réplicas están apagados.
Advertencia
Este paso requiere un tiempo de inactividad, ya que será necesario apagar todos los nodos de la réplica.
Cambie el nombre del conjunto de réplicas.
Realiza los siguientes pasos para cada set de réplicas:
Inicia el set de réplicas en un puerto diferente sin la opción
--replSet.Actualiza el nombre del set de réplicas.
Si utiliza un archivo de configuración, establezca con el nuevo
replication.replSetNamenombre.Si usas el comando de inicio
mongodcon la opción--replSet, toma nota del nuevo nombre del set de réplicas para usarlo en el paso f.
Conéctate al miembro del set de réplicas.
Actualiza el nombre del set 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}) Apaga el miembro del set de réplicas.
Nota
Gerente de Operaciones
Si utilizas Ops Manager, debes evitar que Ops Manager gestione el set de réplicas antes de apagar el miembro del set de réplicas. Para obtener más información sobre este procedimiento, consulte Eliminar un proceso de la gestión de operaciones
Inicia 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 set de réplicas.Si utilizas el comando de inicio
mongodcon la opción--replSet, pasa el nuevo nombre del set de réplicas a la opción--replSet.