Re: [pgsql-es-ayuda] Fwd: consulta sobre sequencias globales de BDR

2015-02-09 Por tema Hellmuth Vargas
Hola lista

Continué con la evaluación del BDR para mi caso y  realice unas pruebas
adicionales que aquí se las presento.

Respecto al tema de la secuencias, pues la mas fácil que se me ocurrió  por
el momento fue crear secuencias locales y establecer un servidor con
secuencias  pares y el otro impares...  :-)  obvio esto solo para el
esquema de dos maestros multimaster. Eso es posible ya que si bien es
cierto la definición de la secuencias se comparte en ambos servidores, el
valor actual si queda en el ámbito de cada servidor:


bdrdemo=# create secuence seq_bdr_prueba start with 1 INCREMENT BY  2;

--- servidor puerto 

bdrdemo=# select setval('seq_bdr_prueba',1);

--- servidor puerto

bdrdemo=# select setval('seq_bdr_prueba',2);

--- servidor puerto 

bdrdemo=# select nextval('seq_bdr_prueba');
nextval
-
 1
(1 row)

bdrdemo=# select nextval('seq_bdr_prueba');
nextval
-
 3
(1 row)

bdrdemo=# select nextval('seq_bdr_prueba');
nextval
-
  5
(1 row)

--- servidor puerto 

bdrdemo=# select nextval('seq_bdr_prueba');
nextval
-
 2
(1 row)

bdrdemo=# select nextval('seq_bdr_prueba');
nextval
-
 4
(1 row)

bdrdemo=# select nextval('seq_bdr_prueba');
nextval
-
  6
(1 row)


-
--- servidor puerto 
bdrdemo=# create table tbpruebas(id bigint default
nextval('seq_bdr_prueba') primary key, numero bigint, origen text);
CREATE TABLE


--- servidor puerto 
bdrdemo=# insert into tbpruebas(numero,origen) select a.dato,'' from
generate_series(1,3000) as a(dato);
INSERT 0 3000
bdrdemo=# select count(*) from  tbpruebas;
  count
--
3000
(1 row)

--- casi simultáneamente en el  servidor puerto 
bdrdemo=# insert into tbpruebas(numero,origen) select a.dato,'' from
generate_series(1,3000) as a(dato);
INSERT 0 3000
bdrdemo=# select count(*) from  tbpruebas;
  count
--
3000
(1 row)

--- y despues de un tiempo...
--- servidor puerto 

bdrdemo=# select count(*) from  tbpruebas;
  count
--
  6000
(1 row)

bdrdemo=# select * from tbpruebas order by id desc limit 10;
id|  numero  | origen
--+--+
6010 | 3000 | 
6008 | 2999 | 
6007 | 3000 | 
6006 | 2998 | 
6005 | 2999 | 
6004 | 2997 | 
6003 | 2998 | 
6002 | 2996 | 
6001 | 2997 | 
6000 | 2995 | 
(10 rows)



Parte 2:
Realice una prueba,  reconstruyendo un  backup de la base de datos y obtuve
las siguientes observaciones:

1. las tablas cuyos campos tiene estadísticas personalizadas fallan y no se
crean:

definición de la tabla:

