Bienvenido a nuestro sitio, aquí vas a hallar la respuesta de lo que buscas.
vacuumdb – recolecta basura y analiza una base de datos PostgreSQL
Sinopsis
vacuumdb
[connection-option
…] [option
…] [ -t
| --table
table
[( column
[,…] )]… [dbname
]
vacuumdb
[connection-option
…] [option
…] -a
| --all
Descripción
vacuumdb es una utilidad para limpiar una base de datos PostgreSQL. vacuumdb también generará estadísticas internas utilizadas por el optimizador de consultas de PostgreSQL.
vacuumdb es un envoltorio del comando SQL VACUUM. No existe una diferencia efectiva entre aspirar y analizar bases de datos a través de esta utilidad y a través de otros métodos para acceder al servidor.
Opciones
vacuumdb acepta los siguientes argumentos de la línea de comandos:
-a
--all
-
Vacíe todas las bases de datos.
[-d] dbname
[--dbname=]dbname
-
Especifica el nombre de la base de datos que se va a limpiar o analizar, cuando
-a
/--all
no se utiliza. Si no se especifica, el nombre de la base de datos se lee de la variable de entornoPGDATABASE
. Si no se establece, se utiliza el nombre de usuario especificado para la conexión. losdbname
puede ser un conexión string. Si es así, conexión string Los parámetros anularán cualquier opción de línea de comandos en conflicto. --disable-page-skipping
-
Desactive la omisión de páginas según el contenido del mapa de visibilidad.
Nota
Esta opción solo está disponible para servidores que ejecutan PostgreSQL 9.6 y versiones posteriores.
-e
--echo
-
Haz eco de los comandos que genera vacuumdb y envía al servidor.
-f
--full
-
Llevar a cabo “lleno“ Pasar la aspiradora.
-F
--freeze
-
Agresivamente “congelar“ tuplas.
-j njobs
--jobs=njobs
-
Ejecute el vacío o analice los comandos en paralelo ejecutando
njobs
comandos simultáneamente. Esta opción puede reducir el tiempo de procesamiento, pero también aumenta la carga en el servidor de la base de datos.vacíodb se abrirá
njobs
conexiones a la base de datos, así que asegúrese de que su configuración de max_connections sea lo suficientemente alta para acomodar todas las conexiones.Tenga en cuenta que el uso de este modo junto con
-f
(FULL
) puede provocar fallos de interbloqueo si determinados catálogos del sistema se procesan en paralelo. --min-mxid-age mxid_age
-
Ejecute solo los comandos de vacío o análisis en tablas con una antigüedad de ID de multixact de al menos
mxid_age
. Esta configuración es útil para priorizar las tablas a procesar para evitar el envasado de ID multixecto (consulte la Sección 24.1.5.1).A los efectos de esta opción, la edad de ID multixecto de una relación es la mayor de las edades de la relación principal y su tabla TOAST asociada, si existe. Dado que los comandos emitidos por vacuumdb también procesarán la tabla TOAST para la relación si es necesario, no es necesario considerarla por separado.
Nota
Esta opción solo está disponible para servidores que ejecutan PostgreSQL 9.6 y versiones posteriores.
--min-xid-age xid_age
-
Solo ejecute los comandos de vacío o análisis en tablas con una antigüedad de ID de transacción de al menos
xid_age
. Esta configuración es útil para priorizar tablas a procesar para evitar el envolvente de ID de transacción (consulte la Sección 24.1.5).Para los propósitos de esta opción, la antigüedad del ID de transacción de una relación es la mayor de las edades de la relación principal y su tabla TOAST asociada, si existe. Dado que los comandos emitidos por vacuumdb también procesarán la tabla TOAST para la relación si es necesario, no es necesario considerarla por separado.
Nota
Esta opción solo está disponible para servidores que ejecutan PostgreSQL 9.6 y versiones posteriores.
-P parallel_degree
--parallel=parallel_degree
-
Especifique el grado paralelo de vacío paralelo. Esto permite que el vacío aproveche varias CPU para procesar índices. Ver VACÍO.
Nota
Esta opción solo está disponible para servidores que ejecutan PostgreSQL 13 y versiones posteriores.
-q
--quiet
-
No muestre mensajes de progreso.
--skip-locked
-
Omita las relaciones que no se pueden bloquear inmediatamente para su procesamiento.
Nota
Esta opción solo está disponible para servidores que ejecutan PostgreSQL 12 y versiones posteriores.
-t table [ (column [,...]) ]
--table=table [ (column [,...]) ]
-
Limpiar o analizar
table
solamente. Los nombres de columna solo se pueden especificar junto con el--analyze
o--analyze-only
opciones. Se pueden aspirar varias tablas escribiendo varios-t
interruptores.Propina
Si especifica columnas, probablemente tenga que escapar de los paréntesis del shell. (Vea los ejemplos a continuación).
-v
--verbose
-
Imprima información detallada durante el procesamiento.
-V
--version
-
Imprima la versión de vacuumdb y salga.
-z
--analyze
-
También calcule estadísticas para que las utilice el optimizador.
-Z
--analyze-only
-
Calcule únicamente las estadísticas para que las utilice el optimizador (sin vacío).
--analyze-in-stages
-
Solo calcule estadísticas para que las use el optimizador (sin vacío), como
--analyze-only
. Ejecute varias (actualmente tres) etapas de análisis con diferentes ajustes de configuración, para producir estadísticas utilizables más rápido.Esta opción es útil para analizar una base de datos que se llenó recientemente a partir de un volcado restaurado o por
pg_upgrade
. Esta opción intentará crear algunas estadísticas lo más rápido posible para que la base de datos sea utilizable y luego producirá estadísticas completas en las etapas posteriores. -?
--help
-
Muestre ayuda sobre los argumentos de la línea de comandos de vacuumdb y salga.
vacuumdb también acepta los siguientes argumentos de la línea de comandos para los parámetros de conexión:
-h host
--host=host
-
Especifica el nombre de host de la máquina en la que se ejecuta el servidor. Si el valor comienza con una barra, se usa como directorio para el socket de dominio Unix.
-p port
--port=port
-
Especifica el puerto TCP o la extensión del archivo de socket de dominio Unix local en el que el servidor está escuchando conexiones.
-U username
--username=username
-
Nombre de usuario para conectarse como.
-w
--no-password
-
Nunca emita una solicitud de contraseña. Si el servidor requiere autenticación de contraseña y una contraseña no está disponible por otros medios, como
.pgpass
archivo, el intento de conexión fallará. Esta opción puede ser útil en trabajos por lotes y scripts donde no hay ningún usuario presente para ingresar una contraseña. -W
--password
-
Obligue a vacuumdb a solicitar una contraseña antes de conectarse a una base de datos.
Esta opción nunca es esencial, ya que vacuumdb solicitará automáticamente una contraseña si el servidor exige autenticación de contraseña. Sin embargo, vacuumdb desperdiciará un intento de conexión al descubrir que el servidor quiere una contraseña. En algunos casos vale la pena escribir
-W
para evitar el intento de conexión adicional. --maintenance-db=dbname
-
Especifica el nombre de la base de datos a la que conectarse para descubrir qué bases de datos se deben aspirar, cuando
-a
/--all
se utiliza. Si no se especifica, elpostgres
se utilizará la base de datos, o si no existe,template1
se utilizará. Esto puede ser un conexión string. Si es así, conexión string Los parámetros anularán cualquier opción de línea de comandos en conflicto. Además, conexión string los parámetros que no sean el nombre de la base de datos en sí se reutilizarán cuando se conecte a otras bases de datos.
Medio ambiente
PGDATABASE
PGHOST
PGPORT
PGUSER
-
Parámetros de conexión predeterminados
PG_COLOR
-
Especifica si se debe utilizar color en los mensajes de diagnóstico. Los valores posibles son
always
,auto
ynever
.
Esta utilidad, como la mayoría de las otras utilidades de PostgreSQL, también usa las variables de entorno admitidas por libpq (consulte Sección 33.14).
Diagnósticos
En caso de dificultad, consulte VACUUM y psql para obtener información sobre posibles problemas y mensajes de error. El servidor de la base de datos debe estar ejecutándose en el host de destino. Además, se aplicarán las configuraciones de conexión predeterminadas y las variables de entorno utilizadas por la biblioteca front-end libpq.
Notas
Es posible que vacuumdb necesite conectarse varias veces al servidor PostgreSQL, solicitando una contraseña cada vez. Es conveniente tener un ~/.pgpass
archivo en tales casos. Ver Sección 33.15 para más información.
Ejemplos de
Para limpiar la base de datos test
:
$ vacuumdb test
Para limpiar y analizar para el optimizador una base de datos llamada bigdb
:
$ vacuumdb --analyze bigdb
Para limpiar una sola mesa foo
en una base de datos llamada xyzzy
y analizar una sola columna bar
de la tabla para el optimizador:
$ vacuumdb --analyze --verbose --table='foo(bar)' xyzzy
Ver también
ASPIRADORA
Anterior | Hasta | próximo |
reindexdb | Hogar | Aplicaciones de servidor PostgreSQL |
Tienes la posibilidad compartir este post si lograste el éxito.