[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:
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
2- Eliminar el segundo miembro
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
A partir de este punto, ya estamos como PRIMARY.
La configuración a quedado como:
Espero que os sirva de ayuda.
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
0