sábado, 19 de diciembre de 2015

Exportar tabla PostgreSQL en formato plano

Para exportar todos los datos de una tabla en PostreSQL, se ejecuta lo siguiente:



COPY evento TO '/home/java/tblEvento.txt' WITH DELIMITER ';';


Se debe crear la ruta con los permisos de escritura, y el nombre del archivo .txt o .csv, con el carácter de separador.

Ejemplo de instalación y configuración Postgresql



Para la instalación seguir las siguientes recomendaciones.
-       Ingresar como súper usuario
-       Se crea una carpeta temp, donde estará el instalador de Postgresql
-       Se dan permisos de ejecución
root@linux:/tmp# chmod +x postgresql-9.3.9-linux.bin
-       Se ejecuta en instalador
root@linux:/tmp# ./postgresql-9.3.9-linux.bin
-       Una vez inicia el instalador grafico se pide la ruta.
/opt/PostgreSQL/9.3/
-       Se selecciona el directorio de datos
/opt/PostgreSQL/9.3/data/
-       Se ingresa una contraseña segura, que cumpla con las políticas de seguridad (Debe contener una letra mayúscula, debe contener un número y un carácter especial)
-       Se selecciona el puerto para la base de datos, por defecto es 5432.
-       Se finaliza la instalación.
Luego de la instalación se ingresa por consola o por la interfaz PgAdmin, se ingresa con el usuario por defecto postgres y la contraseña ingresada en el momento de la instalación.
·         Se crea un usuario para administrar, con permisos de crear, modificar y eliminar tablas.
·         Se crean 3 base de datos, una para desarrollo (alcaldiaDes), una para pruebas (alcaldiaPrb) y la de producción (alcaldiaPro), con la configuración regional indicada.
-- Database: "alcaldiaDes"

-- DROP DATABASE "alcaldiaDes";

CREATE DATABASE "alcaldiaDes"
  WITH OWNER = postgres
       ENCODING = 'UTF8'
       TABLESPACE = pg_des
       LC_COLLATE = 'Spanish_Colombia.1252'
       LC_CTYPE = 'Spanish_Colombia.1252'
       CONNECTION LIMIT = -1;

·         Se crean los usuarios de cada uno de los ambientes.
·         Se crean los esquemas para cada base de datos (schemaDes, schemaPrb, schemaPro).
·         Se crean los tablespaces (pg_des, pg_prb, pg_pro)
·         El archivo postgresql.conf, debe tener la siguiente configuración:
log_connections = yes
log_destination = 'syslog'
search_path = '"$user", public'
shared_buffers = 128MB

Para permitir conexiones externas se edita el fichero /etc/postgresql/9.3/main/postgresql.conf
Y se modifican las siguientes líneas:
listen_addresses = '*'
password_encryption = on
En caso de fallo en la instalación, se debe verificar que la versión sea la indicada para el sistema operativo, se debe verificar la versión 64 bits. Que no se estén instalando más cosas al tiempo, esto puede generar conflictos. También se debe verificar que el usuario que este ejecutando la instalación tenga los permisos suficientes para el procedimiento.

Se debe verificar los siguientes puntos:
-       Conectarse mediante pgAdmin ingresando los datos requeridos y configurados previamente.


-       Verificar que los puertos estén activos con el siguiente comando:
# netstat -punta | grep LISTEN
tcp        0      0 127.0.0.1:5432              0.0.0.0:*                   LISTEN      15112/postmaster

-       Se debe verificar que los usuarios creados se puedan conectar, se puede hacer la prueba por consola o por pgAdmin
-       Verificar que estén creados los esquemas definidos por el DBA
-- Schema: sch_alcadia

-- DROP SCHEMA sch_alcadia;

CREATE SCHEMA sch_alcadia
  AUTHORIZATION postgres;

GRANT ALL ON SCHEMA sch_alcadia TO postgres;
GRANT ALL ON SCHEMA sch_alcadia TO sch_alcadia;
COMMENT ON SCHEMA sch_alcadia
  IS 'standard sch_alcadia schema';

-       Verificar el archivo postgresql.conf lo siguiente:
El máximo de conexiones permitidas
max_connections = 100
El tamaño del buffer de memoria usada
shared_buffers = 1024MB

Para optimizar la lectura de datos, como es un servidor dedicado se asigna un porcentaje dado por el DBA.
effective_cache_size = 2048MB