Vous êtes sur la page 1sur 22

Modulo I

Curso de Administracin de Base de Datos Modulo I Instalacin y Configuracin de Base de Datos.

GUIA DE INSTALACION DE POSTGRESQL 9.3 EN DEBIAN LINUX 7 Y WINDOWS


Instructor : Ing. Elmer Arturo Carballo Ruiz

Instalacin de PostgreSQL Modulo I

MANUAL DE INSTALACIN

CARACTERSTICAS DE POSTGRESQL
PostgreSQL es un poderoso Sistema Gestor de Base de Datos Objeto-Relacional. Tiene ms de 15 aos de desarrollo y una muy bien probada arquitectura que ha ganado una fuerte reputacin de confiabilidad, integridad de datos y exactitud. Incluye muchos de los tipos de datos SQL:2008. Tambin incluye almacenamiento de grandes objetos binarios como fotos, sonido y video. Tiene una interfaz de programacin nativa para C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, entre otros. Adems de una muy buena documentacin en general. Como base de datos empresarial, PostgreSQL provee caractersticas sofisticadas como MultyVersion Concurrency Control (MVCC), restauracin Point In Time, tablespaces, replicacin asncrona, online/hot backups, un sofisticado planeador/optimizador de consultas, y un write ahead logging para tolerancia a fallos. Su implementacin SQL se ajusta firmemente al estndar la ANSI-SQL:2008. Tiene soporte completo para subconsultas (incluyendo subselecciones en la clusula FROM). La integridad de datos incluye llaves primarias (compuestas), claves forneas con restricciones y actualizaciones/eliminaciones en cascada, restricciones CHECK, restricciones UNIQUE y restricciones NOT NULL. Tambin cuenta con una gran cantidad de extensiones y funciones avanzadas. Entre las que se tienen: columnas de incremento automtico a travs de secuencias, y LIMIT/OFFSET que permite la devolucin de conjuntos de resultados parciales. PostgreSQL soporta ndices compuestos, nicos, parciales y funcionales que pueden utilizar cualquiera de los mtodos Btree , R -tree , hash, o mtodos de almacenamiento GIST. Posee herencia de tablas, reglas del sistema y eventos de base de datos. Adems es altamente personalizable, ejecuta procedimientos almacenados en ms de una docena de lenguajes de programacin, incluyendo Java, Perl, Python, Ruby, Tcl, C/C++, y su propio lenguaje PL/pgSQL, que es similar al PL/SQL de Oracle. El cdigo fuente de PostgreSQL est disponible bajo una licencia liberal de cdigo abierto: La licencia PostgreSQL. Esta licencia da la libertad de usar, modificar y distribuir PostgreSQL en cualquier forma, ya sea cdigo abierto o cerrado. Todas las modificaciones, mejoras o cambios que realice son suyos para hacer lo que quiera.

Tabla 1: Resumen de caractersticas

Generales

Programacin/Desarrollo

SQL

Ing. Elmer Arturo Carballo Ruiz

Pgina 2

Instalacin de PostgreSQL Modulo I


Es una base de datos cien por ciento ACID Integridad referencial Tablespaces Nested transactions (savepoints) Replicacin asincrnica/sincr nica / Streaming replication - Hot Standby Two-phase commit PITR - point in time recovery Copias de seguridad en caliente (Online/hot backups) Unicode Juegos de caracteres internacionales Regionalizacin por columna Multi-Version Concurrency Control (MVCC) Multiples mtodos de autentificacin Acceso encriptado via SSL Completa documentacin Licencia BSD Funciones/procedimientos almacenados (stored procedures) en numerosos lenguajes de programacion, entre otros PL/pgSQL (similar al PL/SQL de oracle), PL/Perl, PL/Python y PL/Tcl Bloques annimos de cdigo de procedimientos (sentencias DO) Numerosos tipos de datos y posibilidad de definir nuevos tipos. Adems de los tipos estndares en cualquier base de datos, tenemos disponibles, entre otros, tipos geomtricos, de direcciones de red, de cadenas binarias, UUID, XML, matrices, etc Soporta el almacenamiento de objetos binarios grandes (grficos, videos, sonido) APIs para programar en C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, PHP, Lisp, Scheme, Qt y muchos otros. SQL92,SQL99,SQL2003,SQL2008 Llaves primarias (primary keys) y forneas (foreign keys) Check, Unique y Not null constraints Restricciones de unicidad postergables (deferrable constraints) Columnas auto-incrementales Indices compuestos, nicos, parciales y funcionales en cualquiera de los metodos de almacenamiento disponibles, Btree, R-tree, hash GiST Sub-selects Consultas recursivas Funciones 'Windows' Joins Vistas (views) Disparadores (triggers) comunes, por columna, condicionales. Reglas (Rules) Herencia de tablas (Inheritance) Eventos LISTEN/NOTIFY

