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: [email protected]
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