mongoDB - [solucionado] Como eliminar el miembro PRIMARY desde el SECONDARY

 
Vista:
Imágen de perfil de xve
Val: 38
Ha disminuido 1 puesto en mongoDB (en relación al último mes)
Gráfica de mongoDB

[solucionado] Como eliminar el miembro PRIMARY desde el SECONDARY

Publicado por xve (44 intervenciones) el 15/01/2016 11:32:12
Aqui voy a apuntar como modo de chuleta los pasos que he tenido que realizar para eliminar el miembro PRIMARY en un servidor SECONDARY, ya que el PRIMARY ha dejado de funcionar y no había manera de iniciar el SECONDARY como PRIMARY.

Lo he realizado con la versión 3 de mongodb.


Esta es la estructura que tenia con el rs.conf() después de muchas pruebas sin exito:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
server1:SECONDARY> cfg=rs.conf()
{
        "_id" : "miRS",
        "version" : 148732,
        "members" : [
                {
                        "_id" : 0,
                        "host" : "server1:27017",
                        "arbiterOnly" : false,
                        "buildIndexes" : true,
                        "hidden" : false,
                        "priority" : 1,
                        "tags" : {
 
                        },
                        "slaveDelay" : 0,
                        "votes" : 1
                },
                {
                        "_id" : 1,
                        "host" : "server2:27017",
                        "arbiterOnly" : false,
                        "buildIndexes" : true,
                        "hidden" : true,
                        "priority" : 0,
                        "tags" : {
 
                        },
                        "slaveDelay" : 0,
                        "votes" : 1
                }
        ],
        "settings" : {
                "chainingAllowed" : true,
                "heartbeatTimeoutSecs" : 10,
                "getLastErrorModes" : {
 
                },
                "getLastErrorDefaults" : {
                        "w" : 1,
                        "wtimeout" : 0
                }
        }
}

Como se puede ver, esta el server1 con priority:1 y el server2 con priority:0, pero en el server1 seguimos estando como SECONDARY!!!

Los pasos han sido...

1- obtener una copia de la configuración
1
server1:SECONDARY> cfg=rs.conf()

2- Eliminar el segundo miembro
1
server1:SECONDARY> cfg.members.splice(2,1)

3.- Reconfigurar la configuración utilizando {force:1}. Si no lo forzamos, nos aparece el error: replSetReconfig should only be run on PRIMARY, but my state is SECONDARY; use the \"force\" argument to override
1
server1:SECONDARY> rs.reconfig(cfg,{force:1})

A partir de este punto, ya estamos como PRIMARY.

La configuración a quedado como:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
server1:PRIMARY> rs.conf()
{
        "_id" : "miRS",
        "version" : 205413,
        "members" : [
                {
                        "_id" : 0,
                        "host" : "server1:27017",
                        "arbiterOnly" : false,
                        "buildIndexes" : true,
                        "hidden" : false,
                        "priority" : 1,
                        "tags" : {
 
                        },
                        "slaveDelay" : 0,
                        "votes" : 1
                }
        ],
        "settings" : {
                "chainingAllowed" : true,
                "heartbeatTimeoutSecs" : 10,
                "getLastErrorModes" : {
 
                },
                "getLastErrorDefaults" : {
                        "w" : 1,
                        "wtimeout" : 0
                }
        }
}

Espero que os sirva de ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder