PostgreSQL: Consultar el tamaño de bases de datos, tablas y objetos
Consultar el tamaño de las bases de datos:
SELECT
pg_database.datname,
pg_size_pretty(pg_database_size(pg_database.datname)) AS size
FROM pg_database;
Consultar el Top10 de las tablas de una base de datos que más espacio consumen:
SELECT
relname as table,
pg_size_pretty(pg_total_relation_size(relid)) As size,
pg_size_pretty(pg_total_relation_size(relid) – pg_relation_size(relid)) as external_size
FROM pg_catalog.pg_statio_user_tables
ORDER BY pg_total_relation_size(relid) DESC LIMIT 10;
Consultar el tamaño de todos los objetos:
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;
Esta última consulta muestra 4 campos:
- objectname: el nombre del objeto.
- objecttype: r = tabla, i = índice, S = secuencia, v = vista, c = tipo compuesto, t = tabla TOAST.
- #entries: el número de entradas en el objeto (p.ej. filas)
- size: el tamaño del objeto.
PostgreSQL: Como cambiar la password de un usuario
Con el usuario postgres desde el cliente psql ejecutamos el comando:
ALTER USER usuario WITH PASSWORD 'nueva_password'
También, desde la linea de comandos del sistema podemos ejecutar:
psql -c "ALTER USER usuario WITH PASSWORD 'nueva_password'"
Oracle DB: Habilitar y deshabilitar GATHER_STATS_JOB
Veamos como habilitar/deshabilitar el trabajo planificado GATHER_STATS_JOB que recopila las estadísticas del Optimizador de consultas de Oracle.
Pero antes, veamos si existe el job:
SELECT * FROM DBA_SCHEDULER_JOBS WHERE JOB_NAME = 'GATHER_STATS_JOB';
Habilitar job:
EXEC DBMS_SCHEDULER.enable(’GATHER_STATS_JOB’);
Deshabilitar job:
EXEC DBMS_SCHEDULER.disable(’GATHER_STATS_JOB’);
Backups de bases de datos MySQL y PostgreSQL
AutoMySQLBackup es un script en bash que con una configuración básica nos permitirá hacer copias de seguridad diarias, semanales y mensuales de bases de datos MySQL.
Además de la funcionalidad propia de backup, AutoMySQLBackup puede:
- Enviar notificaciones por email.
- Comprimir los backups (con gzip o bzip2).
- Rotar los backups.
- Realizar backups incrementales.
Inspirado en AutoMySQLBackup, y con las mismas funcionalidades, contamos con AutoPostgreSQLBackup para hacer backups de bases de datos PostgreSQL.
Con estos scripts y una ejecución programada a través del cron del sistema tendremos, en muy poco tiempo, resuelto el problema de los backups de nuestras bases de datos (My|Postgre)SQL.
PostgreSQL: Obtener la configuración de PostgreSQL en HTML
Para obtener la configuración de PostgreSQL en formato HTML vamos a crear un fichero llamado pgsql_settings.psql con el siguiente contenido:
\o pgsql_settings.html
\pset footer off
\T 'cellspacing=0 cellpadding=0'
\qecho '<html>'
\qecho '<head>'
\qecho '<style>'
\qecho '@charset "utf-8";'
\qecho 'body {'
\qecho ' background-color: #FFF;'
\qecho ' color: #000;'
\qecho ' font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;'
\qecho '}'
\qecho 'table {'
\qecho ' background-color:#F5D5BC;'
\qecho ' border-collapse:collapse;'
\qecho ' width:700px;'
\qecho ' margin:10px auto;'
\qecho '}'
\qecho 'caption {'
\qecho ' font-variant:small-caps;'
\qecho ' font-size:24px;'
\qecho '}'
\qecho 'tr {'
\qecho ' vertical-align:top;'
\qecho '}'
\qecho 'th {'
\qecho ' background-color:#88382D;'
\qecho ' color:#FFF;'
\qecho ' font-size:18px;'
\qecho '}'
\qecho 'td {'
\qecho ' padding:2px 10px;'
\qecho ' font-size:14px;'
\qecho '}'
\qecho '.even {'
\qecho ' background-color:#F9E3CB;'
\qecho '}'
\qecho 'footer {'
\qecho ' text-align:center;'
\qecho '}'
\qecho '</style>'
\qecho '<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>'
\qecho '<script type="text/javascript">'
\qecho '$(function() {'
\qecho ' $(\'tr:nth-child(2n+1)\').addClass(\'even\');'
\qecho '});'
\qecho '</script>'
\qecho '<title>PostgreSQL Settings</title></head><body>'
\qecho '<table><caption>PostgreSQL Settings</caption></table>'
\pset format html
SELECT name, setting || ' ' || unit as setting_unit, category, context, min_val, max_val, reset_val FROM pg_settings ORDER BY name;
\H
\qecho '</td></tr></table>'
\qecho '<footer><small>Fecha:' `date` '</small></footer>'
\qecho '</body></html>'
\o
Ejecutamos el fichero del siguiente modo:
psql -f pgsql_settings.psql
La ejecución del comando anterior nos habrá generado un fichero llamado pgsql_settings.html con la configuración de PostgreSQL.
Como podéis ver en la siguiente imagen, el informe recoge el nombre del parámetro de PostgreSQL, su valor actual y la unidad usada, categoría, contexto, valor mínimo y máximo que puede tomar el parámetro y el valor de reset.
Hay algún campo más que puede ser mostrado en el informe si lo deseas, así que, con este punto de partida y con los enlaces relacionados, puedes crear tu propio informe en HTML con la configuración de PostgreSQL.
¿Para qué puede servir esto?
- Para tener una visión más atractiva de la configuración de PostgreSQL que la proporcionada por la simple ejecución del SELECT vía psql.
- Para dejar accesible la configuración de PostgreSQL vía http y poder consultarla en cualquier momento sin necesidad de conectar con el servidor.
- Para recopilar la configuración de múltiples servidores de PostgreSQL en un formato más amable.
- Para que cuando te pidan la configuración de tu PostgreSQL en un foro de soporte puedas dar un enlace al fichero html en lugar de un copy/paste plano.
- Para poder escribir una entrada en un blog.
- Para aprender, jugar, pasar el tiempo, divertirte…
Enlaces relacionados:
- PostgreSQL: Documentation: pg_settings
Tu opinión es importante, por favor, si has llegado hasta aquí, dedica 2 segundos a darme tu opión sobre el blog. Gracias.