Archivo

Archive for the ‘Bases de datos’ Category

PostgreSQL: Consultar el tamaño de bases de datos, tablas y objetos

2 noviembre, 2015 2 comentarios

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.
Categorías: Bases de datos, PostgreSQL Etiquetas:

PostgreSQL: Como cambiar la password de un usuario

8 May, 2014 8 comentarios

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'"
Categorías: Bases de datos, PostgreSQL Etiquetas:

Oracle DB: Habilitar y deshabilitar GATHER_STATS_JOB

27 noviembre, 2013 Deja un comentario

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’);
Categorías: Oracle Etiquetas:

Backups de bases de datos MySQL y PostgreSQL

14 marzo, 2013 Deja un comentario

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

22 noviembre, 2012 Deja un comentario

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.

pgsql settings

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:

Tu opinión es importante, por favor, si has llegado hasta aquí, dedica 2 segundos a darme tu opión sobre el blog. Gracias.

Categorías: Bases de datos, PostgreSQL Etiquetas: