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 renombrar un set de réplicas, realiza 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.
Renombra el set 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
replication.replSetNameen el nuevo nombre.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 Remover un proceso de 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.