RE: [pgsql-es-ayuda] A tortas con la replicación

From: "Jorge Romeo" <jromeo(at)samca(dot)com>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: [pgsql-es-ayuda] A tortas con la replicación
Date: 2009-07-07 09:12:45
Message-ID: 3BFE4B54139F264587EF9BC8EB40185C061A1BD7@samca-nt-12.samca.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Me respondo a mi mismo:

select _cluster_dat_testsad.add_empty_table_to_replication(2, 33223, 'TS_SAD', 'proba', NULL::text, NULL::text);

Los parámetros que hay que poner son, respectivamente:

- ID del conjunto de replicación donde irá la tabla.
- ID de la tabla dentro del conjunto de replicación. Evidentemente no debe coincidir con el de ninguna otra del conjunto, por lo que lo mejor es generarlo usando la fecha de creacion.
- Nombre del esquema donde está la tabla a replicar. En la documentación se llama nspname y por eso me confundí con el del namespace.
- Nombre de la tabla a incluir en la replicación.
- Nombre del índice. Se puede dejar a NULL si la tabla tiene clave primaria (lo habitual).
- Comentario.

Si alguien necesita más detalles sobre cómo genero los script o alguna cosa más ayudaré encantado.

Saludos,
Jorge

_____

De: Jorge Romeo
Enviado el: lunes, 06 de julio de 2009 17:54
Para: pgsql-es-ayuda(at)postgresql(dot)org
Asunto: [pgsql-es-ayuda] A tortas con la replicación

Hola de nuevo,

siento ser pesado con este tema, pero llevo varios días con esto y sigo sin poder replicar mis tablas particionadas y me canso :(.

Explico hasta donde he llegado a ver si a alguien se le ocurre algo.

Tengo el siguiente bash script que simplemente llama a slonik para que ejecute la consulta que necesito:

#!/bin/sh
slonik <<_EOF_
CLUSTER NAME = cluster_dat_testsad;
NODE 11 ADMIN CONNINFO = 'host=master port=5432 dbname=lecturas_testsad user=postgres password=X';
NODE 111 ADMIN CONNINFO = 'host=slave port=5432 dbname=lecturas_testsad user=postgres password=X';
EXECUTE SCRIPT (
SET ID = 2,
FILENAME = '/home/usuario/consulta',
EVENT NODE = 11
);
_EOF_

donde:
11 es el ID del nodo origen
111 es el del nodo destino
2 es el id del conjunto de replicación
y /home/usuario/consulta contiene:

select _cluster_dat_testsad.add_empty_table_to_partition(2, 33223, 'TS_SAD'::text, 'proba'::text, NULL::text, NULL::text);

donde:
2 es el id del conjunto de replicación
33223 es el id de la tabla 'proba'
TS_SAD es el nombre del tablespace donde están las tablas a replicar
'proba' es la tabla vacía que quiero añadir al conjunto de replicación

Si lo pruebo con un query tipo CREATE TABLE, la tabla se crea con éxito en todos los nodos (11 y 111). En cambio no logro que se ejecute el add_empty_table_to_partition. Para evitar un viaje, en la ayuda pone:


add_empty_table_to_replication (set_id, tab_id, nspname, tabname, idxname, comment);

This is the "base" function; you must specify the set ID, table ID, namespace name, table name, index name, and a comment, and this table will be added to replication.

Note that the index name is optional; if NULL, the function will look up the primary key for the table, assuming one exists, and fail if it does not exist.

¿Alguien ve en qué estoy fallando?

Saludos,
Jorge

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Antonio Antonio 2009-07-07 10:16:41 Llamada a script externo
Previous Message Jorge Romeo 2009-07-07 07:40:09 RE: [pgsql-es-ayuda] A tortas con la replicación