Repositorio versión 11

2024-03-05 Thread kernel

Hola,

¿ donde puedo encontrar un repositorio de la version 11 para centos 7-8?


Gracias





barman con gui

2024-01-27 Thread kernel


Hola ,

Estoy pensando en montar un servidor con barman para gestionar el 
respaldo de varios servidores y me surgen algunas preguntas


 * ¿los servidores a respaldar puede tener distintas versiones de
   postgresql y de SO?
 * ¿hay alguna herramienta gráfica para visualizar o administrar barman?
 * ¿alguna otra alternativa a barman que ya tenga un entorno gráfico de
   administración?


Gracias


Re: lista de stopwords

2024-01-09 Thread kernel



El 08/01/2024 a las 17:21, Alvaro Herrera escribió:

Anthony Sotolongo escribió:

SELECT
unnest(string_to_array(pg_read_file('/usr/share/postgresql/'||current_setting
('server_version_num')::varchar(2)||'/tsearch_data/spanish.stop'),E'\n'))
as stopwords;

(Esta query no funciona en el caso general: la ubicación del directorio
de instalación no es obtenible desde dentro de una sesión)

[ ... mirando el archivo ... ]

Uy, esta lista es desastrosa, tiene algunos typos Orribles [sic] como

vosostras
vosostros

y algunas palabras mal consideradas como

tenida
tenidas

que supongo pretenden ser conjugaciones del verbo tener, pero también
tienen otro significado, que a mi parecer las descalifican como
stopwords ...

Más generalmente me doy cuenta que este archivo no ha cambiado desde el
commit original en 2007 (140d4ebcb46e).  También me doy cuenta que en
snowballstem.org (el proyecto upstream de nuestros stemmers) no hay nada
sobre stopwords, así que me imagino que las listas vinieron de algún
otro lado ... pero no encuentro dónde.

Existe esto
https://github.com/stopwords-iso/stopwords-es
que aparentemente viene de Snowball.



Gracias, al final he creado una función que me devuelve una tabla, no 
puedo estar pendiente de la versión que tengo instalada, ademas como 
parece que la lista no sufre cambios


Un Saludo





Re: lista de stopwords

2024-01-08 Thread kernel


El 08/01/2024 a las 14:17, Anthony Sotolongo escribió:


Hola, las stopword estan en este directorio: $SHAREDIR/tsearch_data/

puedes interntar leer el archivo con las stopwords,  por ejemplo en 
ubuntu puedes leer el archivo directamente:


select pg_read_file('/usr/share/postgresql/16/tsearch_data/spanish.stop');

Saludos


On 08-01-24 10:09, kernel wrote:



Hola,

¿como puedo obtener una lista de palabras stopword , con una consulta 
sql, en postgresql 11?



He buscado por la red y me he encontrado con esto , pero no me 
funciona , supongo que sera para otra versión


/SELECT word FROM pg_catalog.pg_ts_parser('english') JOIN 
pg_catalog.pg_ts_dict('english') ON pg_catalog.pg_ts_parser.ts_name = 
pg_catalog.pg_ts_dict.dict_initoption WHERE dict_name = 
'english_stem' AND tok_alias = 'word';/


/
/

/Gracias
/




Ok , Gracias

¿Pero hay alguna manera de no tener que estar pendiente de la version?, 
¿ que te devuelva cada palabra como una fila para poder hacer un join?


lista de stopwords

2024-01-08 Thread kernel


Hola,

¿como puedo obtener una lista de palabras stopword , con una consulta 
sql, en postgresql 11?



He buscado por la red y me he encontrado con esto , pero no me funciona 
, supongo que sera para otra versión


/SELECT word FROM pg_catalog.pg_ts_parser('english') JOIN 
pg_catalog.pg_ts_dict('english') ON pg_catalog.pg_ts_parser.ts_name = 
pg_catalog.pg_ts_dict.dict_initoption WHERE dict_name = 'english_stem' 
AND tok_alias = 'word';/


/
/

/Gracias
/



Re: búsqueda en cadena de texto como en google

2023-12-14 Thread kernel



El 13/12/2023 a las 15:23, Alvaro Herrera escribió:

Juan José Santamaría Flecha escribió:

On Wed, Dec 13, 2023 at 9:49 AM kernel  wrote:


Tengo un campo varchar que contiene descripciones de libros, me gustaría
poder buscar por diferentes palabras, pero pueden estar en orden
distinto o solo contener algunas, no se si hay algo desarrollado o tengo
que hacer varias busquedas

Lo que quieres hacer suena a búsqueda Full Text:

https://www.postgresql.org/docs/current/textsearch.html

Usando websearch_to_tsquery() posiblemente.  Puede ser necesario adornar
con la extensión unaccent.  Si tienes, por ejemplo, el titulo del libro
en una columna y la descripción en una columna separada, puedes crear un
índice que agrupa las palabras de ambas columnas, de manera que una
búsqueda encuentre cuando las palabras aparezcan en cualquiera de los
dos.  También puedes darle "pesos" distintos a las palabras en cada
columna (función setweight), de manera que si una palabra de la búsqueda
aparece en el título, el resultado te muestre ese libro antes que un
libro para el cual la palabra ocurre en la descripción.

Generalmente es bueno saber en qué idioma están los textos, para que
puedas decidir qué "stemming" usar.  Mi impresión es que para el español
esto funciona bien, pero no me ha tocado implementar aplicaciones de
verdad usando esta funcionalidad.


 voy a ponerme a estudiar el asunto, ya me habéis facilitado varios 
caminos a explorar


Gracias por vuestro tiempo, un Saludo





búsqueda en cadena de texto como en google

2023-12-13 Thread kernel

Hola,

Tengo un campo varchar que contiene descripciones de libros, me gustaría 
poder buscar por diferentes palabras, pero pueden estar en orden 
distinto o solo contener algunas, no se si hay algo desarrollado o tengo 
que hacer varias busquedas


Un Saludo








error prev-link

2023-06-01 Thread kernel

hola,


Me he encontrado con este error en el servidor de respaldo, esta 
constantemente dando ele problema y esta desentronizado



Gracias por vuestro tiempo

2023-06-01 00:00:43.748 CEST [1273] LOG:  se ha restaurado el archivo 
«00010094008F» desde el área de archivado
2023-06-01 00:00:43.939 CEST [1273] LOG:  registro con prev-link 
1803FF/CC incorrecto en 94/8F141388
2023-06-01 00:00:43.939 CEST [1273] LOG:  registro con prev-link 
1803FF/CC incorrecto en 94/8F141388
2023-06-01 00:00:48.751 CEST [1273] LOG:  se ha restaurado el archivo 
«00010094008F» desde el área de archivado
2023-06-01 00:00:48.933 CEST [1273] LOG:  registro con prev-link 
1803FF/CC incorrecto en 94/8F141388
2023-06-01 00:00:48.933 CEST [1273] LOG:  registro con prev-link 
1803FF/CC incorrecto en 94/8F141388
2023-06-01 00:00:53.756 CEST [1273] LOG:  se ha restaurado el archivo 
«00010094008F» desde el área de archivado
2023-06-01 00:00:53.951 CEST [1273] LOG:  registro con prev-link 
1803FF/CC incorrecto en 94/8F141388
2023-06-01 00:00:53.951 CEST [1273] LOG:  registro con prev-link 
1803FF/CC incorrecto en 94/8F141388
2023-06-01 00:00:58.761 CEST [1273] LOG:  se ha restaurado el archivo 
«00010094008F» desde el área de archivado
2023-06-01 00:00:58.936 CEST [1273] LOG:  registro con prev-link 
1803FF/CC incorrecto en 94/8F141388
2023-06-01 00:00:58.936 CEST [1273] LOG:  registro con prev-link 
1803FF/CC incorrecto en 94/8F141388
2023-06-01 00:01:03.767 CEST [1273] LOG:  se ha restaurado el archivo 
«00010094008F» desde el área de archivado
2023-06-01 00:01:03.961 CEST [1273] LOG:  registro con prev-link 
1803FF/CC incorrecto en 94/8F141388
2023-06-01 00:01:03.961 CEST [1273] LOG:  registro con prev-link 
1803FF/CC incorrecto en 94/8F141388






Re: disponibilidad de la función sha512

2022-04-20 Thread kernel



El 20/04/2022 a las 10:59, Alvaro Herrera escribió:

kernel escribió:

Hola,

Creo que la función sha512 esta disponible a partir de la versión 10.20

¿hay alguna posibilidad de disponer de la función en versiones anteriores?,
¿alguna extensión?, ¿alguna función que pueda instalar?

Hola, en pgcrypto está la función digest que recibe como segundo
argumento el nombre del algoritmo:

$ select digest('hola hola', 'sha512');
digest

  
\x9f1857e99043f9e97b502c900fb8c84ece9cc7f942061e277c6f98bd7f736f011ad1b6c94659a3d631179bfdd8851f2b5ee9d8678404d2f40708f747d1f19037
(1 fila)


Mismo resultado obtienes en 14 (digo, para verificar):

$ select sha512('hola hola');
sha512

  
\x9f1857e99043f9e97b502c900fb8c84ece9cc7f942061e277c6f98bd7f736f011ad1b6c94659a3d631179bfdd8851f2b5ee9d8678404d2f40708f747d1f19037
(1 fila)



Gracias!!!







disponibilidad de la función sha512

2022-04-20 Thread kernel

Hola,

Creo que la función sha512 esta disponible a partir de la versión 10.20


¿hay alguna posibilidad de disponer de la función en versiones 
anteriores?, ¿alguna extensión?, ¿alguna función que pueda instalar?



Gracias





Re: Fallo con pg_dump

2022-03-14 Thread kernel


El 11/03/2022 a las 9:23, Juan José Santamaría Flecha escribió:


On Thu, Mar 10, 2022 at 9:58 PM kernel  wrote:

Cuando ejecuto un pg_dump de una maquina esclava, de vez en cuando
me da el siguiente error, siempre en la misma tabla, es una tabla
que contiene un campo bdata.

En la maquina principal nunca me da error

pg_dump: Falló la extracción del contenido de la tabla «g399docu»:
PQgetResult()  falló.

pg_dump: Mensaje de error del servidor: ERROR:  cancelando la
sentencia debido a un conflicto con la recuperación

DETALLE:  La consulta del usuario pudo haber necesitado examinar
versiones de tuplas que debían eliminarse.

pg_dump: La orden era: COPY public.g399docu (id, id_empresa,
empresa, tipo, serie, clave, fecha, origen, orden, fichero,
notas_1, notas_2,tipo_doc,clase,bdata) TO stdout;


En la réplica, ¿qué valor tiene el parámetro 
max_standby_streaming_delay? ¿Si lo desactivas (valor -1), te permite 
completar el pg_dump?


Un saludo,

Juan José Santamaría Flecha



