No hay una forma integrada de hacerlo - y all the approaches that check the file mtime described in other answers here are wrong. La única opción confiable es agregar desencadenantes a cada tabla que registre un cambio en una sola tabla de historial de cambios, lo que es terriblemente ineficiente y no puede hacerse retroactivamente.
Si solo le preocupa la "base de datos utilizada" frente a la "base de datos no utilizada", puede recopilar esta información de los archivos de registro de la base de datos con formato CSV. Detectar "modificado" frente a "no modificado" es mucho más difícil; considere SELECT writes_to_some_table(...)
.
Si no es necesario para detectar antigua actividad, puede utilizar pg_stat_database
, que registra la actividad desde las últimas estadísticas restablecen. ej .:
-[ RECORD 6 ]--+------------------------------
datid | 51160
datname | regress
numbackends | 0
xact_commit | 54224
xact_rollback | 157
blks_read | 2591
blks_hit | 1592931
tup_returned | 26658392
tup_fetched | 327541
tup_inserted | 1664
tup_updated | 1371
tup_deleted | 246
conflicts | 0
temp_files | 0
temp_bytes | 0
deadlocks | 0
blk_read_time | 0
blk_write_time | 0
stats_reset | 2013-12-13 18:51:26.650521+08
por lo que se puede ver que no tiene sido la actividad en este DB ya restablecer la última estadísticas. Sin embargo, no sé nada de lo que sucedió antes del reinicio de las estadísticas, por lo que si tuviera un DB que mostrara cero actividad desde que reinicié la cuenta hace media hora, no sabría nada útil.
Todos los enfoques que se basan en las pruebas de la operación El tiempo de modificación del archivo del sistema es incorrecto, vea http://dba.stackexchange.com/a/58246/7788 –