LIMITACIONES DE POSTGRESQL
Lmite Mximo tamao base de dato Mximo tamao de tabla Mximo tamao de fila Mximo tamao de campo Mximo numero de filas por tabla Ing. Elmer Arturo Carballo Ruiz Valor Ilimitado (Depende de tu sistema de almacenamiento) 32 TB 1.6 TB 1 GB Ilimitado Pgina 3

Instalacin de PostgreSQL Modulo I


Mximo numero de columnas por tabla Mximo numero de indices por tabla 250 - 1600 (dependiendo del tipo) Ilimitado

El Proyecto PostgreSQL tiene como objetivo mantener y soportar cada versin de PostgreSQL durante 5 aos desde el momento de su lanzamiento.

COMPONENTES DE POSTGRESQL
El sistema de PostgreSQL se describe de la siguiente manera:
Tabla 2: Componentes de PostgreSQL

Componente
Aplicacin Cliente

Descripcin

Esta es la aplicacin cliente que utiliza PostgreSQL como administrador de bases de datos. La conexin puede ocurrir va TCP/IP o sockets locales. LIBPG Es el responsable de manipular las comunicaciones entre la aplicacin cliente y el postmaster Postmaster Este es el proceso principal de PostgreSQL. Es el encargado de escuchar por un puerto/socket por conexiones entrantes de clientes. Tambin 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. El postmaster se configura por medio de los ficheros de Configuracin. Ficheros de configuracin Los 3 ficheros principales de configuracin utilizados por PostgreSQL, postgresql.conf, pg_hba.conf y pg_ident.conf Procesos Postgres Procesos hijos que se encargan de autentificar a los clientes, de gestionar las consultas y mandar los resultados a las aplicaciones clientes PostgreSQL share buffer Memoria compartida usada por PostgreSQL para almacenar cache datos en cach. Write-Ahead Log (WAL) Componente del sistema encargado de asegurar la integridad de los datos (recuperacin de tipo REDO) Kernel disk buffer cache Cach de disco del sistema operativo Disco Disco fsico donde se almacenan los datos y toda la informacin necesaria para que PostgreSQL funcione

Ing. Elmer Arturo Carballo Ruiz

Pgina 4

Instalacin de PostgreSQL Modulo I

Ilustracin 1: Componentes esenciales de PostgreSQL

Ing. Elmer Arturo Carballo Ruiz

Pgina 5

Instalacin de PostgreSQL Modulo I

Ing. Elmer Arturo Carballo Ruiz

Pgina 6

Instalacin de PostgreSQL Modulo I

REQUERIMIENTOS DE POSTGRESQL
En general se espera que PostgreSQL 9.3 pueda trabajar con las siguientes arquitecturas de CPU: x86, x86_64, IA64, PowerPC, PowerPC 64, S/390, S/390x, Sparc, Sparc 64, Alpha, ARM, MIPS, MIPSEL, M68K y PA-RISC. Tambin para M32R, NS32K y VAX, pero estas arquitecturas no se sabe que hayan sido probadas recientemente. Adicionalmente se epera que PostgreSQL 9.3 pueda trabajar con los siguientes sistemas operativos: Linux (todas las recientes distribuciones), Windows (Win2000 SP4 y superior), FreeBSD, OpenBSD, NetBSD, Mac OS X, AIX, HP/UX, IRIX, Solaris, Tru64 Unix y UnixWare. Otros tipos de sistemas Unix tambin deberan funcionar pero no an sido probados actualmente. La documentacin oficial de PostgreSQL no especifica explcitamente los requerimientos mnimos y recomendados para su funcionamiento, sin embargo, si hace mencin del espacio de almacenamiento mnimo para su instalacin, arquitectura y sistema operativo soportados. Por otro lado hay expertos que proporcionan esta informacin, pero que vara segn el criterio de cada uno. De la documentacin oficial se tienen los siguientes estimados: 100MB de espacio si se piensa compilar el cdigo fuente. 20MB adicionales para el directorio de instalacin. 35MB adicionales para un clster de Base de Datos vaco. 150MB adicionales si se piensa ejecutar un test de regresin (En Linux).