hola,

Ahora no me da error

Gracias



Fallo con pg_dump

2022-03-10 Thread kernel

Hola,

Cuando ejecuto un pg_dump de una maquina esclava, de vez en cuando me da 
el siguiente error, siempre en la misma tabla, es una tabla que contiene 
un campo bdata.


En la maquina principal nunca me da error

pg_dump: Falló la extracción del contenido de la tabla «g399docu»: 
PQgetResult()  falló.


pg_dump: Mensaje de error del servidor: ERROR:  cancelando la sentencia 
debido a    un conflicto con la recuperación


DETALLE: La consulta del usuario pudo haber necesitado examinar 
versiones de tuplas que debían eliminarse.


pg_dump: La orden era: COPY public.g399docu (id, id_empresa, empresa, 
tipo, serie, clave, fecha, origen, orden, fichero, notas_1, 
notas_2,tipo_doc,clase,bdata) TO stdout;


p


Gracias


Re: current_query()

2022-02-23 Thread kernel



El 22/02/2022 a las 17:05, Jaime Casanova escribió:

On Tue, Feb 22, 2022 at 10:55:16AM +0100, kernel wrote:

Hola,

Estoy utilizando un sistema de auditoria a base de triggrers,  en cada tabla
tengo un triggers que llama a una función, en esta funcion utilizo la
funcion current_query().

Hasta aquí todo bien, el problema es que cuando ejecuto varias instrucciones
a la  vez (desde pgadmin ) me trata todas las instrucciones como una sola

¿Hay alguna otra función que me devuelva la instrucción que activa el
trigger?


Ejemplo desde pgadmin:


select * from clientes;

select * from productos;

update  precios set precio = 0 where  familia = 'XX'  -- en esta tabla esta
el trigger


Actualmente la función current_query() me devuelve esto :  select * from
clientes;select * from productos;update  precios set precio = 0 where
familia = 'XX'


Las 3 consultas están en la misma ventana de pgAdmin? te aseguraste de
marcar (señalar, seleccionar) el update antes? supongo que no porque no
tiene ningún sentido ejecutar current_query() de ese modo.

verás current_query() devuelve la consulta que se esté ejecutando en ese
momento y si seleccionas current_query() y la ejecutas te devolverá:
 "select current_query()".

como no marcaste ninguna sentencia, en ese caso pgAdmin ejecuta todas
las sentencias que están en esa ventana, pero se envían como una
consulta multi-sentencia. Es decir, lo que estás viendo: "select
consulta1; select consulta2; update...".

el uso de current_query() tiene sentido dentro de funciones almacenadas
y, quizá aunque no lo he probado en ejecución asincrónica de sentencias
(https://www.postgresql.org/docs/14/libpq-async.html).

Un ejemplo del uso de current_query() que buscas lo puedes encontrar
aquí: https://github.com/2ndQuadrant/audit-trigger


Gracias Jaime,

Como comente , current_query  lo ejecuto dentro de un a función que es 
llamada por un trigger, es por eso por lo que lo que quiero es saber si 
hay alguna instrucción que me devuelva la sentencia que activo el trigger


Un Saludo










current_query()

2022-02-22 Thread kernel

Hola,

Estoy utilizando un sistema de auditoria a base de triggrers,  en cada 
tabla tengo un triggers que llama a una función, en esta funcion utilizo 
la funcion current_query().


Hasta aquí todo bien, el problema es que cuando ejecuto varias 
instrucciones a la  vez (desde pgadmin ) me trata todas las 
instrucciones como una sola


¿Hay alguna otra función que me devuelva la instrucción que activa el 
trigger?



Ejemplo desde pgadmin:


select * from clientes;

select * from productos;

update  precios set precio = 0 where  familia = 'XX'  -- en esta tabla 
esta el trigger



Actualmente la función current_query() me devuelve esto :  select * from 
clientes;select * from productos;update  precios set precio = 0 where  
familia = 'XX'


lo que necesito  es una función que solo me devuelva la sentencia que 
activa el trigger , en este caso esto :  update  precios set precio = 0 
where  familia = 'XX




Gracias






Re: query con coma como separador decimal

2021-03-04 Thread kernel


El 04/03/2021 a las 15:16, Juan José Santamaría Flecha escribió:


On Thu, Mar 4, 2021 at 12:46 PM kernel <mailto:jucab...@gmail.com>> wrote:



como puedo hacer que esta me funcione?

select * from prueba where unidades = 1,0


Tendrás que cambiar el lc_numeric y hacer un to_number():

postgres=# set lc_numeric='es_ES.utf-8';
SET
postgres=# select to_number(',5','9D9');
 to_number
---
       0.5
(1 fila)

Un saludo,

Juan José Santamaría Flecha


Muchas gracias por tu tiempo,

pero lo que no quiero es modificar los query actuales, quiero decirle a 
postgres mediante configuración del entorno de la conexión que el punto 
decimal es la coma, como puedo cambiar el encoding o el datestyle


Un Saludo



query con coma como separador decimal

2021-03-04 Thread kernel

Hola,

me pregunto como poder decirle a postgres que el query que ejecuto usa 
como separador decimal la coma y no el punto.


Igual que puedo decirle el client_encodig o el datestyle que utilizo, 
¿le puedo decir cual es el carácter decimal?.


Necesito que fuera algo global para esa conexion, no me sirve utilizar 
funciones dentro de query, deberia ser algo a nivel de algun tipo de set


Esto me funciona bien :

select * from prueba where unidades = 1,0

como puedo hacer que esta me funcione?

select * from prueba where unidades = 1,0


Gracias





Re: sentencia copy a cliente

2021-02-23 Thread kernel

Haber te he entendido bien

¿ quieres decir que el gestor postgres siempre tiene acceso al /tmp?

si es así puedo crear un función que ejecute la sentencia copy que 
necesito, lo vuelque en el /tmp , ¿pero  luego lo puedo leerlo desde 
postgresql? , ¿tendré permisos?


Un Saludo



El 23/02/2021 a las 10:29, Horacio Miranda escribió:


Toma la idea y revisa que servicio cada cliente tiene.

Si quieres algo rapido claro esta, la gracia es que sea latencia baja. 
Puede ser archivo local o en el /tmp.


Toda maquina tiene acceso a un /tmp independiente de lo que sea.

/dev/shm es otra alternativa pero usa RAM y solo el 50% de la RAM de 
la maquina.


On 23/02/2021 10:27 pm, kernel wrote:


Puede se cualquiera que te de el servicio, ovh por ejemplo te da el 
servicio asi


https://www.ovh.es/cloud-databases/

Estoy buscando una manera de hacerlo sin depender de quien da el 
servicio y sin tener que hacer nada especial para cada proveedor


Un Saludo

El 23/02/2021 a las 10:12, Horacio Miranda escribió:


Que cosa es ? si no es amazon ?

On 23/02/2021 8:16 pm, kernel wrote:



El 18/02/2021 a las 23:31, Horacio Miranda escribió:



On 18/02/2021 8:01 pm, kernel wrote:



El 18/02/2021 a las 1:01, Horacio Miranda escribió:



On 18/02/2021 8:55 am, Anthony Sotolongo wrote:


Hola Kernel, como comentas puedes usar STDOUT, el cual te 
enviará los datos a tu client, por ejemplo con psql:



psql -U postgres -h tu_server_en_la_nube -c "COPY (select * 
from tu_tabla) to STDOUT WITH CSV HEADER DELIMITER ',';" > 
tu_archivo.csv




Los servidores pueden mandar email tambien.

Puedes hacer esta logica si quieres en el server en la nube que 
es mas rapido ejecutar cosas locales.


#!/bin/bash

PGUSER=
PGPASSWORD=
PGPORT=
PGDATABASE=
PGHOST=

psql -c "COPY (select * from tu_tabla) to STDOUT WITH CSV HEADER 
DELIMITER ',';" > /tmp/tu_archivo.csv


cd /tmp  # Esto solo es para evitar que en el ZIP esten los path 
como /tmp

zip tu_archivo.csv.zip tu_archivo.csv
uuencode tu_archivo.csv tu_archivo.csv | mail -s 
"export_desde_lanube_$(hostname)" algun_m...@domain.com


uuencode lo encuentras como parte del sharutils si usas algo 
como rpm puedes hacer "yum provides */uuencode"


Ahora puedes hacer un sftp, o cualquier cosa que quieras para 
traerte el archivo.


Si lo quieres local puedes hacer un rsync tambien, posibilidades 
hay muchas.
Ahora si este archivo es algo que se genera para un cliente, que 
se envie un email de forma automatica creo que puede ser bien 
interesante.




Saludos


On 2/17/21 4:14 PM, kernel wrote:


Hola,

Necesito generar un fichero csv desde una aplicación, hasta la 
fecha llamaba a una función , la cual me ejecutaba una 
sentencia copy de un query determinado y lo sacaba a un 
fichero local.


Si contrato algún servicio de DB en la nube no voy a poder 
dejar el fichero en local. He visto que la función copy tiene 
algo de stdout , pero no se como conectarlo son mi aplicación.


El lenguaje que utilizo es 4GL , solo  puedo hacer querys cuyo 
resultado lo recojo en variables


me pregunto si existe alguna función en la que pueda generar 
un csv desde una consulta y me lo devuelva en un tipo de 
variable byte o algo asi,  que luego yo pueda guardar donde yo 
quiera|.

|

no se si he sido capaz de explicarme.

Gracias

Un Saludo

hola no se si me he explicado bien, lo que tengo en la nube no es 
un servidor, es un servicio postgresql , nada mas , por eso el 
problema


Oracle tiene algo llamado Oracle way. postgresql tiene algo 
llamado PostgreSQL way y RDS de Amazon tiene Amazon way.

Esta es la forma de exportar algo desde un RDS.

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/postgresql-s3-export.html

Luego lees el s3 ( solo asegurate que el s3 sea seguro ), sí esta 
abierto a todo el mundo sin clave vas a compartir tus exports con 
el planeta.




Gracias por tu respuesta , el problema es que no es amazon.

Gracias


Gracias





Re: sentencia copy a cliente

2021-02-18 Thread kernel

Gracias,

No lo he probado pero claro que si que debe de funcionar, pero lo que yo 
quiero es capturarlo en una variable de tipo bitea , alguna funcion o 
algo que me devuelva el resultado de una consulta en formato csv como si 
fuese una variable TEXT


Gracias de nuevo

El 18/02/2021 a las 10:12, Anthony Sotolongo escribió:
Hola nuevamente, lo que te comentamos debe funcionar, ¿Intentaste 
ejecutar lo que te comentamos? Desde tu máquina apuntando a tu 
servicio en la nube.





El jue., 18 de febrero de 2021 4:01 a. m., kernel <mailto:jucab...@gmail.com>> escribió:



El 18/02/2021 a las 1:01, Horacio Miranda escribió:



