




























































































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
nuevo programa para investigacion nuevo programa para investigacion nuevo programa para investigacion nuevo programa para investigacion nuevo programa para investigacion nuevo programa para investigacionnuevo programa para investigacion nuevo programa para investigacion nuevo programa para investigacion nuevo programa para investigacion nuevo programa para investigacion nuevo programa para investigacion nuevo programa para investigacionnuevo programa para investigacion nuevo programa para invest
Tipo: Guías, Proyectos, Investigaciones
1 / 213
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!





























































































PostgreSQL
El administrador de las bases de datos, el técnico del sistema operativo y el desarrollador, encontrarán en este libro la información imprescindible para explotar de la mejor manera posible, todas las posibilidades de PostgreSQL (en su versión 10, en el momento de escribir este libro). Los primeros capítulos del libro cubren la instalación de PostgreSQL en Windows y GNU/Linux, así como la preparación del entorno de ejecución del servidor. A continuación, el autor presenta las aplicaciones cliente que se pueden utilizar, los diferentes argumentos de seguridad y los diferentes aspectos de PostgreSQL relativos al soporte del lenguaje SQL. Los capítulos posteriores introducen la programación en PostgreSQL y detallan la administración y explotación (de la configuración del servidor para las diferentes tareas de explotación, pasando por las copias de seguridad). Un capítulo presenta las herramientas adicionales que enriquecen la utilización de PostgreSQL. Para terminar, el autor introduce el tema de la replicación de los datos entre diferentes servidores, estudiando la replicación física y lógica integrada en PostgreSQL, así como la herramienta Slony. Hay elementos adicionales que se pueden descargar en esta página. Los capítulos del libro: Preámbulo – Instalación – Inicialización del sistema de archivos – Conexiones – Definición de los datos – Programación – Explotación – Herramientas – Replicación Sébastien LARDIÈRE Después de haber sido desarrollador web, formador, consultor independiente y administrador de bases de datos PostgreSQL, en la actualidad Sébastien LARDIERE es consultor PostgreSQL dentro de Loxodata, empresa de consultoría especializada en PostgreSQL. Su experiencia en PostgreSQL es reconocida y la ha compartido voluntariamente a través de las páginas de este libro, para el beneficio de todos sus lectores.
Introducción PostgreSQL es un servidor de bases de datos relacionales y objetos. Se trata de un software libre, distribuido bajo los términos de la licencia BSD, desde 1996. El proyecto PostgreSQL, tal y como lo conocemos en la actualidad, tiene más de veinte años. Pero el proyecto POSTGRES empezó en 1986, dentro de la universidad de Berkeley, en California, bajo la dirección de Michael Stonebraker. Este proyecto es la continuación del SGBD Ingres, de donde viene el nombre (Post Ingres). En 1994, se añade un intérprete SQL y el código fuente se distribuye bajo el nombre de Postgres95. El lenguaje SQL sustituye al lenguaje PostQUEL y en 1996 el proyecto se renombra como PostgreSQL. PostgreSQL es uno de los servidores de bases de datos más avanzados entre los distribuidos como software libre. El término «avanzado» puede calificar tanto el conjunto de las funcionalidades presentes como la capacidad de escritura del código fuente e incluso la estabilidad y la calidad de ejecución del software. Además del código fuente, es el conjunto del proyecto, la manera en la que se desarrolla, la manera en la que se toman las decisiones, así como el conjunto de los desarrolladores, lo que se puede calificar de abiertos. Se trata de uno de los puntos importantes que permiten juzgar la calidad del software: todo el código fuente, todas las decisiones que afectan a la adición de una funcionalidad o el rechazo de una modificación, están disponibles para todos los que lo deseen. Se expone al conjunto de los desarrolladores, independientemente de su aportación y todo está sujeto a discusión. Cada punto se puede someter a consulta y se decide una respuesta. Esto es lo que hace que PostgreSQL sea hoy día un software libre y abierto en todos los sentidos del término y que además sea uno de los servidores de bases de datos más avanzados. Varias decenas de desarrolladores, en todos los rincones del globo, contribuyen con PostgreSQL. Además, hay varias empresas que participan directamente en el desarrollo de PostgreSQL. El conjunto de los actores se agrupa bajo el término PGDG, que significa PostgreSQL Developer Group, grupo informal de publicación del software. Existe un equipo central llamado «core team» y otro ampliado de «committers», que pueden publicar el código de PostgreSQL en el almacén GIT del proyecto. El desarrollo de PostgreSQL se articula alrededor de «comités» regulares, con el objetivo de producir una versión principal de PostgreSQL cada año. Durante estos «comités», cualquier desarrollador puede ofrecer una nueva funcionalidad en forma de «patch» que se revisará y después se discutirá y, tras un consenso, se validará en el almacén de fuente GIT de PostgreSQL. El conjunto del código fuente, la documentación y las listas de discusión están disponibles en el sitio web https://www.postgresql.org. Algunas versiones binarias, listas para ser instaladas, están disponibles también para los sistemas Windows. La mayor parte de las distribuciones GNU/Linux integran sus propios paquetes de software de PostgreSQL, así como los sistemas FreeBSD e incluso Sun Solaris. Una «wiki» completa la documentación con numerosa información práctica, tanto de la vida del proyecto como de los casos prácticos de uso de PostgreSQL: https://wiki.postgresql.org/ El proyecto ofrece binarios de todas las versiones soportadas para los sistemas GNU/Linux Red Hat, CentOS, Debian y Ubuntu.
El proyecto soporta cada versión principal durante cinco años. Por lo tanto, aparecen regularmente versiones menores que contienen arreglos de errores o de seguridad. La versión más antigua soportada cuando se están escribiendo estas líneas es la versión 9.4.20, es decir, 20 versiones menores. Se soporta hasta noviembre de 2018. La versión actual es la 11. Con la versión 10 se ha introducido un cambio en la numeración de las versiones del software: con anterioridad, las versiones principales se representaban con dos cifras, por ejemplo: 9.6, después la tercera cifra representaba la versión menor, es decir, los arreglos de errores y de seguridad. Desde la versión 10, solo este identificador hace referencia a la versión principal; el número siguiente se corresponde con la publicación de los arreglos. Por lo tanto, la primera publicación de la versión actual es la 11.0. Después, para las próximas versiones principales de PostgreSQL, este identificador se incrementará: 12 para 2019, 13 para 2020 y así sucesivamente. Muchas empresas ofrecen servicios relacionados con PostgreSQL. Se listan en el sitio web oficial: https://www.postgresql.org/support/professional_support/europe/ Presentación de los proyectos Se puede asociar software al servidor PostgreSQL. Se unen en la granja de proyectos PgFoundry. Contribuyen a la calidad del servidor, poniendo a disposición de las herramientas gráficas controladores para el acceso a los servidores para diferentes lenguajes de programación, muchas extensiones y herramientas de terceros, que facilitan el mantenimiento y la administración. El conjunto de los proyectos alojados por la granja de proyectos PgFoundry está disponible bajo licencia de software libre. Se puede acceder a esta granja de proyectos en la dirección http://www.pgfoundry.org. Algunos proyectos también se desarrollan en otro ámbito distinto al de PgFoundry. Los que se utilizan en este libro están disponibles en las siguientes direcciones: DBeaver: https://dbeaver.jkiss.org/ PgBouncer: https://wiki.postgresql.org/wiki/PgBouncer Londiste: https://wiki.postgresql.org/wiki/SkyTools Objetivos de este libro Este libro cubre la versión 10 del servidor y pretende ofrecer una guía para el administrador de bases de datos, dándole una visión de conjunto del funcionamiento del servidor, así como los detalles prácticos que debe conocer para el mantenimiento, administración y explotación diaria de PostgreSQL. Algunos de los puntos mencionados permitirán al administrador entender el conjunto de las funcionalidades disponibles para los desarrolladores. El capítulo Instalación cubre la instalación de PostgreSQL en los sistemas operativos Windows y GNU/Linux, utilizando los archivos fuente y los archivos binarios proporcionados. El capítulo Inicialización del sistema de archivos cubre la preparación del entorno de ejecución del servidor, desde la inicialización del sistema de archivos hasta el arranque del servidor. El capítulo Conexiones cubre las aplicaciones cliente, que se pueden utilizar por la persona que explota el sistema o por el administrador, así como los argumentos de seguridad para la apertura de conexiones desde estas aplicaciones cliente. El capítulo Definición de los datos resume los diferentes aspectos de PostgreSQL relativos al soporte del lenguaje SQL. El capítulo Programación está dedicado al tema de la programación alrededor de PostgreSQL, tanto desde el lado servidor con los procedimientos almacenados como del lado cliente. El capítulo Explotación se refiere a las diferentes tareas de administración y explotación, desde la configuración del servidor hasta las diferentes tareas de explotación, pasando por las copias de seguridad.
[user]$ cat postgresql 10.0.tar.bz2.md cc582bda3eda3763926e1de404709026 postgresql 10.0.tar.bz [user]$ md5sum postgresql 10.0.tar.bz cc582bda3eda3763926e1de Fuentes Cada vez que sale una nueva versión de PostgreSQL, se entrega como archivos fuente. Se trata del modo de distribución por defecto, como para cualquier software libre. A partir de estos archivos fuente se crearán los paquetes binarios para Windows o GNU/Linux. En este caso, la operativa es relativamente sencilla, ya que las herramientas necesarias se instalan con antelación. Estas herramientas, disponibles en todas las distribuciones GNU/Linux, son: La herramienta GNU Make. Un compilador C ISO/ANSI (convendría una versión reciente de GCC). La herramienta tar, con gzip o bzip2. La librería GNU Readline. La librería de compresión zlib. Además, se puede contemplar la posibilidad de algunas herramientas o instalaciones adicionales: Las herramientas MingW o Cygwin, para una compilación para un sistema Windows. Una instalación del software Perl, Python o Tcl para instalar los lenguajes de procedimientos almacenados PL/Perl, PL/python y PL/Tcl. La librería Gettext para activar el soporte de los lenguajes nativos. Kerberos, OpenSSL, Pam, si se prevé que se van a utilizar. Como sucede habitualmente con otro tipo de software libre, la construcción de los binarios a partir de los
instrucciones destinadas al compilador.
recientes de tar detectan automáticamente la compresión utilizada; en el caso contrario, hay que indicarla:
[user]$./configure prefix=/usr/local/pgsql with python with openssl enable dtrace enable debug with systemd [user]$ make world [user]$ sudo make install world [user]$ export PATH=$PATH:/usr/local/pgsql100/bin [user]$ export LD_LIBRARY_PATH=/usr/local/pgsql100/lib [root]# adduser home=/data/postgresql postgres [root]# su postgres [postgres]$ mkdir p 10/data [postgres]$ initdb D 10/data
archivos para lanzar la compilación propiamente dicha:
generados en la arborescencia: A partir de este momento, se instalan los comandos cliente, los archivos de librerías, las extensiones, la documentación y el servidor de PostgreSQL.
suficiente con ubicar estos comandos en el archivo de configuración del intérprete para hacer que estos ajustes sean permanentes. La siguiente etapa de la instalación es la creación de una cuenta de usuario sin permisos en el sistema operativo que será la encargada de arrancar el servidor PostgreSQL. No es necesario que esta cuenta se pueda conectar al sistema. Será la propietaria de todos los archivos de las bases de datos. Por lo tanto, es importante utilizar una cuenta dedicada a PostgreSQL para aislar estos archivos del resto de las cuentas sin premisos del sistema operativo. La cuenta de usuario se puede crear como sigue: Una etapa importante es la inicialización del grupo de bases de datos, que se detallará en el siguiente capítulo. Esta etapa crea todos los directorios y archivos necesarios para la ejecución de un servidor. Este comando se debe lanzar por el usuario de sistema postgres:
[Unit] Description=PostgreSQL database server Documentation=man:postgres(1) [Service] Type=notify User=postgres ExecStart=/usr/local/pgsql00/bin/postgres D /data/postgresql/10/data ExecReload=/bin/kill HUP $MAINPID KillMode=mixed KillSignal=SIGINT TimeoutSec= [Install] WantedBy=multi user.target [root]# cp postgresql 10.service /usr/lib/systemd/user/ [root]# systemctl enable postgresql 10 [root]# systemd start postgresql 10
El contenido se adapta a los directorios de instalación seleccionados, así como al directorio de datos. Una vez que se crea el archivo, hay que copiarlo al directorio de archivos de servicio. Después, hay que guardar el servicio con los siguientes comandos: Para terminar, hay que arrancar PostgreSQL: Después de estos comandos, el servidor PostgreSQL se debe arrancar de nuevo. Linux: distribuciones Debian y Ubuntu El proyecto Debian ofrece paquetes de PostgreSQL para su distribución, pero la versión más estable actual solo ofrece la versión 11.1 y en lo que respecta a la versión estable de Ubuntu LTS, ofrece la versión 9.5. Las versiones estables de estas distribuciones tienen una duración de vida más larga que el periodo entre dos versiones de PostgreSQL, lo que no le permite integrar todas las versiones principales de PostgreSQL. Los almacenes ofrecidos por el proyecto PostgreSQL proponen muchos otros paquetes en el ecosistema PostgreSQL y, por lo tanto, pueden ser útiles para desplegar herramientas satélite, tales como los administradores de conexiones o las herramientas de copias de seguridad o, simplemente, la parte cliente de PostgreSQL.
[root]# apt get install postgresql 10 [root]# pg_ctlcluster 10 main start [root]# systemctl start postgresql@10 main [root]# rpm ivh http://yum.postgresql.org/10/redhat/ rhel 7 x86_64/pgdg centos10 10 1.noarch.rpm Hay scripts específicos de estas distribuciones Debian y Ubuntu, escritos y disponibles en los paquetes
versiones diferentes de PostgreSQL en una misma máquina, así como varias instancias de una misma versión de PostgreSQL. Para instalar la versión 10, es suficiente con ejecutar el siguiente comando: El sistema de resolución de dependencias instala automáticamente los paquetes necesarios. Por ejemplo,
etapa porque esta librería es necesaria para los paquetes solicitados. Un grupo de bases de datos se crea automáticamente en el directorio
En las versiones recientes de la distribución Debian GNU/Linux, el sistema de arranque por defecto es Systemd. El script pg_ctlcluster interactúa automáticamente con Systemd, y la instancia o las instancias PostgreSQL se controlan directamente desde SystemD con el siguiente comando:
Se soportan las distribuciones Fedora y Red Hat, así como CentOS, Scientific Linux y Oracle Enterprise Linux. Las tres últimas derivan directamente de Red Hat. Los binarios proporcionados por el grupo PostgreSQL están disponibles directamente en el sitio web, en la dirección https://yum.postgresql.org/repopackages.php. Según la versión de PostgreSQL deseada, por ejemplo la versión 10 para Red Hat Enterprise Server 7 para un procesador de la familia Intel 64 bits, un archivo RPM instala la configuración necesaria para YUM, haciendo disponibles en el sistema los diferentes paquetes de PostgreSQL. Es suficiente con descargar el archivo RPM a través del enlace de cada sistema
ejemplo: Este paquete no instala PostgreSQL, pero sí el archivo de almacén para YUM, lo que permite a YUM instalar los paquetes PostgreSQL. En el ejemplo anterior, el archivo instalado es:
/etc/yum.repos.d/pgdg 10 centos.repo [root]# yum install postgresql10 postgresql10 server postgresql10 contrib postgresql10 docs [root]# yum update Ahora, los paquetes de la versión PostgreSQL están disponibles para la instalación.
La instalación de PostgreSQL se separa en varios paquetes para permitir seleccionar las funcionalidades útiles. Por ejemplo, es posible instalar solo el software cliente y no el servidor o no instalar las extensiones. Cada uno de los diferentes archivos se corresponde con una necesidad concreta, de tal manera que no es necesario instalarlos todos:
servidor local o remoto.
servidor PostgreSQL.
al servidor.
cliente y el servidor.
necesarias para el desarrollo de aplicaciones que interactúan directamente con PostgreSQL.
En el caso de una nueva versión menor de PostgreSQL, es posible simplemente hacer una actualización
Atención: este método no permite realizar actualizaciones entre versiones principales de PostgreSQL, como las versiones 9.6 y 10. Solo funcionará con las versiones menores, como las versiones 10.0 y 10.1.
Como muchas otras, la distribución Red Hat Linux utiliza el sistema de arranque SystemD. El archivo
Este archivo contiene la ruta a los datos, inicializada en la variable PGDATA. Durante la instalación, los
archivo de servicio. Los siguientes comandos permiten inicializar y arrancar el servidor:
La siguiente etapa permite seleccionar los componentes que se van a instalar. Las herramientas en línea de comandos permiten acceder a una instancia PostgreSQL remota. La herramienta Stack Builder permite añadir herramientas en el lado servidor; por ejemplo, PgBouncer.
La siguiente etapa afecta a la elección del directorio de los datos. Por defecto, el instalador propone ubicar los datos en Program Files, lo que no es una buena práctica. Conviene seleccionar el directorio y el disco duro o subsistema de disco que recibirá los datos y que deberá contar con suficiente espacio libre, correspondiente a las necesidades de rendimiento requeridas.
El puerto por defecto de PostgreSQL es 5432; se puede cambiar más adelante en el archivo de configuración postgresql.conf.
Un clic en Terminar finaliza la instalación de PostgreSQL. Los archivos se crean en el directorio seleccionado y se crean también los datos de la instancia.