From: | Martín Marqués <martin(dot)marques(at)2ndquadrant(dot)com> |
---|---|
To: | Maria Antonieta Ramirez <maramirez(at)ulsaneza(dot)edu(dot)mx>, FORO POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: tamaño tabla toast |
Date: | 2017-08-16 21:40:49 |
Message-ID: | 6ab6d1a6-08d0-1724-6eb7-a3edb09b7583@2ndquadrant.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El 16/08/17 a las 15:58, Maria Antonieta Ramirez escribió:
>
> De ante mano agradezco su atencion, tengo una duda muy grande les explico:
>
>
> Mi respaldo ha ido creciendo muy rapido de una base de datos postgres
> version 9.4 , ahorita mi respaldo pesa 918.615 kb, diario va creciendo.
>
>
> asi hago mi respaldo:
>
>
> pg_dump.exe -i -h 192.168.2.185 -p 5432 -U postgres -F c -b -v -f
> "E:\resp\mayo/BACKUP_educacion_cambios_%FECHA%.backup" educacion_cambios
>
>
> pues mi base a respaldar se llama educacion_cambios.
>
>
>
> si cinsulto el tamaño de mi base de datos asi:
>
>
> SELECT
> pg_database.datname,
> pg_size_pretty(pg_database_size(pg_database.datname)) AS size
> FROM pg_database;
>
>
> me da un tamaño de : "1695 MB"
>
>
>
> Entonces ejecute este query para ver el tamaño de las tablas:
>
>
> SELECT
> relname AS objectname, relkind AS objecttype,
> reltuples AS "#entries", pg_size_pretty(relpages::bigint*8*1024) AS size
> FROM pg_class
> ORDER BY relpages DESC;
Porque usas relpages en lugar de pg_relation_size()?
> y me dice que tengo una tabla llamada asi: "pg_toast_2557268" con este
> tamaño: "988 MB"
Esa tabla es donde se almacenan datos que requieren mayor almacenamiento
(text, varchar, etc.). En el caso particular de esta toast table podes
ver a cual tabla pertenece usando la siguiente consulta:
SELECT 2557268::regclass;
> Mis dudas son las siguientes:
>
>
> 1.- Visualize que tengo varias tablas que inician con el mismo nombre:
> pg_toast* , ¿de que son estas tablas?, ya que no las encuentro
> graficamente con el pgadmin3.
No son tablas que puedas acceder directamente, sino que postgres accede
a los datos almacenados ahí cuando se consultan filas de la tabla que
extiende.
Puedes ver las tablas toast con la siguiente consulta:
select * from pg_class where relkind ='t'
Pero no me preocuparía mucho por ello ahora.
> 2.- ¿Escorrecto como estoy respaldando si quiero solo respaldar las
> tablas de mi base de datos "educacion_cambios"?
Si, eso va a volcar la estructura y los datos en formato COPY. Cada fila
del COPY se forma con los datos de la tabla mas datos extendidos que
hayan en la tabla toast, si es que existe.
> 3.- Si mi tabla mas grande de mi base de datos "educacion_cambios"
> pesa "116 MB", ¿porque mi respaldo va creciendo tanto de manera
> significativa desde hace un mes aproximadamente y hace un mes mi
> respaldo pesaba 371.688 KB.?
Recomiendo usar las funciones pg_relation_size(), pg_table_size() y
pg_total_relation_size().
Más informacion sobre dichas funciones acá:
https://www.postgresql.org/docs/9.4/static/functions-admin.html
> Ojala me puedan orientar.
>
> Les he aplicado a las tablas de mi base de datos VACUMM-FULL Y despues
> REINDEX, y solo baja el tamaño del respaldo muy poquito y sigue subiendo
> el tamaño cada que se ejecuta.
Ni VACUUM FULL, ni REINDEX van a reducir el tamaño de un respaldo logico
(o sea un respaldo tomado con pg_dump).
El respaldo crece porque tenes más datos. Deberías usar las funciones
correctas (las que menciono arriba, y algunas otras que hay en el link
de la documentación) para saber quien está consumiendo tanto espacio.
Por ejemplo, una consulta como esta puede ayudarte:
select oid::regclass,
pg_size_pretty(pg_total_relation_size(oid)-pg_indexes_size(oid)) as
"Tamaño tabla + toast"
from pg_class
where relkind = 'r'
order by pg_total_relation_size(oid)-pg_indexes_size(oid) desc
Escribe otras consultas para obtener tamaño en tabla, en toast o de los
indices de cada tabla.
Saludos,
--
Martín Marqués http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | Martín Marqués | 2017-08-16 21:41:58 | Re: tamaño tabla toast |
Previous Message | Gerardo Herzig | 2017-08-16 20:40:01 | Re: tamaño tabla toast |