Re: [pgsql-es-ayuda] Duda sobre varias consultas simultaneas
De salida yo desprenderia tabla por tabla y vista por vista, aca nadie sabe si todas son tablas o puede haber una vista, por otra parte revisa como esta ejecutando ese casting de timestamp a time, puede estar la causa allí El jue, 11/5/17, Maximiliano Riffoescribió: Asunto: Re: [pgsql-es-ayuda] Duda sobre varias consultas simultaneas Para: "Alvaro Herrera" CC: "pgsql-es-ayuda" Fecha: jueves, 11 de mayo, 2017 15:49 jajaja tienes razón. Este es el script drop table if exists matriz_2013_1_hora_bajada_pm.viajes_bajada_1_hora;create table matriz_2013_1_hora_bajada_pm.viajes_bajada_1_hora as select *from matriz_2013.viajes_04where tiempobajada::timestamp::time between '08:00:00' and '09:00:00' and tipodia = 'LABORAL';comment on table matriz_2013_1_hora_bajada_pm.viajes_bajada_1_hora is ' viajes donde el tiempo de bajada es entre 08:00:00 y 09:00:00'; drop table if exists matriz_2013_1_hora_bajada_pm.etapas_max_1_hora;create table matriz_2013_1_hora_bajada_pm.etapas_max_1_hora as select paraderosubida_1era as subida ,paraderobajada_1era as bajada, serv_1era_etapa as servicio, tipotransporte_1era as tipo_transporte, factorexpansion::float, 1from matriz_2013_1_hora_bajada_pm.viajes_bajada_1_horawhere paraderosubida_1era is not null and paraderosubida_1era <>'' and paraderobajada_1era is not null and paraderobajada_1era <>'' and tipotransporte_1era <> 'METRO' and serv_1era_etapa is not null and factorexpansion is not null; insert into matriz_2013_1_hora_bajada_pm.etapas_max_1_horaselect paraderosubida_2da, paraderobajada_2da, serv_2da_etapa, tipotransporte_2da, factorexpansion::float, 2from matriz_2013_1_hora_bajada_pm.viajes_bajada_1_horawhere paraderosubida_2da is not null and paraderosubida_2da <>'' and paraderobajada_2da is not null and paraderobajada_2da <>'' andtipotransporte_2da <> 'METRO' and serv_2da_etapa is not null and factorexpansion is not null; insert into matriz_2013_1_hora_bajada_pm.etapas_max_1_horaselect paraderosubida_3era, paraderobajada_3era, serv_3era_etapa, tipotransporte_3era, factorexpansion::float, 3from matriz_2013_1_hora_bajada_pm.viajes_bajada_1_horawhere paraderosubida_3era is not null and paraderosubida_3era <>'' and paraderobajada_3era is not null and paraderobajada_3era <>'' and tipotransporte_3era <> 'METRO' and serv_3era_etapa is not null and factorexpansion is not null; insert into matriz_2013_1_hora_bajada_pm.etapas_max_1_horaselect paraderosubida_4ta , paraderobajada_4ta , serv_4ta_etapa, tipotransporte_4ta, factorexpansion::float, 4from matriz_2013_1_hora_bajada_pm.viajes_bajada_1_horawhere paraderosubida_4ta is not null and paraderosubida_4ta <>'' and paraderobajada_4ta is not null and paraderobajada_4ta <>'' and tipotransporte_4ta <> 'METRO' and serv_4ta_etapa is not null and factorexpansion is not null; drop table if exists matriz_2013_1_hora_bajada_pm.bajadas_por_recorrido_con_zp_route_name_1_hora;create table matriz_2013_1_hora_bajada_pm.bajadas_por_recorrido_con_zp_route_name_1_hora as select b.* , upper(trim(d.route_name)) as route_namefrom matriz_2013_1_hora_bajada_pm.etapas_max_1_hora b inner join (select distinct on (upper(trim(cod_sirrut))) route_name, cod_sirrut from ( select distinct on (cod_sirrut) route_name, cod_sirrutfrom matriz_2013_1_hora_bajada_pm.diccionario uNION select distinct on (codigo_sonda) * from matriz_2013.diccionario_routes) sq ) d on upper(trim(d.cod_sirrut)) = upper(trim(b.servicio) ); update matriz_2013_1_hora_bajada_pm.bajadas_por_recorrido_con_zp_route_name_1_horaset route_name = split_part(route_name, '_', 1)where route_name like '%\_%'; update matriz_2013_1_hora_bajada_pm.bajadas_por_recorrido_con_zp_route_name_1_hora set route_name =upper('104IPM') where route_name = upper('104I');update matriz_2013_1_hora_bajada_pm.bajadas_por_recorrido_con_zp_route_name_1_hora set route_name =upper('106IPM') where route_name = upper('106I');update matriz_2013_1_hora_bajada_pm.bajadas_por_recorrido_con_zp_route_name_1_hora set route_name =upper('113RPM') where route_name = upper('113eRncPM');update matriz_2013_1_hora_bajada_pm.bajadas_por_recorrido_con_zp_route_name_1_hora set route_name =upper('113RPM') where route_name = upper('113R');update matriz_2013_1_hora_bajada_pm.bajadas_por_recorrido_con_zp_route_name_1_hora set route_name =upper('115RPM') where route_name = upper('115R');update matriz_2013_1_hora_bajada_pm.bajadas_por_recorrido_con_zp_route_name_1_hora set route_name =upper('118IPM') where route_name = upper('118I');update
Re: [pgsql-es-ayuda] ¿Websevice vs conexion directa?
Hola Gilberto, Apoyando lo que dice Arturo Espinosa en su respuesta, creo que lo mejor es crear una capa de WS utilizando tu lenguaje de preferencia, en mi caso utilizo javascript del lado del servidor (node.js ) con la libreria pg, la cual trae incluida una libreria llamada pgPool la cual maneja la cola de conexiones entrantes hacia el servidor de PostgreSQL, su velocidad es buena sobre todo con muchas peticiones al tiempo, sin embargo si quieres más velocidad, manejando tu las conexiones hacia la BD, puedes usar brianc/node-pg-native, la cual hace un wrapping directo a la libreria de C++ libpq o utilizar las opciones de native bindings que te ofrece pg. O si quieres más velocidad puedes utilizar C++ (uno de tantos frameworks es CppCMS — High Performance C++ Web Framework) para crear y exponer servicios Web y utilizas libpq directamente. Todo lo anterior, permitiría exponer functions de PostgreSQL que deben tener su respectiva seguridad de ejecución. De esa forma puedes lograr no solo el intercambio de datos entre aplicaciones, sino mantener la lógica de negocio en functions, es decir en la BD. Saludos | | | | || | | | | | CppCMS — High Performance C++ Web Framework | | | | | | | | || | | | || brianc/node-pg-native node-pg-native - Native (C/C++) bindings to PostgreSQL with sync and async options. | | | | El Lunes 24 de abril de 2017 15:50, Gilberto Castilloescribió: Hola a todos, Me gustaría obtener sus ideas de cual sería la mejor vía para permitir el intercambio de datos entre distintas aplicaciones. ¿Sería mejor usar webservice? o ¿sería mejor permitir conexiones directas a mi data? -- Saludos, Gilberto Castillo La Habana, Cuba - 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] Control de excepcion
Buen dia, Por favor solicito de su colaboración ya que me ocurre algo raro en el control de excepcion de una function, los functions son los siguientes: CREATE OR REPLACE FUNCTION public.verify( IN token text, IN secret text, IN algorithm text DEFAULT 'HS256'::text) RETURNS TABLE(header json, payload json, valid boolean) AS$BODY$ SELECT convert_from(public.url_decode(r[1]), 'utf8')::json AS header, convert_from(public.url_decode(r[2]), 'utf8')::json AS payload, r[3] = public.algorithm_sign(r[1] || '.' || r[2], secret, algorithm) AS valid FROM regexp_split_to_array(token, '\.') r;$BODY$ LANGUAGE sql VOLATILE COST 100 ROWS 1000;ALTER FUNCTION public.verify(text, text, text) OWNER TO postgres; create or replace function logicanegocio.verificar_token(p_token character varying, curs refcursor) RETURNS void language plpgsql AS$$begin open curs for select header, payload from verify(p_token, 'Uns3cr3t1c0') where valid = true; exception when others then raise exception 'Token malformed'; end;$$; Cuando envio una cadena erronea a drede, por ejemplo: select logicanegocio.verificar_token('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIiwabmFtZSI6InBlcGUgbG9xdWVuZG8ifQ.PV2EO5ovJ_4Uq8rOEyHEzhafRL82GvuCJFXaRCno5Tg', 'cur'); fetch all in cur; Me sale el siguiente mensaje de error: ERROR: sintaxis de entrada no válida para tipo jsonDETAIL: El elemento «» no es válido.CONTEXT: Datos JSON, línea 1: {"sub":"1",...función SQL «verify» en la sentencia 1 y deberia salir 'Token malformed'; Por favor que puede estar ocurriendo?? Gracias por su apoyo
Re: [pgsql-es-ayuda] Capturar cual unique key esta en excepción
Muchas gracias por la solución. Cambiaré mis fuentes ya q es más optima que buscando textos El Domingo 20 de diciembre de 2015 13:00, Anthony Sotolongo <asotolo...@gmail.com> escribió: Hola nuevamente, creo que tu solución funciona bien, pero si puedes obtener el nombre del CONSTRAINT afectado con el item CONSTRAINT_NAME como te sugería en el correo anterior, que pudiera ser unas de tus soluciones, por ejemplo: CREATE TABLE alejandro ( col1 integer, col2 integer, CONSTRAINT alejandro_col1_key UNIQUE (col1), CONSTRAINT alejandro_col2_key UNIQUE (col2) ) CREATE OR REPLACE FUNCTION insertar(int,int) RETURNS text AS $$ DECLARE text_var1 text; BEGIN BEGIN INSERT INTO alejandro VALUES ($1,$2); EXCEPTION WHEN unique_violation THEN GET STACKED DIAGNOSTICS text_var1 = CONSTRAINT_NAME; RAISE exception 'La contraint afectada es %',text_var1; END; return 'OK'; END; $$ LANGUAGE plpgsql; si ejecuto select insertar(1,2); OK si luego ejecuto select insertar(1,10); ERROR: La contraint afectada es alejandro_col1_key si ejecuto select insertar(10,2); ERROR: La contraint afectada es alejandro_col2_key saludos El 12/20/2015 a las 2:23 PM, Alejandro Carrillo escribió: Hola, Si revisé pero no encontré nada acerca del objeto afectado, por ahora la única solución es: when unique_violation then GET STACKED DIAGNOSTICS l_RETURNED_SQLSTATE = RETURNED_SQLSTATE, l_MESSAGE_TEXT = MESSAGE_TEXT, l_PG_EXCEPTION_DETAIL = PG_EXCEPTION_DETAIL;if position('uk_cliente' in l_MESSAGE_TEXT)> 0 then s_error_msj:= 'Ya existe un tipo_documento y numero_documento que coinciden con los ingresados. Por favor ingrese un tipo y documento diferentes o solicite restaurar la contraseña.'; end if; raise exception '%', s_error_msj; El Sábado 19 de diciembre de 2015 15:08, Anthony Sotolongo <asotolo...@gmail.com> escribió: Hola Alejandro, revisa los Error Diagnostics Values y tal vez te pueda dar la pista de la UNIQUE que te da el error, utiliza el ITEM que requieras(creo que COLUMN_NAME o CONSTRAINT_NAME o PG_EXCEPTION_DETAIL o PG_EXCEPTION_HINT, pueden ayudarte). te recomiendo: http://www.postgresql.org/docs/9.4/interactive/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING Saludos El 12/19/2015 a las 3:04 PM, Alejandro Carrillo escribió: Buen dia, Rato sin hablar en la lista. Tengo una duda, estoy creando un function en Postgresql 9.4 que insertará datos en una tabla, sin embargo esta tabla tiene 2 o más unique constraint y necesito saber unicamente el nombre de cual de las unique constraint ha sido afectada, ej: create or replace function insertar( p1 character varying, p2 character varying, p3 character varying ) RETURNS void AS $$ begin inser into ...; exception when unique_violation then -- ACA DEBO OBTENER UNICAMENTE EL NOMBRE EXACTO DE LA UNIQUE KEY AFECTADA para efectos de mostrar un mensaje de error personalizado. end; $$; Cordial saludo
Re: [pgsql-es-ayuda] Capturar cual unique key esta en excepción
Hola, Si revisé pero no encontré nada acerca del objeto afectado, por ahora la única solución es: when unique_violation then GET STACKED DIAGNOSTICS l_RETURNED_SQLSTATE = RETURNED_SQLSTATE, l_MESSAGE_TEXT = MESSAGE_TEXT, l_PG_EXCEPTION_DETAIL = PG_EXCEPTION_DETAIL; if position('uk_cliente' in l_MESSAGE_TEXT)> 0 then s_error_msj:= 'Ya existe un tipo_documento y numero_documento que coinciden con los ingresados. Por favor ingrese un tipo y documento diferentes o solicite restaurar la contraseña.'; end if; raise exception '%', s_error_msj; El Sábado 19 de diciembre de 2015 15:08, Anthony Sotolongo <asotolo...@gmail.com> escribió: Hola Alejandro, revisa los Error Diagnostics Values y tal vez te pueda dar la pista de la UNIQUE que te da el error, utiliza el ITEM que requieras(creo que COLUMN_NAME o CONSTRAINT_NAME o PG_EXCEPTION_DETAIL o PG_EXCEPTION_HINT, pueden ayudarte). te recomiendo: http://www.postgresql.org/docs/9.4/interactive/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING Saludos El 12/19/2015 a las 3:04 PM, Alejandro Carrillo escribió: Buen dia, Rato sin hablar en la lista. Tengo una duda, estoy creando un function en Postgresql 9.4 que insertará datos en una tabla, sin embargo esta tabla tiene 2 o más unique constraint y necesito saber unicamente el nombre de cual de las unique constraint ha sido afectada, ej: create or replace function insertar( p1 character varying, p2 character varying, p3 character varying ) RETURNS void AS $$ begin inser into ...; exception when unique_violation then -- ACA DEBO OBTENER UNICAMENTE EL NOMBRE EXACTO DE LA UNIQUE KEY AFECTADA para efectos de mostrar un mensaje de error personalizado. end; $$; Cordial saludo
[pgsql-es-ayuda] Capturar cual unique key esta en excepción
Buen dia, Rato sin hablar en la lista.Tengo una duda, estoy creando un function en Postgresql 9.4 que insertará datos en una tabla, sin embargo esta tabla tiene 2 o más unique constraint y necesito saber unicamente el nombre de cual de las unique constraint ha sido afectada, ej: create or replace function insertar( p1 character varying, p2 character varying, p3 character varying )RETURNS void AS$$begin inser into ...; exception when unique_violation then -- ACA DEBO OBTENER UNICAMENTE EL NOMBRE EXACTO DE LA UNIQUE KEY AFECTADA para efectos de mostrar un mensaje de error personalizado. end;$$; Cordial saludo
Re: [pgsql-es-ayuda] AYUDA
Hola: 1) No escribas en mayúscula, eso significa GRITAR2) La respuesta a lo que buscas, creo que no estas usando bien la función ya que requiere hacer casting: select replace(replace(replace(age('2007-05-19'::timestamp, '1952-02-25'::timestamp)::varchar,'years','años'),'mons','meses'),'days','dias') Saludos El Miércoles 10 de diciembre de 2014 12:01, Javier Campana jcamp...@cyg.ec escribió: !--#yiv4198141665 _filtered #yiv4198141665 {font-family:Cambria Math;panose-1:2 4 5 3 5 4 6 3 2 4;} _filtered #yiv4198141665 {font-family:Calibri;panose-1:2 15 5 2 2 2 4 3 2 4;}#yiv4198141665 #yiv4198141665 p.yiv4198141665MsoNormal, #yiv4198141665 li.yiv4198141665MsoNormal, #yiv4198141665 div.yiv4198141665MsoNormal {margin:0cm;margin-bottom:.0001pt;font-size:11.0pt;font-family:Calibri, sans-serif;}#yiv4198141665 a:link, #yiv4198141665 span.yiv4198141665MsoHyperlink {color:#0563C1;text-decoration:underline;}#yiv4198141665 a:visited, #yiv4198141665 span.yiv4198141665MsoHyperlinkFollowed {color:#954F72;text-decoration:underline;}#yiv4198141665 span.yiv4198141665EstiloCorreo17 {font-family:Calibri, sans-serif;color:windowtext;}#yiv4198141665 .yiv4198141665MsoChpDefault {font-family:Calibri, sans-serif;} _filtered #yiv4198141665 {margin:70.85pt 3.0cm 70.85pt 3.0cm;}#yiv4198141665 div.yiv4198141665WordSection1 {}--HOLA COMO ESTAN QUERIA VER SI ME PUEDEN AYUDAR A HACER UN SINTAXIS PARA VER LOS DIAS TRANSCURRIDOS ENTRE DOS CAMPOS DE FECHAS LO QUE NECESITO OBTENER ES LO SIGUIENTE Y EN ESPAÑOL 1 AÑO , 6 MESES , 3 DIAS EJEMPLO que estoy usando pero no funciona age(timestamp ' cyg_inmueble_cuota.inicio', timestamp ' cyg_inmueble_cuota.fin') gracias su ayuda Javier Campana
Re: [pgsql-es-ayuda] Error de constraint
Ese script de la tabla de lista_centros funciona?? Lo digo por esto: CREATE TABLE lista_centros ( id_centro character varying(255) NOT NULL, nombre_centro character varying(255) NOT NULL, server character varying(200), standalone boolean DEFAULT true, CONSTRAINT cs_centrosprimarykey PRIMARY KEY (id_centro), CONSTRAINT lista_centro2key UNIQUE (nombre_centros) --Este campo no existe ) El Lunes 1 de septiembre de 2014 15:24, Juan smalltalker.marc...@gmail.com escribió: Jaime . lista aca te envio las definiciones de la tabla y la consulta que no deberia tener registros porque violaria la contraint CREATE TABLE padron ( id_usuario character varying(24) NOT NULL, num_transaccion character varying(255) DEFAULT ''::character varying, tipo_centro character varying(50) DEFAULT ''::character varying, nombre_1 character varying(255), nombre_2 character varying(255), apellido_1 character varying(255), apellido_2 character varying(255), apellido_3 character varying(255), id_nacionalidad character varying(255), radicado_arg smallint DEFAULT 0, fecha_nacimiento timestamp without time zone, sexo character varying(25), calificacion smallint DEFAULT 0, fidelidad bigint DEFAULT 0, domicilio_provincia character varying(50), domicilio_partido character varying(50), domicilio_localidad character varying(50), domicilio_barrio character varying(50), domicilio_calle character varying(250), domicilio_altura character varying(50), domicilio_piso character varying(255), domicilio_puerta character varying(50), domicilio_cod_postal character varying(255), domicilio_cod_postal_arg character varying(255), domicilio_coord_x character varying(255), domicilio_coord_y character varying(255), estado_civil character varying(50), fecha_turno timestamp without time zone, centros character varying(255), jubilado smallint DEFAULT 0, CONSTRAINT cspadronprimarykey PRIMARY KEY (id_usuario), CONSTRAINT cslista_centros FOREIGN KEY (centros ) REFERENCES lista_centros (nombre_centro) MATCH SIMPLE ) CREATE TABLE lista_centros ( id_centro character varying(255) NOT NULL, nombre_centro character varying(255) NOT NULL, server character varying(200), standalone boolean DEFAULT true, CONSTRAINT cs_centrosprimarykey PRIMARY KEY (id_centro), CONSTRAINT lista_centro2key UNIQUE (nombre_centros) ) --select id_usuario,centros from padron where centros not in (select nombre_centro from lista_centro ); ARROJA RESULTADOS,... no deberia no??? alguna idea? 2014-08-29 22:55 GMT-03:00 Jaime Casanova ja...@2ndquadrant.com: 2014-08-29 19:24 GMT-05:00 Juan smalltalker.marc...@gmail.com: Jaime La constrain e foreign key match simple tiene un trigger sobre otro campo otra tabla,no entiendo como pudo llegar a ese estado. ? a ver, te preguntaba por triggers en la misma tabla en la que ves el problema. en todo caso, como Gerardo sugiere, sería buena idea que muestres la estructura de la tabla que muestra psql psql -c \d nombre_tabla nombre_base archivo_estructura.sql Por favor la estructura de la tabla que referencia asi como la referenciada. puedes mostrar los registros con problemas al menos? y los selects que usas para probar que hay un problema. finalmente, alguna vez has tenido otros problemas con esta base? has corrido pg_resetxlog? o has tenido que restaurar de una copia fisica? -- Jaime Casanova www.2ndQuadrant.com Professional PostgreSQL: Soporte 24x7 y capacitación Phone: +593 4 5107566 Cell: +593 987171157
Re: [pgsql-es-ayuda] Ayuda en PHP
Acá podemos ayudarte si tienes problemas al ejecutar una sentencia o procedimiento almacenado desde PHP, más no temas exclusivos de PHP El Lunes 30 de junio de 2014 14:03, Jaime Casanova ja...@2ndquadrant.com escribió: 2014-06-30 12:35 GMT-05:00 Jairo Graterón jgrate...@gmail.com: Buenas tardes, alguien conoce alguna lista de usuarios expertos en PHP, que tengo un problema con una asignación de la universidad y soy novato en este lenguaje. http://lmgtfy.com/?q=php+lista+correo -- Jaime Casanova www.2ndQuadrant.com Professional PostgreSQL: Soporte 24x7 y capacitación Phone: +593 4 5107566 Cell: +593 987171157 - 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
Particularmente prefiero Debian a Ubuntu (el papá por lo general es más estable que el hijo) Por otro lado, normalmente lo que se hace en una aplicación es usar una tabla usuarios con pass (md5 o sha1) para efectuar el tema del logueo a la aplicación. Esto debe ser independiente de los usuarios que existan en la BD. Normalmente para esto se crea 1 usuario de BD con permisos de no superusuario, no replicacion, no asignacion de roles, no crear BD; se usa para establecer la conexion a la BD (o a las BD) y se accede a los datos usando functions de pgplsql con security definer (quien crea las functions debe ser un usuario que tenga acceso a las tablas y a las BD's), toca tener en cuenta que si es necesario crear functions que hagan SQL dinámico, debe ejecutar las consultas con Execute ...Using (más info leer http://www.postgresql.org/docs/9.1/static/plpgsql-statements.html). Todo lo anterior quiere decir que: 1) Solo 1 usuario de BD va a acceder a la BD y va a obtener los datos ÚNICAMENTE a través de las functions ya creadas, es decir ese usuario ni siquiera debe poder hacer select directo a una tabla. 2) Normalmente, el tema de conexiones se maneja en la aplicación, desconectando la conexión después de ejecutar las functions de pgplsql. Sin embargo, si llegas a tener problemas de conexiones limitadas o no te gusta desconectar de la BD (por tiempo de conexion y desconexión), puedes usar algún pool de conexiones como pgpool (http://linuxsilo.net/articles/postgresql-pgpool.html este funciona también para replicación y alta disponibilidad) o pgBouncer (http://wiki.postgresql.org/wiki/PgBouncer que es un ligero pooler de conexiones) De: Jorge Alberto Aquino Andrade jorge.aquino.andr...@gmail.com Para: Ayuda pgsql-es-ayuda@postgresql.org Enviado: Martes 19 de marzo de 2013 10:51 Asunto: [pgsql-es-ayuda] Buen dia Estoy en un proyecto en el cual estaran conectadas aproximadamente 300 dependencias o agencias en las cuales cada dependencia tendrá unos 10 empleados por lo que existe la posibilidad que esten conectados 3000 usuarios en algún momento del día a una base centralizada, la pregunta es como puedo hacer para que los usuarios externos no puedan accesar la base desde el pgadmin u otra herramienta administrativa de la base La clave de adminsitrador de la base es suficiente con que solo una parte del personal la sepa y con eso basta para que no ingresen otros o tengo que hacer algo mas por la seguridad??? Postgres soporta esa cantidad maxima de usuarios (3000 es el maximo ahorita pero al implementar el proyecto puede ser que sea la minima) Por favor hacer los comentarios sobre mis consultas. Trabajo con Postgresql 9.2.1 y se piensa montar la base en Ubuntu (la version mas estable)
Re: [pgsql-es-ayuda] Buen dia
Con SP gano velocidad de acceso en las operaciones CRUD y evito inyección SQL. De igual forma es necesario colocar roles que impidan el acceso a datos tal y como lo dices. Ahora, aquí viene la pregunta del millón. ¿La BD de la aplicación que van a diseñar la van a consultar desde diferentes aplicaciones o PostgreSQL solo va a ser un motor de BD más del cual la aplicación va a acceder? De: Martín Marqués martin.marq...@gmail.com Para: Alejandro Carrillo faster...@yahoo.es CC: Jorge Alberto Aquino Andrade jorge.aquino.andr...@gmail.com; Ayuda pgsql-es-ayuda@postgresql.org Enviado: Miércoles 20 de marzo de 2013 12:30 Asunto: Re: [pgsql-es-ayuda] Buen dia El día 20 de marzo de 2013 09:56, Alejandro Carrillo faster...@yahoo.es escribió: 1) Solo 1 usuario de BD va a acceder a la BD y va a obtener los datos ÚNICAMENTE a través de las functions ya creadas, es decir ese usuario ni siquiera debe poder hacer select directo a una tabla. Te salís de los estándares de SQL al hacer esto. ¿Cuanta seguridad podés adquirir con SP que no puedas tener con privilegios sobre los demás objetos de las bases? Yo prefiero meter la programación justa y necesaria en la BD, sino, terminas atando la aplicación a la Base de Datos, complicando posibles migraciones. Esta es la forma en que normalmente trabajan quienes desarrollan aplicaciones de SQLServer o los que usan el PowerBuilder (aunque el PowerBuilder tenía posibilidades de migración interesantes) mis 2 centavos -- Martín Marqués select 'martin.marques' || '@' || 'gmail.com' DBA, Programador, Administrador
Re: [pgsql-es-ayuda] Permisos revoke all al tablespace pg_default
Eso quiere decir que un usuario no pueda crear Bd en el tablespace pg_default, sino en el tablespace del cual el usuario es dueño, no hace parte de las funcionalidades de postgresql De: Alejandro Carrillo faster...@yahoo.es Para: Jaime Casanova ja...@2ndquadrant.com CC: Ayuda Postgre SQL pgsql-es-ayuda@postgresql.org Enviado: Lunes 11 de marzo de 2013 14:11 Asunto: Re: [pgsql-es-ayuda] Permisos revoke all al tablespace pg_default El objetivo es que pueda crear bd pero no en el tablespace pg_default, sino en el tablespace del cual el usuario es dueño De: Jaime Casanova ja...@2ndquadrant.com Para: Alejandro Carrillo faster...@yahoo.es CC: Ayuda Postgre SQL pgsql-es-ayuda@postgresql.org Enviado: Lunes 11 de marzo de 2013 13:40 Asunto: Re: [pgsql-es-ayuda] Permisos revoke all al tablespace pg_default 2013/3/11 Alejandro Carrillo faster...@yahoo.es: Pero si deja crear BD en el tablespace: eso es una propiedad del rol y no un permiso, prueba: ALTER ROLE mariana NOCREATEDB; -- Jaime Casanova www.2ndQuadrant.com Professional PostgreSQL: Soporte 24x7 y capacitación Phone: +593 4 5107566 Cell: +593 987171157
Re: [pgsql-es-ayuda] Libros
Un poco viejo(8.3), pero ahi esta: http://www.softwarelibrecr.org/sites/default/files/Manual%20Curso%20Basico%20Postgres.pdf Tambien estan estos en amazon: http://www.amazon.com/PostgreSQL-poderosa-datos-libre-Spanish/dp/3846575275/ref=sr_1_2?s=booksie=UTF8qid=1362657709sr=1-2keywords=postgresql http://www.amazon.com/PostgreSQL-Spanish-Edition-ebook/dp/B009BRDN9S/ref=sr_1_1?s=booksie=UTF8qid=1362657709sr=1-1keywords=postgresql De: Guillermo E. Villanueva guillermo...@gmail.com Para: René Romero Benavides ichbinr...@gmail.com CC: pgsql-es-ayuda pgsql-es-ayuda@postgresql.org Enviado: Miércoles 6 de marzo de 2013 19:41 Asunto: Re: [pgsql-es-ayuda] Libros gracias por las sugerencias! Hay algo interesante en español? El 6 de marzo de 2013 20:34, René Romero Benavides ichbinr...@gmail.com escribió: Para novatos en ambas cosas a mí me gusta el libro PostgreSQL Introduction and Concepts de Bruce Momjiam, algo viejo pero la mayoría de las cosas ahí expuestas todavía aplican. http://momjian.us/main/writings/pgsql/aw_pgsql_book/ On Tuesday, March 05, 2013 04:31:21 PM Guillermo E. Villanueva wrote: Amigos, aparte de estos tres, tienen algunos libros para recomendar de Postgres o Bases de Datos en general? PostgreSQL 9 Administration Cookbook (Edición 2010);Simon Riggs y Hannu Krosing; Packt Publishing; 1849510288 PostgreSQL 9.0 High Performance(Edición 2010); Gregory Smith; Packt Publishing; 184951030X Introducción a los sistemas de bases de datos de C.J. Date Desde ya muchas gracias por sus sugerencias Saludos Guillermo Villanueva -- René Romero Benavides@iCodeiExist @PgsqlMx Postgresql Tips en español para la comunidad de México e Hispanoamérica. http://postgresql.org.mx
[pgsql-es-ayuda] Permisos revoke all al tablespace pg_default
Buen día, Por favor solicito de su colaboración ya que no logro colocar permisos de revoke all al tablespace pg_default. Los permisos se aceptan pero no se cumplen para BD (si funcionan para tablas): REVOKE ALL ON TABLESPACE pg_global FROM public; REVOKE ALL ON TABLESPACE pg_default FROM public; Query returned successfully with no result in 11 ms. Desde el usuario mariana no deja crear tablas en el tablespace pg_default(esto esta bien) CREATE TABLE public.testtabla ( ) WITH ( OIDS = FALSE ) TABLESPACE pg_default; sale: Permiso denegado al tablespace pg_default Pero si deja crear BD en el tablespace: CREATE DATABASE ree WITH OWNER = mariana CONNECTION LIMIT = -1; Esto con el fin de evitar que los usuarios creen BD en ese tablespace. Muchas gracias
Re: [pgsql-es-ayuda] Permisos revoke all al tablespace pg_default
El objetivo es que pueda crear bd pero no en el tablespace pg_default, sino en el tablespace del cual el usuario es dueño De: Jaime Casanova ja...@2ndquadrant.com Para: Alejandro Carrillo faster...@yahoo.es CC: Ayuda Postgre SQL pgsql-es-ayuda@postgresql.org Enviado: Lunes 11 de marzo de 2013 13:40 Asunto: Re: [pgsql-es-ayuda] Permisos revoke all al tablespace pg_default 2013/3/11 Alejandro Carrillo faster...@yahoo.es: Pero si deja crear BD en el tablespace: eso es una propiedad del rol y no un permiso, prueba: ALTER ROLE mariana NOCREATEDB; -- Jaime Casanova www.2ndQuadrant.com Professional PostgreSQL: Soporte 24x7 y capacitación Phone: +593 4 5107566 Cell: +593 987171157
Re: [pgsql-es-ayuda] pasword
http://stackoverflow.com/questions/6523019/postgresql-scripting-psql-execution-with-password De: FRANCISCO JOSE PALAO VILLANUEVA fjpv_2...@yahoo.es Para: pgsql-es-ayuda@postgresql.org Enviado: Viernes 8 de marzo de 2013 21:04 Asunto: [pgsql-es-ayuda] pasword Hola, hay alguna manera de conectar a una base de datos remota de la forma: psql -h x.x.x.x -U -d zzz y poder indicarle el password en esta instrucción y no tener que teclearlo. Y dentro de la consola: \c bd user ip puerto me dice que no password supplied, y si le pongo un user que no existe entonces si me pide password. O no hay más remedio que configurar el fichero pgpass.conf saludos
[pgsql-es-ayuda] [OT] Feliz día de la mujer
Hola, En cada sentimiento que experimente tu corazón, en cada experiencia que descubras con tus sentidos, en cada abrazo que entregues, hay una mujer que lo entrego todo para hacerlo posible. Muchas gracias mujeres de la lista pgsql-es-ayuda por ser los impulsos que necesita esta lista.
[pgsql-es-ayuda] PG Partition Manager
http://pgxn.org/dist/pg_partman/ pg_partman is an extension to create and manage both time-based and serial-based table partition sets. Child table trigger function creation is all managed by the extension itself. Tables with existing data can also have their data partitioned in easily managed smaller batches. Optional retention policy can automatically drop partitions no longer needed.
Re: [pgsql-es-ayuda] Encriptar carpeta de datos
Con truecrypt puedes crear un disco cifrado. Ahi sería que la aplicación desbloquee la carpeta de datos y la bloquee cada vez que vaya a acceder a los datos. Obviamente la app va a correr bien lento mientras desencripta y encripta. De: Eveling Velásquez lings...@yahoo.es Para: pgsql-es-ayuda@postgresql.org pgsql-es-ayuda@postgresql.org Enviado: Viernes 1 de marzo de 2013 10:03 Asunto: [pgsql-es-ayuda] Encriptar carpeta de datos Buen dia lista Tengo una pregunta, necesito encriptar la carpeta data o el tablespace donde almaceno la bd, ya que en la instalacion que voy a realizar, va a estar a disposicion del administrador el ver todos los archivos, se puede hacer esto o existe una solucion alterna? De antemano, gracias x sus aportes Eveling Velasquez
[pgsql-es-ayuda] Acceso denegado a usuario sobre una BD
Buen día, Por favor solicito de su colaboración para saber como puedo darle Acceso denegado a un usuario sobre los objetos que no pertenezcan a su tablespace (bds, schemas, tablas, etc) Muchas gracias
Re: [pgsql-es-ayuda] Acceso denegado a usuario sobre una BD
Hola, Me sale este error: revoke connect from public; ERROR: no existe el rol «public» ** Error ** ERROR: no existe el rol «public» SQL state: 42704 De: Alvaro Herrera alvhe...@2ndquadrant.com Para: Alejandro Carrillo faster...@yahoo.es CC: Ayuda Postgre SQL pgsql-es-ayuda@postgresql.org Enviado: Viernes 1 de marzo de 2013 10:31 Asunto: Re: Acceso denegado a usuario sobre una BD Alejandro Carrillo escribió: Buen día, Por favor solicito de su colaboración para saber como puedo darle Acceso denegado a un usuario sobre los objetos que no pertenezcan a su tablespace (bds, schemas, tablas, etc) Quita privilegios CONNECT a public, y luego se los otorgas sólo al usuario para su propia BD. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training Services
Re: [pgsql-es-ayuda] Acceso denegado a usuario sobre una BD
Entiendo, pero eso quiere decir que cada usuario será responsable de dejar sus BD pública o privadas? Verdad? De: Alvaro Herrera alvhe...@2ndquadrant.com Para: Alejandro Carrillo faster...@yahoo.es CC: Ayuda Postgre SQL pgsql-es-ayuda@postgresql.org Enviado: Viernes 1 de marzo de 2013 11:57 Asunto: Re: Acceso denegado a usuario sobre una BD Alejandro Carrillo escribió: Hola, Me sale este error: revoke connect from public; ERROR: no existe el rol «public» Efectivamente, porque no estás haciendo lo que sugerí. Lee el manual, http://www.postgresql.org/docs/current/static/sql-revoke.html Necesitas ON DATABASE foobar -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training Services
Re: [pgsql-es-ayuda] Encriptar campo
Creo que debes contemplar todo lo que te ha dicho Álvaro Herrera. Si solo es un campo, creo que puedes usar un hash (sha) o cifrado simetrico (AES), pero si es toda la tabla o la BD, entonces debes tener en cuenta lo que dijo Álvaro Herrera De: Alvaro Herrera alvhe...@2ndquadrant.com Para: Conrado Blasetti conr...@mapfre.com.ar CC: pgsql-es-ayuda@postgresql.org pgsql-es-ayuda@postgresql.org Enviado: Jueves 28 de febrero de 2013 15:16 Asunto: Re: [pgsql-es-ayuda] Encriptar campo Conrado Blasetti escribió: Gente, buenos días. Estoy trabajando sobre Win7 con una app desktop con c# (.net) y PostgreSQL 9.0. Tengo una tabla con un campo del tipo character varying(20), el cual representa un Nro de Documento (Argentina). Necesito encriptar este campo de manera tal que, desde la base de datos, no pueda ser legible y que solo pueda ser consumida desde la misma app desktop. El campo será indexado y de busquedas constantes. Qué tipo de encryptado o técnica me sugieren? Este es un problema bastante complejo que requiere pensar muy bien antes de hacer nada. Lo que estás diciendo básicamente es que quieres que en la BD la info esté cifrada, y que no se pueda obtener el valor sin cifrar mirando sólo la BD. Es decir, la llave de cifrado debe estar en la aplicación. Entonces la aplicación debe extraer el valor cifrado desde la BD, y descifrarlo a posteriori *sin involucrar a la BD para esto*. Una de las primeras cosas que tienes que preguntarte cuando tratas con temas de cifrado es cómo manejarás las llaves. ¿Qué pasa si la llave se filtra y necesitas cambiarla? En la BD tendrás que cambiar todos los valores almacenados, pero necesitas saber cuáles valores están cifrados con la llave antigua y cuáles con la llave nueva ... de lo contrario una caída en medio del cambio resultará catastrófica (recuerda que no puedes pasarle la llave a la BD para hacer un UPDATE masivo, por lo tanto tienes que cambiar una por una). En conclusión, de alguna forma debes almacenar una versión de llave junto con los valores. La aplicación debe almacenar todas las llaves con su versión. (Observa que lo anterior no aplica sólo a llaves que se filtran; deberías tener una política de crear llaves nuevas en forma periódica) El tema de las búsquedas usando los valores cifrados es simple: la aplicación debe pasar el valor cifrado a buscar. Obviamente no puedes darle un prefijo del valor, es decir búsquedas con LIKE o similares son imposibles; todo eso deberás implementarlo en la aplicación, de ser necesario. ¿Cómo harás respaldos? De la BD es fácil, porque no hay nada que esconder dado que los datos están todos cifrados; pero el almacén de llaves de la aplicación es muy delicado. El tema de si usarás un algoritmo de cifrado simétrico o asimétrico no es súper relevante. Procura usar un algoritmo moderno, quizás alguno de NESSIE (posiblemente AES/Rijndael). -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, 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] Limitar tamaño a tablespace
Buen día, Como se puede limitar el espacio en postgresql de un tablespace? Muchas gracias
Re: [pgsql-es-ayuda] Dudas con distinct
Por favor envia el plan de ejecución en http://explain.depesz.com/ De: Santiago Bravo sbrav...@gmail.com Para: pgsql-es-ayuda pgsql-es-ayuda@postgresql.org Enviado: Martes 26 de febrero de 2013 9:38 Asunto: [pgsql-es-ayuda] Dudas con distinct Hola a todos, tengo una consulta que solo me devuelve 3 registros pero se me demora alrededor de 3 min, la consulta en si es: select distinct idregdocum, nombrelargo from fin_documento d inner join fin_regdocum r on r.idregdocum = d.idregdoc inner join fin_obligacion o on d.iddocumento = o.iddocumento where r.ingresoegreso = -1 idregdocum, nombrelargo: son campos de la tabla fin_regdocum sin embargo si le quito el distinct entonces me devuelve alrededor de 33000 registros pero me los devuelve al instante, que debo hacer para que con distinct me lo devuelva mas rápido? fin_documento tiene como clave primaria iddocumento y un indice sobre el campo idregdoc y tiene alrededor de 6 registros. fin_obligacion tiene como clave primaria iddocumento y tiene alrededor de 3 registros fin_regdocum solo tiene 31 registros y tiene como clave primaria a idregdocum Gracias Santiago - 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] Caida de base de datos PostgreSQL
Veo que le diste un mamotrazo al servidor postgresql. Te recomiendo leas esto: http://stackoverflow.com/questions/12897429/what-does-pg-resetxlog-do-and-how-does-it-work Y preparate para borrar todas las transacciones que no hayan sido aceptadas (commit) antes del fallo, con este comando(pg-resetxlog). De: Wilson del rosario wilson1...@gmail.com Para: Ayuda pgsql-es-ayuda@postgresql.org Enviado: Martes 26 de febrero de 2013 14:27 Asunto: [pgsql-es-ayuda] Caida de base de datos PostgreSQL Hola a todos estoy trabajando con postgres 8.4 sobre el sistema operativo MAC OS X el problema es que no levanta la base de datos y en el log aparece el siguiente mensaje: server:~ postgres$ /Library/PostgreSQL/8.4/bin/pg_ctl -D /Volumes/RAIDMETERS/Library/PostgreSQL/8.4/data start server starting royaleserver:~ postgres$ 2013-02-24 12:46:51 PET 48760 LOG: database system was interrupted while in recovery at 2013-02-24 12:46:49 PET 2013-02-24 12:46:51 PET 48760 HINT: This probably means that some data is corrupted and you will have to use the last backup for recovery. 2013-02-24 12:46:51 PET 48760 LOG: database system was not properly shut down; automatic recovery in progress 2013-02-24 12:46:51 PET 48760 LOG: redo starts at 33F/785CFB4 2013-02-24 12:46:51 PET 48760 FATAL: could not access status of transaction 18245564 2013-02-24 12:46:51 PET 48760 DETAIL: Could not read from file pg_multixact/members/03B1 at offset 65536: Unknown error: 0. 2013-02-24 12:46:51 PET 48760 CONTEXT: xlog redo create multixact 18245564 offset 61949327: 1259116611 1259116612 2013-02-24 12:46:51 PET 48757 LOG: startup process (PID 48760) exited with exit code 1 2013-02-24 12:46:51 PET 48757 LOG: aborting startup due to startup process failure Alguien me podría explicar cual es el problema y como puedo solucionarlo, muchas gracias. Si necesitan mas datos por favor no duden en consultar. Atte. Wilson Del Rosario Montero Analista Programador
[pgsql-es-ayuda] Conexiones locales no soportadas en el servidor
Buen día, Al tratar de arrancar el servidor me sale: log: las conexiones locales no están soportadas en este servidor CONTEXTO: l?nea 84 del archivo de configuraci?n ?C:/Users/sadssd/Downloads/ postgresql-9.2.3-1-windows-binaries/pgsql lite/data/pg_hba.conf? FATAL: no se pudo cargar pg_hba.conf
[pgsql-es-ayuda]
Hola, Les comparto mi nuevo desarrollo en PostgreSQL. Son funciones para crear triggers en cada tabla para guardar los registros eliminados en cada tabla que tenga asociada la funcion del trigger. Más información, aqui: http://sourceforge.net/projects/pgtrrecrowdel/?source=navbar Y no olviden leer la wiki: http://sourceforge.net/p/pgtrrecrowdel/wiki/Home/ Espero comentarios, bugs y sugerencias, Alejandro Carrillo Hello, I share my new development in PostgreSQL. The functions to create triggers on each table to store deleted records in each table that has an associated trigger function. More information here: http://sourceforge.net/projects/pgtrrecrowdel/?source=navbar And do not forget to read the wiki: http://sourceforge.net/p/pgtrrecrowdel/wiki/Home/ I hope comments, bugs and suggestions, Alejandro Carrillo
[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] recomendación sistema de archivos en re instalación servidor postgresql
Creo que es mejor hacer RAID 1 y luego lo expandas (cuando haya $$$), haciendo el RAID 10 (añadiendo a los espejos el RAID 0) De: Edomax edo...@gmail.com Para: Javier Aquino jaqu...@lexuseditores.com CC: pgsql-es-ayuda pgsql-es-ayuda@postgresql.org Enviado: Viernes 22 de febrero de 2013 18:22 Asunto: Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] recomendación sistema de archivos en re instalación servidor postgresql Javier y Fernando , nuevamente gracias Ahí me están cotizando las piezas y averiguando si hay espació y $$$ para un storage externo (igual balde) para no perder los dicos que tengo y ver posibilidad de poner 4 más ... Esta difícil !... Sino veré la opción de tener lo mejor que se pueda con discos de 15 K , tómando las recomendaciones de no LVM me lo imaginaba que no es adecuado para bases de datos Y ahí vamos creciendo de apoco Saludos Eduardo Arenas Cel. +56 9 66 29 16 18 El 22-02-2013, a las 17:22, Javier Aquino jaqu...@lexuseditores.com escribió: Concuerdo con Fernando, adicionalmente te puedo recomendar unas cosas mas: - Usar discos de 15k (en RAID 1) - Crear una partición para la DB - Usa un filesystem sin Journaling como ext2 - Evita el LVM ya que es una capa adicional que no vas a aprovechar ya que por ser blade no podrás aumentar mas discos. - Al montar el fs usa la opcion noatime que reduce la escritura en disco cuando haces operaciones de lectura Saludos, Javier. El vie, 22-02-2013 a las 16:40 -0300, Fernando Hevia escribió: Si vas a cambiar los disco, sería muy bueno que pudieras tener al menos 3, para que hagas un raid 5. De esta manera, tendrás tolerancia a fallos de un disco. Raid 5 es lento para escritura y no recomendado en bases de datos. Preferible RAID 1, y mejor aún RAID 10 pero ya necesitarás 4 discos. Cosa que con el blade no vas a poder salvo que cuentes con un storage externo. Slds.
Re: [pgsql-es-ayuda] Encriptar campo
Puedes usar las funciones clasicas de cifrado o hash: http://www.postgresql.org/docs/9.1/static/pgcrypto.html De esas recomiendo un SHA-1 si el Nro de documento será obtenido en la aplicación, enviado como parámetro a una function de postgresql y se le aplicaria el SHA-1 a ese dato, luego se compara en esa function con el valor de la BD y verificar si son iguales. Si va a ser comparado CIFRANDO SIMETRICAMENTE el nro de doc, puedes usar AES, solo ten en cuenta que en la aplicación debe estar la clave privada del cifrado. Puedes usar tambíen RSA, pero creo que complicaría un poco las cosas ya que tienes que guardar la clave publica y la privada. Sin embargo, deberías leer esto para una arquitectura completa de cifrado usando postgresql: http://www.hagander.net/talks/Encrypted%20PostgreSQL.pdf De: Conrado Blasetti conr...@mapfre.com.ar Para: pgsql-es-ayuda@postgresql.org pgsql-es-ayuda@postgresql.org Enviado: Jueves 21 de febrero de 2013 7:32 Asunto: [pgsql-es-ayuda] Encriptar campo Gente, buenos días. Estoy trabajando sobre Win7 con una app desktop con c# (.net) y PostgreSQL 9.0. Tengo una tabla con un campo del tipo character varying(20), el cual representa un Nro de Documento (Argentina). Necesito encriptar este campo de manera tal que, desde la base de datos, no pueda ser legible y que solo pueda ser consumida desde la misma app desktop. El campo será indexado y de busquedas constantes. Qué tipo de encryptado o técnica me sugieren? Desde ya, muchas gracias. Saludos, Conrado - 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] Re: [pgsql-es-ayuda] Cambiar Proyección Cartográfica a tabla en PostGIS
Solo por descarte, intentaste poner la columna entre comillas dobles () ? De: Ulises Ibarra ulisesmartiniba...@gmail.com Para: pgsql-es-ayuda@postgresql.org Enviado: Martes 19 de febrero de 2013 11:06 Asunto: [pgsql-es-ayuda] Cambiar Proyección Cartográfica a tabla en PostGIS Hola Lista: Soy Ulises Ibarra de la Ciudad de México. Quiero plantear la siguiente duda: Tengo una tabla que cargué importando los datos de una archivo Shapefile a través del comando: shp2pgsql.exe -s 97398 -W latin1 C:\shptopostgis\municipio072005.shp municipio072005 C:\shptopostgis\municipio072005.sql La proyeccion cartográfica es Cónica Conforme de Lambert, definida en este sitio: http://spatialreference.org/ref/sr-org/7398/postgis/ Así que ya que tengo la tabla en postgres quisiera cambiar de proyección, así que me han sugerido hacer los siguiente: CREATE TABLE municipio4326 AS SELECT gid, cve_mun, cve_ent, mun, nom_mun, p_total, im_2005, gm_2005, fron_sur, area, km2, zm_2005,región mun_tipzm, dmu, dmu2, den_p, ST_Transform(the_geom, 4326) from municipio072005 Dudas.- 1.- Al ejecutar la sentencia obtengo un error que dice: ERROR: no existe la columna «regiã³n» LINE 2: ...total, im_2005, gm_2005, fron_sur, area, km2, zm_2005,región Y es que la columna región viene así región con tilde. ¿Cómo le hago para generar la tabla con una columna que tiene tilde? 2.- ¿Hay alguna forma de la columna the_geom sea transformada en una nueva proyección cartográfica EPSG: 4326 sin tanto rollo? Agradezco de antemano sus comentarios Ulises
Re: [pgsql-es-ayuda] copy archivo csv
Esa opción o usar fzpgloader De: Anthony asotolo...@uci.cu Para: José Fermín Francisco Ferreras josefermi...@hotmail.com CC: Lista PostgreSQL pgsql-es-ayuda@postgresql.org Enviado: Sábado 16 de febrero de 2013 16:10 Asunto: Re: [pgsql-es-ayuda] copy archivo csv El 17/02/2013 1:51, José Fermín Francisco Ferreras escribió: Hola a todos!! Estoy intentando hacer un copy de un archivo csv q tiene mas de 6 millones de registros a postgresql 9.2, pero a la hora de ejecutarse me lanza el siguiente mensaje: basedatos=# copy tabla from '/var/lib/postgresql/9.2/main/archivo.csv' with delimiter as ',' CSV QUOTE ''; ERROR: memoria agotada DETALLE: La cadena de 1006420404 bytes es demasiado larga para la recodificación. CONTEXTO: COPY tabla, línea 6294863 Como puedo hacer para q me copie todos los registros a la tabla?? ing. José Fermín Francisco Ferreras San Francisco de Macorís, Rep. Dom. Has probado hacer la carga con file_fdw(apéndice F.14.file_fdw de la documentación) , donde defines una FOREIGN TABLE y luego cargas poco a poco para tu tabla, poniendo un filtro en el where o con limit y offset ejemplo carga de valores en porciones de 100 : insert into tabla select * from tu FOREIGN TABLE limit 100 offset N saludos
[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Uso de resultado de función en la misma proyección o en el filtro
Creo que podrías escribirlo asi: select col_1, col_2, fn_funciondeusuario(parametros) col_result, case when fn_funciondeusuario(parametros) 0 then 'L' else 'D' END col_4 from tablas; o asi: select col_1, col_2, col_result, case when col_result 0 then 'L' else 'D' END col_4 (select col_1, col_2, fn_funciondeusuario(parametros) col_result, from tablas) t; Es más veloz la segunda. De: Guillermo E. Villanueva guillermo...@gmail.com Para: pgsql-es-ayuda pgsql-es-ayuda@postgresql.org Enviado: Miércoles 6 de febrero de 2013 9:39 Asunto: [pgsql-es-ayuda] Uso de resultado de función en la misma proyección o en el filtro Buenos días, gente hay posibilidad de utilizar el resultado de una función o de un cálculo en la misma consulta para la misma tupla? por ejemplo select col_1, col_2, fn_funciondeusuario(parametros) col_result, case when col_result 0 then 'L' else 'D' END col_4 from tablas; Si lo ejecuto así nomas me dice que no existe la columna col_result, lo que yo quiero es que no tenga que calcular 2 veces lo mismo. Es posible de alguna manera? Desde ya muchas gracias! Guillermo Guillermo Villanueva
[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: Uso de resultado de función en la misma proyección o en el filtro
2 De: Guillermo E. Villanueva guillermo...@gmail.com Para: pgsql-es-ayuda pgsql-es-ayuda@postgresql.org Enviado: Miércoles 6 de febrero de 2013 9:57 Asunto: [pgsql-es-ayuda] Re: Uso de resultado de función en la misma proyección o en el filtro Respondiendome a mi mismo he visto en algunos foros que lo resuelven con una subconsulta a nivel del from algo así como: select col_1, col_2, col_result, case when col_result 0 then 'L' else 'D' END col_4 from ( select col_1, col_2, fn_funciondeusuario(parametros) col_result, from tablas ) as tablas2 ; Mi intención era evitar que postgres haga el cálculo dos veces por cada tupla del resultado, entonces reformulo mi pregunta si lo hago así: select col_1, col_2, fn_funciondeusuario(parametros) col_result, case when fn_funciondeusuario(parametros) 0 then 'L' else 'D' END col_4 from tablas; Postgres calcula 1 o 2 veces por cada tupla? Guillermo Villanueva El 6 de febrero de 2013 11:39, Guillermo E. Villanueva guillermo...@gmail.com escribió: Buenos días, gente hay posibilidad de utilizar el resultado de una función o de un cálculo en la misma consulta para la misma tupla? por ejemplo select col_1, col_2, fn_funciondeusuario(parametros) col_result, case when col_result 0 then 'L' else 'D' END col_4 from tablas; Si lo ejecuto así nomas me dice que no existe la columna col_result, lo que yo quiero es que no tenga que calcular 2 veces lo mismo. Es posible de alguna manera? Desde ya muchas gracias! Guillermo Guillermo Villanueva
[pgsql-es-ayuda] Elaboración herramienta recuperación registro borrado
Buen día, La presente es para solicitar su colaboración para ideas para la elaboración de una herramienta forense multiplataforma (es decir, no debe en lo posible modificar los archivos de la tabla y en caso de hacerlo debe tomar el hash respectivo, respetando el archivo orginal) para la recuperación de registros borrados en una BD de PostgreSQL. Sé que actualmente existe una herramienta llamada pg_dirtyread, sin embargo no he podido compilarla en Windows (lo cual no la hace multiplataforma), además no conserva la evidencia digital ya que es necesario instalarla en el servidor que se le está haciendo la inspección, sin embargo es muy buena ya que permite visualizar los datos eliminados sin modificar el archivo de la tabla original. La herramienta sería desarrollada en Java, pero necesito ideas acerca de cual método de recuperación hacer (modificando la tabla como: http://archives.postgresql.org/pgsql-es-ayuda/2012-05/msg00258.php o pg_dirtyread: https://github.com/omniti-labs/pgtreats/tree/master/contrib/pg_dirtyread) y como hacerlo (servidor portable que le llegue los archivos de la tabla y desde ahi leer los datos para no afectar las tablas con cosas como autovacuum, pg_agent, entre otros procesos automaticos que puedar eliminar definitivamente o otra idea que propongan) Muchas gracias por su colaboración Alejandro Carrillo
Re: [pgsql-es-ayuda] consulta por fecha y hora
Creo que lo puedes hacer con un simple filtro en el where que solo filtre por esa fecha y hora. Select date_trunc('DAY', fechafactura), sum(valor) venta from facturas where fechafactura = p_fechahorafiltrar group by date_trunc('DAY', fechafactura) Donde fechafactura es timestamp De: José Fermín Francisco Ferreras josefermi...@hotmail.com Para: Lista PostgreSQL pgsql-es-ayuda@postgresql.org Enviado: Jueves 13 de diciembre de 2012 18:28 Asunto: [pgsql-es-ayuda] consulta por fecha y hora Buenas noches!! Tengo una duda, debo hacer una consulta de una tabla donde debo presentar lo siguiente: mostrar el total de ventas por día desde el 30/06/2012 hasta el 30/11/2012, pero el día 30/11/2012 solo debo evaluarlo hasta las 09:00:00 (9 de la mañana) de ese día. fecha ventas 29/06/2012 25,000.00 30/06/2012 24,350.00 01/07/2012 31,110.00 02/07/2012 31,090.00 30/11/2012 1,200.00 --este día solo se debe evaluar hasta las 09:00:00 Estructura: numero_factura integer fecha date hora time monto numeric(10,2) Gracias por adelantado!! ing. José Fermín Francisco Ferreras San Francisco de Macorís, Rep. Dom.
[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] error humano gravísimo
Soy más clásico. Recomiendo los metodos viejos: http://archives.postgresql.org/pgsql-es-ayuda/2012-05/msg00258.php En esto se va a ser mi tesis de seguridad informatica, linea computación forense. De: Guillermo E. Villanueva guillermo...@gmail.com Para: Alvaro Herrera alvhe...@2ndquadrant.com CC: pgsql-es-ayuda pgsql-es-ayuda@postgresql.org Enviado: Viernes 7 de diciembre de 2012 5:12 Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] error humano gravísimo Alvaro, muchísimas gracias por tu respuesta. Apenas respondiste quise ponerme manos a la obra con lo que dice en la página, pero me encontré con un problema que no se como resolverlo, y me doy cuenta que soy un usuario muy básico de postgres. Al intenta hacer el make me da el siguiente error: Makefile:8: /usr/lib/postgresql/9.1/lib/pgxs/src/makefiles/pgxs.mk: No existe el fichero o el directorio Si voy al directorio /usr/lib/postgresql/9.1/lib noto que no hay ningún subdirectorio allí. Entonces supongo que no tengo el paquete '-devel' que menciona el autor en su readme. ¿Puedo agregarlo sin romper mas cosas en el postgres :-( ? Desde ya muchas gracias Guillermo Villanueva El 6 de diciembre de 2012 21:24, Alvaro Herrera alvhe...@2ndquadrant.com escribió: Guillermo E. Villanueva escribió: Amigos me mandé un macanon tremendo, en mi pc de desarrollo borré todas las funciones de bases de datos sin querer, quería borrar las del server para actualizarlas con las nuevas versiones, hice todo lo contrario, osea que eliminé las últimas versiones de todas mis funciones de base de datos, las cuales uso mucho. Tengo alguna posibilidad de recuperarlas o estoy muerto? NO TENGO BACKUP Insúltenmé todo lo que quieran pero... alguno tiene un salvavidas? Si no ha ocurrido vacuum en el catálogo pg_proc puedes tener opción: http://www.depesz.com/2012/04/04/lets-talk-dirty/ -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training Services
[pgsql-es-ayuda] Usuarios en servidor
Buen día, Por favor solicito su ayuda para saber cuales usuarios están en el servidor de postgresql teniendo en cuenta que no se puede loguear ya que se desconoce el nuevo nombre dado al usuario postgres. Se tiene acceso fisico al servidor y a sus archivos. Muchas gracias
Re: [pgsql-es-ayuda] Usuarios en servidor
Trato de ejecutar: C:\System Volume Information\pgsql\binpsql --single-step psql: FATAL: no existe el rol «pc» y no funciona :( De: Alvaro Herrera alvhe...@2ndquadrant.com Para: Alejandro Carrillo faster...@yahoo.es CC: Ayuda Postgre SQL pgsql-es-ayuda@postgresql.org Enviado: Martes 27 de noviembre de 2012 15:56 Asunto: Re: Usuarios en servidor Alejandro Carrillo escribió: Buen día, Por favor solicito su ayuda para saber cuales usuarios están en el servidor de postgresql teniendo en cuenta que no se puede loguear ya que se desconoce el nuevo nombre dado al usuario postgres. Se tiene acceso fisico al servidor y a sus archivos. Inicia en modo --single y examina el catalog pg_authid ... -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training Services
Re: [pgsql-es-ayuda] Usuarios en servidor
Muchas gracias, el comando q me sirvio fue postgres --single -D ..\data template1 No conocia el nombre de la BD, asi que le apunte a la BD de sistema template1 De: Alvaro Herrera alvhe...@2ndquadrant.com Para: Alejandro Carrillo faster...@yahoo.es CC: Ayuda Postgre SQL pgsql-es-ayuda@postgresql.org Enviado: Martes 27 de noviembre de 2012 16:26 Asunto: Re: [pgsql-es-ayuda] Usuarios en servidor Alejandro Carrillo escribió: Trato de ejecutar: C:\System Volume Information\pgsql\binpsql --single-step psql: FATAL: no existe el rol «pc» y no funciona :( postgres --single -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, 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
Re: [pgsql-es-ayuda] Conectividad a otras bases de datos
http://wiki.postgresql.org/wiki/Foreign_data_wrappers De: Roberto Farías hotmail robertofari...@hotmail.com Para: pgsql-es-ayuda@postgresql.org pgsql-es-ayuda@postgresql.org Enviado: Viernes 23 de noviembre de 2012 15:43 Asunto: [pgsql-es-ayuda] Conectividad a otras bases de datos Desde una base Postgres, necesito hacer select/update en una base externa fox Es posible esta conectividad? Saludos.
Re: [pgsql-es-ayuda]
No entiendo q tiene que ver copiar la maquina virtual completa con el comando start_backup stop_backup o con hacer copia de seguridad completa del servidor postgresql De: Ruben Fitó r.f...@ubiquat.com Para: pgsql-es-ayuda@postgresql.org Enviado: Lunes 19 de noviembre de 2012 8:47 Asunto: [pgsql-es-ayuda] Hola a todos, tenemos una base de datos PG 9.1 montada en una máquina virtual WMWARE en la qual ya se está haciendo backup diario. Ahora existe la necesidad de hacer copia de la Màquina Virtual completa. Què instrucciones postgresql necesito ejecutar para que haya consistencia de datos, por tema caché, etc.?? He leido que entre pg_start_backup y un pg_stop_backup, pero tengo dudas sobre su efectividad cuando se copia una muina virtual. Perdón si no me he explicado bien. Saludos, -- Ruben Fitó Software Engineer r.f...@ubiquat.com www.ubiquat.com Tota la informació continguda en aquest document i arxius adjunts és CONFIDENCIAL protegida per llei de secret comercial. Si l'ha rebut per error, si us plau elimini'l i posi's en contacte amb l'emissor. All information contained in this document and any attachments are CONFIDENTIAL and protected under trade secret laws. If you receive this message by mistake, please delete it and notify it immediately to the sender.
Re: [pgsql-es-ayuda] como exportar separado por comas una tabla grande
http://www.postgresql.org/docs/current/static/sql-copy.html De: Hellmuth Vargas hiv...@gmail.com Para: Lista Postgres ES pgsql-es-ayuda@postgresql.org; pgsql-gene...@postgresql.org Enviado: Miércoles 24 de octubre de 2012 12:22 Asunto: [pgsql-es-ayuda] como exportar separado por comas una tabla grande Hola Lista tengo una tabla con la siguiente estructura CREATE TABLE datos_para_proceso ( id bigint, identificador character varying, nombre character varying(255), nombreusuario text, identificacion character varying(255), tema character varying(255), notatema text, subtema character varying(255), notasubtema text, pregunta character varying(255), notapregunta text ) Tamaño en disco: 5585 MB ( se saco con la consulta SELECT pg_size_pretty(SUM(tamanos)) FROM ( SELECT pg_column_size(row(b.*)) as tamanos FROM (select * from datos_para_proceso) as b ) AS c; ) numero de filas: 31054642 Esta en una base de datos PostgreSQL 9.2 a 64 Bit en un Linux CentOS 6 La idea es exportar esta tabla en formato csv, trate de hacerlo en psql directamente en el servidor: data=# \f '|' Field separator is |. data=# \a Output format is unaligned. data=# \o /tmp/datos_para_proceso.csv data=# select * from datos_para_proceso; /opt/PostgreSQL/9.2/bin/psql: línea 30: 9608 Terminado (killed) LD_PRELOAD=$PLL LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PG_BIN_PATH/../lib $PG_BIN_PATH/psql.bin $@ Y obvio el archivo quedo vacío, como podría exportar los datos?? Muchas gracias lista -- Cordialmente, Ing. Hellmuth I. Vargas S.
Re: [pgsql-es-ayuda] Postgresql 9.1 en debian
Solo por descarte, intenta usar el postgresql portable para linux: http://sourceforge.net/projects/pgsqlportable/files/latest/download De: Carlos Bazán info...@vtr.net Para: Edwin Quijada listas_quij...@hotmail.com CC: luchitodesig...@gmail.com; pgsql-es-ayuda@postgresql.org pgsql-es-ayuda@postgresql.org Enviado: Domingo 21 de octubre de 2012 14:03 Asunto: Re: [pgsql-es-ayuda] Postgresql 9.1 en debian Quizás http://pgapt.debian.net/ pueda ayudar... Salu2 El 20/10/12 22:34, Edwin Quijada escribió: Mala cosa! Poruqe lo desinstaslste? El prblema de los repo es que siempre estan desactualizados, lo que yo hago es instalar desde las fuentes si deseas ahi te puedo ayudar Date: Sat, 20 Oct 2012 13:25:46 -0500 Subject: [pgsql-es-ayuda] Postgresql 9.1 en debian From: luchitodesig...@gmail.com To: pgsql-es-ayuda@postgresql.org Hola Comunidad, Estoy intentando instalar postgresql 9.1 sudo apt-get -t squeeze-backports install postgresql-9.1 en debian Squeeze, pero cuando termina la instalación, las carpetas estan vacias /etc/postgresql, Recomiendan alguna forma de instalarlo, gracias por su ayuda. PD: tenian antes instalado el postgresq 9.2, pero no logre que funcionara con php5 y apache, asi que lo desinstale. Gracias - 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] problemas con dblink
como estas en postgresql 9 (e incluso desde el 8.4), puedes crear el foreing wrapper: http://www.postgresql.org/docs/8.4/static/contrib-dblink-connect.html y usarlo para la conexion desde el trigger, usalo a ver como te va. De: Wilson del rosario wilson1...@gmail.com Para: Miguel Beltran R. yourpa...@gmail.com CC: Juan smalltalker.marc...@gmail.com; Ayuda pgsql-es-ayuda@postgresql.org Enviado: Jueves 4 de octubre de 2012 16:49 Asunto: Re: [pgsql-es-ayuda] problemas con dblink Hola Miguel puedes utilizar el siguiente formato para hace una consulta con dblinks: select column1,column2 from dblink('host=host_servidor dbname=nombre_db user=usuario password=clave', 'select column1,column2 from tabla)' ) as resultados(column1 integer,column2 integer) Y si lo que necesitas es hacer varias consultas utilizando una conexión abierta esto es lo que necesitas: select dblink_connect('nombre_dblink','host=host_servidor dbname=nombre_db user=user password=clave'); Saludos, Wilson Del Rosario Montero DBA Heal Technology S.A.C El 26 de septiembre de 2012 14:32, Miguel Beltran R. yourpa...@gmail.com escribió: 2012/9/14 Juan smalltalker.marc...@gmail.com Gente Estoy tratando de implementar un trigger con dblink. pero no logro que se conecte. lo llamativo es que dice ERROR: could not establish connection DETAIL: could not translate host name pero estoy usando el addres asi: select dblink_connect ('hostaddr=192.169.10.22,port=5432,dbname=db,user=postgres,password=postgres' ::text ); pero no funciona, datos: version de postgres 9.1 s.o. redhat. cualquier idea sera agradecida. saludos jmdc Si usas la versión 9.1 tendrias mejor rendimiento con las nuevas funciones de tablas foraneas http://www.postgresql.org/docs/9.1/static/sql-createforeigntable.html http://wiki.postgresql.org/wiki/Foreign_data_wrappers -- Lo bueno de vivir un dia mas es saber que nos queda un dia menos de vida
[pgsql-es-ayuda]
Hola, Acabo de subir el postgresql 9.2 portable para Linux, lo descomprimes y ejecutas los sh. https://sourceforge.net/projects/pgsqlportable/ ¿Dudas, opiniones, sugerencias? Gracias por sus aportes
[pgsql-es-ayuda] Existe fdw_handler para postgresql Windows
Hola, Por favor conocen un fdw_handler para postgresql en Windows? -- Register a function that returns FDW handler function set. CREATE FUNCTION postgresql_fdw_handler() RETURNS fdw_handler AS 'MODULE_PATHNAME' LANGUAGE C; Gracias
[pgsql-es-ayuda] Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Ayuda Manejo de transacciones en una función.
Es raro lo que dices que será eterno, si se supone que esa capa de procesamiento pesado de datos la debe manejar la BD y no una capa de persistencia en el medio. De: Edwin Quijada listas_quij...@hotmail.com Para: jorgeenriq...@gmail.com; ec...@postgresql.org; pgsql-es-ayuda@postgresql.org pgsql-es-ayuda@postgresql.org Enviado: Miércoles 19 de septiembre de 2012 13:02 Asunto: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Ayuda Manejo de transacciones en una función. 1- No se puede porque una funcion en si misma ya es una transaccion, es decir, que si la abortas se abortaran los 8 2- No hay que hacer commit por 1 3- Para lo que deseas tendras que usar al scripting languaje, asi envias cada record con su respectivo commit y obtendrias lo que deseas 4- Hacer un ciclo de 8 records en una funcion es MUY MALA IDEA ese proceso tardara horas,depende lo que haga, para procesar esos 80M records. Lo que te sugiero es que uses perl, php o lo que mas te guste para hacer ese trabajo y no dentro de la BD porque,aparte de que no se puede como quieres, sera eterno. From: jorgeenriq...@gmail.com Date: Wed, 19 Sep 2012 10:18:18 -0500 Subject: [pgsql-es-ayuda] Ayuda Manejo de transacciones en una función. To: ec...@postgresql.org; pgsql-es-ayuda@postgresql.org Hola Grupo Buenos Días, Tengo una función que realiza cálculos a unos 80 mil registros los registros los recorro en un cursor y se hace calculo registro por registro y quiero que no se haga commit al final de todo el procesamiento si no que se haga commit por cada registro procesado y saber si se proceso o hubo algún error. como puedo hacer eso?? de antemano gracias por la ayuda que me puedan dar. Att. Jorge Garcia
Re: [pgsql-es-ayuda] Sobre Claves Primarias
No hay problema y no se notaria cambios en la velocidad de las consultas, ya que la llave primaria tiene un indice asociado. Recomiendo que uses un campo bigserial como llave, y el campo UBIGEO como indice unico ya que a la hora de cambiar la llave primaria te tocará ejecutar cascada en el resto de llaves foraneas que dependan de esta llave primaria. No olvidar colocar indices a las llaves foraneas en las otras tablas que dependan de UBIGEO. De: Aland Laines aland.lai...@gmail.com Para: POSTGRES pgsql-es-ayuda@postgresql.org Enviado: Lunes 17 de septiembre de 2012 10:40 Asunto: [pgsql-es-ayuda] Sobre Claves Primarias Hola amigos, tengo una tabla heredada de un sistema de access, en el que tengo un dato UBIGEO, que es la clave primaria, este campo es un character varying. Hay algún problema de usar este tipo de dato, como clave primaria en Postgres? me hará lentas las consultas? o casi no se notaria?. Pregunto esto para no tener que adicionarle un campo ID, ya que el campo UBIGEO también es único. Saludos, Aland Laines Calonge Twitter: @lainessolutions http://about.me/aland.laines
Re: [pgsql-es-ayuda] SALUDOS Y SOLICITUD DE AYUDA SOBRE INSTALACION
Te recomiendo la version binaria: http://www.enterprisedb.com/products-services-training/pgbindownload y sigues estos pasos, menos el paso de copiar a la usb: http://blog.jorgeivanmeza.com/2008/04/instalacion-rapida-de-postgresql-para-windows/ De: Nelson Eustaquio nelson.eustaq...@gmail.com Para: pgsql-es-ayuda@postgresql.org Enviado: Viernes 14 de septiembre de 2012 21:16 Asunto: [pgsql-es-ayuda] SALUDOS Y SOLICITUD DE AYUDA SOBRE INSTALACION BUENAS NOCHES AMIGOS DE POSTGRESQL ACUDO A USTEDES A FIN DE SOLICITARLES AYUDA CON RESPECTO A LA INSTALACION DE POSTGRESQL DADO QUE CUANDO TERMINA Y LO REINICIO NO SUBE NI SI QUIERA INSERTA EL NOMBRE DEL SERVICIO DE POSTGRESQL EN DICHA LISTA Q SERIAN LOSE SERVICES.MTC PERO YA EN CUESTION NO HE PODIDO INSTALAR SATISFACTORIAMENTE LA ULTIMAA VERSION DE POSTGRESQL EN MI WINDOWS 7 DE 32 BITS. ESPERO PORFAVOR ALGUNA SUGERENCIA QUE CONSIDEREN APROPIADA PARA MI CASO. ATT NELSON E
[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Servidor Postgresql Público
Para Postgresql puedes usar la conexion con SSL para que todo vaya encriptado, pero no propiamente desde el puerto 22 sino desde el puerto 5432. http://blog.jorgeivanmeza.com/2008/04/instalacion-rapida-de-postgresql-para-windows/ Lee el punto 6 y 7. Además sería necesario hacer un DMZ desde el router y apuntarlo a un PC que haga las veces de firewall, tambien es buena idea configurar los switches internos para que todo el tráfico llegue al firewall y este la envie hacia la calle dependiendo de las reglas. No sería mala idea actualizar ese servidor a 9. Mis consultas son las siguientes: Mis consultas son las siguientes: 1) Es conveniente exponer publicamente el servidor postgresql a traves de una IP Publica. No, para eso es el firewall 2) No se desea utilizar una interface WEB, de hecho a los comercios afiliados, se les va a probar una interfaz reducida con las funcionalidades requeridas. funcionalidades requeridas, mm no es claro este punto. 3) Es recomendable tener un servidor espejado publico con información actualizada y luego conciliar las informaciones en el servidor principal no expuesto. ¿¿Que chiste tiene duplicar la informacion?? Haz que el firewall permita que el servidor postgresql (pgpool o el servidor en cuestion) pueda ser visto desde la calle unicamente a traves del puerto del servidor postgresql(5432). De: CarloS Sing Ramos carloss...@gmail.com Para: Manuel Fernando Aller manuel.al...@gmail.com CC: Ramón Alberto Bruening González albertobruen...@hotmail.com; pgsql-es-ayuda@postgresql.org pgsql-es-ayuda@postgresql.org Enviado: Martes 11 de septiembre de 2012 15:46 Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Servidor Postgresql Público podrias tb usar un tunnerl ssh, es decir que todas las conexiones se hagan a travez del puerto 22, aunque si perderas un poco de velocidad ya que es un poco mas lento pero seria mas seguro. El día 11 de septiembre de 2012 15:37, Manuel Fernando Aller manuel.al...@gmail.com escribió: El 11 de septiembre de 2012 17:19, Ramón Alberto Bruening González albertobruen...@hotmail.com escribió: Buenas tardes compañeros, tengo una consulta que hacer, porque no tengo bien en claro como podria implementar la siguiente solucion: Tengo un Sistema de Gestión Administrativo (Facturaciones y Cobros) que se encuentra funcionando en una empresa. El cliente me ha solicitado la opción de poder realizar facturaciones y cobros con cajas moviles, o en tiendas comerciales con las cuales se firman algun convenio. Utilizo la version Postgresql 8.2.14, la aplicación esta desarrollado en VB. NET 2005 y el S.O. es Linux Fedora 12. Mis consultas son las siguientes: 1) Es conveniente exponer publicamente el servidor postgresql a traves de una IP Publica. NO 2) No se desea utilizar una interface WEB, de hecho a los comercios afiliados, se les va a probar una interfaz reducida con las funcionalidades requeridas. O sea, esto elimina la posiblidad de utilizar un webservice... 3) Es recomendable tener un servidor espejado publico con información actualizada y luego conciliar las informaciones en el servidor principal no expuesto. NO Lo que puedes hacer es establecer una línea punto a punto para que tanto el cliente (remoto, en la 'caja móvil') se conecte 'por la línea punto a punto' con tu servidor de BD, sin exponer ni el servidor ni el cliente a 'internet'. Puedes buscar información sobre VPNs y punto a punto, y hasta utilizar una VPN sobre internet para establecer el enlace (en vez de contratar un punto a punto dedicado) Saludos, -- Manuel -- Salu2 Linux Register User #525697 --==[[Carlos Sing]]==-- - 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] Uso system de CPU
Podria ser el vacuum full faltante en algunas tablas: Ademas en otros casos cuando ha sido provocado por una consulta, lo que subía era el acceso a disco y la carga del servidor era de tipo IO wait no de tipo System. De: Cesar Martin cmart...@gmail.com Para: Armando Venegas Pérez venegasp_arma...@hotmail.com CC: pgsql-es-ayuda@postgresql.org pgsql-es-ayuda@postgresql.org Enviado: Lunes 10 de septiembre de 2012 11:31 Asunto: Re: [pgsql-es-ayuda] Uso system de CPU Hola Armando, gracias por tu respuesta. No, no puede ser un cron, ya que no tiene una periodicidad tan determinada. Además en el momento de subir la carga, los únicos procesos son de postgres y de echo el servidor, solo tiene postgres en exclusiva, no corre nada mas en el. Un saludo. El 10 de septiembre de 2012 16:48, Armando Venegas Pérez venegasp_arma...@hotmail.com escribió: Hola Cesár. A mi me paso algo similar, pero el problema era un proceso que corría por CRON y se nos había olvidado. Tal vez no sea tu caso, pero por si las dudas. Saludos Date: Mon, 10 Sep 2012 11:30:41 +0200 Subject: [pgsql-es-ayuda] Uso system de CPU From: cmart...@gmail.com To: pgsql-es-ayuda@postgresql.org Buenos días, Tengo un servidor postgres 8.3 con la siguiente configuración HW: 128GB de RAM 2 procesadores AMD Opteron 6282 con 16 cores cada uno 2 controladoras Raid con 1GB de memoria h700: Raid1(sistema), Raid10 4HD(xlog) h800: Raid10 12HD (En cabina) (DB) La DB tiene actualmente unos 250GB y lleva una aplicación web que se conecta mediante un PGPool en modo Pool de conexiones. La configuracion actual de postgres es la siguiente: max_connections = 500 (aunque desde el pgpool las limito a 400) unix_socket_directory = '/var/run/postgres' shared_buffers = 12GB work_mem = 6MB maintenance_work_mem = 1GB max_fsm_pages = 8553600 max_fsm_relations = 409000 fsync = on synchronous_commit = off wal_buffers = 8MB checkpoint_segments = 32 checkpoint_completion_target = 0.9 effective_cache_size = 100GB constraint_exclusion = on max_locks_per_transaction = 100 Hace algunas semanas, la DB, de repente, empezó a ir lentísima y generar cientos de timeouts a la hora de conectar el frontal web. Las carga de trabajo de la DB era ridícula comparada con la normal (al ser el mes de Agosto) y sin embargo las queries iban muy lentas. La carga del servidor subía hasta llegar a 300 y las cpu corrían al 100% con carga tipo system o kernel, sin embargo a nivel de disco en ambos volumenes la carga de I/O no superaba las 100 IOPS. Este problema persistió durante todas las mañanas, hasta el punto de hacerme reiniciar la BBDD a diario... en un solo día llegue a reiniciarla hasta 4 veces, hasta que un día, puesto que no encontraba la solución, reinicie el servidor y parece que el problema se ha mitigado durante mas o menos unos diez días, ya que el otro día repitió el mismo patrón de comportamiento. He analizado los logs en busca de alguna query conflictiva, pero no hay ninguna que pueda provocar un bloqueo así. Ademas en otros casos cuando ha sido provocado por una consulta, lo que subía era el acceso a disco y la carga del servidor era de tipo IO wait no de tipo System. Los logs de sistema tampoco dan ningún error de kernel. La Swap, tampoco se esta usando, ya que el swappines del proc esta a 0. A alguien le ha pasado algo similar?? Se os ocurre que puede estar pasando?? Algún problema HW?? No duden en pedirme cualquier datos necesario. Muchas gracias de antemano, un saludo. -- César Martín Pérez cmart...@gmail.com -- César Martín Pérez cmart...@gmail.com
Re: [pgsql-es-ayuda] Optimizar query
No aplica, ya que en este caso la tabla se esta coparando registro a registro a si misma. No se´como podría cambiar ese exists a una subconsulta estilo vista. Algo como select * from det_eventos de, (select 'x' from det_eventos de1 where de1.estado = 'E' and de1.cfg_ofe_consecutivo =any(197, 239,372,716,324,808,943,338,717,944,945,186,699,550,321,340,679,177,198,553,554,333,484,549,809,337,678,718,719,946,180,183,329,314,371,339,483,698 ) ) el problema es q hago con ese (mayor que) De: CarloS Sing Ramos carloss...@gmail.com Para: Alejandro Carrillo faster...@yahoo.es Enviado: Viernes 31 de agosto de 2012 18:01 Asunto: Re: [pgsql-es-ayuda] Optimizar query bueno, supongo que si algunas subconsultas las metes en una vista te seria mas facil de manejar luego xk solo las invocarias. El día 31 de agosto de 2012 16:02, Alejandro Carrillo faster...@yahoo.es escribió: Hola, Existe una forma de quitar el not exists de este select y q siga haciendo lo mismo? Muchas gracias select de.fecha Fecha_solicitud, eae.fecha_final Fecha_instalacion, nvl(de.campo6, de.telefono) Telefono, de.numero_solicitud Solicitud , de.numero_det_solicitud Detalle from det_eventos de, act_evento ae, estados_act_evento eae, (select nb.consecutivo, na.cfg_ofe_consecutivo from nodos_act na, relaciones_nodo_act rna, nodos_act nb where rna.novedad!='E' and na.novedad!='E' and nb.novedad!='E' and nb.act_codigo= 38 and rna.nod_consecutivo_b= nb.consecutivo and rna.nod_consecutivo_a= na.consecutivo) ae1 where de.novedad!='E' and ae.novedad!='E' and eae.novedad!='E' and de.estado='E' and de.cfg_ofe_consecutivo= ANY(4,19,174,238,325,326,330,332,770,774,796,797,798,799,800,801) and ae.nod_consecutivo = ae1.consecutivo and de.cfg_ofe_consecutivo= ae1.cfg_ofe_consecutivo and eae.etd_codigo=2 and eae.fecha_final is not null and de.consecutivo= ae.det_eve_consecutivo and eae.act_eve_consecutivo= ae.consecutivo and not exists(select 'x' from det_eventos de1 where de1.estado = 'E' and de1.cfg_ofe_consecutivo =any(197, 239,372,716,324,808,943,338,717,944,945,186,699,550,321,340,679,177,198,553,554,333,484,549,809,337,678,718,719,946,180,183,329,314,371,339,483,698 ) and de1.consecutivo de.consecutivo and de1.campo6 = de.campo6 ) -- Salu2 Linux Register User #525697 --==[[Carlos Sing]]==--
[pgsql-es-ayuda] Preguntas replicación
Hola, Averiguando sobre replicación, veo que hay varias soluciones como hot stand by streaming, pg-pool II, slony, pyReplica, etc, sin embargo no sé: 1) cual es la mejor solución multiplataforma? 2) Cual soporta maestro-maestro? 3) Como es la restauración de la data del nodo maestro si llegase a caer y queda el nodo esclavo activo? 4) Cuando se cae el nodo maestro, el nodo esclavo puede guardar información que recibia del nodo maestro y resincronizarla al nodo maestro cuando este se levante? 5) Que ocurre con la direccion IP si el SERVIDOR FISICO donde se encuentra el nodo maestro se cae? como se puede hacer para que tenga la misma IP a pesar que se haya caido el maestro y el esclavo tome el lugar del maestro? Muchas gracias
Re: [pgsql-es-ayuda] Velocidad en BD y WebServices
No creo. Es un hecho por la velocidad de interpretación del XML. Aunque cabe aclarar que tambíen estas consulta e inserciones deben hacerse a través de procedimientos almacenados, ya que así el motor de BD no tiene que analizar la sintaxis del query para luego hacer la inserción y/o consulta. De: Milton Labanda 1000ton@gmail.com Para: Alejandro Carrillo faster...@yahoo.es Enviado: Martes 21 de agosto de 2012 22:49 Asunto: Re: [pgsql-es-ayuda] Velocidad en BD y WebServices El 21 de agosto de 2012 21:31, Alejandro Carrillo faster...@yahoo.es escribió: mmm creo que deberías tomar cada tiempo desde la aplicación que ejecute todos estos pasos: t1=t LlamadaWS1() t1=t-t1 t2=t InsercionPostgreSQL() t2=t-t2 t3=t LlamadaWS2() t3=t-t3 En mi experiencia, el error puede estar en los WS (me imagino que deben ser WSDL y esto afecta la velocidad), puedes usar servlets o peticiones get/post en vez de un WSDL. Exactamente estoy usando WSDL ; y crees que si los WS fueran con REST sería mas rápido? De: Milton Labanda 1000ton@gmail.com Para: Aland Laines aland.lai...@gmail.com CC: Python Argentina p...@python.org.ar; pgsql-es-ayuda-ow...@postgresql.org; POSTGRES pgsql-es-ayuda@postgresql.org Enviado: Martes 21 de agosto de 2012 15:23 Asunto: Re: [pgsql-es-ayuda] Velocidad en BD y WebServices Desde la primera consulta Aland El 21 de agosto de 2012 14:32, Aland Laines aland.lai...@gmail.com escribió: Los 10 segundos se demora desde la consulta o solo las inserciones? Aland Laines Calonge Twitter: @lainessolutions http://about.me/aland.laines El 21 de agosto de 2012 12:17, Milton Labanda 1000ton@gmail.com escribió: Hola amigos, estoy corriendo un script que: 1- Extrae datos de un Sistema Academico a traves de sus webservices. (el SGA usa postgres) 2- Los Inserta si no existen en una Base de datos intermedia (postgres) 3- Los inserta también en una instancia de Moodle (a través de sus webservice), la instancia de moodle usa MySQL. Creen que es normal que se demore 10 segundos en hacer una inserción de una fila en todos esos repositorios y sistemas? como podría medir la velocidad e identificar los cuellos de botella (alguna herramienta)? -- /\/\;/- Milton Labanda [miltonlab] Distro: Debian GNU/Linux 6.0 Squeeze Blog: http://1000tonlab.wordpress.com jabber: milton...@jabber.org ... Solamente la libertad que se somete a la Verdad conduce a la persona humana a su verdadero bien Karol Wojtyla (:\ Usa Software Legal, usa Software Libre /:) -- /\/\;/- Milton Labanda [miltonlab] Distro: Debian GNU/Linux 6.0 Squeeze Blog: http://1000tonlab.wordpress.com jabber: milton...@jabber.org ... Solamente la libertad que se somete a la Verdad conduce a la persona humana a su verdadero bien Karol Wojtyla (:\ Usa Software Legal, usa Software Libre /:) -- /\/\;/- Milton Labanda [miltonlab] Distro: Debian GNU/Linux 6.0 Squeeze Blog: http://1000tonlab.wordpress.com jabber: milton...@jabber.org ... Solamente la libertad que se somete a la Verdad conduce a la persona humana a su verdadero bien Karol Wojtyla (:\ Usa Software Legal, usa Software Libre /:)
Re: [pgsql-es-ayuda] Velocidad en BD y WebServices
mmm creo que deberías tomar cada tiempo desde la aplicación que ejecute todos estos pasos: t1=t LlamadaWS1() t1=t-t1 t2=t InsercionPostgreSQL() t2=t-t2 t3=t LlamadaWS2() t3=t-t3 En mi experiencia, el error puede estar en los WS (me imagino que deben ser WSDL y esto afecta la velocidad), puedes usar servlets o peticiones get/post en vez de un WSDL. De: Milton Labanda 1000ton@gmail.com Para: Aland Laines aland.lai...@gmail.com CC: Python Argentina p...@python.org.ar; pgsql-es-ayuda-ow...@postgresql.org; POSTGRES pgsql-es-ayuda@postgresql.org Enviado: Martes 21 de agosto de 2012 15:23 Asunto: Re: [pgsql-es-ayuda] Velocidad en BD y WebServices Desde la primera consulta Aland El 21 de agosto de 2012 14:32, Aland Laines aland.lai...@gmail.com escribió: Los 10 segundos se demora desde la consulta o solo las inserciones? Aland Laines Calonge Twitter: @lainessolutions http://about.me/aland.laines El 21 de agosto de 2012 12:17, Milton Labanda 1000ton@gmail.com escribió: Hola amigos, estoy corriendo un script que: 1- Extrae datos de un Sistema Academico a traves de sus webservices. (el SGA usa postgres) 2- Los Inserta si no existen en una Base de datos intermedia (postgres) 3- Los inserta también en una instancia de Moodle (a través de sus webservice), la instancia de moodle usa MySQL. Creen que es normal que se demore 10 segundos en hacer una inserción de una fila en todos esos repositorios y sistemas? como podría medir la velocidad e identificar los cuellos de botella (alguna herramienta)? -- /\/\;/- Milton Labanda [miltonlab] Distro: Debian GNU/Linux 6.0 Squeeze Blog: http://1000tonlab.wordpress.com jabber: milton...@jabber.org ... Solamente la libertad que se somete a la Verdad conduce a la persona humana a su verdadero bien Karol Wojtyla (:\ Usa Software Legal, usa Software Libre /:) -- /\/\;/- Milton Labanda [miltonlab] Distro: Debian GNU/Linux 6.0 Squeeze Blog: http://1000tonlab.wordpress.com jabber: milton...@jabber.org ... Solamente la libertad que se somete a la Verdad conduce a la persona humana a su verdadero bien Karol Wojtyla (:\ Usa Software Legal, usa Software Libre /:)
[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Invitación a la 1a Reunión de Usuarios de PostgreSQL en México, en la Ciudad de México
Me gustaria hacer una ponencia presencial, pero no es posible, sin embargo podría hacer una videoponencia usando videostreaming y algún sistema de chat como gmail. No sé si les interese. De: Antonio Galicia antonio.gali...@gmail.com Para: Roberto Andrade Fonseca randradefons...@gmail.com CC: Postgres Español pgsql-es-ayuda@postgresql.org Enviado: Miércoles 15 de agosto de 2012 16:24 Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Invitación a la 1a Reunión de Usuarios de PostgreSQL en México, en la Ciudad de México 2012/8/15 Roberto Andrade Fonseca randradefons...@gmail.com: Ya existe un evento de Facebook en donde se invita a la reunión. Pero no es la primera, ¿no? O lo que se organizaba en el Gran Hotel no cuenta? Se solicitan ponencias de 40 min para esta primera reunión. http://www.facebook.com/events/478597605493360/ Suerte con ello. Yo nomás les caigo ;) -- Saludos, PP Ofertas y descuentos en http://gplia.com/C4kls Más ofertas en http://www.groupon.com.mx/in/.gG7NHg?nlp Y mas http://www.clickonero.com.mx/?ref=d2rztcyxm9r - 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] Huso horario a.m. no reconocido
Buenos días, Por favor solicito de su colaboración para este problema. A la hora de insertar registros me sale el error Huso horario a.m. no reconocido este es el registro q se trata de insertar: 110;POSICION DE VOZ URBA;;S;;I;12/12/2005 10:40:45 a.m.;RENEBARL;A;; La tabla tiene un campo fecha Gracias
[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Primera Reunión del Grupo de Usuarios de PostgreSQL en México.
Si existe con VLC, una camara digital y una tarjeta capturadora de video USB, pero por favor copien esto a la lista de fomento. Gracias De: felipe guzman felipeguzm...@gmail.com Para: Roberto Andrade Fonseca randradefons...@gmail.com CC: Postgres Español pgsql-es-ayuda@postgresql.org Enviado: Martes 14 de agosto de 2012 12:28 Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Primera Reunión del Grupo de Usuarios de PostgreSQL en México. Señores, soy de chile que posibilidad existen de transmitir las charlas o grabar los vídeos para posterior a ello compartirlas? El 14 de agosto de 2012 13:11, Roberto Andrade Fonseca randradefons...@gmail.com escribió: Hola: La Primera Reunión del Grupo de Usuarios de PostgreSQL en México será a las 17 horas del jueves 30 de agosto en la Ciudad de México. La idea es dar tres ponencias cortas (40 min) sobre PostgreSQL: seguridad, casos de éxito, PostGIS, desempeño, replicación, etc. ¿Quieres participar con alguna ponencia? El lugar dependerá de cuántos asistentes confirmados existan. Habrá café y galletas en la reunión. Pronto habrá más información. Saludos.-- Roberto Andrade Fonseca
Re: [pgsql-es-ayuda] Huso horario a.m. no reconocido
No es posible ya que los datos vienen de esa forma. De: Manuel Fernando Aller manuel.al...@gmail.com Para: Alejandro Carrillo faster...@yahoo.es Enviado: Martes 14 de agosto de 2012 13:14 Asunto: Re: [pgsql-es-ayuda] Huso horario a.m. no reconocido Probá de insertar sin el ' a.m.' El 14 de agosto de 2012 15:10, Alejandro Carrillo faster...@yahoo.es escribió: Buenos días, Por favor solicito de su colaboración para este problema. A la hora de insertar registros me sale el error Huso horario a.m. no reconocido este es el registro q se trata de insertar: 110;POSICION DE VOZ URBA;;S;;I;12/12/2005 10:40:45 a.m.;RENEBARL;A;; La tabla tiene un campo fecha Gracias -- Manuel
[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Tamaño de nombres de tablas
Creo que necesitarás compilar el postgresql desde las fuentes, antes debes buscar en el archivo src/include/postgres_ext.h la variable NAMEDATALEN.y cambiarle el valor. De: Milton Labanda 1000ton@gmail.com Para: Foros Postgre Ecuador ec...@postgresql.org; POSTGRES pgsql-es-ayuda@postgresql.org Enviado: Jueves 2 de agosto de 2012 11:43 Asunto: [pgsql-es-ayuda] Tamaño de nombres de tablas Hola amigos, tengo una app que usa elixir y sqlalchemy (python ) como ORM, la bd es logicamente PG. Tango problemas porque algunos nombres de las clases del modelo son bastante largos y Postgres los limita a 63: sqlalchemy.exc.IdentifierError: Identifier 'sga_model_expediente_autorizaciones_asentar_nota__sga_model_autorizacionasentarnota' exceeds maximum length of 63 characters Puedo cambiar alguna variable en PG para solucionar esto ? /\/\;/- Milton Labanda [miltonlab] Distro: Debian GNU/Linux 6.0 Squeeze Blog: http://1000tonlab.wordpress.com jabber: milton...@jabber.org ... Solamente la libertad que se somete a la Verdad conduce a la persona humana a su verdadero bien Karol Wojtyla (:\ Usa Software Legal, usa Software Libre /:)
[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [ecpug] Tamaño de nombres de tablas
Tambien puedes tener en cuenta esto: http://stackoverflow.com/questions/5082036/raise-postgresqls-namedatalen-without-recompiling De: Ovnicraft ovnicr...@gmail.com Para: Milton Labanda 1000ton@gmail.com CC: Foros Postgre Ecuador ec...@postgresql.org; POSTGRES pgsql-es-ayuda@postgresql.org Enviado: Jueves 2 de agosto de 2012 12:41 Asunto: [pgsql-es-ayuda] Re: [ecpug] Tamaño de nombres de tablas 2012/8/2 Milton Labanda 1000ton@gmail.com Hola amigos, tengo una app que usa elixir y sqlalchemy (python ) como ORM, la bd es logicamente PG. Tango problemas porque algunos nombres de las clases del modelo son bastante largos y Postgres los limita a 63: sqlalchemy.exc.IdentifierError: Identifier 'sga_model_expediente_autorizaciones_asentar_nota__sga_model_autorizacionasentarnota' exceeds maximum length of 63 characters Podrias mejorar el nombre de las clases, si estas usando sqlalchemy deberias renombrar la tabla a algo mas corto, yo uso la convencion pkg_object, asi me es facil entrar en los 63chars. Saludos, Puedo cambiar alguna variable en PG para solucionar esto ? /\/\;/- Milton Labanda [miltonlab] Distro: Debian GNU/Linux 6.0 Squeeze Blog: http://1000tonlab.wordpress.com jabber: milton...@jabber.org ... Solamente la libertad que se somete a la Verdad conduce a la persona humana a su verdadero bien Karol Wojtyla (:\ Usa Software Legal, usa Software Libre /:) -- Cristian Salamea @ovnicraft
Re: [pgsql-es-ayuda] pg_dirtyread
El error q se sale al servidor es : SENTENCIA: SELECT * FROM pg_dirtyread('test'::regclass) as (id integer, userna me text); select * from LOG: proceso de servidor (PID 5216) fue terminado por una excepcin 0xC005 HINT: Vea el archivo ntstatus.h para una descripcin del valor hexadecimal. LOG: terminando todos los otros procesos de servidor activos WARNING: terminando la conexin debido a una falla en otro proceso servidor DETALLE: Postmaster ha ordenado que este proceso servidor cancele la transaccin en curso y finalice la conexin, porque otro proceso servidor ha terminado anorm almente y podra haber corrompido la memoria compartida. HINT: Dentro de un momento debera poder reconectarse y repetir la consulta. LOG: todos los procesos fueron terminados; reinicializando LOG: el sistema de bases de datos fue interrumpido; ltima vez en funcionamiento en 2012-08-02 17:55:30 COT LOG: el sistema de bases de datos no fue apagado apropiadamente; se est efectua ndo la recuperacin automtica LOG: el estado de recuperacin consistente fue alcanzado en 0/203E4C0 LOG: registro de longitud cero en 0/203E4C0 LOG: no se requiere redo LOG: el sistema de bases de datos est listo para aceptar conexiones LOG: lanzador de autovacuum iniciado LOG: proceso de servidor (PID 4116) fue terminado por una excepcin 0xC005 HINT: Vea el archivo ntstatus.h para una descripcin del valor hexadecimal. LOG: terminando todos los otros procesos de servidor activos WARNING: terminando la conexin debido a una falla en otro proceso servidor DETALLE: Postmaster ha ordenado que este proceso servidor cancele la transaccin en curso y finalice la conexin, porque otro proceso servidor ha terminado anorm almente y podra haber corrompido la memoria compartida. HINT: Dentro de un momento debera poder reconectarse y repetir la consulta. LOG: todos los procesos fueron terminados; reinicializando LOG: el sistema de bases de datos fue interrumpido; ltima vez en funcionamiento en 2012-08-02 17:55:53 COT LOG: el sistema de bases de datos no fue apagado apropiadamente; se est efectua ndo la recuperacin automtica LOG: el estado de recuperacin consistente fue alcanzado en 0/203E518 LOG: registro de longitud cero en 0/203E518 LOG: no se requiere redo LOG: el sistema de bases de datos est listo para aceptar conexiones LOG: lanzador de autovacuum iniciado De: Edwin Quijada listas_quij...@hotmail.com Para: faster...@yahoo.es; pgsql-es-ayuda@postgresql.org pgsql-es-ayuda@postgresql.org CC: Alvaro Herrera alvhe...@alvh.no-ip.org; Edwin Quijada macaru...@hotmail.com Enviado: Jueves 2 de agosto de 2012 16:15 Asunto: RE: [pgsql-es-ayuda] pg_dirtyread Revisa esto y dime si te funciono http://es.scribd.com/doc/40725510/Build-PostgreSQL-C-Functions-on-Windows From: listas_quij...@hotmail.com To: faster...@yahoo.es; pgsql-es-ayuda@postgresql.org CC: alvhe...@alvh.no-ip.org Subject: RE: [pgsql-es-ayuda] pg_dirtyread Date: Thu, 2 Aug 2012 20:55:33 + Eso me han dicho. A mi me paso lo mismo que a ti con una funcion que hice en Linux compilo bien y en Win tambien pero en Win rompe el server entonces alguien me dijo que debe ser compilado con VC++ , la verdad aun no lo he hecho. Date: Wed, 1 Aug 2012 18:38:56 +0100 From: faster...@yahoo.es Subject: Re: [pgsql-es-ayuda] pg_dirtyread To: listas_quij...@hotmail.com; pgsql-es-ayuda@postgresql.org CC: alvhe...@alvh.no-ip.org ¿Pero con Visual C++ si compila y no reinicia el servidor?? De: Edwin Quijada listas_quij...@hotmail.com Para: faster...@yahoo.es; pgsql-es-ayuda@postgresql.org pgsql-es-ayuda@postgresql.org CC: Alvaro Herrera alvhe...@alvh.no-ip.org Enviado: Miércoles 1 de agosto de 2012 10:03 Asunto: RE: [pgsql-es-ayuda] pg_dirtyread Con que compilador lo compilaste? Mingw, ? Tienes q compilar con VC++ para que funcione. Tengo el mismo problema que tu. Date: Tue, 31 Jul 2012 22:44:48 +0100 From: faster...@yahoo.es Subject: [pgsql-es-ayuda] pg_dirtyread To: pgsql-es-ayuda@postgresql.org CC: alvhe...@alvh.no-ip.org Buenas tardes, Tengo un problema al tratar de usar la libreria pg_dirtyread en Windows, la logré compilar creando una dll, pero al usarla, se desconecta la conexión al servidor: CREATE OR REPLACE FUNCTION pg_dirtyread(oid) RETURNS setof record AS 'C:\\Documents and Settings\\Administrador\\Escritorio\\pg_dirtyread\\pg_dirtyread.dll','pg_dirtyread' LANGUAGE 'C' IMMUTABLE STRICT; Query returned successfully with no result in 16 ms. select * from pg_dirtyread( 'test'::regclass ) t (id int4, username text); ** Error ** Connection reset. No se porque sucede esto. Muchas gracias
Re: [pgsql-es-ayuda] pg_dirtyread
¿Pero con Visual C++ si compila y no reinicia el servidor?? De: Edwin Quijada listas_quij...@hotmail.com Para: faster...@yahoo.es; pgsql-es-ayuda@postgresql.org pgsql-es-ayuda@postgresql.org CC: Alvaro Herrera alvhe...@alvh.no-ip.org Enviado: Miércoles 1 de agosto de 2012 10:03 Asunto: RE: [pgsql-es-ayuda] pg_dirtyread Con que compilador lo compilaste? Mingw, ? Tienes q compilar con VC++ para que funcione. Tengo el mismo problema que tu. Date: Tue, 31 Jul 2012 22:44:48 +0100 From: faster...@yahoo.es Subject: [pgsql-es-ayuda] pg_dirtyread To: pgsql-es-ayuda@postgresql.org CC: alvhe...@alvh.no-ip.org Buenas tardes, Tengo un problema al tratar de usar la libreria pg_dirtyread en Windows, la logré compilar creando una dll, pero al usarla, se desconecta la conexión al servidor: CREATE OR REPLACE FUNCTION pg_dirtyread(oid) RETURNS setof record AS 'C:\\Documents and Settings\\Administrador\\Escritorio\\pg_dirtyread\\pg_dirtyread.dll','pg_dirtyread' LANGUAGE 'C' IMMUTABLE STRICT; Query returned successfully with no result in 16 ms. select * from pg_dirtyread( 'test'::regclass ) t (id int4, username text); ** Error ** Connection reset. No se porque sucede esto. Muchas gracias
Re: [pgsql-es-ayuda] Cambiar valor xmax
Hablemos sucio http://www.depesz.com/2012/04/04/lets-talk-dirty/ De: Lazáro Rubén García Martínez lgarc...@vnz.uci.cu Para: Jaime Casanova ja...@2ndquadrant.com CC: pgsql-es-ayuda@postgresql.org pgsql-es-ayuda@postgresql.org Enviado: Lunes 30 de julio de 2012 14:40 Asunto: RE: [pgsql-es-ayuda] Cambiar valor xmax Muchas gracias a todos por su respuesta. saludos. From: jcasa...@systemguards.com.ec [jcasa...@systemguards.com.ec] On Behalf Of Jaime Casanova [ja...@2ndquadrant.com] Sent: Monday, July 30, 2012 1:50 PM To: Lazáro Rubén García Martínez Cc: pgsql-es-ayuda@postgresql.org Subject: Re: [pgsql-es-ayuda] Cambiar valor xmax 2012/7/30 Lazáro Rubén García Martínez lgarc...@vnz.uci.cu: Hola a todos en la lista, es posible cambiar el valor de la tupla xmax desde una consulta? xmax no es una tupla sino un campo de sistema en cada tupla y la respuesta es: NO. no puedes cambiar ese valor desde una consulta -- Jaime Casanova www.2ndQuadrant.com Professional PostgreSQL: Soporte 24x7 y capacitación Fin a la injusticia, LIBERTAD AHORA A NUESTROS CINCO COMPATRIOTAS QUE SE ENCUENTRAN INJUSTAMENTE EN PRISIONES DE LOS EEUU! http://www.antiterroristas.cu http://justiciaparaloscinco.wordpress.com Fin a la injusticia, LIBERTAD AHORA A NUESTROS CINCO COMPATRIOTAS QUE SE ENCUENTRAN INJUSTAMENTE EN PRISIONES DE LOS EEUU! http://www.antiterroristas.cu http://justiciaparaloscinco.wordpress.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
[pgsql-es-ayuda] pg_dirtyread
Buenas tardes, Tengo un problema al tratar de usar la libreria pg_dirtyread en Windows, la logré compilar creando una dll, pero al usarla, se desconecta la conexión al servidor: CREATE OR REPLACE FUNCTION pg_dirtyread(oid) RETURNS setof record AS 'C:\\Documents and Settings\\Administrador\\Escritorio\\pg_dirtyread\\pg_dirtyread.dll','pg_dirtyread' LANGUAGE 'C' IMMUTABLE STRICT; Query returned successfully with no result in 16 ms. select * from pg_dirtyread( 'test'::regclass ) t (id int4, username text); ** Error ** Connection reset. No se porque sucede esto. Muchas gracias
Re: [pgsql-es-ayuda] Cambiar valor xmax
+1 Sin embargo, puedes cambiar ese valor por fuera con un editor hexadecimal teniendo en cuenta estos pasos: Pasos: --1) Buscar el oid de la BD select oid from pg_database d where d.datname ='pruebas'; --2) Buscar la ruta del archivo donde se encuentra la tabla, el OID de la BD debe coincidir con el OID de la ruta SELECT pg_relation_filenode('gps_datos'),pg_relation_filepath('gps_datos'); --3) Buscar esa ruta en el directorio data de la carpeta donde se encuentra postgresql --4) Abrir el archivo donde se encuentra la tabla con un editor hexadecimal (pueden usar el de su preferencia) --5) Instalar la extensión pageinspect CREATE EXTENSION pageinspect; --6) Usar las funciones heap_page_items y get_raw_page para obtener información de los registros en la tabla. Los registros a recuperar contienen un valor diferente a 0 en la columna t_xmax (transacción que eliminó el registro) select * from heap_page_items(get_raw_page('gps_datos',0)); --7) Usando el editor hexadecimal, ir a la posicion que esta en la columna lp_off del registro a recuperar --7.1) Los primeros 4 bytes son el t_xmin, los siguientes 4 bytes son t_xmax, se debe cambiar el valor de cada uno de estos 4 bytes (t_xmax) a cero(00). Ambos se leen de derecha a izquierda. --7.2) Es necesario resetear los bits XMAX_COMMITTED, para ello se toma el valor de la columna t_infomask, obtenida del query en el punto 6, para el registro a recuperar(en mi caso 1282) - y se convierte el valor de esa columna a hexadecimal (0502 en mi caso), luego cuenta 13 bytes hacia adelante para llegar al infomask, el cual permite visualizar el registro (posiciones: http://www.postgresql.org/docs/9.0/interactive/storage-page-layout.html) - por ultimo, se le resta 0x0400(XMAX_COMMITTED) al valor hexa (0502 en mi caso) y el resultado (0102 en mi caso), se coloca reemplazando el valor del infomask actual (se escribe de derecha a izquierda, 02 01 en mi caso). Estos pasos se deben hacer para cada registro a recuperar. O se podría hacer con estos pasos, una extensión hecha en C que permita recuperar el registro. De: Jaime Casanova ja...@2ndquadrant.com Para: Lazáro Rubén García Martínez lgarc...@vnz.uci.cu CC: pgsql-es-ayuda@postgresql.org pgsql-es-ayuda@postgresql.org Enviado: Lunes 30 de julio de 2012 13:20 Asunto: Re: [pgsql-es-ayuda] Cambiar valor xmax 2012/7/30 Lazáro Rubén García Martínez lgarc...@vnz.uci.cu: Hola a todos en la lista, es posible cambiar el valor de la tupla xmax desde una consulta? xmax no es una tupla sino un campo de sistema en cada tupla y la respuesta es: NO. no puedes cambiar ese valor desde una consulta -- Jaime Casanova www.2ndQuadrant.com Professional PostgreSQL: Soporte 24x7 y capacitación - 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] Ayuda con inquietud
Creo que lo mejor es hacer un índice único en la tabla GPS (llave primaria), un campo donde esté la última posición del GPS y otro índice en la llave foránea de GPS en la tabla positions. Y crear una function asi: CREATE OR REPLACE FUNCTION public.fn_guardar_posicion ( gps_id_ integer, posicion_ varchar, velocidad_ real, altura_ real, fecha_ timestamp, grados_ real, satelites_ integer ) RETURNS integer AS $body$ DECLARE retorno INTEGER; BEGIN INSERT INTO positions ( gps_id, posicion, velocidad, altura, fecha, grados, satelites ) VALUES ( gps_id_, posicion_, velocidad_, altura_, fecha_, grados_, satelites_ )RETURNING id INTO retorno; if (id is null) then UPDATE gps SET posicion = posicion_, WHERE id = gps_id_; end if; ; RETURN retorno; END; $body$ LANGUAGE 'plpgsql'; Así no necesitas tener más tablas adicionales. No olvidar hacer vacuum full a las tablas periódicamente en horario donde haya pocas transacciones. De: Lazáro Rubén García Martínez lgarc...@vnz.uci.cu Para: Jorge Toro jolt...@gmail.com; Foro Postgres pgsql-es-ayuda@postgresql.org Enviado: Lunes 9 de julio de 2012 10:21 Asunto: RE: [pgsql-es-ayuda] Ayuda con inquietud Entonces podrias tener dos tablas positions, una que se llame hist_positions por ejemplo, y la otra positions, sobre positions almacenas la última ubicación de los gps y sobre hist_positions el historial de posiciones de los gps, para almacenar las posiciones de los gps utililizas una función, y para llevar el historial de los gps, puedes utilizar un trigger sobre positions. Acá te dejo el código de todo, solo falta la referencia de la clave foránea. Espero que te sirva. PD: Pudieran existir otras soluciones. --Crear la tabla positions CREATE TABLE public.positions ( id SERIAL, gps_id INTEGER, posicion VARCHAR, velocidad REAL, altura REAL, fecha TIMESTAMP WITHOUT TIME ZONE, grados REAL, satelites INTEGER, CONSTRAINT positions_pkey PRIMARY KEY(id) ) WITHOUT OIDS; --Crear la tabla hist_positions CREATE TABLE public.hist_positions ( id SERIAL, gps_id INTEGER, posicion VARCHAR, velocidad REAL, altura REAL, fecha TIMESTAMP WITHOUT TIME ZONE, grados REAL, satelites INTEGER, CONSTRAINT hist_positions_pkey PRIMARY KEY(id) ) WITHOUT OIDS; --Función para guardar en positions CREATE OR REPLACE FUNCTION public.fun_guardar_posicion ( gps_id_ integer, posicion_ varchar, velocidad_ real, altura_ real, fecha_ timestamp, grados_ real, satelites_ integer ) RETURNS integer AS $body$ DECLARE retorno INTEGER; BEGIN UPDATE positions SET posicion = posicion_, velocidad = velocidad_, altura = altura_, fecha = fecha_, grados = grados_, satelites = satelites_ WHERE gps_id = gps_id_ RETURNING id INTO retorno; IF (retorno IS NULL) THEN INSERT INTO positions ( gps_id, posicion, velocidad, altura, fecha, grados, satelites ) VALUES ( gps_id_, posicion_, velocidad_, altura_, fecha_, grados_, satelites_ )RETURNING id INTO retorno; END IF; RETURN retorno; END; $body$ LANGUAGE 'plpgsql'; --Función ejecutada por el trigger para guardar en el historial de positions CREATE OR REPLACE FUNCTION public.fun_trg_hist_positions ( ) RETURNS trigger AS $body$ DECLARE BEGIN INSERT INTO hist_positions ( gps_id, posicion, velocidad, altura, fecha, grados, satelites ) VALUES ( NEW.gps_id, NEW.posicion, NEW.velocidad, NEW.altura, NEW.fecha, NEW.grados, NEW.satelites ); RETURN NULL; END; $body$ LANGUAGE 'plpgsql'; --Trigger utilizado CREATE TRIGGER trg_hist_positions AFTER INSERT OR UPDATE ON public.positions FOR EACH ROW EXECUTE PROCEDURE public.fun_trg_hist_positions(); Saludos a todos. From: pgsql-es-ayuda-ow...@postgresql.org [pgsql-es-ayuda-ow...@postgresql.org] On Behalf Of Jorge Toro [jolt...@gmail.com] Sent: Monday, July 09, 2012 9:43 AM To: Foro Postgres Subject: Re: [pgsql-es-ayuda] Ayuda con inquietud Hola Lazáro, gracias por responder. Sí gps.idhttp://gps.id es la referencia a una tabla gps que se usa para registrar cada uno de los GPS que se registran para ser aceptados por el servidor. Esta tabla gps tiene datos como: id, name, type, active. de cada uno de los GPS. Y la tabla position se encarga de almacenar los reportes (históricos) hechos por cada GPS. Y lo que quiero lograr es, tener a la mano siempre que consulte un dispositivo, toda la última información de dicho
Re: [pgsql-es-ayuda] Ayuda con inquietud
perdon, por favor corregir el is null por is not null De: Alejandro Carrillo faster...@yahoo.es Para: Lazáro Rubén García Martínez lgarc...@vnz.uci.cu; Jorge Toro jolt...@gmail.com; Foro Postgres pgsql-es-ayuda@postgresql.org Enviado: Lunes 9 de julio de 2012 10:34 Asunto: Re: [pgsql-es-ayuda] Ayuda con inquietud Creo que lo mejor es hacer un índice único en la tabla GPS (llave primaria), un campo donde esté la última posición del GPS y otro índice en la llave foránea de GPS en la tabla positions. Y crear una function asi: CREATE OR REPLACE FUNCTION public.fn_guardar_posicion ( gps_id_ integer, posicion_ varchar, velocidad_ real, altura_ real, fecha_ timestamp, grados_ real, satelites_ integer ) RETURNS integer AS $body$ DECLARE retorno INTEGER; BEGIN INSERT INTO positions ( gps_id, posicion, velocidad, altura, fecha, grados, satelites ) VALUES ( gps_id_, posicion_, velocidad_, altura_, fecha_, grados_, satelites_ )RETURNING id INTO retorno; if (id is null) then UPDATE gps SET posicion = posicion_, WHERE id = gps_id_; end if; ; RETURN retorno; END; $body$ LANGUAGE 'plpgsql'; Así no necesitas tener más tablas adicionales. No olvidar hacer vacuum full a las tablas periódicamente en horario donde haya pocas transacciones. De: Lazáro Rubén García Martínez lgarc...@vnz.uci.cu Para: Jorge Toro jolt...@gmail.com; Foro Postgres pgsql-es-ayuda@postgresql.org Enviado: Lunes 9 de julio de 2012 10:21 Asunto: RE: [pgsql-es-ayuda] Ayuda con inquietud Entonces podrias tener dos tablas positions, una que se llame hist_positions por ejemplo, y la otra positions, sobre positions almacenas la última ubicación de los gps y sobre hist_positions el historial de posiciones de los gps, para almacenar las posiciones de los gps utililizas una función, y para llevar el historial de los gps, puedes utilizar un trigger sobre positions. Acá te dejo el código de todo, solo falta la referencia de la clave foránea. Espero que te sirva. PD: Pudieran existir otras soluciones. --Crear la tabla positions CREATE TABLE public.positions ( id SERIAL, gps_id INTEGER, posicion VARCHAR, velocidad REAL, altura REAL, fecha TIMESTAMP WITHOUT TIME ZONE, grados REAL, satelites INTEGER, CONSTRAINT positions_pkey PRIMARY KEY(id) ) WITHOUT OIDS; --Crear la tabla hist_positions CREATE TABLE public.hist_positions ( id SERIAL, gps_id INTEGER, posicion VARCHAR, velocidad REAL, altura REAL, fecha TIMESTAMP WITHOUT TIME ZONE, grados REAL, satelites INTEGER, CONSTRAINT hist_positions_pkey PRIMARY KEY(id) ) WITHOUT OIDS; --Función para guardar en positions CREATE OR REPLACE FUNCTION public.fun_guardar_posicion ( gps_id_ integer, posicion_ varchar, velocidad_ real, altura_ real, fecha_ timestamp, grados_ real, satelites_ integer ) RETURNS integer AS $body$ DECLARE retorno INTEGER; BEGIN UPDATE positions SET posicion = posicion_, velocidad = velocidad_, altura = altura_, fecha = fecha_, grados = grados_, satelites = satelites_ WHERE gps_id = gps_id_ RETURNING id INTO retorno; IF (retorno IS NULL) THEN INSERT INTO positions ( gps_id, posicion, velocidad, altura, fecha, grados, satelites ) VALUES ( gps_id_, posicion_, velocidad_, altura_, fecha_, grados_, satelites_ )RETURNING id INTO retorno; END IF; RETURN retorno; END; $body$ LANGUAGE 'plpgsql'; --Función ejecutada por el trigger para guardar en el historial de positions CREATE OR REPLACE FUNCTION public.fun_trg_hist_positions ( ) RETURNS trigger AS $body$ DECLARE BEGIN INSERT INTO hist_positions ( gps_id, posicion, velocidad, altura, fecha, grados, satelites ) VALUES ( NEW.gps_id, NEW.posicion, NEW.velocidad, NEW.altura, NEW.fecha, NEW.grados, NEW.satelites ); RETURN NULL; END; $body$ LANGUAGE 'plpgsql'; --Trigger utilizado CREATE TRIGGER trg_hist_positions AFTER INSERT OR UPDATE ON public.positions FOR EACH ROW EXECUTE PROCEDURE public.fun_trg_hist_positions(); Saludos a todos. From: pgsql-es-ayuda-ow...@postgresql.org [pgsql-es-ayuda-ow...@postgresql.org] On Behalf Of Jorge Toro [jolt...@gmail.com] Sent: Monday, July 09, 2012 9:43 AM To: Foro Postgres Subject: Re: [pgsql-es-ayuda] Ayuda con inquietud Hola Lazáro, gracias por responder. Sí gps.idhttp://gps.id es la referencia a una tabla gps que se usa para registrar cada uno
Re: [pgsql-es-ayuda] Ayuda con inquietud
Si quieres puedes meter esa función en un trigger de la tabla positions; así cuando se agrege una posicion del GPS, se actualice en la tabla gps. No olvidaer hacer vacuum full periódicamente a la tabla GPS, ya que las actualizaciones realmente son borrados e inserciones de los datos. De: Alejandro Carrillo faster...@yahoo.es Para: Alejandro Carrillo faster...@yahoo.es; Lazáro Rubén García Martínez lgarc...@vnz.uci.cu; Jorge Toro jolt...@gmail.com; Foro Postgres pgsql-es-ayuda@postgresql.org Enviado: Lunes 9 de julio de 2012 10:55 Asunto: Re: [pgsql-es-ayuda] Ayuda con inquietud perdon, por favor corregir el is null por is not null De: Alejandro Carrillo faster...@yahoo.es Para: Lazáro Rubén García Martínez lgarc...@vnz.uci.cu; Jorge Toro jolt...@gmail.com; Foro Postgres pgsql-es-ayuda@postgresql.org Enviado: Lunes 9 de julio de 2012 10:34 Asunto: Re: [pgsql-es-ayuda] Ayuda con inquietud Creo que lo mejor es hacer un índice único en la tabla GPS (llave primaria), un campo donde esté la última posición del GPS y otro índice en la llave foránea de GPS en la tabla positions. Y crear una function asi: CREATE OR REPLACE FUNCTION public.fn_guardar_posicion ( gps_id_ integer, posicion_ varchar, velocidad_ real, altura_ real, fecha_ timestamp, grados_ real, satelites_ integer ) RETURNS integer AS $body$ DECLARE retorno INTEGER; BEGIN INSERT INTO positions ( gps_id, posicion, velocidad, altura, fecha, grados, satelites ) VALUES ( gps_id_, posicion_, velocidad_, altura_, fecha_, grados_, satelites_ )RETURNING id INTO retorno; if (id is null) then UPDATE gps SET posicion = posicion_, WHERE id = gps_id_; end if; ; RETURN retorno; END; $body$ LANGUAGE 'plpgsql'; Así no necesitas tener más tablas adicionales. No olvidar hacer vacuum full a las tablas periódicamente en horario donde haya pocas transacciones. De: Lazáro Rubén García Martínez lgarc...@vnz.uci.cu Para: Jorge Toro jolt...@gmail.com; Foro Postgres pgsql-es-ayuda@postgresql.org Enviado: Lunes 9 de julio de 2012 10:21 Asunto: RE: [pgsql-es-ayuda] Ayuda con inquietud Entonces podrias tener dos tablas positions, una que se llame hist_positions por ejemplo, y la otra positions, sobre positions almacenas la última ubicación de los gps y sobre hist_positions el historial de posiciones de los gps, para almacenar las posiciones de los gps utililizas una función, y para llevar el historial de los gps, puedes utilizar un trigger sobre positions. Acá te dejo el código de todo, solo falta la referencia de la clave foránea. Espero que te sirva. PD: Pudieran existir otras soluciones. --Crear la tabla positions CREATE TABLE public.positions ( id SERIAL, gps_id INTEGER, posicion VARCHAR, velocidad REAL, altura REAL, fecha TIMESTAMP WITHOUT TIME ZONE, grados REAL, satelites INTEGER, CONSTRAINT positions_pkey PRIMARY KEY(id) ) WITHOUT OIDS; --Crear la tabla hist_positions CREATE TABLE public.hist_positions ( id SERIAL, gps_id INTEGER, posicion VARCHAR, velocidad REAL, altura REAL, fecha TIMESTAMP WITHOUT TIME ZONE, grados REAL, satelites INTEGER, CONSTRAINT hist_positions_pkey PRIMARY KEY(id) ) WITHOUT OIDS; --Función para guardar en positions CREATE OR REPLACE FUNCTION public.fun_guardar_posicion ( gps_id_ integer, posicion_ varchar, velocidad_ real, altura_ real, fecha_ timestamp, grados_ real, satelites_ integer ) RETURNS integer AS $body$ DECLARE retorno INTEGER; BEGIN UPDATE positions SET posicion = posicion_, velocidad = velocidad_, altura = altura_, fecha = fecha_, grados = grados_, satelites = satelites_ WHERE gps_id = gps_id_ RETURNING id INTO retorno; IF (retorno IS NULL) THEN INSERT INTO positions ( gps_id, posicion, velocidad, altura, fecha, grados, satelites ) VALUES ( gps_id_, posicion_, velocidad_, altura_, fecha_, grados_, satelites_ )RETURNING id INTO retorno; END IF; RETURN retorno; END; $body$ LANGUAGE 'plpgsql'; --Función ejecutada por el trigger para guardar en el historial de positions CREATE OR REPLACE FUNCTION public.fun_trg_hist_positions ( ) RETURNS trigger AS $body$ DECLARE BEGIN INSERT INTO hist_positions ( gps_id, posicion, velocidad, altura, fecha, grados, satelites ) VALUES ( NEW.gps_id, NEW.posicion, NEW.velocidad, NEW.altura, NEW.fecha, NEW.grados, NEW.satelites
Re: [pgsql-es-ayuda] Ayuda con inquietud
mmm puede ser, pero le apuesto más a guardar la ultima fecha_hora y posicion del evento asi no tienes q ir a buscar en la otra tabla (lo de la foranea es por temas de actualización de llave primaria o borrado físico sobre GPS). Cabe corregir a la function (sea q la metas en un trigger o no), que deba consultar si la fecha a ingresar es mayor a la ultima fecha (la ultima fecha se encuentra en la tabla de GPS y para cuando no tenga registros para ese GPS seria la fecha que se va a insertar en la tabla posiciones), tal como lo dice Mario: - Te comento de mi experiencia, que si trabajas con reportes de GPS, chequees la fecha sea igual o mayor a la anterior que tienes en la tabla de ultimos reportes. Algunos equipos pueden disparar reportes retrasados (no se si es tu caso) y hacer updates de fecha y hora de reportes anteriores a la última. Sobre todo IGUAL o mayor, ya que cualquier otro cambio que quieras hacer sin tocar la fecha (Cambio de estado o lo que fuere) no te dejará. Por ultimo, debes tener en cuenta que a la hora de hacer reportes por fecha_hora por GPS o fecha_hora de los GPS será necesario 1 indice más en la fecha_hora de positions y GPS. No es necesario escribir el indice en las PK ya que estas lo crean automáticamente. ultfechahora tampoco requiere indice ya que consultarás por la PK y no por la ultima fecha del evento del GPS (solo se consulta por ultfechahora para efectos de comparación, ya que la busqueda la debe hacer por la PK) Entonces tu DDL quedaría: gps --- id serial PK name text type text active boolean posicion varchar ultfechahora timestamp --última fechahora del gps. positions -- id serial PK gps_id integer FK (gps.id) posicion point velocidad real altura real date timestamp grados real satelites integer -- CREATE INDEX gps_position_id ON gps (position_id); este indice se va porq lo debe crear la PK CREATE INDEX positions_gps_id ON positions (gps_id); CREATE INDEX positions_date ON positions (date); CREATE OR REPLACE FUNCTION public.fn_guardar_posicion ( gps_id_ integer, posicion_ varchar, velocidad_ real, altura_ real, fecha_ timestamp, grados_ real, satelites_ integer ) RETURNS integer AS $body$ DECLARE retorno INTEGER; BEGIN INSERT INTO positions ( gps_id, posicion, velocidad, altura, fecha, grados, satelites ) VALUES ( gps_id_, posicion_, velocidad_, altura_, fecha_, grados_, satelites_ )RETURNING id INTO retorno; --si se insertó con éxito, actualice la ultima fecha del GPS if (retorno is not null) then UPDATE gps SET posicion = posicion_, ultfechahora = fecha_ WHERE id = gps_id_ and ultfechahora is not null and ultfechahora fecha_ ; --esto tambien funciona no actualizando cuando la fecha es menor a la ultima end if; ; RETURN retorno; END; $body$ LANGUAGE 'plpgsql'; De: Jorge Toro jolt...@gmail.com Para: Alejandro Carrillo faster...@yahoo.es CC: Lazáro Rubén García Martínez lgarc...@vnz.uci.cu; Foro Postgres pgsql-es-ayuda@postgresql.org Enviado: Lunes 9 de julio de 2012 11:13 Asunto: Re: [pgsql-es-ayuda] Ayuda con inquietud Hola Alejandro, gracias por tu ayuda. Lo que entiendo de tu propuesta es hacer: gps --- id serial PK name text type text active boolean position_id integer -- índice a la última posición del gps. positions -- id serial PK gps_id integer FK (gps.id) posicion point velocidad real altura real date timestamp grados real satelites integer CREATE INDEX gps_position_id ON gps (position_id); CREATE INDEX positions_gps_id ON positions (gps_id); Gracias de antemano. Jorge Alonso Toro Ing. Teleinformático. http://jolthgs.wordpress.com/ www.devmicrosystem.com -- Powered By Debian. Developer Bullix GNU/Linux. -- -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQBIWWH6q7mzdgTzI5ARAkX5AJ9TR6hL2ocLMOUDRfhts8DlVl+jpwCeNw5x p4+4FNUHPDUx1lU9F8WSKCA= =zRhQ -END PGP SIGNATURE- Este correo esta protegido bajo los términos de la Licencia Atribución-Compartir Obras Derivadas Igual a 2.5 Colombia de Creative Commons. Observé la licencia visitando este sitio http://creativecommons.org/licenses/by-sa/2.5/co/. El 9 de julio de 2012 10:34, Alejandro Carrillo faster...@yahoo.es escribió: Creo que lo mejor es hacer un índice único en la tabla GPS (llave primaria), un campo donde esté la última posición del GPS y otro índice en la llave foránea de GPS en la tabla positions. Y crear una function asi: CREATE OR REPLACE FUNCTION public.fn_guardar_posicion
[pgsql-es-ayuda] Certificación PostgreSQL Mundial
Buen día, Por favor, ¿cuales certificaciones de PostgreSQL existen a nivel mundial y donde puedo presentar los exámenes de certificación en Colombia? Gracias
Re: [pgsql-es-ayuda] Inicio automatico de postgres en windows
Con esto en un bat por linea puedes iniciar, reiniciar y detener el servicio. %CD%\bin\pg_ctl.exe start -D %CD%\data %CD%\bin\pg_ctl.exe restart -D %CD%\data %CD%\bin\pg_ctl.exe stop -D %CD%\data Sin necesidad de crear usuario en windows. Ahora, puedes crear un servicio en windows si asi lo deseas: http://support.microsoft.com/kb/251192/es De: Jose Mercedes Venegas Acevedo jvenegasp...@gmail.com Para: pgsql-es-ayuda@postgresql.org Enviado: Miércoles 27 de junio de 2012 8:27 Asunto: [pgsql-es-ayuda] Inicio automatico de postgres en windows Buen dia a todos por questiones laborales tengo que utilizar postgres sobre windows en este caso tengo windows server 2003 para el servidor de produccion y tambien lo tengo instalado en algunos clientes con windows 7 para labores de desarrollo todos estan dentro de un dominio el hecho es que cada vez que reinician el servidor postgres o algunos de los equipos que usamos para desarrollo postgres no se inicia de forma automatica y debo entrar a los servicios volver a colocar la contraseña de postgres para que se pueda iniciar el servicio alguna idea de como configurar para que esto sea permanente? por otro lado les dejo los datos de acceso de la aplicacion GIS de agua potable y alcantarillado en la que trabajo quizas haya alguien en esta lista para intercambiar experiencias en este campo de GIS con postgres. http://land.sedalib.com.pe:8088 user consulta pass 123456 doble clic en metropolitano ingresan al mapa saludos -- José Mercedes Venegas Acevedo cel: Mov. 949808846 mails: jvenegasp...@php.net jvenegasp...@gmail.com PHP Spanish Docs translator member. http://www.php.net/manual/es/index.php
Re: [pgsql-es-ayuda] [pgsql-es-fomento] ejecucion de sentencias update de manera mas veloz
http://www.postgresql.org/docs/9.0/static/app-psql.html psql -f archivo.sql De: Jose Mercedes Venegas Acevedo jvenegasp...@gmail.com Para: pgsql-es-ayuda@postgresql.org; pgsql-es-fome...@postgresql.org; ar...@postgresql.org Enviado: Lunes 25 de junio de 2012 10:37 Asunto: [pgsql-es-fomento] ejecucion de sentencias update de manera mas veloz Buen dia a todos tengo una base de datos postgis que tienen la lotizacion de un poblado pues resulta que cada fila de los lotes tiene el nombre del cliente pero no su codigo para otras consultas administrativas que tenemos en otro sistema alfanumerico asi que exporte la lista de nombres y codigos del sistema transaccional en oracle para insertarle ese codigo a postgres usando excel para armar la consulta. las consultas que genero en excel quedan asi: UPDATE CAT_LOTE SET ID= '13010400060' WHERE NOM_CLI = 'HOSTAL CABALLITO TOTORA' AND ID LIKE '99%'; UPDATE CAT_LOTE SET ID= '13010400070' WHERE NOM_CLI = 'ARCILA GONZALES MARGOT IVONE' AND ID LIKE '99%'; UPDATE CAT_LOTE SET ID= '13010400080' WHERE NOM_CLI = 'LESCANO ALVA CARLOS FORTUNATO' AND ID LIKE '99%'; UPDATE CAT_LOTE SET ID= '13010400090' WHERE NOM_CLI = 'ARCILLA CACERES MICAELA' AND ID LIKE '99%'; UPDATE CAT_LOTE SET ID= '13010400100' WHERE NOM_CLI = 'ARCILLA JURADO ALBERTO' AND ID LIKE '99%'; y asi hasta 200 mil estas las pego en el pgadmin pero en bloques de 1 porque si le pongo mas se cuelga y demora una hora mas o menos en ejecutar esa actualizacion. estoy usando postgres 9.1 sobre windows server 2003 alguna otra forma de hacer esto mas rapido usando el psql por consola no se alguna otra forma como seria? gracias por la atencion saludos -- José Mercedes Venegas Acevedo cel: Mov. 949808846 mails: jvenegasp...@php.net jvenegasp...@gmail.com PHP Spanish Docs translator member. http://www.php.net/manual/es/index.php
Re: [pgsql-es-ayuda] COMPARAR CAMBIOS EN TABLAS
Toma el sql de una bd y el de la otra bd, luego usa: http://apgdiff.startnet.biz/diff_online.php Esto sirve para verificar los cambios De: Víctor بيكتور Aguayo carris...@hotmail.com Para: Postgres Español pgsql-es-ayuda@postgresql.org Enviado: Lunes 25 de junio de 2012 14:35 Asunto: [pgsql-es-ayuda] COMPARAR CAMBIOS EN TABLAS Buenas gente... No se si existe algún método que me permita verificar si la replica de una base de datos tiene los mismos datos que otra. Estamos utilizando postgres 8.3 y ahora necesitamos verificar si las modificaciones realizadas en desarrollo fueron aplicadas también a producción así como los datos elementales de algunas tablas. No se si exista alguna herramienta recomendada para realizar este tipo de comparaciones y así determinar donde están los cambios. Muchas gracias a todos los que puedan darme alguna ayuda. Saludos Víctor
Re: [pgsql-es-ayuda] permisos
Creo que seria también darle permisos all a cada schema. De: Guillermo Villanueva guillermo...@gmail.com Para: felipe guzman felipeguzm...@gmail.com CC: pgsql-es-ayuda pgsql-es-ayuda@postgresql.org Enviado: Viernes 22 de junio de 2012 10:34 Asunto: Re: [pgsql-es-ayuda] permisos Intenté hacer esto : GRANT ALL PRIVILEGES ON DATABASE db to pepe; Pero cuando pepe se loguea no puede hacer ni select en esa base. El 22 de junio de 2012 12:26, Guillermo Villanueva guillermo...@gmail.com escribió: Aprovecho para preguntar sobre el mismo tema Cual es la forma correcta de dar todos los permisos a pepe a UNA DETERMINADA base de datos sin hacerlo dueño de esa base? Que pueda hacer todas las operaciones sobre todas los objetos de todos los esquemas pero solo de una base determinada. El 22 de junio de 2012 12:02, felipe guzman felipeguzm...@gmail.com escribió: Que bueno que pudiste solucionar tu problema, te comento que yo tengo N usuarios y a su vez N roles que entre ellos están entrelazados en diferentes tablas y bases de datos.. y a ninguno de ellos lo tengo con la sentencia GROUP, y no me ha presentado ningún problema.. Saludos. El 22 de junio de 2012 10:55, Guillermo Villanueva guillermo...@gmail.com escribió: Muchas gracias Felipe, así los había creado. Pero hay un detalle, no se si tendrá que ver, cuando hacía los grant no estaba poniendo la clausula GROUP. Lo hice y todo empezó a funcionar como esperaba. GRANT USAGE ON SCHEMA E1 TO GROUP lectores; GRANT USAGE ON SCHEMA E2 TO GROUP lectores; GRANT USAGE ON SCHEMA E3 TO GROUP lectores; GRANT SELECT ON ALL TABLES IN SCHEMA E1 TO GROUP lectores; GRANT SELECT ON ALL TABLES IN SCHEMA E2 TO GROUP lectores; GRANT SELECT ON ALL TABLES IN SCHEMA E3 TO GROUP lectores; Guillermo Villanueva El 22 de junio de 2012 11:42, felipe guzman felipeguzm...@gmail.com escribió: y la forma que esta creado el usuario y el rol es la correcta? ejemplo: CREATE ROLE lectores NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE; CREATE ROLE usuario LOGIN PASSWORD 'passwordusuario' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE; GRANT lectores TO usuario; El 22 de junio de 2012 10:31, Guillermo Villanueva guillermo...@gmail.com escribió: gracias por tu respuesta Felipe, es tal cual como lo hice. -- Felipe Guzman Vargas Analista Programador Computacional 09- 54047753 -- Felipe Guzman Vargas Analista Programador Computacional 09- 54047753
Re: [pgsql-es-ayuda] Modificar domain
http://www.postgresql.org/docs/9.0/static/sql-createdomain.html http://www.postgresql.org/docs/9.0/static/sql-alterdomain.html De: José Fermín Francisco Ferreras josefermi...@hotmail.com Para: Lista PostgreSQL pgsql-es-ayuda@postgresql.org Enviado: Viernes 22 de junio de 2012 20:12 Asunto: [pgsql-es-ayuda] Modificar domain Buenas noches!! Cómo puedo modificar un tipo de dato domain?? ing. José Fermín Francisco Ferreras San Francisco de Macorís, Rep. Dom.
[pgsql-es-ayuda] bytes en tabla
Hola ¿Cuando uno crea en una tabla un campo de varchar(1000) y inserta datos, el peso en bytes de la tabla no son iguales a la longitud de datos insertados (suele ser menor)? ¿Porque sucede esto? Gracias
[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Creación de Indices
1) Crea un indice por cada campo que vayas a filtrar con frecuencia: rbd,reg_cod,ano_pago, ind_reli,rut_sost ; es decir no crees indices compuestos ya que estos exigen que la consulta se haga por todos los campos. 2) Si la tabla tiene foráneas pertenecientes a otra tabla, estas deben tener índice 3) No hagas un IN por un sólo valor, es más rápido usar = que IN 4) Me parece que esa tabla debe estar en su propio tablespace o en un tablespace para tablas grandes. De: Sergio Valdes Hurtado svh.pg...@gmail.com Para: Lista PostgreSql pgsql-es-ayuda@postgresql.org Enviado: Jueves 21 de junio de 2012 15:13 Asunto: [pgsql-es-ayuda] Creación de Indices Estimados, tenemos una base de datos con tablas heredadas y a las cuales tenemos que hacer una serie de consultas y lamentablemente estas tablas no tienen ningún índice, no tienen llave primaria, no tienen foreing key. Esto hac eque algunas consultas sean muy lentas y quisiera pedirles ayuda para crear algunos índices que me ayuden a mejorar el rendimiento. A continuación les muestro los detalles: Sistema Operativo: Windows 7 Professional 64 bits Equipo: PC HP con Intel i5 con 4 GB RAM, dedicado a la base de datos solamente Postgresql: PostgreSQL 9.1.2, compiled by Visual C++ build 1500, 64-bit detalles de tabla temp_orden_pago: CREATE TABLE public.temp_orden_pago ( rbd int4 NOT NULL, depend int4 NOT NULL, agr_subv int4 NULL, asi_mes1 numeric(12,4) NULL, asi_mes2 numeric(12,4) NULL, asi_mes3 numeric(12,4) NULL, asi_prom numeric(12,4) NULL, matri int4 NULL, sum_agr int4 NULL, mes_pago int4 NOT NULL, ano_pago int4 NOT NULL, ind_reli char(1) NOT NULL, com_cod int4 NULL, pro_cod int4 NULL, reg_cod int4 NULL, com_nom char(45) NULL, pro_nom char(45) NULL, reg_nom char(45) NULL, dp_cod int4 NULL, nom_esta char(45) NULL, nom_sost char(45) NULL, rut_sost int4 NULL, cod_banc char(3) NULL, cod_plaz char(4) NULL, cod_sucu char(3) NULL, dir_banc char(45) NULL, num_cuen char(11) NULL, ser_cheq int4 NULL, sub_esco int4 NULL, des_fico int4 NULL, sist_beca int4 NULL, asi_inte numeric(14,4) NULL, fac_inte numeric(7,4) NULL, mto_inte int4 NULL, por_zona int4 NULL, mto_zona int4 NULL, asi_rura_k_4 numeric(14,4) NULL, asi_rura_5_4 numeric(14,4) NULL, fac_rura_k_4 numeric(7,4) NULL, fac_rura_5_4 numeric(7,4) NULL, mto_rura_k_4 int4 NULL, mto_rura_5_4 int4 NULL, piso_rura int4 NULL, zona_piso int4 NULL, pag_pend int4 NULL, mto_disc int4 NULL, mto_esco int4 NULL, des_esco int4 NULL, mto_rein int4 NULL, mto_rete int4 NULL, mto_mult int4 NULL, otr_mtos int4 NULL, sub_liqu int4 NULL, aju_reli int4 NULL, liq_apag int4 NULL, des_difi int4 NULL, adi_espe int4 NULL, no_doce int4 NULL, val_use numeric(14,4) NULL, ind_jecd char(1) NULL, cant_use_aisl int4 NULL, let_esta char(1) NULL, num_esta int4 NULL, dv_rbd char(1) NULL, emi_cheque int4 NULL, mto_19598 int4 NULL, mto_subv1 int4 NULL, mto_subv2 int4 NULL, prof_enca int4 NULL, apo_sost int4 NULL, gls_factor char(60) NULL, gls_nive char(60) NULL, fac_use numeric(7,5) NULL, cod_ense int4 NULL, subv_mant int4 NULL, rut_part int4 NULL, mto_tot_aju int4 NULL, gls_aju char(45) NULL, tip_aju int4 NULL, asi_rura_b_a numeric(14,4) NULL, asi_rura_m_a numeric(14,4) NULL, fac_rura_b_a numeric(7,4) NULL, fac_rura_m_a numeric(7,4) NULL, mto_rura_b_a int4 NULL, mto_rura_m_a int4 NULL, mto_subv3 int4 NULL, mto_subv4 int4 NULL ) WITHOUT OIDS TABLESPACE pg_default; CREATE INDEX ind_rbd_ano_mes ON public.temp_orden_pago USING btree (rbd int4_ops, ano_pago int4_ops, mes_pago int4_ops); Nota: el índice no fue creado explicitamente Cantidad de Registros: 18.000.000 aprox. actualmete, pero todos los meses se hace una carga de actualización que implica borrar los datos del año y cargarlos nuevamente. Los registros del año actualmente son 500.000 aprox (100.00 por mes), pero cuando finalize junio, serán 200.000 por mes, por lo tanto pasaran a ser casi 1.200.000 los del año 2012 y asi creceran mensualmente hasta fin de
Re: [pgsql-es-ayuda] Incursionando en Postgresql
No conozco el aplicativo web que usas, sin embargo te recomiendo que la parte de transacciones la maneje el motor de la BD a través de functions De: Fabrizzio Yanez fabrizzio.ya...@gmail.com Para: pgsql-es-ayuda@postgresql.org Enviado: Lunes 18 de junio de 2012 15:56 Asunto: [pgsql-es-ayuda] Incursionando en Postgresql Buenas tardes a la comunidad Postgresql Antes de nada saludarlos y espero desde ahora sean mi apoyo en esta incursión que la estoy haciendo hacia la utilización de Postgresql como Base de Datos para todo objetivo. Estaba listo para cerrar mi decisión a usar Postgresql al 100% cuando se me presentó un problema que a lo mejor puede ser alguna cosa que no he tomado en cuenta. Estoy probando Postgresql 8.3 y me pareció excelente, en todo, esa instalación la realicé en un Windows Server 2003 32 bits y una aplicación para Web. Todo correcto y todas las pruebas salen al 100% Me topé con un problema muy singular pasando ya a un servidor actual con Windows server 2008 32 bits, la misma aplicación y la misma versión de Postgresql 8.3. El problema es que funciona todo a la perfección, pero cuando trato de grabar algunos registros, las pantallas web del lado del cliente no lo hace. La Aplicación es transaccional y funciona bien con datos transaccionales, pero cuando trato de hacer grabaciones de más de 20 registros, no sé en qué lado me estoy quedando, ya que la pantalla se regresa a su posición inicial. Espero no ser muy confuso en mi explicación, pero tengo la sensación de que del lado del cliente se queda sin memoria o hay algún seteo que indica que no se grabe mas de cierto número de registros, por ejemplo unos 30 registros. Elimino el numero 30 y lo vuelvo a grabar y me acepta, pero trato de aumentar al registro 31, y en el lado del cliente se “resetea”. Creí que era por la versión nueva de Postgresql, y subí a la versión, 9.1, pero todo funciona bien, pero se mantiene el que no puedo pasar de cierto número de registros en las transacciones. Como les digo, las transacciones de 1 o 2 registros funcionan súper bien, pero subo a mas de 30 registros (por ejemplo) y ya no graba el 31. He investigado por todo lado pero ya se me agotaron las alternativas. Creo que podría ser alguna configuración del Windows server 2008, o el IIS7 hacia la instalación de Postgresql, y quería ver si a alguien le pasó algo similar y lo resolvió de alguna manera. Estoy resuelto a que Postgresql sea mi Base de Datos, por ello acudo a ustedes. Postgresql 8.3 y 9.1, Npgsql 1, .Net, Windows Server 2008 32 bits, IIS7 Gracias por su tiempo o sus ideas. Saludos Cordiales. Fabrizzio
Re: [pgsql-es-ayuda] Mejorar performance de un maestro detalle
Pregunta: ¿Esos 2 campos del índice pertenecen a la llave primaria por la tabla maestro? Si es asi, no se q otra cosa pueda ser, sino debes colocar un indice solo al campo de la llave primaria. De: SYSWARP - Carlos Enrique Perez carlos.pe...@syswarp.com.ar Para: Alejandro Carrillo faster...@yahoo.es CC: Alvaro Herrera alvhe...@alvh.no-ip.org; Juan smalltalker.marc...@gmail.com; Ayuda pgsql-es-ayuda@postgresql.org Enviado: Viernes 8 de junio de 2012 7:17 Asunto: Re: [pgsql-es-ayuda] Mejorar performance de un maestro detalle Gracias por las respuestas, lamentablemente omiti poner en el mail inicial que el indice en el detalle invocando a la cabecera si existe. CREATE INDEX ix_pedeta_pedcabe ON pedidos_deta USING btree (idpedido_cabe , idempresa ); -- Carlos Enrique Perez Direccion Syswarp SRL www.syswarp.com.ar Cuando está bien hecho, el software es invisible El jue, 07-06-2012 a las 23:23 +0100, Alejandro Carrillo escribió: La respuesta es fácil amigo. Falta un indice en la llave foránea del campo idpedido_cabe, tabla pedidos_deta. Esto no solo afecta las consultas, también afecta las actualizaciones y borrados. De:Alvaro Herrera alvhe...@alvh.no-ip.org Para:Juan smalltalker.marc...@gmail.com CC:SYSWARP - Carlos Enrique Perez carlos.pe...@syswarp.com.ar; Ayuda pgsql-es-ayuda@postgresql.org Enviado:Jueves 7 de junio de 2012 16:52 Asunto:Re: [pgsql-es-ayuda] Mejorar performance de un maestro detalle Excerpts from Juan's message of jue jun 07 17:35:24 -0400 2012: Carlos (lista) No se si te entendi mal , cual son las queries que andan lentas? SÃ, eso faltó. ademas como primera observacion no veo indices. :( están las primary keys, que generan Ãndices. Lo que me causa dudas es el ID en la tabla de detalle ... normalmente no sirve para nada. La llave primaria deberÃa ser el PK de la cabecera más un número de lÃnea. -- Ã�lvaro Herrera alvhe...@alvh.no-ip.org - 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] Mejorar performance de un maestro detalle
La respuesta es fácil amigo. Falta un indice en la llave foránea del campo idpedido_cabe, tabla pedidos_deta. Esto no solo afecta las consultas, también afecta las actualizaciones y borrados. De: Alvaro Herrera alvhe...@alvh.no-ip.org Para: Juan smalltalker.marc...@gmail.com CC: SYSWARP - Carlos Enrique Perez carlos.pe...@syswarp.com.ar; Ayuda pgsql-es-ayuda@postgresql.org Enviado: Jueves 7 de junio de 2012 16:52 Asunto: Re: [pgsql-es-ayuda] Mejorar performance de un maestro detalle Excerpts from Juan's message of jue jun 07 17:35:24 -0400 2012: Carlos (lista) No se si te entendi mal , cual son las queries que andan lentas? SÃ, eso faltó. ademas como primera observacion no veo indices. :( están las primary keys, que generan Ãndices. Lo que me causa dudas es el ID en la tabla de detalle ... normalmente no sirve para nada. La llave primaria deberÃa ser el PK de la cabecera más un número de lÃnea. -- Ã�lvaro Herrera alvhe...@alvh.no-ip.org - 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] Busqueda sobre pg_class
Es más rápido por el nombre que por el oid. O por lo menos a mi me salio así, igual ambos se van por indices. De: Lazaro Ruben Garcia Martinez lgarc...@uci.cu Para: POSTGRES pgsql-es-ayuda@postgresql.org Enviado: Viernes 1 de junio de 2012 10:01 Asunto: [pgsql-es-ayuda] Busqueda sobre pg_class Hola a todos en la lista. Cuando se busca sobre la tabla del catalogo pg_class, existe alguna ventaja en utilizar el campo oid respecto al campo relname? Ej: Select * from pg_class where oid = 'relation'::regclass; o select * from pg_class where relname = 'relation'; Saludos a todos.
Re: [pgsql-es-ayuda] instalar servicio de postgres en windows
1) q es xxx/yyy? 2) porque no usas una versión en zip de postgresql? asi cuando te toque formatear/cambiar de equipo, solo necesitas copiar todo el directorio de postgresql a donde quieras y listo: http://www.enterprisedb.com/products-services-training/pgbindownload ó http://sourceforge.net/projects/pgsqlportable/ Para iniciar, detener y reiniciar el cluster: %CD%\bin\pg_ctl.exe stop -D %CD%\data %CD%\bin\pg_ctl.exe start -D %CD%\data %CD%\bin\pg_ctl.exe restart -D %CD%\data Donde %CD% es el directorio actual que en este caso está en C:\postgresql-9.1.0-1-windows-binaries listo\pgsql Asi no necesitas crear un usuario en Windows para ello. De: raul andrez gutierrez alejo rauland...@gmail.com Para: pgsql-es-ayuda@postgresql.org Enviado: Miércoles 30 de Mayo de 2012 11:15 Asunto: [pgsql-es-ayuda] instalar servicio de postgres en windows hola necesito instalar portgres como servicio en windows, hay una db pequeña que funciona como localhost en un equipo de escritorio, por cuestión de mantenimiento los formatearon, la instalación la realice en la partición D:/ y ninguna archivo se perdió, ya inicie posgres pg_ctl.exe , abro pgadmin3 y me puedo conectar al servidor y a la db postgres, pero no puedo conectarme a la db que necesito, porque dice no tiene permisos para la relación xxx/yyy, yo cree el usuario postgres en windows con la misma contraseña que tenia anteriormente, como se debe crear para que no aparezca como opción en login de windows?, el usuario de la db no era postgres, revise y no fue eliminado, actualice la contraseña y me conecta usando ese usuario y se conecto, pero no tiene permisos tampoco, creo que el problema es de permisos de lectura/escritura en los directorios, pero ya permití el control total de usuario postgres/windows a la carpeta donde esta instalado postgres, no se que mas hacer, alguna sugerencia? como -- Raul Andres Gutierrez Alejo
[pgsql-es-ayuda] Re: [pgsql-es-ayuda] [pgsql-es-ayuda] Recuperar borrado físico de registro.
También intenté con pageinspect SELECT * FROM heap_page_items(get_raw_page('gps_datos', 0)); 1;8152;1;40;6275;0;0;(0,1);3;10498;24;; 2;8104;1;44;6379;6381;0;(0,2);3;1282;24;; 3;8056;1;44;6380;0;0;(0,3);3;2306;24;; Me dice que el registro 2 esta eliminado (y si es cierto), pero como lo puedo hacer visible asi sea usando el usuario postgresql? Muchas gracias De: Alejandro Carrillo faster...@yahoo.es Para: Alvaro Herrera alvhe...@alvh.no-ip.org CC: Ayuda pgsql-es-ayuda@postgresql.org; Casanova Jaime ja...@2ndquadrant.com; Quijada Edwin listas_quij...@hotmail.com; Gonzalez Rodrigo lis...@estrads.com.ar Enviado: Miércoles 23 de Mayo de 2012 11:57 Asunto: [pgsql-es-ayuda] [pgsql-es-ayuda] Recuperar borrado físico de registro. Y despues de tanto intentar me sale esto: Compilador: Default compiler Building Makefile: C:\Documents and Settings\Administrador\Escritorio\pg_dirtyread\Makefile.win Ejecutando make... make.exe -f C:\Documents and Settings\Administrador\Escritorio\pg_dirtyread\Makefile.win all dllwrap.exe --output-def libpg_dirtyread.def --implib libpg_dirtyread.a pg_dirtyread.o -LC:/Dev-Cpp/lib -LC:/postgresql-9.1.0-1-windows-binaries listo/pgsql/lib --no-export-all-symbols --add-stdcall-alias -o pg_dirtyread.dll gcc: ommon\Too : No such file or directory dllwrap.exe: no export definition file provided. Creating one, but that may not be what you want dllwrap.exe: gcc exited with status 1 make.exe: *** [pg_dirtyread.dll] Error 1 Ejecución Terminada ¿Que estoy haciendo mal? ¡¡¡Ayuda!!! De: Alejandro Carrillo faster...@yahoo.es Para: Alejandro Carrillo faster...@yahoo.es; Alvaro Herrera alvhe...@alvh.no-ip.org CC: Ayuda pgsql-es-ayuda@postgresql.org; Casanova Jaime ja...@2ndquadrant.com Enviado: Miércoles 23 de Mayo de 2012 10:55 Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Recuperar borrado físico de registro. Estaba compilando con Visual C++ 6, ahora estoy compilando con dev c++ y me sale esto : #error must have a working 64-bit integer datatype De: Alejandro Carrillo faster...@yahoo.es Para: Alejandro Carrillo faster...@yahoo.es; Alvaro Herrera alvhe...@alvh.no-ip.org CC: Ayuda pgsql-es-ayuda@postgresql.org; Casanova Jaime ja...@2ndquadrant.com Enviado: Martes 22 de Mayo de 2012 17:00 Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Recuperar borrado físico de registro. Por favor alguien sabe como resolver esto? De: Alejandro Carrillo faster...@yahoo.es Para: Alvaro Herrera alvhe...@alvh.no-ip.org CC: Ayuda pgsql-es-ayuda@postgresql.org; Casanova Jaime ja...@2ndquadrant.com Enviado: Domingo 8 de abril de 2012 22:17 Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Recuperar borrado físico de registro. Al compilar tengo error en el archivo postgres.h typedef uintptr_t Datum; d:\postgresql\postgresql-9.1.0-1-windows-binaries listo\pgsql\include\server\postgres.h(302) : error C2061: syntax error : identifier 'Datum' De: Alejandro Carrillo faster...@yahoo.es Para: Alvaro Herrera alvhe...@alvh.no-ip.org CC: Ayuda pgsql-es-ayuda@postgresql.org; Casanova Jaime ja...@2ndquadrant.com Enviado: Viernes 6 de abril de 2012 10:22 Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Recuperar borrado físico de registro. Pero ... ¿Como puedo compilar las fuentes para Windows o encontrar un compilado para Windows? De: Alvaro Herrera alvhe...@alvh.no-ip.org Para: Alejandro Carrillo faster...@yahoo.es CC: Ayuda pgsql-es-ayuda@postgresql.org; Casanova Jaime ja...@2ndquadrant.com Enviado: Jueves 5 de abril de 2012 22:26 Asunto: Re: [pgsql-es-ayuda] Recuperar borrado físico de registro. Excerpts from Alejandro Carrillo's message of jue abr 05 23:56:27 -0300 2012: Hola, Alguno sabe como recuperar (sin backups, sin pg_audit, sin borrado logico), un registro de una tabla de la BD. He estado investigando y al parecer todo apunta a HeapTupleSatisfiesVisibility(), que debe estar en true para ver los registros borrados de todas las tablas, que no se le han hecho vacuum. El lio radica, en que no se puede volver a compilar postgresql para hacer esta maniobra. tienes suerte http://www.depesz.com/2012/04/04/lets-talk-dirty/ -- Ã�lvaro Herrera alvhe...@alvh.no-ip.org - 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] Re: [pgsql-es-ayuda] [pgsql-es-ayuda] Recuperar borrado físico de registro.
Hola Alvaro, ¿Por favor cual archivo edito? Pues esta consulta la hice instalando la extensión de pageinspect y usando esa function. Gracias De: Alvaro Herrera alvhe...@alvh.no-ip.org Para: Alejandro Carrillo faster...@yahoo.es CC: Ayuda pgsql-es-ayuda@postgresql.org; Casanova Jaime ja...@2ndquadrant.com; Quijada Edwin listas_quij...@hotmail.com; Gonzalez Rodrigo lis...@estrads.com.ar Enviado: Martes 29 de Mayo de 2012 12:20 Asunto: Re: [pgsql-es-ayuda] [pgsql-es-ayuda] Recuperar borrado físico de registro. Excerpts from Alejandro Carrillo's message of mar may 29 13:11:28 -0400 2012: También intenté con pageinspect SELECT * FROM heap_page_items(get_raw_page('gps_datos', 0)); 1;8152;1;40;6275;0;0;(0,1);3;10498;24;; 2;8104;1;44;6379;6381;0;(0,2);3;1282;24;; 3;8056;1;44;6380;0;0;(0,3);3;2306;24;; Me dice que el registro 2 esta eliminado (y si es cierto), pero como lo puedo hacer visible asi sea usando el usuario postgresql? Baja el servicio, edita el archivo con un hex editor y quita el hint bit de xmax committed y pon el valor de xmax en 0. Eso hará que el registro sea visible. Es importante hacerlo cuando la página no está en shared buffers, por eso lo de bajar el servicio. Recomendaría sacar una copia de la página (yo lo haría con dd en Linux) antes de tocar cualquier bit en ella, por si Murphy aparece. -- Álvaro Herrera alvhe...@alvh.no-ip.org
[pgsql-es-ayuda] Re: [pgsql-es-ayuda] [pgsql-es-ayuda] Recuperar borrado físico de registro.
Ok, entiendo. Ya llegue a ese archivo a través de la ruta pgsql\data\base\16641 y copie el archivo 58031. ¿Ahora como quito el hint bit de xmax committed y coloco el valor de xmax en 0, usando el editor hexadecimal (en donde coloco en el archivo esos cambios)? De: Alvaro Herrera alvhe...@alvh.no-ip.org Para: Alejandro Carrillo faster...@yahoo.es CC: Ayuda pgsql-es-ayuda@postgresql.org; Casanova Jaime ja...@2ndquadrant.com; Quijada Edwin listas_quij...@hotmail.com; Gonzalez Rodrigo lis...@estrads.com.ar Enviado: Martes 29 de Mayo de 2012 12:36 Asunto: Re: [pgsql-es-ayuda] [pgsql-es-ayuda] Recuperar borrado físico de registro. Excerpts from Alejandro Carrillo's message of mar may 29 13:30:34 -0400 2012: Hola Alvaro, 驴Por favor cual archivo edito? Pues esta consulta la hice instalando la extensi贸n de pageinspect y usando esa function. select relfilenode from pg_class where relname = 'gps_datos'; Est谩 en un directorio que se llama seg[un el OID de la base de datos select oid, datname from pg_database; -- 脕lvaro Herrera alvhe...@alvh.no-ip.org - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci髇: http://www.postgresql.org/mailpref/pgsql-es-ayuda
[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] [pgsql-es-ayuda] Recuperar borrado físico de registro.
Hola Ya coloque con un editor hexadecimal el valor de xmax en 0 (LO SÉ poque reemplacé el archivo y volvi a consultar select * from heap_page_items(get_raw_page('gps_datos',0))), sin embargo no me sale el dato eliminado. Creo que me falta el bit con xmax commited en el registro eliminado, pero no sé donde ponerlo en el archivo. Por favor ayudame. Gracias De: Alvaro Herrera alvhe...@alvh.no-ip.org Para: Alejandro Carrillo faster...@yahoo.es CC: Ayuda pgsql-es-ayuda@postgresql.org; Casanova Jaime ja...@2ndquadrant.com; Quijada Edwin listas_quij...@hotmail.com; Gonzalez Rodrigo lis...@estrads.com.ar Enviado: Martes 29 de Mayo de 2012 14:28 Asunto: Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] [pgsql-es-ayuda] Recuperar borrado físico de registro. Excerpts from Alejandro Carrillo's message of mar may 29 14:15:18 -0400 2012: Ok, entiendo. Ya llegue a ese archivo a través de la ruta pgsql\data\base\16641 y copie el archivo 58031. ¿Ahora como quito el hint bit de xmax committed y coloco el valor de xmax en 0, usando el editor hexadecimal (en donde coloco en el archivo esos cambios)? Usa pg_filedump para averiguar el offset de cada tupla. Luego mira en htup.h la definición de HeapTupleHeaderData para saber en qué posición de la cabecera de tupla está cada elemento; tú buscas t_infomask y t_xmax. Una forma simple puede ser ver el pg_filedump de cada tupla qué valor tiene cada campo, y encontrar ese valor en el editor (ojo con valores little endian: los bytes se ponen al revés). Tocas el archivo, grabas, y luego un nuevo pg_filedump te dirá si has modificado la posición correcta. Otra opción que se me acaba de ocurrir es tener el servidor corriendo, y usando GDB modificar los valores en caliente en el buffer que tiene la página de datos correspondiente. Neceesitas saber suficiente de GDB y tener familiaridad con el código de Postgres para saber qué tocar y cómo .. pero al menos no tienes que estar moviendo bytes a mano. Como nunca lo he hecho, no explicaré cómo se hace porque no lo sé. -- Álvaro Herrera alvhe...@alvh.no-ip.org
[pgsql-es-ayuda] Recuperar borrado físico de registro.
Muchas gracias amigo. Busque ese valor 02 05 en el editor hexadecimal XVI32, le cambie el 05 por 01, reinicie el servidor de postgresql y funcionó perfectamente. Eso era lo que me hacia falta, incluso soporta hacerle vacuum a la tabla y no me borra ese registro. Pasos: --1) Buscar el oid de la BD select oid from pg_database d where d.datname ='pruebas'; --2) Buscar la ruta del archivo donde se encuentra la tabla, el OID de la BD debe coincidir con el OID de la ruta SELECT pg_relation_filenode('gps_datos'),pg_relation_filepath('gps_datos'); --3) Buscar esa ruta en el directorio data de la carpeta donde se encuentra postgresql --4) Abrir el archivo donde se encuentra la tabla con un editor hexadecimal (pueden usar el de su preferencia) --5) Instalar la extensión pageinspect CREATE EXTENSION pageinspect; --6) Usar las funciones heap_page_items y get_raw_page para obtener información de los registros en la tabla. Los registros a recuperar contienen un valor diferente a 0 en la columna t_xmax (transacción que eliminó el registro) select * from heap_page_items(get_raw_page('gps_datos',0)); --7) Usando el editor hexadecimal, ir a la posicion que esta en la columna lp_off del registro a recuperar --7.1) Los primeros 4 bytes son el t_xmin, los siguientes 4 bytes son t_xmax, se debe cambiar el valor de cada uno de estos 4 bytes (t_xmax) a cero(00). Ambos se leen de derecha a izquierda. --7.2) Es necesario resetear los bits XMAX_COMMITTED, para ello se toma el valor de la columna t_infomask, obtenida del query en el punto 6, para el registro a recuperar(en mi caso 1282) - y se convierte el valor de esa columna a hexadecimal (0502 en mi caso), luego cuenta 13 bytes hacia adelante para llegar al infomask, el cual permite visualizar el registro (posiciones: http://www.postgresql.org/docs/9.0/interactive/storage-page-layout.html) - por ultimo, se le resta 0x0400(XMAX_COMMITTED) al valor hexa (0502 en mi caso) y el resultado (0102 en mi caso), se coloca reemplazando el valor del infomask actual (se escribe de derecha a izquierda, 02 01 en mi caso). Estos pasos se deben hacer para cada registro a recuperar. De: Alvaro Herrera alvhe...@alvh.no-ip.org Para: Alejandro Carrillo faster...@yahoo.es CC: Ayuda pgsql-es-ayuda@postgresql.org; Casanova Jaime ja...@2ndquadrant.com; Quijada Edwin listas_quij...@hotmail.com; Gonzalez Rodrigo lis...@estrads.com.ar Enviado: Martes 29 de Mayo de 2012 15:10 Asunto: Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] [pgsql-es-ayuda] Recuperar borrado físico de registro. Excerpts from Alejandro Carrillo's message of mar may 29 15:59:41 -0400 2012: Hola Ya coloque con un editor hexadecimal el valor de xmax en 0 (LO SÉ poque reemplacé el archivo y volvi a consultar select * from heap_page_items(get_raw_page('gps_datos',0))), sin embargo no me sale el dato eliminado. Creo que me falta el bit con xmax commited en el registro eliminado, pero no sé donde ponerlo en el archivo. El numero que dice 1282 debe ser el infomask; en hex es 502. XMAX_COMMITTED es 0x0400, así que debes cambiar el 502 por 102 para resetear ese bit. -- Álvaro Herrera alvhe...@alvh.no-ip.org
[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Recuperar borrado físico de registro.
Por cierto, ¿alguien sabe si esta persona subió el recuperador y donde se puede descargar? http://archives.postgresql.org/pgsql-es-ayuda/2006-02/msg00300.php German Gonzalez De: Alejandro Carrillo faster...@yahoo.es Para: Alejandro Carrillo faster...@yahoo.es; SQL Ayuda Postgre pgsql-es-ayuda@postgresql.org CC: Herrera Alvaro alvhe...@alvh.no-ip.org; Casanova Jaime ja...@2ndquadrant.com Enviado: Martes 29 de Mayo de 2012 17:50 Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Recuperar borrado físico de registro. Reenvío la respuesta ya que no aparece en los email de la lista (y creo q sería una respuesta ), excepto en http://web.archiveorange.com/archive/v/dFNxkHpJO8h9alMLvR0w Muchas gracias amigo. Busque ese valor 02 05 en el editor hexadecimal XVI32, le cambie el 05 por 01, reinicie el servidor de postgresql y funcionó perfectamente. Eso era lo que me hacia falta, incluso soporta hacerle vacuum a la tabla y no me borra ese registro. Pasos: --1) Buscar el oid de la BD select oid from pg_database d where d.datname ='pruebas'; --2) Buscar la ruta del archivo donde se encuentra la tabla, el OID de la BD debe coincidir con el OID de la ruta SELECT pg_relation_filenode('gps_datos'),pg_relation_filepath('gps_datos'); --3) Buscar esa ruta en el directorio data de la carpeta donde se encuentra postgresql --4) Abrir el archivo donde se encuentra la tabla con un editor hexadecimal (pueden usar el de su preferencia) --5) Instalar la extensión pageinspect CREATE EXTENSION pageinspect; --6) Usar las funciones heap_page_items y get_raw_page para obtener información de los registros en la tabla. Los registros a recuperar contienen un valor diferente a 0 en la columna t_xmax (transacción que eliminó el registro) select * from heap_page_items(get_raw_page('gps_datos',0)); --7) Usando el editor hexadecimal, ir a la posicion que esta en la columna lp_off del registro a recuperar --7.1) Los primeros 4 bytes son el t_xmin, los siguientes 4 bytes son t_xmax, se debe cambiar el valor de cada uno de estos 4 bytes (t_xmax) a cero(00). Ambos se leen de derecha a izquierda. --7.2) Es necesario resetear los bits XMAX_COMMITTED, para ello se toma el valor de la columna t_infomask, obtenida del query en el punto 6, para el registro a recuperar(en mi caso 1282) - y se convierte el valor de esa columna a hexadecimal (0502 en mi caso), luego cuenta 13 bytes hacia adelante para llegar al infomask, el cual permite visualizar el registro (posiciones: http://www.postgresql.org/docs/9.0/interactive/storage-page-layout.html) - por ultimo, se le resta 0x0400(XMAX_COMMITTED) al valor hexa (0502 en mi caso) y el resultado (0102 en mi caso), se coloca reemplazando el valor del infomask actual (se escribe de derecha a izquierda, 02 01 en mi caso). Estos pasos se deben hacer para cada registro a recuperar. De: Alejandro Carrillo faster...@yahoo.es Para: SQL Ayuda Postgre pgsql-es-ayuda@postgresql.org CC: Herrera Alvaro alvhe...@alvh.no-ip.org; Casanova Jaime ja...@2ndquadrant.com Enviado: Jueves 5 de abril de 2012 21:56 Asunto: [pgsql-es-ayuda] Recuperar borrado físico de registro. Hola, Alguno sabe como recuperar (sin backups, sin pg_audit, sin borrado logico), un registro de una tabla de la BD. He estado investigando y al parecer todo apunta a HeapTupleSatisfiesVisibility(), que debe estar en true para ver los registros borrados de todas las tablas, que no se le han hecho vacuum. El lio radica, en que no se puede volver a compilar postgresql para hacer esta maniobra. Gracias
[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Insert automáticos en tablas (Ejecución programada mensual)
cron de linux o tarea programada en windows. Tambien puedes usar pgagent para que ejecute un copy from stdin y el archivo debe estar en el servidor. De: listaconsu...@cuentasdelcondominio.com.ve listaconsu...@cuentasdelcondominio.com.ve Para: pgsql-es-ayuda@postgresql.org Enviado: Jueves 24 de Mayo de 2012 11:10 Asunto: [pgsql-es-ayuda] Insert automáticos en tablas (Ejecución programada mensual) Buenos dÃas, reenvio mi consulta porque al parecer no llegó a su destino. Saludos compañeros, estoy programando un pequeño sistema administrativo y requiero hacer un proceso o script para insertar en una tabla lo que serÃa el registro de cargos automáticos para la empresa, por concepto de seguridad social, polÃtica habitacional y otros cargos, para cada empleado de la empresa. Mensualmente debo insertar estos cargos en la tabla respectiva de manera automática, para cada empleado, para ello consulto el registro de cada empleado donde tengo la información de su salario y el porcentaje de deducción por cada item mencionado. ¿Por qué lo quiero de manera automática? porque quiero evitar que el componente humano olvide cargar el descuento, originándose cualquier problema contable posterior. El script o query con el insert (.sql) ya lo tengo creado, lo que no se hacer es la programación en mi servidor. cron? Base de datos: Postgresql S.O: linux Ubuntu version 12.04 PodrÃa alguien orientarme como debo enfocar mi requerimiento? De antemano muchas gracias por sus sugerencias o consejos. - 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] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Recuperar borrado físico de registro.
Estaba compilando con Visual C++ 6, ahora estoy compilando con dev c++ y me sale esto : #error must have a working 64-bit integer datatype De: Alejandro Carrillo faster...@yahoo.es Para: Alejandro Carrillo faster...@yahoo.es; Alvaro Herrera alvhe...@alvh.no-ip.org CC: Ayuda pgsql-es-ayuda@postgresql.org; Casanova Jaime ja...@2ndquadrant.com Enviado: Martes 22 de Mayo de 2012 17:00 Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Recuperar borrado físico de registro. Por favor alguien sabe como resolver esto? De: Alejandro Carrillo faster...@yahoo.es Para: Alvaro Herrera alvhe...@alvh.no-ip.org CC: Ayuda pgsql-es-ayuda@postgresql.org; Casanova Jaime ja...@2ndquadrant.com Enviado: Domingo 8 de abril de 2012 22:17 Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Recuperar borrado físico de registro. Al compilar tengo error en el archivo postgres.h typedef uintptr_t Datum; d:\postgresql\postgresql-9.1.0-1-windows-binaries listo\pgsql\include\server\postgres.h(302) : error C2061: syntax error : identifier 'Datum' De: Alejandro Carrillo faster...@yahoo.es Para: Alvaro Herrera alvhe...@alvh.no-ip.org CC: Ayuda pgsql-es-ayuda@postgresql.org; Casanova Jaime ja...@2ndquadrant.com Enviado: Viernes 6 de abril de 2012 10:22 Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Recuperar borrado físico de registro. Pero ... ¿Como puedo compilar las fuentes para Windows o encontrar un compilado para Windows? De: Alvaro Herrera alvhe...@alvh.no-ip.org Para: Alejandro Carrillo faster...@yahoo.es CC: Ayuda pgsql-es-ayuda@postgresql.org; Casanova Jaime ja...@2ndquadrant.com Enviado: Jueves 5 de abril de 2012 22:26 Asunto: Re: [pgsql-es-ayuda] Recuperar borrado físico de registro. Excerpts from Alejandro Carrillo's message of jue abr 05 23:56:27 -0300 2012: Hola, Alguno sabe como recuperar (sin backups, sin pg_audit, sin borrado logico), un registro de una tabla de la BD. He estado investigando y al parecer todo apunta a HeapTupleSatisfiesVisibility(), que debe estar en true para ver los registros borrados de todas las tablas, que no se le han hecho vacuum. El lio radica, en que no se puede volver a compilar postgresql para hacer esta maniobra. tienes suerte http://www.depesz.com/2012/04/04/lets-talk-dirty/ -- Ã�lvaro Herrera alvhe...@alvh.no-ip.org - 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] [pgsql-es-ayuda] Recuperar borrado físico de registro.
Y despues de tanto intentar me sale esto: Compilador: Default compiler Building Makefile: C:\Documents and Settings\Administrador\Escritorio\pg_dirtyread\Makefile.win Ejecutando make... make.exe -f C:\Documents and Settings\Administrador\Escritorio\pg_dirtyread\Makefile.win all dllwrap.exe --output-def libpg_dirtyread.def --implib libpg_dirtyread.a pg_dirtyread.o -LC:/Dev-Cpp/lib -LC:/postgresql-9.1.0-1-windows-binaries listo/pgsql/lib --no-export-all-symbols --add-stdcall-alias -o pg_dirtyread.dll gcc: ommon\Too : No such file or directory dllwrap.exe: no export definition file provided. Creating one, but that may not be what you want dllwrap.exe: gcc exited with status 1 make.exe: *** [pg_dirtyread.dll] Error 1 Ejecución Terminada ¿Que estoy haciendo mal? ¡¡¡Ayuda!!! De: Alejandro Carrillo faster...@yahoo.es Para: Alejandro Carrillo faster...@yahoo.es; Alvaro Herrera alvhe...@alvh.no-ip.org CC: Ayuda pgsql-es-ayuda@postgresql.org; Casanova Jaime ja...@2ndquadrant.com Enviado: Miércoles 23 de Mayo de 2012 10:55 Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Recuperar borrado físico de registro. Estaba compilando con Visual C++ 6, ahora estoy compilando con dev c++ y me sale esto : #error must have a working 64-bit integer datatype De: Alejandro Carrillo faster...@yahoo.es Para: Alejandro Carrillo faster...@yahoo.es; Alvaro Herrera alvhe...@alvh.no-ip.org CC: Ayuda pgsql-es-ayuda@postgresql.org; Casanova Jaime ja...@2ndquadrant.com Enviado: Martes 22 de Mayo de 2012 17:00 Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Recuperar borrado físico de registro. Por favor alguien sabe como resolver esto? De: Alejandro Carrillo faster...@yahoo.es Para: Alvaro Herrera alvhe...@alvh.no-ip.org CC: Ayuda pgsql-es-ayuda@postgresql.org; Casanova Jaime ja...@2ndquadrant.com Enviado: Domingo 8 de abril de 2012 22:17 Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Recuperar borrado físico de registro. Al compilar tengo error en el archivo postgres.h typedef uintptr_t Datum; d:\postgresql\postgresql-9.1.0-1-windows-binaries listo\pgsql\include\server\postgres.h(302) : error C2061: syntax error : identifier 'Datum' De: Alejandro Carrillo faster...@yahoo.es Para: Alvaro Herrera alvhe...@alvh.no-ip.org CC: Ayuda pgsql-es-ayuda@postgresql.org; Casanova Jaime ja...@2ndquadrant.com Enviado: Viernes 6 de abril de 2012 10:22 Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Recuperar borrado físico de registro. Pero ... ¿Como puedo compilar las fuentes para Windows o encontrar un compilado para Windows? De: Alvaro Herrera alvhe...@alvh.no-ip.org Para: Alejandro Carrillo faster...@yahoo.es CC: Ayuda pgsql-es-ayuda@postgresql.org; Casanova Jaime ja...@2ndquadrant.com Enviado: Jueves 5 de abril de 2012 22:26 Asunto: Re: [pgsql-es-ayuda] Recuperar borrado físico de registro. Excerpts from Alejandro Carrillo's message of jue abr 05 23:56:27 -0300 2012: Hola, Alguno sabe como recuperar (sin backups, sin pg_audit, sin borrado logico), un registro de una tabla de la BD. He estado investigando y al parecer todo apunta a HeapTupleSatisfiesVisibility(), que debe estar en true para ver los registros borrados de todas las tablas, que no se le han hecho vacuum. El lio radica, en que no se puede volver a compilar postgresql para hacer esta maniobra. tienes suerte http://www.depesz.com/2012/04/04/lets-talk-dirty/ -- Ã�lvaro Herrera alvhe...@alvh.no-ip.org - 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] Consulta SQL
Te vuelvo a repetir la respuesta COMPLETA: 1) Te recomiendo no tomes este hilo para hacer esta pregunta. Crea uno nuevo y publicalo en la lista. 2) Si todas las tablas tienen triggers(es decir, cuando borras las padre se activa el trigger que alamcena cada tabla hija en el log), podrías crear una function que recupere la info que esté borrada, teniendo en cuenta las relaciones ACTUALES EN EL MODELO DE LA BD. Para consultar las tablas que son hijas de la tabla padre: SELECT tc.constraint_name, tc.table_name, kcu.column_name, ccu.table_name AS NOMBRETABLAFORANEA, ccu.column_name AS NOMBRECOLFORANEA ,CCU.* FROM information_schema.table_constraints AS tc JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='clientes' AND CCU.TABLE_SCHEMA ='public' ; Tomado de: http://stackoverflow.com/questions/1152260/postgres-sql-to-list-table-foreign-keys Modifique para que permitiera consultar por schemas. ó SELECT fkn.nspname AS fk_namespace, fkr.relname AS fk_relation, fka.attname AS fk_column, fka.attnotnull AS fk_notnull, (EXISTS (SELECT pg_index.indexrelid, pg_index.indrelid, pg_index.indkey, pg_index.indclass, pg_index.indnatts, pg_index.indisunique, pg_index.indisprimary, pg_index.indisclustered, pg_index.indexprs, pg_index.indpred FROM pg_index WHERE ((pg_index.indrelid = fkr.oid) AND (pg_index.indkey[0] = fka.attnum AS fk_indexed, pkn.nspname AS pk_namespace, pkr.relname AS pk_relation, pka.attname AS pk_column, (EXISTS (SELECT pg_index.indexrelid, pg_index.indrelid, pg_index.indkey, pg_index.indclass, pg_index.indnatts, pg_index.indisunique, pg_index.indisprimary, pg_index.indisclustered, pg_index.indexprs, pg_index.indpred FROM pg_index WHERE ((pg_index.indrelid = pkr.oid) AND (pg_index.indkey[0] = pka.attnum AS pk_indexed, ((c.confupdtype)::text || (c.confdeltype)::text) AS ud, cn.nspname AS c_namespace, c.conname AS c_name FROM (((pg_constraint c JOIN pg_namespace cn ON ((cn.oid = c.connamespace))) JOIN pg_class fkr ON ((fkr.oid = c.conrelid))) JOIN pg_namespace fkn ON ((fkn.oid = fkr.relnamespace))) JOIN pg_attribute fka ON (((fka.attrelid = c.conrelid) AND (fka.attnum = ANY (c.conkey) JOIN pg_class pkr ON ((pkr.oid = c.confrelid))) JOIN pg_namespace pkn ON ((pkn.oid = pkr.relnamespace))) JOIN pg_attribute pka ON (((pka.attrelid = c.confrelid) AND (pka.attnum = ANY (c.confkey) WHERE (c.contype = 'f'::char) and pkn.nspname ='public' and pkr.relname ='clientes'; Tomado de: http://code.google.com/p/pgutils/downloads/list Modifique para que permitiera consultar por schema y tabla. La solución sería: Cuando se recupere una tabla padre, se deben recuperar todos los registros de las tablas hijas. Para saber cuales son las tablas hijas, ahi estan las consultas. Aunque podrías hacer la inversa para recuperar un registro, verifique las tablas padre de esta tabla y recupere esos registros de ls tablas padre y luego recupere el registro de la tabla hija. Cuidate De: Alexis Camue aca...@estudiantes.uci.cu Para: Alejandro Carrillo faster...@yahoo.es Enviado: Domingo 20 de Mayo de 2012 0:08 Asunto: Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Efectuar copy desde un archivo con más columnas que la tabla Buenas le escribo porque tengo una duda con postgres: Le explico mi problema: Tengo hecha una aplicación que controla las operaciones (INSERT, UPDATE, DELETE) realizadas en una base de datos postgreSQL a travéz de triggers. Todos estos datos son guardados en tablas de manera tal que en esa base datos no se pierda información y que el usuario pueda recuperarla cuando desee. Ej: Un usuario borra de una tabla PERSONA a la PERSONA(id=1, nombre =alejandro), estos datos a travéz de triggers se guardan en una tabla creada con anterioridad llamada PERSONA_delete, si el usuario quiere deshacer esta acción, selecciona desde la aplicación este registro guardado y lo recupera (La aplicación se encarga de hacer esto a travéz de una consulta insert). Esto me funciona perfecto en una base de datos con tablas NO RELACIONADAS pero cuando voy a recuperar una entidad que pertenece a una tabla X que presenta una relación z con la tabla Y, postgre me envia error de primary key, forein key etc. Pienso que esto tenga que ver con borrar e insertar en CASCADA, pero desconozco como funciona este proceso y no he podido encontrar una bibliografia o pagina donde se explique este proceso para poder automatizarlo (si se puede) tiene usted alguna idea de como es__???. Le agradecería cualquier contribución al respecto. saludos Quien quiere hacer busca medios...quien no quiere hacer busca justificaciones Cada persona desconocida, es un amigo esperando por ti
Re: [pgsql-es-ayuda] Consumir TXT Tabulado de Oracle para Postgresql
Creo que no es de ancho fijo. Puedes usar un cron para hacer esto (no te sugiero pgagent ya que este es solo para tareas de postgresql y no para tareas de S.O.) de Unix o tareas programadas de Windows para ejecutar un sh o un bat que haga toda esa labor (estar leyendo cada tanto, si existe usar copy from stdin enviandole el archivo como entrada estandar, después del cargue exitoso borrar el archivo y en caso de fallo mostrar el log de error.) O también puedes usar un ETL (no conozco bien cual sería el apropiado para esa tarea) De: Lennin Caro lennin.c...@yahoo.com Para: Ayuda pgsql-es-ayuda@postgresql.org; ruben avila galindo ruben2...@gmail.com Enviado: Lunes 21 de Mayo de 2012 14:39 Asunto: Re: [pgsql-es-ayuda] Consumir TXT Tabulado de Oracle para Postgresql Si tu archivo es de anchura fija te puede servir un modulo que hice en python, el cual convierte el archivo de texto en un COPY Ing. Lennin Caro Pérez Usuario:GNU/LINUX PostgreSQL DBA Oracle DBA Linux counter id 474393 --- On Mon, 5/21/12, ruben avila galindo ruben2...@gmail.com wrote: From: ruben avila galindo ruben2...@gmail.com Subject: [pgsql-es-ayuda] Consumir TXT Tabulado de Oracle para Postgresql To: Ayuda pgsql-es-ayuda@postgresql.org Date: Monday, May 21, 2012, 7:06 PM Hola buenos dias quiciera saber si podria consumir median Postgresql un archivo Tabulado en Txt algo asi: 11 Ruben Avila Galindo 34.56 12/12/2009 232323 Melissa Miracal 50.80 14/02/2012 .. Lo que pasa tengo que Cargar datos traidos de un Hosting para mi sistema hecho en PHP con Postgresql para alimentar todo los dias mis maestros se puede hacer que sea automatico que solito baje depositen a un carpeta y este leyendo la Carpeta y si vee el archivo lo lee y de ahi terminada lo elimine. Alguna sugerencia o experiencia en hacer eso. Saludos Ruben Avila G Peru
[pgsql-es-ayuda] Preguntas de Lord
Hola, Para hacerles unas preguntas (si se pueden hacer desde un function de postgresql (sea plpgsql u otro lenguaje) y como se pueden hacer): 1) ¿Se puede enviar por ftp un archivo desde postgresql? 2) ¿Se puede crear un archivo en un directorio especificado del servidor sin usar un query? 3) ¿Se puede consumir un webservice desde postgresql? 4) ¿En la versión de desarrollo, están implementadas las referencias entre bases de datos? Gracias
Re: [pgsql-es-ayuda] Preguntas de Lord
jajaja no. Aunque es buena la pregunta para aclarar. Las hago es por funcionalidad, para saber si soporta algunas o ninguna y si están en desarrollo o no. De: Cesar Erices caeri...@gmail.com Para: Alejandro Carrillo faster...@yahoo.es CC: SQL Ayuda Postgre pgsql-es-ayuda@postgresql.org; Herrera Alvaro alvhe...@alvh.no-ip.org Enviado: Martes 22 de Mayo de 2012 14:17 Asunto: Re: [pgsql-es-ayuda] Preguntas de Lord Es una tarea de Universidad? atte. El 22 de mayo de 2012 15:09, Alejandro Carrillo faster...@yahoo.es escribió: Hola, Para hacerles unas preguntas (si se pueden hacer desde un function de postgresql (sea plpgsql u otro lenguaje) y como se pueden hacer): 1) ¿Se puede enviar por ftp un archivo desde postgresql? 2) ¿Se puede crear un archivo en un directorio especificado del servidor sin usar un query? 3) ¿Se puede consumir un webservice desde postgresql? 4) ¿En la versión de desarrollo, están implementadas las referencias entre bases de datos? Gracias -- Sin más que decir se despide de Usted, muy atentamente Cesar Erices Vergara Ingeniero en Gestión Informática Analista de Sistema Santiago - Chile
Re: [pgsql-es-ayuda] Preguntas de Lord
no. necesitas usar dblink o si solo quieres leer FDW Con respecto a esta respuesta, tiene información acerca de si existe pgsql_fdw para windows? Gracias. De: Jaime Casanova ja...@2ndquadrant.com Para: Alejandro Carrillo faster...@yahoo.es CC: SQL Ayuda Postgre pgsql-es-ayuda@postgresql.org; Herrera Alvaro alvhe...@alvh.no-ip.org Enviado: Martes 22 de Mayo de 2012 14:46 Asunto: Re: [pgsql-es-ayuda] Preguntas de Lord 2012/5/22 Alejandro Carrillo faster...@yahoo.es: 1) ¿Se puede enviar por ftp un archivo desde postgresql? usando lenguajes untrusted (ej: plpythonu) puedes hacer lo que sea. tambien podrias usar pl/sh (http://plsh.projects.postgresql.org/) para crear scripts en bash 2) ¿Se puede crear un archivo en un directorio especificado del servidor sin usar un query? usando lenguajes untrusted (ej: plpythonu) puedes hacer lo que sea. tambien podrias usar pl/sh (http://plsh.projects.postgresql.org/) para crear scripts en bash como minimo deberas ejecutar select funcion(), que cuenta como query 3) ¿Se puede consumir un webservice desde postgresql? usando lenguajes untrusted (ej: plpythonu) puedes hacer lo que sea. tambien podrias usar pl/sh (http://plsh.projects.postgresql.org/) para crear scripts en bash 4) ¿En la versión de desarrollo, están implementadas las referencias entre bases de datos? no. necesitas usar dblink o si solo quieres leer FDW -- Jaime Casanova www.2ndQuadrant.com Professional PostgreSQL: Soporte 24x7 y capacitación - 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] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Recuperar borrado físico de registro.
Por favor alguien sabe como resolver esto? De: Alejandro Carrillo faster...@yahoo.es Para: Alvaro Herrera alvhe...@alvh.no-ip.org CC: Ayuda pgsql-es-ayuda@postgresql.org; Casanova Jaime ja...@2ndquadrant.com Enviado: Domingo 8 de abril de 2012 22:17 Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Recuperar borrado físico de registro. Al compilar tengo error en el archivo postgres.h typedef uintptr_t Datum; d:\postgresql\postgresql-9.1.0-1-windows-binaries listo\pgsql\include\server\postgres.h(302) : error C2061: syntax error : identifier 'Datum' De: Alejandro Carrillo faster...@yahoo.es Para: Alvaro Herrera alvhe...@alvh.no-ip.org CC: Ayuda pgsql-es-ayuda@postgresql.org; Casanova Jaime ja...@2ndquadrant.com Enviado: Viernes 6 de abril de 2012 10:22 Asunto: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Recuperar borrado físico de registro. Pero ... ¿Como puedo compilar las fuentes para Windows o encontrar un compilado para Windows? De: Alvaro Herrera alvhe...@alvh.no-ip.org Para: Alejandro Carrillo faster...@yahoo.es CC: Ayuda pgsql-es-ayuda@postgresql.org; Casanova Jaime ja...@2ndquadrant.com Enviado: Jueves 5 de abril de 2012 22:26 Asunto: Re: [pgsql-es-ayuda] Recuperar borrado físico de registro. Excerpts from Alejandro Carrillo's message of jue abr 05 23:56:27 -0300 2012: Hola, Alguno sabe como recuperar (sin backups, sin pg_audit, sin borrado logico), un registro de una tabla de la BD. He estado investigando y al parecer todo apunta a HeapTupleSatisfiesVisibility(), que debe estar en true para ver los registros borrados de todas las tablas, que no se le han hecho vacuum. El lio radica, en que no se puede volver a compilar postgresql para hacer esta maniobra. tienes suerte http://www.depesz.com/2012/04/04/lets-talk-dirty/ -- Ã�lvaro Herrera alvhe...@alvh.no-ip.org - 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] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Efectuar copy desde un archivo con más columnas que la tabla
Solo por cultura general sin ánimo de nada. Fzpgloader carga a través de red LAN (100 MBits/seg) un archivo de 2 millones de registros(csv de 174 MB), colocando o quitando columnas, en 1 minuto y 20-40 segundos dependiendo de la velocidad de acceso al disco del cliente que posee el archivo a cargar. De: Edwin Quijada listas_quij...@hotmail.com Para: svh.pg...@gmail.com; faster...@yahoo.es CC: pgsql-es-ayuda@postgresql.org Enviado: Viernes 18 de Mayo de 2012 8:19 Asunto: RE: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Efectuar copy desde un archivo con más columnas que la tabla No entiendo porque no modificas el COPY y le agregas las dos columnas. Como es un comando de la consola no creo que tengas que compilar y agregar nuevas cosas. Y te entiendo la rapidez es bastante buena en COPY y entrar 4M de otrra forma es un poco lento, bueno depende mucho del serve tambien. Date: Wed, 16 May 2012 18:09:25 -0400 Subject: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Efectuar copy desde un archivo con más columnas que la tabla From: svh.pg...@gmail.com To: faster...@yahoo.es CC: pgsql-es-ayuda@postgresql.org El 16 de mayo de 2012 16:19, Alejandro Carrillo faster...@yahoo.es escribió: Leyendo la doc a vuelo de pajaro creería que no tienes salida más que usar el fzpgloader (http://sourceforge.net/projects/fzpgloader/) o el pgloader (http://pgfoundry.org/projects/pgloader/). Sin embargo, leete la doc: http://www.postgresql.org/docs/9.0/static/sql-copy.html En realidad quiero evitar el uso de herramientas externas, pues copy es bastante rápido para la carga de datos y no se como es el rendimiento de las herramientas que me indicas. Voy a mirar las características de ambas, pero tambien probaré con Kettle (Pentaho) que es un ETL que utilizo con frecuencia. Gracias, -- Sergio Valdés H.