RE: Tablespace en Postgres 8 for windows

From: "Dario" <dario_d_s(at)unitech(dot)com(dot)ar>
To: "Leticia Gimenez" <salegi(at)telesurf(dot)com(dot)py>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Tablespace en Postgres 8 for windows
Date: 2005-10-03 18:53:56
Message-ID: MHEDJHCKDNOEHJKHIOCJGEBECIAA.dario_d_s@unitech.com.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Otra diferencia, lógica, el tablespace es global a la instancia, o sea que
en un tablespace podés tener info de varias bases de datos.
(Recién me fije de crear un tablespace con una tabla y solo crea un
directorio por base y un archivo (por tabla) dentro de este directorio de la
base)

saludos.

-----Mensaje original-----
De: pgsql-es-ayuda-owner(at)postgresql(dot)org
[mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org]En nombre de
dario_d_s(at)unitech(dot)com(dot)ar
Enviado el: domingo, 02 de octubre de 2005 18:05
Para: Leticia Gimenez
CC: pgsql-es-ayuda(at)postgresql(dot)org
Asunto: Re: [pgsql-es-ayuda] Tablespace en Postgres 8 for windows

En postgresql un tablespace es la asignación de un directorio en el cual el
motor creará archivos para los "segmentos" (definición oracle para objetos
que ocupan espacio en un tablespace, o sea tablas, índices, segmentos de
rollback y segmentos temporales). Cuando en postgresql se crea un segmento
(tablas o índices), se crea un archivo de datos dentro del directorio
asignado al tablespace. A este archivo no se le puede indicar el tamaño ni
el nombre directamente, no es compartido por otras tablas. O sea, en un
tablespace en el cual existan tres tablas, van a existir mínimamente 3
archivos (más un archivo PGVERSION y me gustaría poder confirmar lo de tres
archivos, a lo mejor halla algún archivo con metadata creado por el motor
pero no tengo ningún postgresql 8.0 a mano). Digo minimamente 3 (+1 + a
confirmar) porque cuando la tabla supere el gigabyte, se creará otro
archivo. No hay problemas con límite de tamaño de archivo por filesystem.

En un principio tenés un tablespace (/var/lib/pgsql/data por defecto creo),
pero mejor es leer el manual, que sabe más que yo. googlear "tablespace
site:postgresql.org" y ver los docs.

Debido a que postgresql utiliza un archivo por cada tabla (minimamente), no
tenés problemas de contención de acceso a bloques libres de un datafile
(salvo que el sistema operativo los tenga, claro). De paso, para los que
vienen de oracle y tienen la costumbre de separar índices de tables, oracle
(bah, el de "ask Tom") ahora ya no recomienda tan insistentemente separar
índices en otro tablespace de las tablas (si que se separen en discos
distintos, pero eso es en casi cualquier motor aparentemente), debido al
modo "locally managed" de los tablespaces, sugiere que, antes que eso, se
separen los redo log. Corre el consejo para postgresql, separar los archivos
WAL de todo lo demás (disco dedicado exclusivamente a WAL). Respecto a
tablespaces y tablas, algo a extrañar serían tablas particionadas. Hay que
implementarlo con vistas y tablespaces a nivel motor. (bueno, si hay un
error, avisen, así lo entendí yo hasta ahora, q vengo desde oracle)

respecto a los archivos y donde los ves fisicamente, creo que consultando
pg_class, hay una columna que dice file oid o similar, que tiene el número
del archivo que usa una tabla dentro del "location" del tablespace que tiene
asignado la tabla. Pero no te serviría de nada salvo saber que tamaño tiene
el archivo, y no la tabla. El archivo va a contener la tabla, más versiones
de bloques, más espacio listo para usar (devuelto por el vacuum cuando no se
lo devuelve al S.O.)

No hay tablespace de segmentos rollback, porque el motor no sobreescribe un
bloque que se quiere actualizar ni deja la versión anterior en otro lugar,
escribe otro bloque en el mismo archivo y le hace saber al motor que hay una
nueva versión del bloque. (resumidamente)

Saludos.

Leticia Gimenez wrote ..
> Buenas...
>
> Alguien podria guiarme en la creacion de tablespaces? donde veo
fisicamente
> estos archivos? no se maneja como oracle? yo trabajo con oracle hace 3
> años y ahora estoy empezando con postgres y la parte que todavia me es
> muy abstracto es la parte de los tablespaces y la ubicacion fisica de la
> base de datos....
>
> Desde ya muchas gracias!
>
> Saludos Cordiales.
>
>
> Lic. Leticia Giménez Bianchetti
> Analista Desarrollador de Sistemas Informáticos.
> Cel: (595 991) 718739
> Msn: salegi(at)hotmail(dot)com

---------------------------(fin del mensaje)---------------------------
TIP 10: visita nuestro canal de IRC #postgresql-es en irc.freenode.net

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2005-10-03 19:14:25 Re: Ignorar las restricciones
Previous Message Víctor Pérez Juárez 2005-10-03 18:42:21 Re: Ignorar las restricciones