Estimados. 
Gracias a la investigación de Matías Novoa (quien espero se sumará pronto a la 
comunidad), se solucionó el problema.Básicamente lo que hizo fue
1. TRUNCATE  (DELETE no funcionó) de la tabla bdr.bdr_global_locks en el nodo 
que está bloqueado.2. Reiniciar el postgres en el nodo en cuestión.3. Hacer la 
consulta UPDATE o DELETE, que permitiría que la consulta DDL que generó todo el 
bloqueo pueda correr sin errores.Al hacer esto. La consulta DDL se corrió 
automáticamente, en forma correcta.
Una curiosidad es que en el maestro-prinicipal, cuando los nodos estaban 
bloqueados (a la espera que la famosa consulta DDL termine), aparecen como 
inactivos. Al hacer todo este procedimiento, recién vuelven a estar activos.
Espero que esto sirva de aporte por si alguien pasa por esta situación.
 

    El Viernes, 22 de abril, 2016 14:03:49, Martín Díaz 
<mardia...@yahoo.com.ar> escribió:
 

 Hola estimados.
Tengo un problema de bloqueo haciendo replicación con BDR.
1- En un server corrí una sentencia: alter table t1 add c1;Esto agregó la 
columna en todas la tablas. En el nodo donde corrí esta consulta, la tabla t1 
no tenía filas. En teoría, no debería haberlas tenido en ningún otro nodo.

2- Luego corrí la consulta: alter table t1 alter column c1 set not nullEl 
problema fue que, en uno de los nodos, la tabla t1 SI tenía filas. Por lo tanto 
la instrucción dió error.
3- Cancelé la consulta (2) en el nodo. Pero esta cancelación no se propagó como 
creía
Según la documentación 
http://bdr-project.org/docs/0.9.0/ddl-replication-advice.html
"...If DDL is holding the system up for too long, it is possible and safe to 
cancel the DDL on the originating node like you would cancel any other 
statement, e.g. with Control-C in psqlor with pg_cancel_backend..."
En el nodo donde corrí la consulta, la tabla quedó con la columna not null. En 
el nodo donde tenía filas NO (por lo expuesto).El tema es que no puedo seguir 
replicando xq obtengo error de lokeo por operaciones DLL
Alguien puede ayudarme?
Gracias y saludos

  

Responder a