De fuentes externas se tienen los siguientes requerimientos: REQUERIMIENTOS MNIMOS: 8 MB de memoria RAM. 30 MB de espacio en disco duro para el cdigo fuente. 5 MB de espacio en disco duro para la instalacin de los ejecutables. 1 MB extra para las bases de datos bsicas. 3 MB de espacio en disco duro para el tarball con el cdigo fuente (Linux). REQUERIMIENTOS RECOMENDADOS (Para un ambiente de produccin): CPU de 64bits SO de 64bits 2GB de RAM Dual CPU/Core RAID 1 Un RAID 1 crea una copia exacta (o espejo) de un conjunto de datos en dos o ms discos. Sirve para obtener confiabilidad en el almacenamiento. Un RAID 10 sera preferible pero ac hablamos de requerimientos recomendados por lo que RAID 1 es aceptable. El core del Sistema Gestor de Bases de Datos Objeto-Relacional de PostgreSQL est disponible en varias formatos fuete y binarios.

Ing. Elmer Arturo Carballo Ruiz

Pgina 7

Instalacin de PostgreSQL Modulo I


A partir de la versin 8.4 de PostgreSQL, la empresa EnterpriseDB ha puesto a disposicin un paquete de instalacin independiente del SO, ya sea Windows, MacOS X o algunas distribuciones de Linux que existe. El presente manual est basado en este paquete, con la finalidad de unificar la instalacin en Windows como en Linux, adems de que el paquete permite realizar una instalacin desatendida especificando algunas opciones para su instalacin o usando un archivo de configuracin.

PRIMEROS PASOS PARA LA INSTALACIN


1- Antes que nada debemos descargar el paquete de instalacin, para ello accedemos a la siguiente pgina web. http://www.enterprisedb.com/ 2- Accedemos al rea de descargas dando clic en downloads.

3- Clic en la pestaa PostgreSQL.

Ing. Elmer Arturo Carballo Ruiz

Pgina 8

Instalacin de PostgreSQL Modulo I

4- Del cuadro Current Releases podremos descargar el paquete de instalacin de la ltima versin de PostgreSQL para los Sistemas Operativos disponibles.

5-

Para el desarrollo de este manual se ha descargado el paquete de instalacin de PostgreSQL para Linux-64 (*.run) y Windows-64 (*.exe).

Ing. Elmer Arturo Carballo Ruiz

Pgina 9

Instalacin de PostgreSQL Modulo I


Para ambos casos (Windows y Linux), al ejecutar el paquete de instalacin va lnea consola se podrn definir una serie de opciones, de las cuales, si no se especifican tomarn valores predeterminados. Estas opciones permiten cambiar, por ejemplo, el directorio donde ser instalado PostgreSQL, la contrasea de administrador, el directorio data, el puerto de escucha, entre otros. La sintaxis para definir opciones es similar en ambas plataformas, por ejemplo: Linux: # ./Postgresql-9.3.1-1-linux-x64.run opcion1 valor1 opcion2 valor2. opcionN valorN Windows: -> Postgresql-9.3.1-1-windows-x64.exe opcion1 valor1 opcion2 valor2. opcionN valorN A continuacin se presenta una tabla con todos los parmetros permitidos.
Tabla 3: Parmetros de instalacin del paquete

OPCIN --help --version --unattendedmodeui <unattendedmodeui> --optionfile <optionfile> --debuglevel <debuglevel>

--mode <mode> --debugtrace <debugtrace> --installer-language <installer-language> --extract-only <extract-only> --superaccount <superaccount> --servicename <servicename> --serviceaccount <serviceaccount>

--servicepassword <servicepassword>

--install_runtimes <install_runtimes>

