{"id":295,"date":"2016-02-02T04:25:10","date_gmt":"2016-02-02T04:25:10","guid":{"rendered":"https:\/\/www.joseluisestevez.com\/?p=295"},"modified":"2017-02-01T11:26:51","modified_gmt":"2017-02-01T11:26:51","slug":"instalar-la-ultima-version-de-postgis-2-2-en-debian","status":"publish","type":"post","link":"https:\/\/www.joseluisestevez.com\/index.php\/2016\/02\/02\/instalar-la-ultima-version-de-postgis-2-2-en-debian\/","title":{"rendered":"Instalar la \u00faltima versi\u00f3n de Postgis 2.2 en Debian"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">En esta entrada les quiero ense\u00f1ar lo que necesitan para trabajar\u00a0bases de datos geom\u00e9tricas\u00a0en software libre, instalando las siguientes herramientas\u00a0postgresql 9.5, postgis 2.2 y PgAdmin3 en Debian,\u00a0ademas\u00a0vamos a importar\u00a0nuestros archivos shape con la herramienta\u00a0shp2pgsql-gui. Y al finalizar les ense\u00f1are a optimizar algunos par\u00e1metros del Postgresql para obtener un mejor rendimiento de nuestra base de datos.<\/span><\/p>\n<p><!--more--><\/p>\n<p>Antes de empezar vamos a conocer cada una de estas herramientas y sus caracter\u00edsticas.<\/p>\n<h2><span style=\"font-weight: 400;\">PostgreSQL<\/span><\/h2>\n<p><a href=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2015\/12\/postgresql-logo.png\" rel=\"attachment wp-att-231\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-231 size-full\" src=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2015\/12\/postgresql-logo.png\" alt=\"postgresql-logo\" width=\"610\" height=\"280\" srcset=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2015\/12\/postgresql-logo.png 610w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2015\/12\/postgresql-logo-300x138.png 300w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">PostgreSQL es un sistema de gesti\u00f3n de bases de datos objeto-relacional, distribuido bajo licencia BSD y con su c\u00f3digo fuente disponible libremente. Es el sistema de gesti\u00f3n de bases de datos de c\u00f3digo abierto m\u00e1s potente del mercado y en sus \u00faltimas versiones no tiene nada que envidiarle a otras bases de datos comerciales.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">PostgreSQL utiliza un modelo cliente\/servidor y usa multiprocesos en vez de multihilos para garantizar la estabilidad del sistema. Un fallo en uno de los procesos no afectar\u00e1 el resto y el sistema continuar\u00e1 funcionando.<\/span><br \/>\n<span style=\"font-weight: 400;\">A continuaci\u00f3n ten\u00e9is un gr\u00e1fico que ilustra de manera general los componentes m\u00e1s importantes en un sistema PostgreSQL.<\/span><\/p>\n<p><a href=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/pgclient_server_0.png\" rel=\"attachment wp-att-296\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-296 size-full\" src=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/pgclient_server_0.png\" alt=\"pgclient_server_0\" width=\"543\" height=\"665\" srcset=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/pgclient_server_0.png 543w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/pgclient_server_0-245x300.png 245w\" sizes=\"auto, (max-width: 543px) 100vw, 543px\" \/><\/a><\/p>\n<ul>\n<li>Aplicaci\u00f3n cliente: Esta es la aplicaci\u00f3n cliente que utiliza PostgreSQL como administrador de bases de datos. La conexi\u00f3n puede ocurrir via TCP\/IP \u00f3 sockets locales.<\/li>\n<li>Demonio postmaster: Este es el proceso principal de PostgreSQL. Es el encargado de escuchar por un puerto\/socket por conexiones entrantes de clientes. Tambi\u00e9n es el encargado de crear los procesos hijos que se encargaran de autentificar estas peticiones, gestionar las consultas y mandar los resultados a las aplicaciones clientes<\/li>\n<li>Ficheros de configuraci\u00f3n: Los 3 ficheros principales de configuraci\u00f3n utilizados por PostgreSQL, postgresql.conf, pg_hba.conf y pg_ident.conf<\/li>\n<li>Procesos hijos postgres: Procesos hijos que se encarga de autentificar a los clientes, de gestionar las consultas y mandar los resultados a las aplicaciones clientes<\/li>\n<li>PostgreSQL share buffer cache: Memoria compartida usada por POstgreSQL para almacenar datos en cach\u00e9.<\/li>\n<li>Write-Ahead Log (WAL): Componente del sistema encargado de asegurar la integridad de los datos (recuperacion de tipo REDO)<\/li>\n<li>Kernel disk buffer cache: Cach\u00e9 de disco del sistema operativo<\/li>\n<li>Disco: Disco f\u00edsico donde se almacenan los datos y toda la informaci\u00f3n necesaria para que PostgreSQL funcione<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-weight: 400;\">Postgis:<\/span><\/h2>\n<p><a href=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/150px-Logo_square_postgis.png\" rel=\"attachment wp-att-297\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-297\" src=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/150px-Logo_square_postgis.png\" alt=\"150px-Logo_square_postgis\" width=\"150\" height=\"150\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">PostGIS es una extensi\u00f3n que convierte el sistema de base de datos PostgreSQL en una base de datos espacial para su utilizaci\u00f3n en Sistema de Informaci\u00f3n Geogr\u00e1fica. La combinaci\u00f3n de ambos es una soluci\u00f3n perfecta para el almacenamiento, gesti\u00f3n y mantenimiento de datos espaciales. Se publica bajo la Licencia P\u00fablica General de GNU.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Es una alternativa real al software propietario super\u00e1ndole en estabilidad y rapidez.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Actualmente es la base de datos espacial de c\u00f3digo abierto m\u00e1s \u00e1mpliamente utilizada. Muchas y muy variadas organizaciones de todo el mundo usan PostGIS, incluyendo agencias gubernamentales de riesgos adversos y organizaciones que almacenan terabytes de datos y sirven millones de peticiones web al d\u00eda.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">PostGIS es software libre, tiene licencia GNU General Public License (GPL). <\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Es compatible con los est\u00e1ndares de Open Geospatial Consortium (OGC), con el objetivo de facilitar el intercambio de informaci\u00f3n geogr\u00e1fica.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Soporta tipos de datos espaciales, \u00edndices espaciales y tiene cientos de funciones espaciales (+ 1000).<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Permite importar y exportar datos f\u00e1cilmente a trav\u00e9s de \u00a0varias herramientas conversoras (shp2pgsql, pgsql2shp, ogr2ogr, dxf2postgis).<\/span><\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400;\">PgAdmin3<\/span><\/h2>\n<p><a href=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdminLogo.jpg\" rel=\"attachment wp-att-299\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-299 size-full\" src=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdminLogo.jpg\" alt=\"PgAdminLogo\" width=\"349\" height=\"100\" srcset=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdminLogo.jpg 349w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdminLogo-300x86.jpg 300w\" sizes=\"auto, (max-width: 349px) 100vw, 349px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">pgAdmin 3 es una herramienta de c\u00f3digo abierto para la administraci\u00f3n de bases de datos PostgreSQL y derivados (EnterpriseDB Postgres Plus Advanced Server y Greenplum Database). Incluye:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Interfaz administrativa gr\u00e1fica<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Herramienta de consulta SQL (con un EXPLAIN gr\u00e1fico)<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Editor de c\u00f3digo procedural<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Agente de planificaci\u00f3n SQL\/shell\/batch<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Administraci\u00f3n de Slony-I<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">pgAdmin se dise\u00f1a para responder a las necesidades de la mayor\u00eda de los usuarios, desde escribir simples consultas SQL hasta desarrollar bases de datos complejas.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">La interfaz gr\u00e1fica soporta todas las caracter\u00edsticas de PostgreSQL y hace simple la administraci\u00f3n. Est\u00e1 disponible en m\u00e1s de una docena de lenguajes y para varios sistemas operativos, incluyendo Microsoft Windows , Linux, FreeBSD, Mac OSX y Solaris.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Instalar los paquetes PostgreSQL 9.5, PostGIS 2.2 y pgAdmin3<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Para hacer la instalaci\u00f3n vamos a usar el repositorio apt de PostgreSQL para contar con las versiones m\u00e1s recientes de los paquetes necesarios para instalar PostGIS, adem\u00e1s de PostgreSQL y PgAdmin3.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Antes de comenzar, debemos comprobar la versi\u00f3n del sistema operativo que estamos utilizando, para ello vamos a un terminal root y ejecutamos el siguiente comando:<\/span><\/p>\n<pre class=\"lang:default decode:true \">lsb_release -a<\/pre>\n<p><span style=\"font-weight: 400;\">Esta es la salida de mi sistema operativo<\/span><\/p>\n<pre class=\"lang:default decode:true \">No LSB modules are available.\r\nDistributor ID: Debian\r\nDescription: Debian GNU\/Linux 7.9 (wheezy)\r\nRelease: 7.9\r\nCodename: wheezy<\/pre>\n<p><span style=\"font-weight: 400;\">El <\/span><b>\u201cCodename\u201d <\/b><span style=\"font-weight: 400;\">es el nombre de la distribuci\u00f3n de linux donde estamos haciendo la instalaci\u00f3n, en nuestro caso \u00a0es <\/span><b>\u201cwheezy\u201d<\/b><span style=\"font-weight: 400;\"> el cual vamos a usar en el siguiente comando<\/span><\/p>\n<pre class=\"lang:default decode:true \">sh -c 'echo \"deb http:\/\/apt.postgresql.org\/pub\/repos\/apt wheezy-pgdg main\" &gt;&gt; \/etc\/apt\/sources.list'<\/pre>\n<p><span style=\"font-weight: 400;\">El comando anterior agrego una entrada en nuestro archivo \u201csources.list\u201d puedes comprobar r\u00e1pidamente con el comando cat<\/span><\/p>\n<pre class=\"lang:default decode:true \">cat \/etc\/apt\/sources.list<\/pre>\n<p><span style=\"font-weight: 400;\">Necesitamos importa la clave del repositorio, lo vamos a hacer con el siguiente comando:<\/span><\/p>\n<pre class=\"lang:default decode:true \">wget --quiet -O - http:\/\/apt.postgresql.org\/pub\/repos\/apt\/ACCC4CF8.asc | \u00a0apt-key add -<\/pre>\n<p><span style=\"font-weight: 400;\">Actualizamos la lista de paquetes con el comando \u201cupdate\u201d de aplicaci\u00f3n \u201capt\u201d:<\/span><\/p>\n<pre class=\"lang:default decode:true \">apt-get update<\/pre>\n<p><span style=\"font-weight: 400;\">Luego de tener configurado el repositorio apt de postgresql podemos hacer la instalaci\u00f3n de los paquetes necesarios via apt<\/span><\/p>\n<pre class=\"lang:default decode:true \">apt-get install postgresql-9.5 postgresql-contrib-9.5 postgis postgresql-9.5-postgis-2.2 pgadmin3<\/pre>\n<p><span style=\"font-weight: 400;\">Adicional mente podemos instalar la extensi\u00f3n pgRouting por si es necesaria m\u00e1s adelante en nuestro proyecto.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">pgRouting es una extensi\u00f3n que a\u00f1ade enrutamiento y funcionalidad de an\u00e1lisis de redes a las bases de datos PostGIS\/PostgreSQL. Es un proyecto de OSGeo Labs de la Fundaci\u00f3n OSGeo y est\u00e1 incluido en OSGeo Live.<\/span><\/p>\n<pre class=\"lang:default decode:true \">apt-get install postgresql-9.5-pgrouting<\/pre>\n<h2><span style=\"font-weight: 400;\">Configuraci\u00f3n inicial de nuestro postgresql 9.5<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Antes debemos saber c\u00f3mo ubicar los archivos de configuraci\u00f3n de nuestra instalaci\u00f3n de \u00a0postgresql, lo vamos a hacer desde una consola root y con la ayuda del cliente psql.<\/span><\/p>\n<pre class=\"lang:default decode:true\">su postgres\r\npsql\r\nSELECT name, setting FROM pg_settings where category='File Locations';\r\n\\q<\/pre>\n<p>Esta es la salida del SQL anterior<\/p>\n<pre class=\"lang:default decode:true \">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0name \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0| \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0setting \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n-------------------+------------------------------------------\r\nconfig_file \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0| \/etc\/postgresql\/9.5\/main\/postgresql.conf\r\ndata_directory \u00a0\u00a0\u00a0| \/var\/lib\/postgresql\/9.5\/main\r\nexternal_pid_file | \/var\/run\/postgresql\/9.5-main.pid\r\nhba_file \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0| \/etc\/postgresql\/9.5\/main\/pg_hba.conf\r\nident_file \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0| \/etc\/postgresql\/9.5\/main\/pg_ident.conf<\/pre>\n<p>Ahora vamos a permitir el acceso remoto a nuestros usuarios para que puedan conectarse a la la base de datos utilizando el cliente pgAdmin3<\/p>\n<p><span style=\"font-weight: 400;\">Con el comando nano, en una consola root editamos el archivo pg_hba.conf<\/span><\/p>\n<pre class=\"lang:default decode:true \">nano \/etc\/postgresql\/9.5\/main\/pg_hba.conf<\/pre>\n<p><span style=\"font-weight: 400;\">Agregamos la siguiente l\u00ednea al final del archivo, esta nos va a permitir conectarnos desde cualquier ip usando contrase\u00f1a bajo el protocolo SSL:<\/span><\/p>\n<pre class=\"lang:default decode:true \">hostssl \u00a0\u00a0\u00a0all \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0all \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00.0.0.0\/0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0md5<\/pre>\n<p><span style=\"font-weight: 400;\">NOTA: En nano tenemos que ejecutar CTRL-O seguido de &lt;ENTER&gt; para guardar los cambios y luego CTRL-X para salir del archivo.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Luego vamos a editar el archivo \u00a0postgresql.conf<\/span><\/p>\n<pre class=\"lang:default decode:true \">nano \/etc\/postgresql\/9.5\/main\/postgresql.conf<\/pre>\n<p><span style=\"font-weight: 400;\">Buscamos la directiva \u00ablisten_addresses\u00bb y la descomentamos (Quitar en numeral #) \u00a0luego cambiamos &#8216;localhost&#8217; por &#8216;*&#8217; esto va habilitar las conexiones remotas al servidor.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Reiniciamos el servicio de postgres para que tome el cambio<\/span><\/p>\n<pre class=\"lang:default decode:true \">service postgresql restart<\/pre>\n<p><b>NOTA:<\/b><span style=\"font-weight: 400;\"> Se puede ejecutar actualizar los cambios en el archivo de configuraci\u00f3n sin bajar el servicio con el siguiente comando:<\/span><\/p>\n<pre class=\"lang:default decode:true \">su postgres\r\npsql\r\nSELECT pg_reload_conf();\r\n\\q<\/pre>\n<p><span style=\"font-weight: 400;\">Verificar que el servicio est\u00e9 arriba y escuchando por el puerto 5432<\/span><\/p>\n<pre class=\"lang:default decode:true \">netstat -aptun | grep postgres<\/pre>\n<p>Ejemplo de la salida del comando anterior:<\/p>\n<pre class=\"lang:default decode:true \">tcp \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00 \u00a0\u00a0\u00a0\u00a0\u00a00 0.0.0.0:5432 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00.0.0.0:* \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LISTEN \u00a0\u00a0\u00a0\u00a0\u00a08206\/postgres \u00a0\u00a0\r\ntcp6 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a00 \u00a0\u00a0\u00a0\u00a0\u00a00 :::5432 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:::* \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LISTEN \u00a0\u00a0\u00a0\u00a0\u00a08206\/postgres \u00a0\u00a0\r\nudp6 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a00 \u00a0\u00a0\u00a0\u00a0\u00a00 ::1:60503 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0::1:60503 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ESTABLISHED 8206\/postgres<\/pre>\n<p><span style=\"font-weight: 400;\">Por seguridad la contrase\u00f1a del usuario postgresql no viene asignada, podemos asignarle una clave compleja y luego crear un usuario de administraci\u00f3n el cual vamos a utilizar siempre.<\/span><\/p>\n<pre class=\"lang:default decode:true \">su postgres\r\npsql\r\nalter user postgres with password 'Es$UNAc1av3D1fic!P0rS3gur1d4D#';\r\n\\q<\/pre>\n<p>Crear un nuevo usuario para utilizarlo desde PgAdmin3<\/p>\n<p><span style=\"font-weight: 400;\">Vamos a crear el usuario para hacer las conexiones al servidor de base de datos, es muy recomendado no usar el usuario postgres para hacer el trabajo diario sobre la base de datos.<\/span><\/p>\n<pre class=\"lang:default decode:true \">su postgres\r\ncreateuser -d -E -i -l -P -r -s geoserver\r\nexit<\/pre>\n<h2>Crear la plantilla de base de datos \u00abtemplate_postgis\u00bb<\/h2>\n<p><span style=\"font-weight: 400;\">La plantilla \u00abtemplate_postgis\u00bb va a contener todas las funcionalidades de postgis la cual usaremos para crear nuestras base de datos espaciales.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Para esto debemos entrar en una consola de root y ejecutar lo siguiente:<\/span><\/p>\n<pre class=\"lang:default decode:true \">su postgres\r\ncreatedb template_postgis \u00a0-T template0\r\npsql template_postgis\r\nCREATE EXTENSION postgis;\r\nCREATE EXTENSION postgis_topology;\r\nCREATE EXTENSION fuzzystrmatch;\r\nCREATE EXTENSION postgis_tiger_geocoder;\r\nCREATE EXTENSION pgrouting;\r\nCREATE EXTENSION adminpack;\r\n\\q\r\nexit<\/pre>\n<h2><span style=\"font-weight: 400;\">Configurar el PgAdmin3 para iniciar sesi\u00f3n en nuestra base de datos espacial<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Vamos a iniciar nuestro pgAdmin3 para ello vamos al men\u00fa de Programaci\u00f3n y seleccionamos pgAdmin III<\/span><\/p>\n<p><a href=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso1.png\" rel=\"attachment wp-att-303\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-303 size-full\" src=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso1.png\" alt=\"PgAdmin3 Paso1\" width=\"622\" height=\"340\" srcset=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso1.png 622w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso1-300x164.png 300w\" sizes=\"auto, (max-width: 622px) 100vw, 622px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Una vez iniciado nos mostrar\u00e1 la pantalla de inicio de pgAdmin3 ahora vamos a crear una nueva conexi\u00f3n para poder tener acceso al servidor de base de datos instalado.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso3.png\" rel=\"attachment wp-att-305\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-305 size-full\" src=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso3.png\" alt=\"PgAdmin3 Paso3\" width=\"754\" height=\"590\" srcset=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso3.png 754w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso3-300x235.png 300w\" sizes=\"auto, (max-width: 754px) 100vw, 754px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Seleccionamos la opci\u00f3n \u201cAdd a connection to a server\u201d y nos aparece la siguiente pantalla:<\/span><\/p>\n<p><a href=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso4.png\" rel=\"attachment wp-att-306\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-306 size-full\" src=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso4.png\" alt=\"PgAdmin3 Paso4\" width=\"600\" height=\"699\" srcset=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso4.png 600w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso4-258x300.png 258w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">Aqu\u00ed configuramos nuestra conexi\u00f3n, en nuestro caso estoy usando localhost y el usuario geoserver creado anteriormente.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Ahora vamos a crear una base de datos espacial, hacemos clic derecho sobre Databases y seleccionamos New Database<\/span><\/p>\n<p><a href=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso5.png\" rel=\"attachment wp-att-307\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-307 size-full\" src=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso5.png\" alt=\"PgAdmin3 Paso5\" width=\"540\" height=\"420\" srcset=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso5.png 540w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso5-300x233.png 300w\" sizes=\"auto, (max-width: 540px) 100vw, 540px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">En la pesta\u00f1a \u201cProperties\u201d colocamos el nombre de \u00a0nuestra base de datos en nuestro caso se debe llamar mexico_city y el due\u00f1o le asignamos geoserver.<\/span><\/p>\n<p><a href=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso6.png\" rel=\"attachment wp-att-308\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-308 size-full\" src=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso6.png\" alt=\"PgAdmin3 Paso6\" width=\"601\" height=\"711\" srcset=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso6.png 601w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso6-254x300.png 254w\" sizes=\"auto, (max-width: 601px) 100vw, 601px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">En la pesta\u00f1a \u201cDefinition\u201d colamos el encoding UTF-8 y el template creado previamente \u201ctemplate_postgis\u201d<\/span><\/p>\n<p><a href=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso7.png\" rel=\"attachment wp-att-309\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-309 size-full\" src=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso7.png\" alt=\"PgAdmin3 Paso7\" width=\"601\" height=\"712\" srcset=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso7.png 601w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso7-253x300.png 253w\" sizes=\"auto, (max-width: 601px) 100vw, 601px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Enhorabuena ya hemos creado nuestra primera base de datos espacial, para comprobar verificamos que se crearon las extensiones y los esquemas que se heredaron de nuestro \u201ctemplate_postgis\u201d<\/span><\/p>\n<p><a href=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso8.png\" rel=\"attachment wp-att-310\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-310 size-full\" src=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso8.png\" alt=\"PgAdmin3 Paso8\" width=\"625\" height=\"663\" srcset=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso8.png 625w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/PgAdmin3-Paso8-283x300.png 283w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-weight: 400;\">Importar los archivos shape utilizando la herramienta shp2pgsql-gui <\/span><\/h2>\n<p><span style=\"font-weight: 400;\">En nuestra instalaci\u00f3n de PostGis contiene algunos comando \u00fatiles para importar archivos, en nuestro caso vamos a usar la herramienta shp2pgsql-gui. Que nos permitir\u00e1 conectarse r\u00e1pidamente a su nueva base de datos PostGIS e importar un archivo shape.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">En una terminal ejecutamos el siguiente comando::<\/span><\/p>\n<pre class=\"lang:default decode:true \">shp2pgsql-gui<\/pre>\n<p><span style=\"font-weight: 400;\">Esta nos va a mostrar la pantalla de inicio de herramienta para importar y exportar archivos shape.<\/span><\/p>\n<p><a href=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso1.png\" rel=\"attachment wp-att-311\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-311 size-full\" src=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso1.png\" alt=\"shp2pgsql-gui Paso1\" width=\"507\" height=\"684\" srcset=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso1.png 507w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso1-222x300.png 222w\" sizes=\"auto, (max-width: 507px) 100vw, 507px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Ahora vamos a crear una nueva conexi\u00f3n a la base de datos creada previamente \u201cmexico_city\u201d haciendo clic en el bot\u00f3n \u201cView connection details\u2026\u201d<\/span><\/p>\n<p><a href=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso2.png\" rel=\"attachment wp-att-312\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-312 size-full\" src=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso2.png\" alt=\"shp2pgsql-gui Paso2\" width=\"412\" height=\"311\" srcset=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso2.png 412w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso2-300x226.png 300w\" sizes=\"auto, (max-width: 412px) 100vw, 412px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Ahora vamos a agregar nuestros archivos shp, para ello hacemos clic en el bot\u00f3n Add File<\/span><\/p>\n<p><a href=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso3.png\" rel=\"attachment wp-att-313\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-313 size-full\" src=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso3.png\" alt=\"shp2pgsql-gui Paso3\" width=\"506\" height=\"686\" srcset=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso3.png 506w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso3-221x300.png 221w\" sizes=\"auto, (max-width: 506px) 100vw, 506px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">En este ejemplo voy\u00a0a utilizar una\u00a0cartograf\u00eda base que tengo de la Ciudad de Mexico seleccionando los archivos <\/span><i><span style=\"font-weight: 400;\">mexico-city_mexico_osm_line.shp<\/span><\/i><span style=\"font-weight: 400;\">, <\/span><i><span style=\"font-weight: 400;\">mexico-city_mexico_osm_point.shp <\/span><\/i><span style=\"font-weight: 400;\">y <\/span><i><span style=\"font-weight: 400;\">mexico-city_mexico_osm_polygon.shp<\/span><\/i><\/p>\n<p><a href=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso5.png\" rel=\"attachment wp-att-315\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-315 size-full\" src=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso5.png\" alt=\"shp2pgsql-gui Paso5\" width=\"841\" height=\"648\" srcset=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso5.png 841w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso5-300x231.png 300w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso5-768x592.png 768w\" sizes=\"auto, (max-width: 841px) 100vw, 841px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Luego de seleccionados los archivos procedemos a configurar los nombres de las tablas as\u00ed como colocamos el SRID en 4326<\/span><\/p>\n<p><a href=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso6.png\" rel=\"attachment wp-att-316\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-316 size-full\" src=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso6.png\" alt=\"shp2pgsql-gui Paso6\" width=\"1022\" height=\"683\" srcset=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso6.png 1022w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso6-300x200.png 300w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso6-768x513.png 768w\" sizes=\"auto, (max-width: 1022px) 100vw, 1022px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">En el bot\u00f3n Options\u2026 indicamos que el encoding de nuestros DBF es LATIN1<\/span><\/p>\n<p><a href=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso7.png\" rel=\"attachment wp-att-317\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-317 size-full\" src=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso7.png\" alt=\"shp2pgsql-gui Paso7\" width=\"602\" height=\"374\" srcset=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso7.png 602w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso7-300x186.png 300w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Ahora importamos los datos a nuestra base de datos haciendo clic en el bot\u00f3n Import&#8230;<\/span><\/p>\n<p><a href=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso8.png\" rel=\"attachment wp-att-318\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-318 size-full\" src=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso8.png\" alt=\"shp2pgsql-gui Paso8\" width=\"549\" height=\"146\" srcset=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso8.png 549w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso8-300x80.png 300w\" sizes=\"auto, (max-width: 549px) 100vw, 549px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Podemos comprobar que el comando se ejecuto correctamente viendo la salida de Log Window.<\/span><\/p>\n<p><a href=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso9.png\" rel=\"attachment wp-att-319\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-319 size-full\" src=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso9.png\" alt=\"shp2pgsql-gui Paso9\" width=\"1020\" height=\"206\" srcset=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso9.png 1020w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso9-300x61.png 300w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso9-768x155.png 768w\" sizes=\"auto, (max-width: 1020px) 100vw, 1020px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Tambi\u00e9n podemos ver nuestras nuevas tablas en la base de datos mexico_city.<\/span><\/p>\n<p><a href=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso10.png\" rel=\"attachment wp-att-320\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-320 size-full\" src=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso10.png\" alt=\"shp2pgsql-gui Paso10\" width=\"433\" height=\"709\" srcset=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso10.png 433w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/shp2pgsql-gui-Paso10-183x300.png 183w\" sizes=\"auto, (max-width: 433px) 100vw, 433px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-weight: 400;\">Optimizaci\u00f3n del Servidor PostgreSQL para producci\u00f3n.<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Vamos a modificar la configuraci\u00f3n por defecto de nuestro servidor PostgreSQL, por defecto viene con una configuraci\u00f3n dise\u00f1ada para \u201ctrabajar en todas partes\u201d.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Este peque\u00f1o tuning de postgreSQL nos va a servir para manejar los altos vol\u00famenes de data que requiere un sistema de informaci\u00f3n geogr\u00e1fico.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Las modificaciones del tuning de PostgreSQL que realizaremos ser\u00e1n efectuadas en el archivo \u201cpostgresql.conf\u201d<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Para comenzar debemos hacer un respaldo de la configuraci\u00f3n actual:<\/span><\/p>\n<pre class=\"lang:default decode:true \">cd \/etc\/postgresql\/9.5\/main\/\r\ncp postgresql.conf{,.bak}<\/pre>\n<p><span style=\"font-weight: 400;\">Editamos el archivo con el comando nano<\/span><\/p>\n<pre class=\"lang:default decode:true \">nano postgresql.conf<\/pre>\n<p><span style=\"font-weight: 400;\">Las caracter\u00edsticas que vamos a modificar son las siguientes: shared_buffers, work_mem, effective_cache_size, maintenance_work_mem<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">shared_buffers<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">La edici\u00f3n de esta opci\u00f3n es la forma m\u00e1s sencilla de mejorar el rendimiento del servidor de base de datos, de hecho por defecto el valor es bastante bajo para un entorno de producci\u00f3n. Por lo que siguiendo las recomendaciones de la comunidad de los expertos, estableceremos en Mb el <\/span><i><span style=\"font-weight: 400;\">shared_buffer<\/span><\/i><span style=\"font-weight: 400;\"> a un 25% de la memoria RAM disponible en el sistema.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">NOTA: Podemos usar el comando \u00abfree\u00bb o \u00abcat \/proc\/meminfo | grep MemTotal\u00bb para saber la memoria total del sistema operativo<\/span><\/p>\n<p><span style=\"font-weight: 400;\">shared_buffer = Memoria RAM Disponible * 0.25<\/span><\/p>\n<p><span style=\"font-weight: 400;\">NOTA: cambiar \u201cMemoria RAM disponible * 0.25\u201d por el resultado de dicha multiplicaci\u00f3n.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">NOTA 2: Hay par\u00e1metros del kernel que necesitan ser ajustados para permitir grandes valores de shared_buffers, ya que \u00e9l mismo pone l\u00edmites a la cantidad de memoria compartida se puede asignar (para evitar accidentes). Estos ser\u00edan los c\u00e1lculos que tendr\u00edamos que efectuar para la asignaci\u00f3n en bytes de los par\u00e1metros a continuaci\u00f3n:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">kernel.shmmax = shared_buffer * 1024 * 1024<\/span><\/p>\n<p><span style=\"font-weight: 400;\">kernel.shmall = kernel.shmmax \/ 4096<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Una vez realizados los c\u00e1lculos procedemos a editar el archivo \/etc\/sysctl.conf y podemos aplicar los cambios ya sea reiniciando el servidor o mediante el siguiente comando:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">sysctl -p<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">work_mem<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Esta opci\u00f3n se utiliza para controlar la cantidad de memoria utilizada en operaciones de ordenaci\u00f3n y tablas hash. Esto no es un par\u00e1metro de todo el sistema, se refiere a los recursos utilizados por una operaci\u00f3n. As\u00ed que si una consulta compleja tiene varias operaciones de ordenaci\u00f3n entonces esta utilizar\u00e1 m\u00faltiples unidades \u201cwork_mem\u201d.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">El valor a asignar al work_mem podremos calcularlo de la siguiente manera:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">work_mem = Memoria RAM Disponible * 0.15<\/span><\/p>\n<p><span style=\"font-weight: 400;\">effective_cache_size<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Este valor indica a PostgreSQL cu\u00e1nta memoria tiene disponible para los datos de almacenamiento en cach\u00e9 y ayuda en determinar si es o no viable utilizar un \u00edndice. Entonces se debe establecer la cantidad de memoria asignada a \u201cshared_buffers\u201d m\u00e1s la cantidad de cach\u00e9 de sistema operativo disponible. A menudo esto es m\u00e1s que 50% de la memoria total del sistema.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Podremos calcular el valor mediante la siguiente f\u00f3rmula:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">effective_cache_size = \u00a0Memoria RAM Disponible * 0.75 <\/span><\/p>\n<h3><span style=\"font-weight: 400;\">maintenance_work_mem<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Como su nombre lo indica, este es el equivalente de \u201cwork_mem\u201d, pero para consultas de tipo \u201cmantenimiento\u201d (VAC\u00cdO, CREATE INDEX, entre otras).<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dado que estas consultas no se ejecutan con mucha frecuencia, se recomienda la ejecuci\u00f3n de las mismas cuando el servidor presente una carga baja, ya que por lo general estas tareas de mantenimiento necesitan bastante tiempo para ejecutarse.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Asignar un buen valor a este par\u00e1metro te ayudar\u00e1 a garantizar que las consultas de mantenimiento terminen tan r\u00e1pido como sea posible.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Calcular el valor del par\u00e1metro de la siguiente manera:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">effective_cache_size = \u00a0Memoria RAM Disponible \/ 8<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Se puede conseguir mas informaci\u00f3n de tuning a traves de la wiki oficial de postgresql<\/span><\/p>\n<p><a href=\"https:\/\/wiki.postgresql.org\/wiki\/Tuning_Your_PostgreSQL_Server\/es\"><span style=\"font-weight: 400;\">https:\/\/wiki.postgresql.org\/wiki\/Tuning_Your_PostgreSQL_Server\/es<\/span><\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En esta entrada les quiero ense\u00f1ar lo que necesitan para trabajar\u00a0bases de datos geom\u00e9tricas\u00a0en software libre, instalando las siguientes herramientas\u00a0postgresql 9.5, postgis 2.2 y PgAdmin3 en Debian,\u00a0ademas\u00a0vamos a importar\u00a0nuestros archivos shape con la herramienta\u00a0shp2pgsql-gui. Y al finalizar les ense\u00f1are a optimizar algunos par\u00e1metros del Postgresql para obtener un mejor rendimiento de nuestra base de datos.<\/p>\n","protected":false},"author":1,"featured_media":298,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35,14,34,16,39],"tags":[38,36,17,37,40],"class_list":["post-295","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pgadmin3","category-pgsql","category-postgis","category-postgresql","category-shp2pgsql","tag-pgadmin3","tag-postgis","tag-postgresql","tag-psql","tag-shp2pgsql"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Instalar la \u00faltima versi\u00f3n de Postgis 2.2 en Debian - El Blog de Jose Luis Estevez<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.joseluisestevez.com\/index.php\/2016\/02\/02\/instalar-la-ultima-version-de-postgis-2-2-en-debian\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Instalar la \u00faltima versi\u00f3n de Postgis 2.2 en Debian - El Blog de Jose Luis Estevez\" \/>\n<meta property=\"og:description\" content=\"En esta entrada les quiero ense\u00f1ar lo que necesitan para trabajar\u00a0bases de datos geom\u00e9tricas\u00a0en software libre, instalando las siguientes herramientas\u00a0postgresql 9.5, postgis 2.2 y PgAdmin3 en Debian,\u00a0ademas\u00a0vamos a importar\u00a0nuestros archivos shape con la herramienta\u00a0shp2pgsql-gui. Y al finalizar les ense\u00f1are a optimizar algunos par\u00e1metros del Postgresql para obtener un mejor rendimiento de nuestra base de datos.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.joseluisestevez.com\/index.php\/2016\/02\/02\/instalar-la-ultima-version-de-postgis-2-2-en-debian\/\" \/>\n<meta property=\"og:site_name\" content=\"El Blog de Jose Luis Estevez\" \/>\n<meta property=\"article:published_time\" content=\"2016-02-02T04:25:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-02-01T11:26:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/logo-postgis9.png\" \/>\n\t<meta property=\"og:image:width\" content=\"299\" \/>\n\t<meta property=\"og:image:height\" content=\"439\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"yeyo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"yeyo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2016\\\/02\\\/02\\\/instalar-la-ultima-version-de-postgis-2-2-en-debian\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2016\\\/02\\\/02\\\/instalar-la-ultima-version-de-postgis-2-2-en-debian\\\/\"},\"author\":{\"name\":\"yeyo\",\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/#\\\/schema\\\/person\\\/6a17b38fcac664fdb33a5fba8056d0ee\"},\"headline\":\"Instalar la \u00faltima versi\u00f3n de Postgis 2.2 en Debian\",\"datePublished\":\"2016-02-02T04:25:10+00:00\",\"dateModified\":\"2017-02-01T11:26:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2016\\\/02\\\/02\\\/instalar-la-ultima-version-de-postgis-2-2-en-debian\\\/\"},\"wordCount\":2299,\"image\":{\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2016\\\/02\\\/02\\\/instalar-la-ultima-version-de-postgis-2-2-en-debian\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.joseluisestevez.com\\\/wp-content\\\/uploads\\\/2016\\\/02\\\/logo-postgis9.png\",\"keywords\":[\"PgAdmin3\",\"Postgis\",\"Postgresql\",\"Psql\",\"shp2pgsql\"],\"articleSection\":[\"PgAdmin3\",\"PgSql\",\"Postgis\",\"Postgresql\",\"shp2pgsql\"],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2016\\\/02\\\/02\\\/instalar-la-ultima-version-de-postgis-2-2-en-debian\\\/\",\"url\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2016\\\/02\\\/02\\\/instalar-la-ultima-version-de-postgis-2-2-en-debian\\\/\",\"name\":\"Instalar la \u00faltima versi\u00f3n de Postgis 2.2 en Debian - El Blog de Jose Luis Estevez\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2016\\\/02\\\/02\\\/instalar-la-ultima-version-de-postgis-2-2-en-debian\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2016\\\/02\\\/02\\\/instalar-la-ultima-version-de-postgis-2-2-en-debian\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.joseluisestevez.com\\\/wp-content\\\/uploads\\\/2016\\\/02\\\/logo-postgis9.png\",\"datePublished\":\"2016-02-02T04:25:10+00:00\",\"dateModified\":\"2017-02-01T11:26:51+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/#\\\/schema\\\/person\\\/6a17b38fcac664fdb33a5fba8056d0ee\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2016\\\/02\\\/02\\\/instalar-la-ultima-version-de-postgis-2-2-en-debian\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2016\\\/02\\\/02\\\/instalar-la-ultima-version-de-postgis-2-2-en-debian\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2016\\\/02\\\/02\\\/instalar-la-ultima-version-de-postgis-2-2-en-debian\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.joseluisestevez.com\\\/wp-content\\\/uploads\\\/2016\\\/02\\\/logo-postgis9.png\",\"contentUrl\":\"https:\\\/\\\/www.joseluisestevez.com\\\/wp-content\\\/uploads\\\/2016\\\/02\\\/logo-postgis9.png\",\"width\":299,\"height\":439},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2016\\\/02\\\/02\\\/instalar-la-ultima-version-de-postgis-2-2-en-debian\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/www.joseluisestevez.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Instalar la \u00faltima versi\u00f3n de Postgis 2.2 en Debian\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/#website\",\"url\":\"https:\\\/\\\/www.joseluisestevez.com\\\/\",\"name\":\"El Blog de Jose Luis Estevez\",\"description\":\"Desarrollador Senior\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.joseluisestevez.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/#\\\/schema\\\/person\\\/6a17b38fcac664fdb33a5fba8056d0ee\",\"name\":\"yeyo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3565e9dac43d5a8d2b807866a3af3ab66eeacb68b2d28fc63b962ad40c6ef4c7?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3565e9dac43d5a8d2b807866a3af3ab66eeacb68b2d28fc63b962ad40c6ef4c7?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3565e9dac43d5a8d2b807866a3af3ab66eeacb68b2d28fc63b962ad40c6ef4c7?s=96&d=mm&r=g\",\"caption\":\"yeyo\"},\"description\":\"Arquitecto de Software emprendedor con ardua experiencia en el camino de la tecnolog\u00eda.\",\"sameAs\":[\"http:\\\/\\\/www.joseluisestevez.com\"],\"url\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/author\\\/yeyo\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Instalar la \u00faltima versi\u00f3n de Postgis 2.2 en Debian - El Blog de Jose Luis Estevez","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.joseluisestevez.com\/index.php\/2016\/02\/02\/instalar-la-ultima-version-de-postgis-2-2-en-debian\/","og_locale":"es_ES","og_type":"article","og_title":"Instalar la \u00faltima versi\u00f3n de Postgis 2.2 en Debian - El Blog de Jose Luis Estevez","og_description":"En esta entrada les quiero ense\u00f1ar lo que necesitan para trabajar\u00a0bases de datos geom\u00e9tricas\u00a0en software libre, instalando las siguientes herramientas\u00a0postgresql 9.5, postgis 2.2 y PgAdmin3 en Debian,\u00a0ademas\u00a0vamos a importar\u00a0nuestros archivos shape con la herramienta\u00a0shp2pgsql-gui. Y al finalizar les ense\u00f1are a optimizar algunos par\u00e1metros del Postgresql para obtener un mejor rendimiento de nuestra base de datos.","og_url":"https:\/\/www.joseluisestevez.com\/index.php\/2016\/02\/02\/instalar-la-ultima-version-de-postgis-2-2-en-debian\/","og_site_name":"El Blog de Jose Luis Estevez","article_published_time":"2016-02-02T04:25:10+00:00","article_modified_time":"2017-02-01T11:26:51+00:00","og_image":[{"width":299,"height":439,"url":"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/logo-postgis9.png","type":"image\/png"}],"author":"yeyo","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"yeyo","Tiempo de lectura":"13 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.joseluisestevez.com\/index.php\/2016\/02\/02\/instalar-la-ultima-version-de-postgis-2-2-en-debian\/#article","isPartOf":{"@id":"https:\/\/www.joseluisestevez.com\/index.php\/2016\/02\/02\/instalar-la-ultima-version-de-postgis-2-2-en-debian\/"},"author":{"name":"yeyo","@id":"https:\/\/www.joseluisestevez.com\/#\/schema\/person\/6a17b38fcac664fdb33a5fba8056d0ee"},"headline":"Instalar la \u00faltima versi\u00f3n de Postgis 2.2 en Debian","datePublished":"2016-02-02T04:25:10+00:00","dateModified":"2017-02-01T11:26:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.joseluisestevez.com\/index.php\/2016\/02\/02\/instalar-la-ultima-version-de-postgis-2-2-en-debian\/"},"wordCount":2299,"image":{"@id":"https:\/\/www.joseluisestevez.com\/index.php\/2016\/02\/02\/instalar-la-ultima-version-de-postgis-2-2-en-debian\/#primaryimage"},"thumbnailUrl":"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/logo-postgis9.png","keywords":["PgAdmin3","Postgis","Postgresql","Psql","shp2pgsql"],"articleSection":["PgAdmin3","PgSql","Postgis","Postgresql","shp2pgsql"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/www.joseluisestevez.com\/index.php\/2016\/02\/02\/instalar-la-ultima-version-de-postgis-2-2-en-debian\/","url":"https:\/\/www.joseluisestevez.com\/index.php\/2016\/02\/02\/instalar-la-ultima-version-de-postgis-2-2-en-debian\/","name":"Instalar la \u00faltima versi\u00f3n de Postgis 2.2 en Debian - El Blog de Jose Luis Estevez","isPartOf":{"@id":"https:\/\/www.joseluisestevez.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.joseluisestevez.com\/index.php\/2016\/02\/02\/instalar-la-ultima-version-de-postgis-2-2-en-debian\/#primaryimage"},"image":{"@id":"https:\/\/www.joseluisestevez.com\/index.php\/2016\/02\/02\/instalar-la-ultima-version-de-postgis-2-2-en-debian\/#primaryimage"},"thumbnailUrl":"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/logo-postgis9.png","datePublished":"2016-02-02T04:25:10+00:00","dateModified":"2017-02-01T11:26:51+00:00","author":{"@id":"https:\/\/www.joseluisestevez.com\/#\/schema\/person\/6a17b38fcac664fdb33a5fba8056d0ee"},"breadcrumb":{"@id":"https:\/\/www.joseluisestevez.com\/index.php\/2016\/02\/02\/instalar-la-ultima-version-de-postgis-2-2-en-debian\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.joseluisestevez.com\/index.php\/2016\/02\/02\/instalar-la-ultima-version-de-postgis-2-2-en-debian\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.joseluisestevez.com\/index.php\/2016\/02\/02\/instalar-la-ultima-version-de-postgis-2-2-en-debian\/#primaryimage","url":"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/logo-postgis9.png","contentUrl":"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2016\/02\/logo-postgis9.png","width":299,"height":439},{"@type":"BreadcrumbList","@id":"https:\/\/www.joseluisestevez.com\/index.php\/2016\/02\/02\/instalar-la-ultima-version-de-postgis-2-2-en-debian\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.joseluisestevez.com\/"},{"@type":"ListItem","position":2,"name":"Instalar la \u00faltima versi\u00f3n de Postgis 2.2 en Debian"}]},{"@type":"WebSite","@id":"https:\/\/www.joseluisestevez.com\/#website","url":"https:\/\/www.joseluisestevez.com\/","name":"El Blog de Jose Luis Estevez","description":"Desarrollador Senior","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.joseluisestevez.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.joseluisestevez.com\/#\/schema\/person\/6a17b38fcac664fdb33a5fba8056d0ee","name":"yeyo","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/3565e9dac43d5a8d2b807866a3af3ab66eeacb68b2d28fc63b962ad40c6ef4c7?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3565e9dac43d5a8d2b807866a3af3ab66eeacb68b2d28fc63b962ad40c6ef4c7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3565e9dac43d5a8d2b807866a3af3ab66eeacb68b2d28fc63b962ad40c6ef4c7?s=96&d=mm&r=g","caption":"yeyo"},"description":"Arquitecto de Software emprendedor con ardua experiencia en el camino de la tecnolog\u00eda.","sameAs":["http:\/\/www.joseluisestevez.com"],"url":"https:\/\/www.joseluisestevez.com\/index.php\/author\/yeyo\/"}]}},"_links":{"self":[{"href":"https:\/\/www.joseluisestevez.com\/index.php\/wp-json\/wp\/v2\/posts\/295","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.joseluisestevez.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.joseluisestevez.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.joseluisestevez.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.joseluisestevez.com\/index.php\/wp-json\/wp\/v2\/comments?post=295"}],"version-history":[{"count":6,"href":"https:\/\/www.joseluisestevez.com\/index.php\/wp-json\/wp\/v2\/posts\/295\/revisions"}],"predecessor-version":[{"id":323,"href":"https:\/\/www.joseluisestevez.com\/index.php\/wp-json\/wp\/v2\/posts\/295\/revisions\/323"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.joseluisestevez.com\/index.php\/wp-json\/wp\/v2\/media\/298"}],"wp:attachment":[{"href":"https:\/\/www.joseluisestevez.com\/index.php\/wp-json\/wp\/v2\/media?parent=295"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.joseluisestevez.com\/index.php\/wp-json\/wp\/v2\/categories?post=295"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.joseluisestevez.com\/index.php\/wp-json\/wp\/v2\/tags?post=295"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}