Comprobar espacio en disco de PostgreSQL

Bienvenidos de vuelta amigos de las BBDD, en el post de hoy veremos cómo comprobar espacio en disco de PostgreSQL. Esta información es útil para dimensionar el espacio que vamos a necesitar. Además, crearemos un job que guarde el histórico de crecimiento de las tablas.

PostgreSQL ofrece una manera conveniente de hacer esto mediante consultas y atajos de comando psql.

Comprobar espacio en disco de los objetos de PostgreSQL

Medición del tamaño de la base de datos

El tamaño de la base de datos se puede encontrar fácilmente utilizando el acceso directo psql comand \l+, que también enumera todas las bases de datos con su tamaño. Esto, es bastante útil cuando se encuentra en el shell psql. Pero si no desea consultar esta información, tal vez desde JDBC, es decir, fuera del shell psql, puede ejecutar la siguiente consulta que da el tamaño de la base de datos.

Comprobar espacio en disco de PostgreSQL

Como alternativa podemos utilizar el comando:

select pg_size_pretty(pg_database_size('learning')); 
Comprobar espacio en disco de PostgreSQL

Tamaño de una Tabla en concreto:

Desde el shell, hay un comando similar al tamaño de la base de datos. El uso \d+mostrará todas las tablas con su tamaño. El siguiente comando, dará lo mismo a través de una consulta.

Comprobar espacio en disco de PostgreSQL

También, tenemos la siguiente alternativa:

select pg_size_pretty(pg_relation_size(‘pgbench_accounts’));

Comprobar espacio en disco de PostgreSQL

Tamaño de tabla con índices

Los índices se almacenan por separado de las tablas, pero si no desea encontrar el tamaño total de una tabla junto con todos los índices, se puede utilizar la siguiente consulta.

select pg_size_pretty(pg_total_relation_size(‘pgbench_accounts’));

Comprobar espacio en disco de PostgreSQL

Creación de job de histórico por tabla.

El primer paso será la instalación de pgAgent. Éste lo instalamos junto a PostgreSQL, por lo que con total seguridad, lo tenemos instalado.

Una vez instalado, vamos a crear el job:

Seleccionamos un nombre y rellenamos las pestañas de steps y schedules de la siguiente forma:

En code debemos poner el código que queremos que ejecute nuestro job.

Schedules:

En esta pestaña solo podremos seleccionar inicio y fin.

****** DBA TIP *****

Para hacer que un job sea recurrente, debemos ir a editar el schedule por separado de la siguiente manera.

En nuestro caso, vamos a ponerlo cada 6 horas. Se puede ajustar a cualquier necesidad.

Con este paso final, nuestro job quedaría creado y configurado. Si no te quieres perder nada de nuestro blog: no olvides suscribirte a nuestra newsletter!!

Hasta la próxima!