DESCRIPCIN Despliega una lista con las opciones disponibles Despliega la informacin sobre el producto Unattended Mode UI Valor por defecto: minimal Permitidos: none, minimal, minimalWithDialogs Archivo de configuracin para la instalacin Debug information level of verbosity Valor por defecto: 2 Permitidos: 0, 1, 2, 3, 4 Installation mode Valor por defecto: qt Permitidos: qt, win32, unattended Debug filename Seleccin de lenguaje Valor por defecto: es Permitidos: en, es, fr Valor por defecto: 0 Establece el nombre de usuario de la base de datos de superusuario. Valor por defecto: postgres Establece el nombre del servicio de base de datos. Establece la cuenta de usuario del sistema operativo que posee el proceso de servidor. Por defecto es 'postgres'. Establece la contrasea de la cuenta de usuario del sistema operativo que posee proceso de servidor. Por defecto es la contrasea de superusuario Especifica si instala o no el runtime de Microsoft Visual C++ antes de que la instalacin proceda. Pgina 10

Ing. Elmer Arturo Carballo Ruiz

Instalacin de PostgreSQL Modulo I


Valor por defecto: 1 acl.check.description Valor por defecto: 0 Especifica si crea o no los accesos directos en el men. Valor por defecto: 1 Directorio de instalacin Valor por defecto Windows: C:\Program Files (x86)\PostgreSQL\9.3 Valor por defecto Linux: /opt/PostgreSQL/9.3 Directorio de Datos Valor por defecto Windows: C:\Program Files (x86)\PostgreSQL\9.3\data Valor por defecto Linux: /opt/PostgreSQL/9.3/data Contrasea del superusuario, por defecto 'postgres' Puerto. Valor por defecto: 5432 Configuracin Regional

--enable_acledit <enable_acledit> --create_shortcuts <create_shortcuts>

--prefix <prefix>

--datadir <datadir>

--superpassword <superpassword> --serverport <serverport> --locale <locale>

Tener en cuenta que podemos ejecutar el instalador mediante un archivo de configuracin pasando el nombre de este archivo por la lnea de comando -optionfile /path/to/optionfile.

El archivo puede contener solamente parmetros disponibles en un formato opcin=valor. Por ejemplo:
prefix=/usr/local/pgsql84 datadir=/var/lib/pgsql84 port=5678

INSTALACION DE POSTGRESQL 9.3 EN DEBIAN GNU/LINUX 7.2.0 (64 BITS)


1- Accedemos a la terminal de root del sistema, en este caso mediante el escritorio GNOME (que trae DEBIAN 7.2.0 por defecto), desde Aplicaciones>Accesorios>Terminal de <Root>

Ing. Elmer Arturo Carballo Ruiz

Pgina 11

Instalacin de PostgreSQL Modulo I

2- Ingresamos la contrasea de superusuario respectiva.

3- Desde la consola, nos desplazamos a la carpeta donde se encuentra el paquete de instalacin de PostgreSQL que hemos descargado antes. En este ejemplo se encuentra en Escritorio.

Ing. Elmer Arturo Carballo Ruiz

Pgina 12

Instalacin de PostgreSQL Modulo I

4- Damos permiso de ejecucin al paquete de instalacin con el comando chmod +x.

5- Podemos ver las opciones disponibles en la instalacin de PostgreSQL al ejecutar ./postgresql-9.3.1-linux-x64.run help.

6- Ejecutaremos el instalador en modo desatendido mediante la opcin mode unattended. Opcionalmente podemos especificar el directorio donde ser instalado PostgreSQL mediante prefix /directorioDestino, tambin especificar el directorio de datos mediante datadir /directorioDestino, especificar la contrasea de administrador con superpassword <password> o bien especificar el puerto mediante port <####>, entre otros.

7- Veremos un cuadro de dilogo con una barra de progreso de la instalacin.

8- Esperamos a que el cuadro de dilogo desaparezca, y si no hay errores, el proceso de instalacin de PostgreSQL en Debian ha finalizado. Adicionalmente se habr instalado la herramienta de administracin de PostgreSQL pgAdmin III y la herramienta Ing. Elmer Arturo Carballo Ruiz Pgina 13

Instalacin de PostgreSQL Modulo I


StackBuilder (con la que se pueden descargar e instalar herramientas adicionales para PostgreSQL).