On 18/02/2021 8:55 am, Anthony Sotolongo wrote:


Hola Kernel, como comentas puedes usar STDOUT, el cual te
enviará los datos a tu client, por ejemplo con psql:


psql -U postgres -h tu_server_en_la_nube -c "COPY (select * from
tu_tabla) to STDOUT WITH CSV HEADER DELIMITER ',';" > tu_archivo.csv



Los servidores pueden mandar email tambien.

Puedes hacer esta logica si quieres en el server en la nube que
es mas rapido ejecutar cosas locales.

#!/bin/bash

PGUSER=
PGPASSWORD=
PGPORT=
PGDATABASE=
PGHOST=

psql -c "COPY (select * from tu_tabla) to STDOUT WITH CSV HEADER
DELIMITER ',';" > /tmp/tu_archivo.csv

cd /tmp  # Esto solo es para evitar que en el ZIP esten los path
como /tmp
zip tu_archivo.csv.zip tu_archivo.csv
uuencode tu_archivo.csv tu_archivo.csv | mail -s
"export_desde_lanube_$(hostname)" algun_m...@domain.com
<mailto:algun_m...@domain.com>

uuencode lo encuentras como parte del sharutils si usas algo como
rpm puedes hacer "yum provides */uuencode"

Ahora puedes hacer un sftp, o cualquier cosa que quieras para
traerte el archivo.

Si lo quieres local puedes hacer un rsync tambien, posibilidades
hay muchas.
Ahora si este archivo es algo que se genera para un cliente, que
se envie un email de forma automatica creo que puede ser bien
    interesante.



Saludos


On 2/17/21 4:14 PM, kernel wrote:


Hola,

Necesito generar un fichero csv desde una aplicación, hasta la
fecha llamaba a una función , la cual me ejecutaba una
sentencia copy de un query determinado y lo sacaba a un fichero
local.

Si contrato algún servicio de DB en la nube no voy a poder
dejar el fichero en local. He visto que la función copy tiene
algo de stdout , pero no se como conectarlo son mi aplicación.

El lenguaje que utilizo es 4GL , solo  puedo hacer querys cuyo
resultado lo recojo en variables

me pregunto si existe alguna función en la que pueda generar un
csv desde una consulta y me lo devuelva en un tipo de variable
byte o algo asi,  que luego yo pueda guardar donde yo quiera|.
|

no se si he sido capaz de explicarme.

Gracias

Un Saludo


hola no se si me he explicado bien, lo que tengo en la nube no es
un servidor, es un servicio postgresql , nada mas , por eso el
problema

Gracias





Re: sentencia copy a cliente

2021-02-17 Thread kernel


El 18/02/2021 a las 1:01, Horacio Miranda escribió:



On 18/02/2021 8:55 am, Anthony Sotolongo wrote:


Hola Kernel, como comentas puedes usar STDOUT, el cual te enviará los 
datos a tu client, por ejemplo con psql:



psql -U postgres -h tu_server_en_la_nube -c "COPY (select * from 
tu_tabla) to STDOUT WITH CSV HEADER DELIMITER ',';" > tu_archivo.csv




Los servidores pueden mandar email tambien.

Puedes hacer esta logica si quieres en el server en la nube que es mas 
rapido ejecutar cosas locales.


#!/bin/bash

PGUSER=
PGPASSWORD=
PGPORT=
PGDATABASE=
PGHOST=

psql -c "COPY (select * from tu_tabla) to STDOUT WITH CSV HEADER 
DELIMITER ',';" > /tmp/tu_archivo.csv


cd /tmp  # Esto solo es para evitar que en el ZIP esten los path como /tmp
zip tu_archivo.csv.zip tu_archivo.csv
uuencode tu_archivo.csv tu_archivo.csv | mail -s 
"export_desde_lanube_$(hostname)" algun_m...@domain.com


uuencode lo encuentras como parte del sharutils si usas algo como rpm 
puedes hacer "yum provides */uuencode"


Ahora puedes hacer un sftp, o cualquier cosa que quieras para traerte 
el archivo.


Si lo quieres local puedes hacer un rsync tambien, posibilidades hay 
muchas.
Ahora si este archivo es algo que se genera para un cliente, que se 
envie un email de forma automatica creo que puede ser bien interesante.




Saludos


On 2/17/21 4:14 PM, kernel wrote:


Hola,

Necesito generar un fichero csv desde una aplicación, hasta la fecha 
llamaba a una función , la cual me ejecutaba una sentencia copy de 
un query determinado y lo sacaba a un fichero local.


Si contrato algún servicio de DB en la nube no voy a poder dejar el 
fichero en local. He visto que la función copy tiene algo de stdout 
, pero no se como conectarlo son mi aplicación.


El lenguaje que utilizo es 4GL , solo  puedo hacer querys cuyo 
resultado lo recojo en variables


me pregunto si existe alguna función en la que pueda generar un csv 
desde una consulta y me lo devuelva en un tipo de variable byte o 
algo asi,  que luego yo pueda guardar donde yo quiera|.

|

no se si he sido capaz de explicarme.

Gracias

Un Saludo

hola no se si me he explicado bien, lo que tengo en la nube no es un 
servidor, es un servicio postgresql , nada mas , por eso el problema


Gracias





sentencia copy a cliente

2021-02-17 Thread kernel

Hola,

Necesito generar un fichero csv desde una aplicación, hasta la fecha 
llamaba a una función , la cual me ejecutaba una sentencia copy de un 
query determinado y lo sacaba a un fichero local.


Si contrato algún servicio de DB en la nube no voy a poder dejar el 
fichero en local. He visto que la función copy tiene algo de stdout , 
pero no se como conectarlo son mi aplicación.


El lenguaje que utilizo es 4GL , solo  puedo hacer querys cuyo resultado 
lo recojo en variables


me pregunto si existe alguna función en la que pueda generar un csv 
desde una consulta y me lo devuelva en un tipo de variable byte o algo 
asi,  que luego yo pueda guardar donde yo quiera|.

|

no se si he sido capaz de explicarme.

Gracias

Un Saludo



Re: Conectar con mysql server

2020-07-27 Thread kernel



El 27/07/2020 a las 18:14, Romero, Fernando escribió:


-Mensaje original-
De: kernel [mailto:jucab...@gmail.com]
Enviado el: lunes, 27 de julio de 2020 12:51 p. m.
Para: Ayuda
Asunto: Re: Conectar con mysql server


El 27/07/2020 a las 14:08, Romero, Fernando escribió:

-Mensaje original-
De: kernel [mailto:jucab...@gmail.com] Enviado el: sábado, 25 de julio
de 2020 03:51 p. m.
Para: Ayuda
Asunto: Conectar con mysql server

Hola,

Me gustaria poder hacer una serie de inserciones en una tabla de
sqlserver, estoy pensando en hacer lo desde una funcion ps/pgsql

¿Hay alguna manera de enlazalo?, no se si puedo conectar con unixOdbc
(tengo instalado freetds), desde el sistema con isql si puedo conectar


Un Saludo

Hola como estas.
Con mysql o sqlserver?

Perdon!!, sqlserver


Saludos


“El contenido del presente mensaje (y sus anexos) es privado, confidencial y de 
exclusivo uso para el destinatario referenciado; es de público conocimiento que 
las comunicaciones por medio de Internet no permiten asegurar ni garantizar la 
confidencialidad de los mensajes transmitidos, así como tampoco su integridad o 
su correcta recepción; es por ello que SOFSE no se responsabiliza de posibles 
perjuicios derivados de la captura, incorporaciones de virus o cualquier otra 
manipulación efectuada por terceros. Las opiniones expresadas en este mensaje y 
en los archivos adjuntos son propias del remitente y no representan la opinión 
o políticas de SOFSE, salvo que se diga expresamente y el remitente se 
encuentre autorizado para ello”

Que versión de Postgresql estas usando?
Con foreign data wrapper, peor hasta donde conozco es solo en modo lectura 
contra sqlserver.
No se si en 12 esto cambio.

Saludos
“El contenido del presente mensaje (y sus anexos) es privado, confidencial y de 
exclusivo uso para el destinatario referenciado; es de público conocimiento que 
las comunicaciones por medio de Internet no permiten asegurar ni garantizar la 
confidencialidad de los mensajes transmitidos, así como tampoco su integridad o 
su correcta recepción; es por ello que SOFSE no se responsabiliza de posibles 
perjuicios derivados de la captura, incorporaciones de virus o cualquier otra 
manipulación efectuada por terceros. Las opiniones expresadas en este mensaje y 
en los archivos adjuntos son propias del remitente y no representan la opinión 
o políticas de SOFSE, salvo que se diga expresamente y el remitente se 
encuentre autorizado para ello”



Estoy con una version 11, necesito hacer insert y updates, estoy mirando 
tds_fdw y odbc_fdw pero todavian no se que permiten hacer








Re: Conectar con mysql server

2020-07-27 Thread kernel



El 27/07/2020 a las 14:08, Romero, Fernando escribió:


-Mensaje original-
De: kernel [mailto:jucab...@gmail.com]
Enviado el: sábado, 25 de julio de 2020 03:51 p. m.
Para: Ayuda
Asunto: Conectar con mysql server

Hola,

Me gustaria poder hacer una serie de inserciones en una tabla de sqlserver, 
estoy pensando en hacer lo desde una funcion ps/pgsql

¿Hay alguna manera de enlazalo?, no se si puedo conectar con unixOdbc (tengo 
instalado freetds), desde el sistema con isql si puedo conectar


Un Saludo

Hola como estas.
Con mysql o sqlserver?


Perdon!!, sqlserver



Saludos


“El contenido del presente mensaje (y sus anexos) es privado, confidencial y de 
exclusivo uso para el destinatario referenciado; es de público conocimiento que 
las comunicaciones por medio de Internet no permiten asegurar ni garantizar la 
confidencialidad de los mensajes transmitidos, así como tampoco su integridad o 
su correcta recepción; es por ello que SOFSE no se responsabiliza de posibles 
perjuicios derivados de la captura, incorporaciones de virus o cualquier otra 
manipulación efectuada por terceros. Las opiniones expresadas en este mensaje y 
en los archivos adjuntos son propias del remitente y no representan la opinión 
o políticas de SOFSE, salvo que se diga expresamente y el remitente se 
encuentre autorizado para ello”





Conectar con mysql server

2020-07-25 Thread kernel

Hola,

Me gustaria poder hacer una serie de inserciones en una tabla de 
sqlserver, estoy pensando en hacer lo desde una funcion ps/pgsql


¿Hay alguna manera de enlazalo?, no se si puedo conectar con unixOdbc 
(tengo instalado freetds), desde el sistema con isql si puedo conectar



Un Saludo





Re: alternativa pg_xlog_replay_pause

2020-07-22 Thread kernel



