Reducir el tamaño de la acumulación misteriosa principal/base

Reducir el tamaño de la acumulación misteriosa principal/base

Usando PostgreSQL 9.3. Tuve una consulta de larga duración que se actualizó alrededor de 8 millones de filas. Obviamente algo salió mal. 2 días después recibí una alerta de poco espacio en disco. Detuve la consulta y esto es lo que vi.

root@server:/var/lib/postgresql/9.3/main# du -BM * | sort -n
1M  global
1M  pg_notify
1M  pg_serial
1M  pg_snapshots
1M  pg_stat
1M  pg_stat_tmp
1M  pg_tblspc
1M  pg_twophase
1M  PG_VERSION
1M  pg_xlog/archive_status
1M  mydb.opts
1M  mydb.pid
3M  pg_subtrans
7M  base/1
7M  base/12030
7M  base/12035
11M base/22029472
21M pg_clog
72M pg_multixact/offsets
315M    pg_log
444M    pg_multixact/members
516M    pg_multixact
625M    pg_xlog
3493M   base/pgsql_tmp
61851M  base/22053373
65372M  base

Tenga en cuenta esto:61851M base/22053373

Dado que mis datos reales están en espacios de tabla almacenados en diferentes volúmenes, supongo que se trata de transacciones temporales que se han acumulado.

Hay algunas publicaciones en línea sobre problemas similares, pero no encontré ninguna solución canónica. En general, el consejo es "ejecutar VACÍO LLENO" y, a veces, la suciedad acumulada desaparece. Eso es lo que estoy haciendo ahora, pero está tomando su tiempo y temo que podría llenar el espacio restante en el disco (3 GB) y hacer que todo se derrumbe.

¿Alguien tuvo experiencia con esto? ¿Qué se almacena aquí? ¿Existe una forma segura de liberar rápidamente este espacio? O al menos muévalo a otra parte (tengo mucho espacio en mis discos de espacio de tabla).

Respuesta1

Me lo imaginé. Es mi error. Esta es una nueva base de datos que un colega creó en el espacio de tabla predeterminado en lugar de una de nuestras personalizadas.

Para aquellos que experimentan problemas similares, aquí hay algunas cosas que aprendí mientras investigaba. base/22053373en mi caso es oid de una base de datos. Puedes ver qué base de datos es así:

SELECT oid, * FROM pg_database

Cada archivo dentro lleva el nombre de oid de un tipo de página (tabla o no). Los archivos más grandes probablemente provengan de sus tablas más grandes. Conéctese a la base de datos y seleccione de pg_classla colección para descubrir cuál.

En este momento estoy moviendo db a un espacio de tabla personalizado usando

ALTER DATABASE mydb SET TABLESPACE mytablespace;

Estoy bastante seguro de que esto resolverá mi problema.

información relacionada