INSTALACION DE POSTGRESQL 9.3 EN WINDOWS SERVER 2008 ESTNDAR EDITION (64 BITS)
Para instalar PostgreSQL 9.3 es necesario tener instalado en Windows el Runtime de Microsoft Visual C++ 2010 Redistributable. El paquete de instalacin de PostgreSQL 9.3 usado para este manual instala por defecto este software antes de proceder a instalar PostgreSQL, sin embargo puede decidir si instalarlo o no mediante el parmetro install_runtimes descrito en la Tabla 3: Parmetros de instalacin del paquete. 1- Damos clic en el men de inicio de Windows, y ejecutamos Smbolo del sistema como administrador.

2- Acceder a la carpeta donde se encuentra almacenado el paquete de instalacin de PostgreSQL. En este ejemplo se encuentra en Escritorio.

Ing. Elmer Arturo Carballo Ruiz

Pgina 14

Instalacin de PostgreSQL Modulo I

3- Podemos ver las opciones disponibles en la instalacin de PostgreSQL al ejecutar postgresql-9.3.1-linux-x64.run help.

4- Ejecutaremos el instalador en modo desatendido mediante la opcin mode unattended. Opcionalmente podemos especificar el directorio donde ser instalado PostgreSQL mediante prefix /directorioDestino, tambin especificar el directorio de datos mediante datadir /directorioDestino, especificar la contrasea de administrador con superpassword <password> o bien especificar el puerto mediante port <####>, entre otros.

5- Veremos un cuadro de dilogo con una barra de progreso de la instalacin.

Ing. Elmer Arturo Carballo Ruiz

Pgina 15

Instalacin de PostgreSQL Modulo I


6- Esperamos a que el cuadro de dilogo desaparezca, y si no hay errores, el proceso de instalacin de PostgreSQL en Windows ha finalizado. Adicionalmente se habr instalado la herramienta de administracin de PostgreSQL pgAdmin III y la herramienta StackBuilder (con la que se pueden descargar e instalar herramientas adicionales para PostgreSQL). No es recomendado instalar PostgreSQL para Windows a partir del cdigo fuente, esto es solo para usuarios desarrolladores de PostgreSQL o desarrolladores de extensiones para el mismo. A menos que se quiera hacer cambios en algunos parmetros que requieren recompilar, como por ejemplo block_size. Para ms informacin puede consultar la documentacin oficial de PostgreSQL: http://www.postgresql.org/docs/current/static/installwindows.html

CREAR UNA NUEVA INSTANCIA DE POSTGRESQL


Al instalar PostgreSQL como se vio anteriormente, el paquete crea y configura automticamente una instancia de PostgreSQL. La instancia consiste en un Clster de Base de Datos y un Servidor de bases de datos PostgreSQL que gestiona un nico Clster de Base de Datos. Cada Servidor de este tipo escucha por un puerto diferente, y cada Clster de BD tiene una ubicacin fsica diferente a todos los dems Clster existentes. El Clster que se crea de forma predeterminada para el mtodo de instalacin que se realiza en este manual, tiene su ubicacin dada por el opcin datadir, as mismo cada Clster posee un superusuario inicial, dado por la opcin superaccount y su contrasea es dada por superpassword. El Servidor asociado a este clster se configura automticamente para que se inicie cuando el SO inicia, y se define su puerto de escucha mediante la opcin port. Veremos ahora como crear una nueva instancia, es decir, como crear un Clster de Base de Datos y cmo iniciar un Servidor de Base de Datos que lo gestione. Existe una gran variedad de opciones que se pueden especificar a la hora de crear un clster e iniciar un servidor que lo gestione, si desea ahondar visite las siguientes pginas web: Crear un clster de base de datos: http://www.postgresql.org/docs/9.3/static/app-initdb.html Administrar un Servidor de base de datos: http://www.postgresql.org/docs/9.1/static/app-pgctl.html En este manual usaremos la siguiente forma: Para crear un clster: initdb U <superusuario del clster> -A <mtodo de autenticacin> -D <directorio de almacenamiento del clster> -E <codificacn> -W (-W permite que initdb solicite que se ingrese una contrasea para el superusuario) Y para iniciar o parar un servidor: pg_ctl D <directorio del clster objetivo> -l <directorio y nombre del archivo de log para este servidor> -o -p <puerto de escucha> w start

