Hola.
Como estan, hace algun tiempo pedi ayuda sobre una solución de
replicación, he optado por PyReplica , y tengo el siguiente
problema.quizas de simple la solución,
Tengo 3 servidores, cada uno tiene conexión con dos maestros
remotos, funciona aceptablemente bien, esta montado en servidores con
salida a internet con un trafico aun de prueba.
Al grano, al realizar una insercion en una tabla que posee un
campo bigint, el triger esta capturando el query pero para el valor de
este campo lo concatena con "L", no se si esto es correcto, ya que al
ejectuar este query, se por el esclavo pyreplica o extrayendolo
manualmente y ejecutandolo sobre la base genera el error.
Query capturado por py_log_replica():
INSERT INTO "sys_tablas" ("id_fila", "horacreacion",
"tab_fecha5", "tab_fecha4", "tab_fecha3", "tab_fecha2", "tab_fecha1",
"tab_codigo", "uscreacion", "tab_texto2", "tab_texto3", "usmodif",
"tab_texto1", "tab_texto4", "tab_texto5", "tab_valor4", "tab_valor5",
"tab_tipo", "tab_valor1", "tab_valor2", "tab_valor3", "tab_desctabla",
"fecmodif", "horamodif", "tab_codtabla", "feccreacion", "tab_estado",
"tab_desc", "tab_activo") VALUES ('1411L',
'161847', '', '', '', '', '', '0102', 'root', '', '', NULL, '', '', '',
'0.0', '0.0', 'S', '1.0', '0.0', '0.0', 'Vendedores', NULL, NULL, '1',
'20091002', '', '0102', 'S')
la tabla posee casi todos sus campo varchar y posee solo 1 bigint, que
es "id_fila" y el valor entregado segun el triger es 1411L en la tabla
original el query ejecutado es:
INSERT INTO "sys_tablas" ("id_fila", "horacreacion",
"tab_fecha5",
"tab_fecha4", "tab_fecha3", "tab_fecha2", "tab_fecha1", "tab_codigo",
"uscreacion", "tab_texto2", "tab_texto3", "usmodif", "tab_texto1",
"tab_texto4", "tab_texto5", "tab_valor4", "tab_valor5", "tab_tipo",
"tab_valor1", "tab_valor2", "tab_valor3", "tab_desctabla", "fecmodif",
"horamodif", "tab_codtabla", "feccreacion", "tab_estado", "tab_desc",
"tab_activo") VALUES (1411, '161847', '', '', '', '', '',
'0102',
'root', '', '', NULL, '', '', '', 0.0, 0.0, 'S', 1.0, 0.0, 0.0,
'Vendedores', NULL, NULL, '1', '20091002', '', '0102', 'S')
este ultimo corre sin problemas.
Al ejectuar el primer query directo:
ERROR: error de sintaxis en o cerca de «L»
Al hacerlo con los esclavos corriendo
PyReplica notifica via email (por cada esclavo):
Traceback (most recent call last):
File "/usr/local/pyreplica/daemon.py", line 74, in run
debug = self.debug)
File "/usr/local/pyreplica/pyreplica.py", line 154, in main_loop
replicate(cur0, cur1, skip_user, slave_field, debug)
File "/usr/local/pyreplica/pyreplica.py", line 92, in replicate
cur1.execute(sql)
DataError: la sintaxis de entrada no es válida para integer: «1411L»
--
Javier Fritz