El 22/07/2020 a las 21:21, Alvaro Herrera escribió:

kernel escribió:


He instalado postgresql version 11 y ahora me dice que no existe la funcion

ERROR:  function pg_xlog_replay_pause() does not exist
LÍNEA 1: SELECT pg_xlog_replay_pause()

Todas las funciones que tenían "xlog" en el nombre fueron cambiadas a
que usen "wal" en reemplazo.  Creo que esto pasó en Postgres 10.

Saludos

Gracias




Re: alternativa pg_xlog_replay_pause

2020-07-22 Thread kernel

Gracias!!!

El 22/07/2020 a las 18:47, Daymel Bonne escribió:



El mié., 22 de jul. de 2020 a la(s) 11:38, kernel (jucab...@gmail.com 
<mailto:jucab...@gmail.com>) escribió:



Hola tengo una script para hacer una backup de una maquina esclava :

file=$(date +%a-%H-%M)
PGCLIENTENCODING=UTF-8
export PGCLIENTENCODING
psql  -U postgres -c 'SELECT pg_xlog_replay_pause()' -o /u/temp/x
/usr/bin/pg_dump -U postgres $2  -f $1/datos.sql
psql  -U postgres -c 'SELECT pg_xlog_replay_resume()' -o /u/temp/x
tar -P -zcf $1/$file.gz $1/datos.sql >/dev/null 2>&1
rm $1/datos.sql


He instalado postgresql version 11 y ahora me dice que no existe
la funcion


ERROR:  function pg_xlog_replay_pause() does not exist
LÍNEA 1: SELECT pg_xlog_replay_pause()


¿hay alguna funcion que la sustituya?


Aquí puedes mirar:

https://www.postgresql.org/docs/11/functions-admin.html#FUNCTIONS-RECOVERY-CONTROL-TABLE


--
Daymel Bonne
Database Consultant, Training & Services
2ndQuadrant - PostgreSQL Solutions for the Enterprise
https://www.2ndQuadrant.com/ <https://www.2ndquadrant.com/>



alternativa pg_xlog_replay_pause

2020-07-22 Thread kernel



Hola tengo una script para hacer una backup de una maquina esclava :

file=$(date +%a-%H-%M)
PGCLIENTENCODING=UTF-8
export PGCLIENTENCODING
psql  -U postgres -c 'SELECT pg_xlog_replay_pause()' -o /u/temp/x
/usr/bin/pg_dump -U postgres $2  -f $1/datos.sql
psql  -U postgres -c 'SELECT pg_xlog_replay_resume()' -o /u/temp/x
tar -P -zcf $1/$file.gz $1/datos.sql >/dev/null 2>&1
rm $1/datos.sql


He instalado postgresql version 11 y ahora me dice que no existe la funcion


ERROR:  function pg_xlog_replay_pause() does not exist
LÍNEA 1: SELECT pg_xlog_replay_pause()


¿hay alguna funcion que la sustituya?


Gracias





Re: conectar con sql server

2020-06-09 Thread kernel


El 09/06/2020 a las 11:12, kernel escribió:



El 09/06/2020 a las 9:42, Oscar Polo Fdez escribió:


Hola,

Puedes usar la extensión ODBC_fdw. Aquí tienes el repo con documentación:

https://github.com/CartoDB/odbc_fdw

Enviado desde Correo <https://go.microsoft.com/fwlink/?LinkId=550986> 
para Windows 10


*De: *kernel <mailto:jucab...@gmail.com>
*Enviado: *martes, 9 de junio de 2020 8:52
*Para: *Ayuda <mailto:pgsql-es-ay...@postgresql.org>
*Asunto: *conectar con sql server

Hola,

necesito acceder a unas tablas de sql server, me preguntaba si existe

alguna manera de linkar dichas  tablas a mi base de datos posgresql.

Un Saludo


¿vale para versiones 11 y 12?


No se cual es la mejor opcion de estas 2 :

odbc_fdw <https://github.com/CartoDB/odbc_fdw>

tds_fdw

Agradeceria vuestros comentarios, necesito conectar con 4 tablas de sql 
server para intercambio de datos, 4 tablas pequeñas y poco movimiento, 
tengo que hacer updates,insert y select en sqlserver desde una funcion 
pl/plsql


Gracias





Re: conectar con sql server

2020-06-09 Thread kernel


El 09/06/2020 a las 9:42, Oscar Polo Fdez escribió:


Hola,

Puedes usar la extensión ODBC_fdw. Aquí tienes el repo con documentación:

https://github.com/CartoDB/odbc_fdw

Enviado desde Correo <https://go.microsoft.com/fwlink/?LinkId=550986> 
para Windows 10


*De: *kernel <mailto:jucab...@gmail.com>
*Enviado: *martes, 9 de junio de 2020 8:52
*Para: *Ayuda <mailto:pgsql-es-ay...@postgresql.org>
*Asunto: *conectar con sql server

Hola,

necesito acceder a unas tablas de sql server, me preguntaba si existe

alguna manera de linkar dichas  tablas a mi base de datos posgresql.

Un Saludo


¿vale para versiones 11 y 12?



conectar con sql server

2020-06-09 Thread kernel

Hola,

necesito acceder a unas tablas de sql server, me preguntaba si existe 
alguna manera de linkar dichas  tablas a mi base de datos posgresql.


Un Saludo





Re: localizar sentencia en archivos wal

2020-06-05 Thread kernel kernel
Gracias por la aclaraciónSALUDOS 

Re: localizar sentencia en archivos wal

2020-06-05 Thread kernel


El 05/06/2020 a las 14:56, Martín Marqués escribió:

Buenas,

Me me han desaparecido los datos de una tabla, por suerte teníamos
copia
de seguridad y ya lo hemos restaurado.

La cuestión es que no sabemos por que ha podido suceder , no
sabemos si
ha podido ser el ERP o algún usuario de administración del al db
lo haya
borrado  por error


Si no tenes nada en los logs, va a ser bastante complicado encontrar 
el culpable.


Disponemos de una copia base y de todos los archivos wal, ¿hay alguna
manera de poder buscar las sentencias en estos archivos wal para
poder
tirar del hilo?


En los WAL podés identificar que transacciones realizaron determinadas 
operaciones, pero eso vas a tener que enlazarlo con la paginas y 
tuplas en cuestion que fueron borradas, y si no tenes registros sobre 
que usuarios abrieron tales transacciones, no vas a poder encontrar el 
culpable. Lo que puedes es tener acotado la hora en la que paso, y de 
ahi investigar con logs de sistema.


Para futuras consultas como esta, deberías usar pg_audit.

Saludos,

--
Martín Marqués
It’s not that I have something to hide,
it’s that I have nothing I want you to see


Me pregunto , y si recupero una copia base, pongo la configuracion del 
log a log_statement como all y le pongo a recurperar los wal, ¿me dejara 
rastro de las sentencias en el log?






Migrar de informix a postgresql

2020-04-09 Thread kernel

Hola,

Necesito migrar una pequeña base de datos informix SE 7 a postgresql.

¿conocéis alguna herramienta free que me pueda ayudar?

Un Saludo






Alternativa a pgadmin 4

2019-12-09 Thread kernel



hola,

Llevo tiempo intentando acostumbrarme a la version 4 pero no lo consigo, 
me podéis decir alguna otra opción compatible con las nuevas versiones 
de postgresql



Un Saludo





Gestión de copias

2019-10-31 Thread kernel

Hola,

Estoy viendo la posibilidad de alojar bases de datos en cloud, estoy 
mirando en amazon y en azure.


Haciendo pruebas en azure, he visto que tiene un panel de copia bastante 
majo, te permite ver las copias que tienes, gestionar rentenciones, 
puedes recuperar el estado en el momento que quieras de una manera muy 
sencilla.


¿hay alguna herramienta web o algo asi que haga lo mismo?, que puedas 
configurar las copias, streaming, almacenaje de wal, etc ...



Un Saludo






Re: cargar fichero en remoto

2019-10-15 Thread kernel

ok, gracias

El 15/10/2019 a las 17:40, Anthony Sotolongo escribió:
Hola Kernel, puedes seguir usando el CSV pero le puedes hacer pipe (|) 
hacia el server donde vas a cargarlo, por ejemplo:



cat tu_datos_csv.csv | psql -d tu_base -h tu_server_remoto -U tu_user 
-c "copy tu_table from stdin with delimiter ';' csv" --en este caso si 
el delimitador es (;) pero lo puedes cambiar al tuyo



Saludos



El 14-10-19 a las 12:50, kernel escribió:


El 14/10/2019 a las 16:40, Francisco Olarte escribió:

Kernel:

On Mon, Oct 14, 2019 at 3:10 PM kernel  wrote:
Hasta la fecha siempre he tenido la base de datos en la misma 
ubicación

que la aplicación, estaba acostumbrado a cargar ficheros con la
sentencia COPY,
Hoy he contratado un alojamiento de DB en OVH y me doy cuenta de 
que eso

ya no lo puedo hacer.
Antes exportaba el excel como CSV y ejecutaba un COPY y  a correr
¿Alguien me puede dar una pista de como puedo generar desde un 
excel un

fichero sql (entiendo que un copy con STDIN o algo asi) para la carga?