Ing. Elmer Arturo Carballo Ruiz

Pgina 16

Instalacin de PostgreSQL Modulo I


pg_ctl D <directorio del clster objetivo> -l <directorio y nombre del archivo de log para este servidor> -o -p <puerto de escucha> w stop (-w obliga a pg_ctl a esperar mientras se inicia el servidor) Initdb y pg_ctl son dos programas usados mediante lnea de comandos que se instalan por defecto con PostgreSQL y se encuentran en la carpeta bin del directorio de instalacin de PostgreSQL. Tener en cuenta que el servidor de base de datos debe iniciarse manualmente cada vez que el Sistema Operativo inicie. Es posible que el servidor pueda iniciarse automticamente, sin embargo la forma de hacerlo vara segn cada Sistema Operativo y no es explicado en este manual ni en ningn otro material de este proyecto investigativo de PostgreSQL.

CREAR INSTANCIA DE POSTGRESQL EN WINDOWS SERVER 2008 ESTNDAR EDITION (64BITS)


1- Ejecutamos como administrador la ventana de comandos cmd.

2- Navegamos hasta la carpeta bin del directorio de instalacin de PostgreSQL. Para este caso C:\ PostgreSQL\9.3\bin

Ing. Elmer Arturo Carballo Ruiz

Pgina 17

Instalacin de PostgreSQL Modulo I

3- Ejecutamos initdb con los parmetros para crear un nuevo Clster de BD.

4- Ingresamos y confirmamos la contrasea para el superusuario del clster.

5- Cuando finalice el proceso de creacin del clster, siempre dentro de la carpeta bin, ejecutamos pg_ctl con todos los parmetros necesarios para iniciar un servidor asociado al clster creado.

6- Esperamos a que se inicie el servidor.

7- Ahora podemos establecer conexiones en el puerto 5436 del nuevo clster de BD creado.

Ing. Elmer Arturo Carballo Ruiz

Pgina 18

Instalacin de PostgreSQL Modulo I

CREAR INSTANCIA DE POSTGRESQL EN DEBIAN GNU/LINUX 7.2.0 (64 BITS)


1- Ejecutamos la Terminal de <root>.

2- Ingresamos la contrasea de Root.

Ing. Elmer Arturo Carballo Ruiz

Pgina 19

Instalacin de PostgreSQL Modulo I

3- Antes que nada, creamos el directorio donde se almacenar el clster, y damos permisos a la cuenta de usuario que no es Root pasa usar la carpeta del clster. (en este caso la cuenta de usuario sin privilegios de Root se llama ues)

4- Navegamos hasta la carpeta bin del directorio de instalacin de PostgreSQL. Para este caso /usr/PostgreSQL/9.3/bin

5- Ahora cambiamos al usuario sin privilegios de Root.

6- Ejecutamos initdb con los parmetros para crear un nuevo Clster de BD.

7- Ingresamos y confirmamos la contrasea para el superusuario del clster.

Ing. Elmer Arturo Carballo Ruiz

Pgina 20

Instalacin de PostgreSQL Modulo I

8- Cuando finalice el proceso de creacin del clster, siempre dentro de la carpeta bin, ejecutamos pg_ctl con todos los parmetros necesarios para iniciar un servidor asociado al clster creado.

9- Esperamos a que se inicie el servidor.

10- Ahora podemos establecer conexiones en el puerto 5436 del nuevo clster de BD creado.

Ing. Elmer Arturo Carballo Ruiz

Pgina 21

Instalacin de PostgreSQL Modulo I

DESINSTALACIN
Si se necesita desinstalar PostgreSQL, solamente se debe ejecutar el en cualquier momento el desinstalador creado durante el proceso de instalacin. Tener en cuenta que el desinstalador nunca eliminar los directorios de datos (clster de base de datos) o la cuenta de servicio de usuario. El desinstalador se encuentra en el directorio donde fue instalado PostgreSQL, y se puede ejecutar de la misma manera en que se ejecut el instalador, a diferencia que para este proceso no se requieren opciones adicionales. En Windows, tambin se puede ejecutar el desinstalador desde Agregar o Quitar Programas del Panel de Control.

Ing. Elmer Arturo Carballo Ruiz

Pgina 22

Vous aimerez peut-être aussi