CREATE TABLE llamadas
(
  calldate timestamp with time zone NOT NULL DEFAULT now(),
  clid character varying(80) NOT NULL DEFAULT ''::character varying,
  src character varying(80) NOT NULL DEFAULT ''::character varying,
  dst character varying(80) NOT NULL DEFAULT ''::character varying,
  dcontext character varying(80) NOT NULL DEFAULT ''::character varying,
  .
  CONSTRAINT cdr_agentes_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE llamadas ALTER COLUMN calldate SET STATISTICS 500;
ALTER TABLE llamadas ALTER COLUMN dcontext SET STATISTICS 500;


Error generado:

pg_restore: processing item 1014 TABLE llamadas
pg_restore: creating TABLE llamadas
pg_restore: [archiver (db)] Error from TOC entry 1014; 1259 116741355 TABLE
llamadas
pg_restore: [archiver (db)] could not execute query: ERROR:  ALTER TABLE
... ALTER COLUMN SET STATISTICS|(...) may only affect UNLOGGED or TEMPORARY
tables when BDR is active; llamadas is a regular table
Command was: CREATE TABLE llamadas (
calldate timestamp with time zone DEFAULT now() NOT NULL,
clid character varying(80) DEFA...
pg_restore: [archiver (db)] could not execute query: ERROR:  relation
llamadas does not exist
Command was: ALTER TABLE llamadas OWNER TO user;

2. no soporta vistas materializadas:

pg_restore: processing item 5618 MATERIALIZED VIEW mv_calificacion
pg_restore: creating MATERIALIZED VIEW mv_calificacion
pg_restore: [archiver (db)] Error from TOC entry 5618; 1259 273374704
MATERIALIZED VIEW mv_calificacion postgres
pg_restore: [archiver (db)] could not execute query: ERROR:  CREATE
MATERIALIZED VIEW is not supported when bdr is active
Command was: CREATE MATERIALIZED VIEW mv_calificacion AS
SELECT x.id,
split_part(x.path, '@'::text, 1) AS calificacion,
CASE...
pg_restore: [archiver (db)] could not execute query: ERROR:  relation
mv_calificacion does not exist
Command was: ALTER TABLE mv_calificacion OWNER TO postgres;


3. falla en la creación de indices y constraints cuanto se configura el
pg_restore con varios jobs concurrentes':


pg_restore: creating INDEX idx_tmp_busqueda_identificacion
pg_restore: [archiver (db)] Error from TOC entry 20671; 1259 271924294
INDEX idx_tmp_busqueda_identificacion 

Re: [MASSMAIL][pgsql-es-ayuda] ayuda sobre procedimientos almacenados y cursores

2015-02-09 Por tema Arcel Labrada Batista
quien es r?, estas abriendo el cursor y asignando el resultado de la consulta 
en r, te quedaría 

create or replace function models_data_rs() 
returns setof refcursor as $$ 
declare 
ref refcursor; 
begin 
open ref for select * from models; 
end; 
$$ language plpgsql; 

- Mensaje original -

De: Freddy Martinez Garcia freddy311...@icloud.com 
Para: pgsql-es-ayuda@postgresql.org 
Enviados: Viernes, 6 de Febrero 2015 14:49:10 
Asunto: [MASSMAIL][pgsql-es-ayuda] ayuda sobre procedimientos almacenados y 
cursores 

Hola a todos. 

soy nuevo usando postgres y tengo el siguiente código: 

create or replace function models_data_rs() 
returns setof refcursor as $$ 
declare 
ref refcursor; 
begin 
open ref for select * into r from models; 
end; 
$$ language plpgsql; 

hasta ahí va todo bien, el tema es que desde el mismo postgres cuando hago 

select models_data_rs(); 

postgres me da el siguiente error: 

ERROR: cannot open SELECT query as cursor 
CONTEXT: PL/pgSQL function models_data_rs() line 5 at OPEN 

** Error ** 

ERROR: cannot open SELECT query as cursor 
SQL state: 42P11 
Context: PL/pgSQL function models_data_rs() line 5 at OPEN 

cómo resuelvo el problema ?? 

saludos a todos 


= 
El tamaño de tus logros depende del tamaño de tus metas. 
C++ and Qt Senior Developer 
Lic. Computer Science 
Buenos Aires, Argentina 





Re: [pgsql-es-ayuda] consulta sobre sequencias globales de BDR

2015-02-09 Por tema Alvaro Herrera
Hellmuth Vargas escribió:
 Hola Lista:
 
 Estoy realizado pruebas con BDR de PostgreSQL
 anunciado recientemente, comparto una hilo de conversación que sostuve con
 Jaime Casanova, entre otros, sobre el tema especifico del comportamiento
 de secuencias globales. La inquietud surge porque trabajo en un call center
 donde se realizan miles de transacciones por segundo de diferentes clientes
 a un único cluster de base de datos PostgreSQL (con replicacion asincronica
 obviamente), y por  balanceo de carga, disponibilidad,
 seguridad entre otros,  seria  extraordinario contar con la replicacion
 multimaster.

El insert con generate_series() es realmente representativo de lo que se
hace en la base de datos real, o es sólo para simular miles de
transacciones?  Porque si la carga real no implica insertar miles de
registros en una sola sentencia, sino uno o unos pocos registros en cada
sentencia (repetida miles de veces), es posible que las secuencias
globales funcionen perfectamente en tu caso.  Además, en versiones
tempranas de BDR las secuencias globales eran algo lentas (varios
segundos en generar un nuevo bloque para el servidor al que se le
agotó), pero esto se ha corregido hace poco.

¿Tienes presente que el carácter asincrónico significa que puedes
insertar registros en el servidor A, y a continuación consultar en el
servidor B varios segundos después y NO VER los registros que acabas de
insertar?  El balanceo de carga es bueno, pero la aplicación no puede
cambiarse al servidor B cuando el A esté con carga muy alta, y esperar
que la base de datos sea consistente con el estado que veía en A.  Es
necesario introducir un período de espera para que los cambios se
propaguen.

-- 
Álvaro Herrerahttp://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training  Services

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


[pgsql-es-ayuda] duda

2015-02-09 Por tema Esneiker Enriquez Cabrera
Hola amigos de la comunidad.

Estoy teniendo problemas de rendimiento con una función que estoy
realizando. Resulta que tengo dos tablas A y B y tengo que hacer un reporte
estadístico en el cual tengo que sacar cada registro de la tabla A con cada
registro de la tabla B y en cada uno de ellos hacer una serie de
subconsultas para obtener estadísticos, ejemplo

Tabla A Tabla B

Uno   X

DosY

Tres   Z

 

Resultado

Criteriocolumna1Columna2   Columna3
Citerio2

Uno   0 0
0 X

Uno   0 0
0 Y

Uno   0 0
0 Z

Dos0 0
0 X

Dos0 0
0 Y

Dos0 0
0 Z

Tres   0 0
0 X

Tres   0 0
0 Y

Tres   0 0
0 Z

Donde columna1, columna2 y columna3 serían el resultado de 3 subconsultas.
Para ello uso dos For anidado pero no estoy seguro que esto sea lo más
adecuado.

Agradecería si alguien me diera alguna idea.

 

Saludos,

Ing. Esneiker Enriquez Cabrera
  Esp. B en Ciencias Informáticas

Desoft en Ciego de Ávila. Joaquín de Aguero esq. Calle 2. Ciego de Ávila.
Cuba.
Telf.: 53 33 22 8971, email.:  mailto:eenriq...@cav.desoft.cu
eenriq...@cav.desoft.cu

 



Re: [pgsql-es-ayuda] Buen dia

2015-02-09 Por tema Gilberto Castillo


 Buen dia !!

 Espero me puedan ayudar .
 Tengo una duda, estoy configurando pgpool y con el pgadmin veo esta
 pantalla, porque me aparece que mi postgresql esta abajo??
  que dato me puede faltar ?

 si mis bases de datos en los servidores estan arriba.

Prueba con los comandos de pcp_ para comprobar esa información ese
webadmin a veces me dio retraso en la información ... lo cual no significa
que lo que muestra no sea así  comprueba con lo que te comento y luego
nos comentas

Saludos,
Gilberto Castillo
La Habana, Cuba
--- 
This message was processed by Kaspersky Mail Gateway 5.6.28/RELEASE running at 
host imx3.etecsa.cu
Visit our web-site: http://www.kaspersky.com, http://www.viruslist.com
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Buen dia

2015-02-09 Por tema raul andrez gutierrez alejo
Hola Maria.

creo que hace falta que postgres acepte conexiones de pgpool admin, cuando
todo funciona debe ser asi:

[image: Imágenes integradas 1]



El 9 de febrero de 2015, 14:18, MARIA ANTONIETA RAMIREZ SOLIS 
marami...@ulsaneza.edu.mx escribió:

 Buen dia !!

 Espero me puedan ayudar .
 Tengo una duda, estoy configurando pgpool y con el pgadmin veo esta
 pantalla, porque me aparece que mi postgresql esta abajo??
  que dato me puede faltar ?

 si mis bases de datos en los servidores estan arriba.

 les adjunto la pantalla:



 -
 Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org
 )
 Para cambiar tu suscripción:
 http://www.postgresql.org/mailpref/pgsql-es-ayuda




-- 
Raul Andres Gutierrez Alejo