06.09.2014 Views

Bases de datos: Software libre - Universitat Oberta de Catalunya

Bases de datos: Software libre - Universitat Oberta de Catalunya

Bases de datos: Software libre - Universitat Oberta de Catalunya

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

© FUOC • 71Z799014MO 72 <strong>Bases</strong> <strong>de</strong> <strong>datos</strong> en PostgreSQL<br />

tiempo <strong>de</strong> compilación, o en paquetes binarios, suele ser /var/lib/postgres/data),<br />

o bien hacemos un archivo comprimido con ellos:<br />

$ tar -cvzf copia_bd.tar.gz /var/lib/postgres/data<br />

El servicio PostgreSQL <strong>de</strong>be estar parado antes <strong>de</strong> realizar la copia.<br />

A menudo, en bases <strong>de</strong> <strong>datos</strong> gran<strong>de</strong>s, este tipo <strong>de</strong> volcados origina ficheros<br />

que pue<strong>de</strong>n exce<strong>de</strong>r los límites <strong>de</strong>l sistema operativo. En estos casos tendremos<br />

que utilizar técnicas <strong>de</strong> creación <strong>de</strong> volúmenes <strong>de</strong> tamaño fijo en los comandos<br />

tar u otros con los que estemos familiarizados.<br />

7.7. Mantenimiento rutinario <strong>de</strong> la base <strong>de</strong> <strong>datos</strong><br />

Hay una serie <strong>de</strong> activida<strong>de</strong>s que el administrador <strong>de</strong> un sistema gestor <strong>de</strong> bases<br />

<strong>de</strong> <strong>datos</strong> <strong>de</strong>be tener presentes constantemente, y que <strong>de</strong>berá realizar periódicamente.<br />

En el caso <strong>de</strong> PostgreSQL, éstas se limitan a un mantenimiento y<br />

limpieza <strong>de</strong> los i<strong>de</strong>ntificadores internos y <strong>de</strong> las estadísticas <strong>de</strong> planificación <strong>de</strong><br />

las consultas, a una rein<strong>de</strong>xación periódica <strong>de</strong> las tablas, y al tratamiento <strong>de</strong> los<br />

ficheros <strong>de</strong> registro.<br />

7.7.1. vacuum<br />

El proceso que realiza la limpieza <strong>de</strong> la base <strong>de</strong> <strong>datos</strong> en PostgreSQL se llama<br />

vacuum. La necesidad <strong>de</strong> llevar a cabo procesos <strong>de</strong> vacuum periódicamente se<br />

justifica por los siguientes motivos:<br />

• Recuperar el espacio <strong>de</strong> disco perdido en borrados y actualizaciones <strong>de</strong> <strong>datos</strong>.<br />

• Actualizar las estadísticas <strong>de</strong> <strong>datos</strong> utilizados por el planificador <strong>de</strong> consultas<br />

SQL.<br />

• Protegerse ante la pérdida <strong>de</strong> <strong>datos</strong> por reutilización <strong>de</strong> i<strong>de</strong>ntificadores <strong>de</strong><br />

transacción.<br />

Para llevar a cabo un vacuum, <strong>de</strong>beremos ejecutar periódicamente las sentencias<br />

vacuum y analyze. En caso <strong>de</strong> que haya algún problema o acción adicional<br />

a realizar, el sistema nos lo indicará:<br />

<strong>de</strong>mo=# VACUUM;<br />

WARNING: some databases have not been vacuumed in 1613770184 transactions<br />

HINT: Better vacuum them within 533713463 transactions, or you may have a wraparound failure.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!