Si no tienes problemas con el ingles, busca en el manual en la
referencia del psql el comando \copy (
https://www.postgresql.org/docs/12/app-psql.html ).

Si los tienes, o estas mu vago, te cuento: COPY ( comando sql ) se
puede ejecutar como "FROM STDIN", en cuyo caso EL SERVIDOR no lee un
archivo, sino que espera los datos por el "socket" en un protocolo (
que esta en el manual ). PSQL ( el programa cliente ) tiene un comando
"\COPY" ( es un BACKSLASH-COMMAND ), que lo que hace, cuando le pones
un "FROM ARCHIVO" es 1.- Lanzar un comando COPY FROM STDIN en el
SERVIDOR, 2.- Leer el archivo y mandarselo por el protocolo. Es lo que
en algunos sitios llaman "Client side copy"

TLDR: Usa \copy para archivos en el cliente, copy a secas para el
servidor. Leete el help y/o el manual de \copy

Francisco Olarte.


ok, gracias

El manual de \copy  no lo he encontrado, entiendo que es lo que viene 
la ayuda del psql


Un Saludo










cargar fichero en remoto

2019-10-14 Thread kernel

Hola,

Hasta la fecha siempre he tenido la base de datos en la misma ubicación 
que la aplicación, estaba acostumbrado a cargar ficheros con la 
sentencia COPY,


Hoy he contratado un alojamiento de DB en OVH y me doy cuenta de que eso 
ya no lo puedo hacer.


Antes exportaba el excel como CSV y ejecutaba un COPY y  a correr

¿Alguien me puede dar una pista de como puedo generar desde un excel un 
fichero sql (entiendo que un copy con STDIN o algo asi) para la carga?



Gracias








Re: cargar fichero en remoto

2019-10-14 Thread kernel



El 14/10/2019 a las 16:40, Francisco Olarte escribió:

Kernel:

On Mon, Oct 14, 2019 at 3:10 PM kernel  wrote:

Hasta la fecha siempre he tenido la base de datos en la misma ubicación
que la aplicación, estaba acostumbrado a cargar ficheros con la
sentencia COPY,
Hoy he contratado un alojamiento de DB en OVH y me doy cuenta de que eso
ya no lo puedo hacer.
Antes exportaba el excel como CSV y ejecutaba un COPY y  a correr
¿Alguien me puede dar una pista de como puedo generar desde un excel un
fichero sql (entiendo que un copy con STDIN o algo asi) para la carga?

Si no tienes problemas con el ingles, busca en el manual en la
referencia del psql el comando \copy (
https://www.postgresql.org/docs/12/app-psql.html ).

Si los tienes, o estas mu vago, te cuento: COPY ( comando sql ) se
puede ejecutar como "FROM STDIN", en cuyo caso EL SERVIDOR no lee un
archivo, sino que espera los datos por el "socket" en un protocolo (
que esta en el manual ). PSQL ( el programa cliente ) tiene un comando
"\COPY" ( es un BACKSLASH-COMMAND ), que lo que hace, cuando le pones
un "FROM ARCHIVO" es 1.- Lanzar un comando COPY FROM STDIN en el
SERVIDOR, 2.- Leer el archivo y mandarselo por el protocolo. Es lo que
en algunos sitios llaman "Client side copy"

TLDR: Usa \copy para archivos en el cliente, copy a secas para el
servidor. Leete el help y/o el manual de \copy

Francisco Olarte.


ok, gracias

El manual de \copy  no lo he encontrado, entiendo que es lo que viene la 
ayuda del psql


Un Saludo







Re: Problemas de tamaño/recodificacion

2019-10-04 Thread kernel



El 04/10/2019 a las 0:18, Alvaro Herrera escribió:

Alvaro Herrera escribió:

kernel escribió:


ok , gracias

Tom Lane acaba de incorporar un cambio a lo que será Postgres 13 que
corrige este problema.  ¡Gracias por reportarlo!

Perdón, estaba en un error.  La corrección no es para Postgres 13 sino
para todas las versiones estables que están agendadas para publicarse en
noviembre (10.11 en tu caso).

Saludos


Gracias





¿Se puede visualizar o editar un fichero wal?

2019-08-30 Thread kernel



Hola,

me estoy preguntado si se puede visualizar/editar  un fichero wal.

Supongamos que quiero recuperar la base de datos desde una copia base 
con sus correspondientes ficheros y no se exactamente  el momento en que 
se pudo ejecutar alguna instruccion que quiero que no se ejecute.


¿Como podría averiguar en que fichero esta?,  o puedo visualizar el 
contenido para saber en que punto debe de detener la recuperacion?, 
¿podria variar eliminar la sentencia erronea y dejar las siguientes?


Un Saludo






consulta recursiva ?

2019-08-27 Thread kernel



Hola,

Tengo un informe que obtiene la trazabilidad  un determinado lote de 
producto,  actualmente saco todos los lotes que han intervenido en la 
fabricación de dicho lote, directa o indirectamente como parte de otros 
y a su vez todos los  lotes en el que ha intervenido


Saco la trazabilidad hacia delante y hacia atrás, actualmente lo estoy 
haciendo en 4gl con  procesos recursivos y guardando los datos en una 
tabla temporal, ve voy apoyando en un campo nivel, según voy profundizando


Estaba pensado en hacerlo en plpsql para optimizarlo y me estaba 
preguntado si podría utilizar algún query recursivo o algo así


  Esta es la tabla   tabla :

CREATE TABLE lotes
(
  id serial NOT NULL,
  id_lote_pt integer,  (guardo el lote de producto terminado, entrada )
  id_lote_mp integer, (guardo N lotes de materia prima utilizados para 
la fabricacion del producto terminado, salida)

 )

Cualquier lote de producto terminado puede ser materia prima (producto 
semi-elaborado) de otro producto terminado.


Teóricamente no debe de existir ningún bucle, no se si hay alguna forma 
de abortar la transacción


Un Saludo







Re: cash_words en español?

2019-08-19 Thread kernel





Gracias, ya tengo algún ejemplo que adaptar.







Re: Problemas de tamaño/recodificacion

2019-08-19 Thread kernel



El 16/08/2019 a las 20:27, Alvaro Herrera escribió:

kernel escribió:


Lo del parche a mi se me queda un poco grande, no tengo experiencia en esos
temas

Pude reproducir tu problema y el parche que propuse antes casi lo
soluciona; mandé un parche más completo a hackers a ver si lo podemos
incluir en futuras versiones:
https://www.postgresql.org/message-id/flat/20190816181418.GA898@alvherre.pgsql

La siguiente consulta reproduce el problema:
select query_to_xml(
 'select a, cash_words(a::text::money) from generate_series(0, 200) a',
 true, false, '');

si tienes un client_encoding distinto del server_encoding, esa consulta
muere con el error que antes dijiste:

ERROR:  memoria agotada
DETALLE:  La cadena de 281409059 bytes es demasiado larga para la 
recodificaci�n.
Duración: 14830,015 ms (00:14,830)

(ojo con el error de codificación ahí .. mi terminal es utf8 y la salida
es latin9)


ok , gracias






Re: cash_words en español?

2019-08-19 Thread kernel



El 19/08/2019 a las 13:05, Juan José Santamaría Flecha escribió:

On Mon, Aug 19, 2019 at 12:16 PM kernel  wrote:

¿hay algún sitio donde encontrar documentacion de este tipo de
funciones? , me gustaría saber si puedo utilizar la función cash_words
con salida en español


La función cash_words() tiene como entrada datos del tipo 'money', por
lo general trabajar con este tipo de datos suele ser una mala idea:

https://wiki.postgresql.org/wiki/Don't_Do_This#Don.27t_use_money

De hecho esta función debió quedarse obsoleta en algún momento, por lo
que no está documentada. Así que si quieres una funcionalidad de este
tipo seguramente tengas que hacerte una función propia.

Un saludo,

Juan José Santamaría Flecha



ok, gracias





cash_words en español?

2019-08-19 Thread kernel

Hola,

Acabo de descubrir la función cash_words, estoy buscando documentacion 
pero no encuentro nada, veo que esta dentro del pg_catalog (junto con 
otro montón que desconozco su funcionamiento)


¿hay algún sitio donde encontrar documentacion de este tipo de 
funciones? , me gustaría saber si puedo utilizar la función cash_words 
con salida en español



Gracias






Re: Problemas de tamaño/recodificacion

2019-08-08 Thread kernel



El 08/08/2019 a las 18:10, Alvaro Herrera escribió:

kernel escribió:


Tengo una funcion plpgsql que me devuelve un valor xml de 0,5 GB, La
codificacion que tiene la DB es UTF-8, como el cliente que utilizo es
latin9, creo que a la hora del intercambio al hacer el cambio de encoding me
da el problema

¿para qué haces esa conversión de codificación?  XML ya tiene una
declaración de codificación en sí mismo.  Es más, creo que hay algunas
cosas en XML que no funcionan bien con codificaciones no UTF8.  (Al
menos con JSON es así).

La explicación a por qué sucede que dio Horacio es correcta ... el
código de conversión es pesimista y asume que va a necesitar mucho
espacio (lo cual probablemente no es cierto).  Quizás puedas solventar
el problema conviertiendo por trozos, es decir divides el XML en trozos
y conviertes cada trozo separadamente.  Debe ser posible hacer esto en
forma que sea invisible para el cliente ...


En términos de código, esa limitación de tamaño de conversión podría
eliminarse ahora que Postgres tiene código reciente para manejar trozos
de memoria grandes.


Me intento explicar mejor,  actualmente genero un xml desde el ERP al 
que aplico una hoja de xslt y genero código tex para generar facturas en 
pdf.


Ahora lo que intento es generar el xml desde la propia base de datos (no 
tengo xml guardados), ahora va muchísimo mas rápido, el problema es 
cuando quieres sacar muchas es cuando da el problema, ojo si tiene que 
cambiar de encoding , si no se cambia no hay problema


La base de datos la tengo en UTF-8 para poder guardar cualquier 
caracter, los clientes de la aplicacion son windows con encoding 
windows-1252, cuando conecto ejecuto un set client_encoding = latin9.


En plpgsql le puedes hacer la declaracion inicial :



pero  luego introducir caracteres que se introducen como resultado de 
los querys son utf-8, mas lio.


Defino una variable de tipo xml y es ahí donde deposito el resultado de 
la consulta y hasta ahí perfecto, el problema es al hora de retornar la 
variable al cliente.


Voy a darle una vuelta  haber si puedo conectar como UTF-8 y ver como se 
comporta el latex a la hora de generar el PDF.


También estoy pensando en devolver xml por factura y concatenar uno 
mayor en la aplicación como anterior mente habéis comentado.


Lo del parche a mi se me queda un poco grande, no tengo experiencia en 
esos temas














Re: Problemas de tamaño/recodificacion

2019-08-08 Thread kernel


El 08/08/2019 a las 12:59, Horacio Miranda escribió:



On 8/08/2019 9:49 PM, kernel wrote:


El 08/08/2019 a las 10:35, Horacio Miranda escribió:
Debes indicar un poco mas de informacion, parametros, version de la 
base, si estas usando XML parsers...  la consulta que estas haciendo 
cuando se cae, etc...


Lee el correo y revisa que estes entregando toda la informacion que 
alguien de soporte te pueda preguntar.


On 8/08/2019 8:21 PM, kernel wrote:


Hola,

Tengo una funcion plpgsql que me devuelve un valor xml de 0,5 GB, 
La codificacion que tiene la DB es UTF-8, como el cliente que 
utilizo es latin9, creo que a la hora del intercambio al hacer el 
cambio de encoding me da el problema


¿alguna idea?

Gracias


ERROR:  memoria agotada

La cadena de 516574025 bytes es demasiado larga para la recodificación





Gracias Horacio,

Tengo un postgresql version 10.5 sobre opensuse

La consulta es bastante larga, es una SELECT  a base de XMLELEMENT ,  
XMLAGG y XMLATTRIBUTES             , nada mas


El problema se produce cuando la funcion  retorna el valor xml ; 
cuando sacamos muchos datos y el encoding del cliente es distinto del 
que tiene la base de datos.


Si la cantidad de datos es grande y no tiene que cambiar el encoding, 
no hay problema, tampoco lo hay  si reducimos el volumen de datos y 
tenemos distinto encoding


Supongo que tengo que tocar algo de memoria de postgres pero no se 
que parametro tocar y si es asi , ¿se puede hacer dinamicamente ?


Un Saludo


Revisando  los codigos veo que el postgresql tiene un limite en el mbutils
https://doxygen.postgresql.org/mbutils_8c.html

if ((Size 
<https://doxygen.postgresql.org/c_8h.html#af9ecec2d692138fab9167164a457cbd4>) 
len >= (MaxAllocSize 
<https://doxygen.postgresql.org/memutils_8h.html#a74a92b981e9b6aa591c5fbb24efd1dac> 
/ (Size 
<https://doxygen.postgresql.org/c_8h.html#af9ecec2d692138fab9167164a457cbd4>) 
MAX_CONVERSION_GROWTH 
<https://doxygen.postgresql.org/pg__wchar_8h.html#a1a226786d77d0e2baecaafd3d5aafd10>))


https://doxygen.postgresql.org/mbutils_8c.html
#define MaxAllocSize   ((Size 
<https://doxygen.postgresql.org/c_8h.html#af9ecec2d692138fab9167164a457cbd4>) 
0x3fff) /* 1 gigabyte - 1 */

#define MAX_CONVERSION_GROWTH   4

Es decir que el tamaño maximo del objeto puede ser basicamante 256M 
menos 1/4 de byte.


El mensaje de error dice que tu objeto es de 492.64M que es mayor al 
limite.
Lo que se me ocurre es que vas a tener que usar un split para no tener 
un XML más grande de 256M.


Ignoro lo que guardas como XML, pero si son fotos tal ves sea mejor 
guardar esos caracteres grandes como un CLOB ?








Si, eso debe de ser.

El error esta en el server, si ejecutas con pgadmin y le pones antes de 
la llamada un set client_encoding = 'latin9' antes de la llamada a la 
funcion da el error, vas a los log del servidor y ahi esta.


Lo que guardo es texto, es un xml , tiene unas 2400 facturas, con todos 
los campos posibles de impresión.


Gracias, voy haber que se me ocurre







Re: Problemas de tamaño/recodificacion

2019-08-08 Thread kernel



El 08/08/2019 a las 10:35, Horacio Miranda escribió:
Debes indicar un poco mas de informacion, parametros, version de la 
base, si estas usando XML parsers...  la consulta que estas haciendo 
cuando se cae, etc...


Lee el correo y revisa que estes entregando toda la informacion que 
alguien de soporte te pueda preguntar.


On 8/08/2019 8:21 PM, kernel wrote:


Hola,

Tengo una funcion plpgsql que me devuelve un valor xml de 0,5 GB, La 
codificacion que tiene la DB es UTF-8, como el cliente que utilizo es 
latin9, creo que a la hora del intercambio al hacer el cambio de 
encoding me da el problema


¿alguna idea?

Gracias


ERROR:  memoria agotada

La cadena de 516574025 bytes es demasiado larga para la recodificación





Gracias Horacio,

Tengo un postgresql version 10.5 sobre opensuse

La consulta es bastante larga, es una SELECT  a base de XMLELEMENT ,  
XMLAGG y XMLATTRIBUTES             , nada mas


El problema se produce cuando la funcion  retorna el valor xml ; cuando 
sacamos muchos datos y el encoding del cliente es distinto del que tiene 
la base de datos.


Si la cantidad de datos es grande y no tiene que cambiar el encoding, no 
hay problema, tampoco lo hay  si reducimos el volumen de datos y tenemos 
distinto encoding


Supongo que tengo que tocar algo de memoria de postgres pero no se que 
parametro tocar y si es asi , ¿se puede hacer dinamicamente ?


Un Saludo








Libro para vacaciones

2019-06-19 Thread kernel

Hola,

Me gustaria que me aconsejarais algun libro de postgresql, a ser posible 
en castellano, sino hay mas remedio en ingles.


No tengo un nivel medio, estoy buscado aprender mas sobre el tema de 
configuracion,creacion de indices, rendimiento, temas de  wal, 
replicacion, estrategias de backup, particionamiento.


En fin no se , algo facil de leer


Acabo de ver este en internet :

https://www.amazon.es/Mastering-PostgreSQL-techniques-development-administration-ebook/dp/B075V9TN6Z/ref=sr_1_4?__mk_es_ES=%C3%85M%C3%85%C5%BD%C3%95%C3%91=2SKFZADH5BA28=postgresql=1560959568=gateway=postg%2Caps%2C332=8-4

No se si habrá versión en castellano, tampoco se si es mucho libro para mi


Gracias









Re: Formas de Replicar

2019-06-18 Thread kernel

Gracias, ya estoy liado con ello, la verdad es que tiene muchas opciones

El 12/06/2019 a las 17:15, Daymel Bonne escribió:

Buenos días:

El mié., 12 de jun. de 2019 a la(s) 04:41, kernel (jucab...@gmail.com 
<mailto:jucab...@gmail.com>) escribió:


Hola,

Estoy viendo que hay diferentes formas de replicacion, yo hasta
ahora utilizaba un metodo de Hot Standby y Streaming replication.

cuando empece utilice esta guia :

https://e-mc2.net/es/hot-standby-y-streaming-replication?page=1

El otro dia buscando informacion de pg_basebackup me encontre con
esta otra guia :

https://www.unixmen.com/setup-postgresql-replication-centos/


La verdad es que estás viendo guias bien antiguas.

Ve o que esta ultima es mas facil de configurar, pero estoy
probando y observo que si paro el servidor de replica e intento ,
por ejemplo crear una base de  datos en  servidor principal, se
queda esperando y hasta que no levanto el servidor de  respaldo no
continua.



Esto pasa porque en el segundo, se configura una replicación 
sincrónica, fíjate en el parámetro synchronous_standby_names.


Con el metodo que yo utilizo   (Hot Standby y Streaming
replication) , puedo tener parada la maquina de replica varios
dias (dependiendo del wal_keep_segment) sin ningun problema y
cuando levanto la replica se pone en linea y punto.



Deberías ver los 
[replication_slots](https://www.postgresql.org/docs/current/warm-standby.html#STREAMING-REPLICATION-SLOTS)


Las verdad es que tengo un poco de lio, creo que la segunda forma
es mas sencilla de configurar ,( no hay que pasar claves ssh,
menos scripts), pero veo que no permite la perdida de conexion con
el replica.

Para liarme mas, esto pensado en poder utilizar balanceo, estoy
viendo pgpool, veo que tambien puede encargarse de la replicacion,
no se por donde seguir

¿que es mejor para mi?, ¿alguna guia clarificadora?, ¿en Castellano?


Con un poco de esfuerzo, Google Translate y la [documentación de 
postgres](https://www.postgresql.org/docs/current/warm-standby.html#STREAMING-REPLICATION) 
te darán el 99% de lo que tienes que saber para implementar 
correctamente la replicación.


Saludos


--
Daymel Bonne
Database Consultant, Training & Services
2ndQuadrant - PostgreSQL Solutions for the Enterprise
https://www.2ndQuadrant.com/ <https://www.2ndquadrant.com/>



Formas de Replicar

2019-06-12 Thread kernel

Hola,

Estoy viendo que hay diferentes formas de replicacion, yo hasta ahora 
utilizaba un metodo de Hot Standby y Streaming replication.


cuando empece utilice esta guia :

https://e-mc2.net/es/hot-standby-y-streaming-replication?page=1

El otro dia buscando informacion de pg_basebackup me encontre con esta 
otra guia :


https://www.unixmen.com/setup-postgresql-replication-centos/

Ve o que esta ultima es mas facil de configurar, pero estoy probando y 
observo que si paro el servidor de replica e intento , por ejemplo crear 
una base de  datos en  servidor principal, se queda esperando y hasta 
que no levanto el servidor de  respaldo no continua.



Con el metodo que yo utilizo   (Hot Standby y Streaming replication) , 
puedo tener parada la maquina de replica varios dias (dependiendo del 
wal_keep_segment) sin ningun problema y cuando levanto la replica se 
pone en linea y punto.



Las verdad es que tengo un poco de lio, creo que la segunda forma es mas 
sencilla de configurar ,( no hay que pasar claves ssh, menos scripts), 
pero veo que no permite la perdida de conexion con el replica.


Para liarme mas, esto pensado en poder utilizar balanceo, estoy viendo 
pgpool, veo que tambien puede encargarse de la replicacion, no se por 
donde seguir


¿que es mejor para mi?, ¿alguna guia clarificadora?, ¿en Castellano?

La instalación que tengo es pequeña, de unos 50 usuarios , 1 base de 
datos con 300 tablas, unos 60GB en disco



Muchas Gracias





Re: Perdida de flujo replicacion

2019-06-07 Thread kernel

Hola,

Gracias, ya lo he reconstruido sin necesidad de parar al resto de 
usuarios (Gracias Marcelo).


Efectivamente estoy viendo ejemplos de del pg_basebackup, voy a ver si 
veo como funciona


Me gustaria probar un entorno de 1 maestro y 2 esclavos

¿como seria?, ¿algún Ejemplo?

Gracias


El 07/06/2019 a las 13:13, Hellmuth Vargas escribió:
Incluso, leí recientemente que pg_start_backup y pg_start_backup 
serían descontinuados


https://www.cybertec-postgresql.com/en/exclusive-backup-deprecated-what-now/


El vie., 7 de jun. de 2019 5:46 AM, Hellmuth Vargas <mailto:hiv...@gmail.com>> escribió:


Hola Kernel

Que versión de PostgreSQL emplea? porque para regenerar réplicas
es muchísimo mejor emplear pg_basebackup

https://www.postgresql.org/docs/11/app-pgbasebackup.html

El mar., 4 de jun. de 2019 12:09 PM, kernel mailto:jucab...@gmail.com>> escribió:


Hola,

tengo una maquina de respaldo que le ha fallado el backplane y
se ha
apagado, he tardado 7 dias en conseguir el repuesto, la he
puesto en
marcha y en el log me dice lo siguiente:

cp: no se puede efectuar `stat' sobre
«/db/wal_esclavo/wal_shipped/000102C50044»: No
existe el
fichero o el directorio
cp: no se puede efectuar `stat' sobre
«/db/wal_esclavo/wal_shipped/000102C50044»: No
existe el
fichero o el directorio
2019-06-04 19:06:24 CEST   LOG:  la replicación en flujo se ha
conectado exitosamente al primario
2019-06-04 19:06:24 CEST   FATAL:  no se pudo recibir datos
desde el
flujo de WAL: FATAL:  el segmento de WAL solicitado
000102C50044 ya ha sido eliminado


Entiendo que el servidor principal ya ha borrado los ficheros,
supongo
que tengo que volver a sincronizar desde el principio, tengo
que volver
ha empezar,

hacer un select pg_start_backup('.')  y demas.

La pregunta es , ¿puedo hacer un pg_start_backup con el resto de
usuarios trabajando con la base de datos o tengo que tener uso
exclusivo?


Gracias

Un Saludo





Perdida de flujo replicacion

2019-06-04 Thread kernel



Hola,

tengo una maquina de respaldo que le ha fallado el backplane y se ha 
apagado, he tardado 7 dias en conseguir el repuesto, la he puesto en 
marcha y en el log me dice lo siguiente:


cp: no se puede efectuar `stat' sobre 
«/db/wal_esclavo/wal_shipped/000102C50044»: No existe el 
fichero o el directorio
cp: no se puede efectuar `stat' sobre 
«/db/wal_esclavo/wal_shipped/000102C50044»: No existe el 
fichero o el directorio
2019-06-04 19:06:24 CEST   LOG:  la replicación en flujo se ha 
conectado exitosamente al primario
2019-06-04 19:06:24 CEST   FATAL:  no se pudo recibir datos desde el 
flujo de WAL: FATAL:  el segmento de WAL solicitado 
000102C50044 ya ha sido eliminado



Entiendo que el servidor principal ya ha borrado los ficheros, supongo 
que tengo que volver a sincronizar desde el principio, tengo que volver 
ha empezar,


hacer un select pg_start_backup('.')  y demas.

La pregunta es , ¿puedo hacer un pg_start_backup con el resto de 
usuarios trabajando con la base de datos o tengo que tener uso exclusivo?



Gracias

Un Saludo





Configuración optima postgresql

2019-05-05 Thread kernel

Hola,

Tengo un  servidor con 32 GB de RAM, 16cores, y un raid 1 con discos 
sas, postgres 9.5. sin replicacion


Tengo instalado un odoo 9, con 25 usuarios

No se si alguien de la lista me puede ayudar con la configuracion optima 
del postgresql.conf


Estaba pensando en algo asi


max_connections    100
shared_buffers    8GB
effective_cache_size    24GB
work_mem    128MB
maintenance_work_mem    2GB
max_wal_size    2Gb
min_wal_size    1GB
checkpoint_completion_target    0,7
"wal_buffers
(-1 sets based on
shared_buffers)"    16MB
default_statistics_target
random_page_cost
effective_io_concurrency    2
max_worker_processes    16



Gracias





cambio de nombre de tag _x005F

2018-12-20 Thread Kernel

Hola,

Estoy generando un xml y me cambia el nombre del tag, dir_formato_xsl lo 
cambia y pone dir_formato_x005F_xls, ¿hay alguna forma de evitarlo?




Sentencia:
XMLELEMENT(name dir_formato_xsl,'/u/formatos')

Resultado:
/u/formatos


Gracias



Re: omnidb 2.12

2018-11-23 Thread Kernel




El 23/11/2018 a las 10:42, Francisco Olarte escribió:

On Thu, Nov 22, 2018 at 6:46 PM Kernel  wrote:

El 22/11/2018 a las 18:09, jvenegasperu escribió:

Diculpa no tenemos bola de cristal y si pones la query un log algo jejeje




Perdón,  pero la verdad no he pensado que el problema pueda estar en el
query, he pensado en el tipo de conexión, librerías, configuración,
versiones o algo así.


http://xyproblem.info  Normalmente es mas facil si dices el problema
observado (i.e., meto un query Q en tal ventana del omnidb, pincho en
tal sitio y hasta que me salen en tal otro las N filas me tarda 54
segundos, pero si meto en psql ( el mejor para referencias, porque
todos lo tenemos ), de tal forma y pico enter tarda 1 segundo ). Poner
tu solucion o impresiones ADEMAS ayuda, pero ademas de lo primero.


Suponía que estos productos funcionan as:
1.- ha establecer la conexión con el servidor


si, pero normalmente lo hacen al arrancar, y ademas hacen algunas
configuraciones antes.


2.- le pasan la consulta


Correcto, algunos ademas la delinean con una transaccion.


3.- La consulta la ejecuta el servidor, no el omnidb
 (Si es así , lo mismo da la consulta, con el resto de productos vuela)


Efectivamente.


4.- Recibe los datos (solo una row con 4 campos)


Una FILA, para rows tenemos la lista e ingles ;-> . ESO es importante,
porque nos permite descartar el que vuelvan muchos resultados y el
omnidb sea lento recibiendo/pintando.


5.- Los muestra


Y esto puede ser lento, pero el una fila del punto 4 permite descartalo.


Con el pgadmin4 veo la actividad del gestor y solo en el ultimo segundo
se ve actividad, es como si se atascara en el punto numero 2.


¿ Que actividad ves ? Consumo de CPU en el cliente, en el servidor ?


Todo esto ha venido por que utilizo un software de desarrollo de
(https://4js.com), y el driver que utiliza tiene el mismo problema, se
comporta exactamente igual


Igual usan el mismo driver a bajo nivel y tiene algun problema.


Esta es la consulta en cuestion :

..snip, snip...

Salvo que las tablas sean enorme parece una cosa facilita.


Solo devuelve una fila, con el resto de productos 1 segundo con el
omnidb y 4js 54.


¿ Has probado a mandar, con omnidb y psql, el select precedido por
"explain analyze" para que te asegures de que es el mismo plan ?

Porque sin tener ningun dato de tu ejecucion, pueden pasar mil cosas.

Francisco Olarte.


Hola,

Tiene el mismo plan, desde uno que desde otro.
ya no se que mirar , debe de ser algo del driver

Gracias






Re: pldbgapi extension para postgres 10?

2018-08-03 Thread Kernel




El 01/08/2018 a las 15:14, Jaime Soler escribió:
A lo mejor te funciona el repositorio de SLES 12 de la comunidad 
https://zypp.postgresql.org/howtozypp.php#pg10 que sí que tiene 
empaquetado pldebugger

https://download.postgresql.org/pub/repos/zypp/10/suse/sles-12-x86_64/pldebugger10-1.0-1.sles12.x86_64.rpm

El mié., 1 ago. 2018 a las 14:16, Kernel (<mailto:jucab...@gmail.com>>) escribió:




El 01/08/2018 a las 13:37, Jaime Soler escribió:
 > Sí yo utilizo el debuger en 9.6 y 10. El paquete del repositorio
 > postgresl.org <http://postgresl.org> <http://postgresl.org> sobre
centos es pldebugger10.x86_64
 > y postgresql-10-pldebugger el de ubuntu. Recuerda que tienes que
crear
 > la extensión en la base de datos y añadir la librería para que sea
 > cargada al inicio de postgres && reinicio del servicio
 > shared_preload_libraries = '$libdir/plugin_debugger'
 >
 >
 > Un saludo
 >
 > El mar., 24 jul. 2018 a las 11:18, Kernel (mailto:jucab...@gmail.com>
 > <mailto:jucab...@gmail.com <mailto:jucab...@gmail.com>>>) escribió:
 >
 >
 >     Hola,
 >
 >     ¿esta disponible la extension de depuracion para postgresql 10?
 >
 >     Me da este error rl  pgadmin 4
 >
 >     The debugger plugin is not enabled. Please create the pldbgapi
 >     extension in this database.
 >
 >
 >     Un Saludo
 >

no lo encuentro para opensuse

Gracias



Gracias,
No funciona 



Re: pldbgapi extension para postgres 10?

2018-08-01 Thread Kernel




El 01/08/2018 a las 13:37, Jaime Soler escribió:
Sí yo utilizo el debuger en 9.6 y 10. El paquete del repositorio 
postgresl.org <http://postgresl.org> sobre centos es pldebugger10.x86_64 
y postgresql-10-pldebugger el de ubuntu. Recuerda que tienes que crear 
la extensión en la base de datos y añadir la librería para que sea 
cargada al inicio de postgres && reinicio del servicio

shared_preload_libraries = '$libdir/plugin_debugger'


Un saludo

El mar., 24 jul. 2018 a las 11:18, Kernel (<mailto:jucab...@gmail.com>>) escribió:



Hola,

¿esta disponible la extension de depuracion para postgresql 10?

Me da este error rl  pgadmin 4

The debugger plugin is not enabled. Please create the pldbgapi
extension in this database.


Un Saludo



no lo encuentro para opensuse

Gracias



Re: Convertir registro cualquiera a un array character varying[]

2018-07-26 Thread kernel
Gracias por tu respuesta, los he probado y van perfectos, el que mas me
gusta es el que utiliza hstore.

Posiblemente utilice ese, pues a la hora de tratar lo desde una simple
salida csv y un excel se puede revisar.

Pero como inicialmente empece a desarrollar lo y me encontre con el
problema, no queria dejarlo sin mas, me gustaría ver como podria resolver lo


El jue, 26 de julio de 2018 07:48 PM, Alvaro Herrera <
alvhe...@2ndquadrant.com> escribió:

> Kernel escribió:
> > Hola,
> >
> > Estoy creando una funcion de auditoria a base de triggers,
>
> ¿por qué no usas los que ya están escritos?  Hay por lo menos tres
> distintas posibilidades.  Esta es una:
> https://wiki.postgresql.org/wiki/Audit_trigger_91plus
>
>
> --
> Álvaro Herrerahttps://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>


Convertir registro cualquiera a un array character varying[]

2018-07-26 Thread Kernel

Hola,

Estoy creando una funcion de auditoria a base de triggers,

La tabla de auditoria entre otros campos tiene estos :

  tabla character varying,-- Nombre de tabla
  camposcharacter varying[],  -- Lista de campos del registro
  old_value character varying[],  -- Valores antiguos
  new_value character varying[],  -- Valores nuevos



Dentro del trigger obtengo fácilmente el nombre de tabla y el  array con 
los campos:


tabla := TG_TABLE_NAME;

SELECT array(SELECT  information_schema.columns.column_name::character 
varying FROM information_schema.columns WHERE 
information_schema.columns.table_name = TG_TABLE_NAME order by 
ordinal_position) INTO campos ;


Sin embargo tengo problemas con los registros OLD.* y NEW.*, los tipos 
de campo pueden ser de cualquier tipo y lo quiero cargar en old_value y 
new_value que son character varying[]




Gracias



pldbgapi extension para postgres 10?

2018-07-24 Thread Kernel


Hola,

¿esta disponible la extension de depuracion para postgresql 10?

Me da este error rl  pgadmin 4

The debugger plugin is not enabled. Please create the pldbgapi extension 
in this database.



Un Saludo



herramientas de Audit trail

2018-07-22 Thread Kernel




Hola,

Estoy viendo la posibilidad de implantar algún sistema de auditoria, por 
lo que estoy leyendo  hay dos vías para realizarlo, una por triggers y 
otra por logs.


Me pregunto si también hay alguna herramienta gráfica para analizar los 
logs o la tabla de auditoria generada por los triggers.



En fin, me gustaría contar con vuestros comentarios para ir por un 
camino u otro.


Gracias



Replicacion con diferentes versiones

2018-05-16 Thread Kernel

Hola,

Siempre he montado la replicacion con versiones iguales, pero

¿puedo montar un sistema de replicacion con diferentes versiones de 
postgresql?


Por ejemplo maestro la 9.1 y esclavo la 9.2


Gracias



Re: buscar referenciado

2018-04-09 Thread Kernel

ok, gracias,
estaba buscado alguna función que me lo verifique sin tener que hacer un 
delete , si había algo hecho




El 09/04/2018 a las 16:45, Alvaro Herrera escribió:

Kernel escribió:

No exactamente,
lo que busco es a nivel de registro,a nivel de dato, me explico ,

Puedo tener un id que este solo este en la tabla principal y no en las
otras.
Imagina que quiero borrar un id de la tabla principal y quiero ver si puedo
o no borrarlo, si ese dato en concreto esta en otras tablas o no


usa ON DELETE RESTRICT ...  si está referido, el delete te dará un
error.  Si quieres hermosear el error, puedes usar un savepoint o un
bloque EXCEPTION en plpgsql.





Re: buscar referenciado

2018-04-09 Thread Kernel

No exactamente,
lo que busco es a nivel de registro,a nivel de dato, me explico ,

Puedo tener un id que este solo este en la tabla principal y no en las 
otras.
Imagina que quiero borrar un id de la tabla principal y quiero ver si 
puedo o no borrarlo, si ese dato en concreto esta en otras tablas o no




El 09/04/2018 a las 13:51, Stephen Amell escribió:

Hola Kernel, ¿buscas algo asi?

|SELECT tc.constraint_name,tc.table_name,kcu.column_name,ccu.table_name 
AS foreign_table_name,ccu.column_name AS foreign_column_name 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 tc.table_name='mytable';|



de 
https://stackoverflow.com/questions/1152260/postgres-sql-to-list-table-foreign-keys


On 2018-04-09 08:46, Kernel wrote:

Hola,

Me pregunto si existe alguna función que me diga en que tablas esta 
referenciado un dato.


supongamos que tengo una tabla maestra (A) que tiene un campo id como 
PRIMARY KEY, a esta se referencian otras tablas (B),(C), etc .., 
tienen un FOREIGN KEY a la tabla (A)




Antes de borrar un determinado valor de la tabla(A), me gustaria saber 
en que tablas esta referenciado .


Un Saludo








buscar referenciado

2018-04-09 Thread Kernel

Hola,

Me pregunto si existe alguna función que me diga en que tablas esta 
referenciado un dato.


supongamos que tengo una tabla maestra (A) que tiene un campo id como 
PRIMARY KEY, a esta se referencian otras tablas (B),(C), etc .., tienen 
un FOREIGN KEY a la tabla (A)




Antes de borrar un determinado valor de la tabla(A), me gustaria saber 
en que tablas esta referenciado .


Un Saludo



Tema de permisos

2018-03-22 Thread Kernel

Hola,

Necesito crear un usuario que solo pueda acceder a un par de tablas y a 
una funcion mediante odbc.


Partiendo que no esto muy puesto en el tema grant ,me gustaria que este 
usuario no pueda ver nada de la base de datos (nombres de tablas, 
funciones, etc)  si entra con pgadmin , de tal forma que si entra solo 
vea sus 2 tablas y la funcion

¿es posible?

Gracias



Re: demasiados ficheros en pg_xlog

2018-01-13 Thread Kernel



El 13/01/2018 a las 13:40, Kernel escribió:

Hola,

Tengo un 2 servidores uno como maestro y otro como esclavo.

En el servidor maestro la carpeta pg_xlog tiene 2034 ficheros y otros 
tantos en pg_xlog/archive_status.


¿que puedo hacer para vaciar/descargar este directorio?, he leido algo 
sobre pg_resetlog pero esta en ingles y la verdad no es mi fuerte


en el fichero de configuracion del servidor tengo :

# - Master Server -

# These settings are ignored on a standby server

max_wal_senders = 5    # max number of walsender processes

     # (change requires restart)
#wal_sender_delay = 1s    # walsender cycle time, 1-1 milliseconds
wal_keep_segments = 120    # in logfile segments, 16MB each; 0 disables

#vacuum_defer_cleanup_age = 0    # number of xacts by which cleanup is 
delayed

#replication_timeout = 60s    # in milliseconds; 0 disables
#synchronous_standby_names = ''    # standby servers that provide sync rep
     # comma-separated list of application_name
     # from standby(s); '*' = all



Gracias



Por lo que he leido , deberia de parar el servicio, y como postgres 
ejecutar  pg_resetxlog DATADIR y volver a arrancar el servicio


¿es correcto?, ¿deberia de hacer algo en el servidor esclavo?

Gracias



demasiados ficheros en pg_xlog

2018-01-13 Thread Kernel

Hola,

Tengo un 2 servidores uno como maestro y otro como esclavo.

En el servidor maestro la carpeta pg_xlog tiene 2034 ficheros y otros 
tantos en pg_xlog/archive_status.


¿que puedo hacer para vaciar/descargar este directorio?, he leido algo 
sobre pg_resetlog pero esta en ingles y la verdad no es mi fuerte


en el fichero de configuracion del servidor tengo :

# - Master Server -

# These settings are ignored on a standby server

max_wal_senders = 5 # max number of walsender processes

# (change requires restart)
#wal_sender_delay = 1s  # walsender cycle time, 1-1 milliseconds
wal_keep_segments = 120 # in logfile segments, 16MB each; 0 disables

#vacuum_defer_cleanup_age = 0   # number of xacts by which cleanup is delayed
#replication_timeout = 60s  # in milliseconds; 0 disables
#synchronous_standby_names = '' # standby servers that provide sync rep
# comma-separated list of application_name
# from standby(s); '*' = all



Gracias



Re: Encriptado DB

2017-09-13 Thread Kernel



El 13/09/2017 a las 17:47, Maximi89 escribió:
Puede ser que encripte algunos campos de la tabla, como por ejemplo, 
¿una clave?.


https://www.postgresql.org/docs/9.1/static/pgcrypto.html

El 13 de septiembre de 2017, 12:39, Kernel <jucab...@gmail.com 
<mailto:jucab...@gmail.com>> escribió:



Hola,
Hoy he estado con el consultor que me asesora con la ISO27001 y me
ha comentado la posibilidad de encriptar la base de datos, me
comenta que ellos utilizan mariadb y que es muy fácil hacerlo,
parece ser que es algún parámetro de configuración y poco mas, no se
si en postgresql esto es posible y como funciona.
Por lo que me ha perecido entender en la db esta todo encriptado

¿Me podéis comentar algo al respecto?

Gracias




--
Maximiliano Augusto Castañón Araneda
Santiago, Chile
Linux user # 394821

Entel: +56998913632


No , por lo que me ha dicho, es encriptar todo, no se como puede 
hacerlo, entiendo que debe de haber por debajo algún sistema de ficheros 
o algo asi, incluso los backup




Encriptado DB

2017-09-13 Thread Kernel


Hola,
Hoy he estado con el consultor que me asesora con la ISO27001 y me ha 
comentado la posibilidad de encriptar la base de datos, me comenta que 
ellos utilizan mariadb y que es muy fácil hacerlo, parece ser que es 
algún parámetro de configuración y poco mas, no se si en postgresql esto 
es posible y como funciona.

Por lo que me ha perecido entender en la db esta todo encriptado

¿Me podéis comentar algo al respecto?

Gracias



Re: lo que se queda fuera de un join

2017-08-10 Thread Kernel




Voy a intentar explicarme con un ejemplo, necesito sacar todas aquellas 
filas de t1, que no estan en t2.
Podría hacerlo con un 't1.num not in (select ', pero lo necesito 
para un caso bastante mas complejo.






tabla t1

 num | name
-+--
   1 | a
   2 | b
   3 | c

tabla t2

 num | value
-+---
   1 | xxx
   3 | yyy
   5 | zzz


SELECT * FROM t1 INNER JOIN t2 ON t1.num = t2.num;
 num | name | num | value
-+--+-+---
   1 | a|   1 | xxx
   3 | c|   3 | yyy



Lo que quiero obtener :

 num | name | num | value
-+--+-+---
   2 | b| |


Creo recordar que una vez vi algo en el manual

Gracias



El 10/08/2017 a las 19:19, Emanuel Calvo escribió:

{LEFT|RIGHT} OUTER JOIN ?

LInk https://www.postgresql.org/docs/9.6/static/tutorial-join.html


El 10 de agosto de 2017, 13:55, Kernel <jucab...@gmail.com 
<mailto:jucab...@gmail.com>> escribió:


Hola,

me suena que hay una forma de obtener los registros que se han
quedado fuera de un join, estoy buscando en el manual pero no
consigo verlo,
¿me podéis dar una pista para buscar el el manual?

Gracias




--
--
Emanuel Calvo
Sr. Technical Services at Percona
Team Building at Ayres.io




lo que se queda fuera de un join

2017-08-10 Thread Kernel

Hola,

me suena que hay una forma de obtener los registros que se han quedado 
fuera de un join, estoy buscando en el manual pero no consigo verlo,

¿me podéis dar una pista para buscar el el manual?

Gracias



Conexión de una db a otra del mismo server

2017-08-09 Thread Kernel




El 08/08/2017 a las 2:41, jvenegasperu . escribió:

Y alguno sabe si hay FDW en windows o como se haría en windows

El 7 ago. 2017 15:16, "Edwin Quijada" <listas_quij...@hotmail.com 
<mailto:listas_quij...@hotmail.com>> escribió:


Hago algo parecido y lo que hice fue usar untrusted language, con
Python me conectaba a otra BD y sacaba todo lo que necesitaba. EN tu
caso como de Pg a Pg , pues usaria FDW que es la tecnologia mas
nueva y seria mas simple de usar




--------
*From:* Kernel <jucab...@gmail.com <mailto:jucab...@gmail.com>>
*Sent:* Monday, August 7, 2017 8:31 AM
*To:* Ayuda
*Subject:* Conexión de una db a otra del mismo server

Hola,

Tengo una base de datos de un erp (db_erp) y me gustaría crear otra
base de datos para crear un cubo de datos (db_bi).

La idea que tengo es, que esta nueva db  (db_bi) contenga funciones
pl/pgsql  que lean datos de la db del erp  (db_erp) y  la inserten
en que desde esta nueva db (db_bi).

En un principio estarían en la misma maquina y gestor, pero también
cabe la posibilidad de que estuvieran en distintas maquinas.


Estoy  viendo dblink y postgres_fdw, no se cual de ellos es el mas
adecuado y si esta es la mejor forma de hacerlo


Gracias





Siguiendo con el tema , veo que con dblink prodria llamar a FUNCIONES de 
la base de datos db_erp, ¿pero como lo puedo hacer con postgres_fdw ?