vacuumdb – recolecta basura y analiza una base de datos PostgreSQL

Sinopsis

vacuumdb [connection-option…] [option…] [ -t | --tabletable [( 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 entorno PGDATABASE. Si no se establece, se utiliza el nombre de usuario especificado para la conexión. los dbname 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, el postgres 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

PGDATABASEPGHOSTPGPORTPGUSER

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 y never.

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 xyzzyy 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