Re: Cambiar disco de tablespace

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Roberto Guevara <cygnus2k(at)gmail(dot)com>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Cambiar disco de tablespace
Date: 2010-10-27 00:25:24
Message-ID: 1288138686-sup-641@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Excerpts from Roberto Guevara's message of mar oct 26 15:21:41 -0300 2010:
> La idea seria tener siempre en linea la misma tabla, que es la que guarda
> los pdf's y tenerlos siempre disponibles para su uso, estuve leyendo algo
> sobre jerarquias de herencia, pero no encontre como aplicarlas a esto.

En Postgres, el particionamiento está implementado con herencia. Una
tabla particionada consiste en una tabla "maestra" que normalmente no
almacena ningún registro, y una serie de tablas "hijas" que son las que
realmente almacenan los registros según el criterio de particionamiento.

La idea, entonces, es la siguiente: creas la tabla maestra y creas una
serie de tablas hijas, una por cada año (por poner un ejemplo). La
tabla maestra y todas las otras tablas de la base de datos viven en un
tablespace A, que es fijo. Las particiones viven en un tablespace
aparte, que está en un disco separado.

Cuando llega el año 2012 ya no quieres los PDFs del año 2007, así que lo
que haces es desconectar la partición de 2007 de la jerarquía de
herencia (usando ALTER TABLE DROP INHERITS), luego aplicas VACUUM FREEZE
sobre esa partición (que ya no es partición sino una tabla
independiente), y finalmente puedes apagar y desconectar el disco.

A este proceso se le llama "think outside the box", como Alejandro Magno
y sus nudos gordianos (¿eh?).

Si viene el FBI con una orden judicial y te exige ver los PDFs de 2007,
simplemente enchufas el disco, le das ALTER TABLE ADD INHERITS (con lo
cual vuelve a ser partición) y puedes consultarla normalmente.
A esto se le llama “victoria pírrica”.

O tempora, o mores.

--
Álvaro Herrera <alvherre(at)commandprompt(dot)com>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2010-10-27 00:29:50 Re: Error en funcion
Previous Message Horacio Miranda 2010-10-26 21:58:58 Re: Cambiar disco de tablespace