Al fin luego de tanto luchar hemos encontrado la respuesta de este contratiempo que tantos lectores de este espacio han presentado. Si quieres compartir algo no dudes en aportar tu conocimiento.
- 27.4.1. ANALIZAR los informes de progreso
- 27.4.2. CREAR ÍNDICE Informes de progreso
- 27.4.3. Informes de progreso de VACUUM
- 27.4.4. Informes de progreso de CLUSTER
- 27.4.5. Informes de progreso de la copia de seguridad base
PostgreSQL tiene la capacidad de informar el progreso de ciertos comandos durante la ejecución del comando. Actualmente, los únicos comandos que admiten informes de progreso son ANALYZE
, CLUSTER
, CREATE INDEX
, VACUUM
, y BASE_BACKUP (es decir, comando de replicación que pg_basebackup emite para realizar una copia de seguridad base). Esto puede ampliarse en el futuro.
27.4.1. ANALIZAR los informes de progreso
Cuando sea ANALYZE
está corriendo, el pg_stat_progress_analyze
La vista contendrá una fila para cada backend que esté ejecutando ese comando. Las tablas a continuación describen la información que se reportará y brindan información sobre cómo interpretarla.
Tabla 27.32. pg_stat_progress_analyze
Vista
Tipo de columna Descripción |
---|
ID de proceso del backend. |
OID de la base de datos a la que está conectado este backend. |
Nombre de la base de datos a la que está conectado este backend. |
OID de la tabla que se analiza. |
Fase de procesamiento actual. Consulte la Tabla 27.33. |
Número total de bloques de montón que se muestrearán. |
Número de bloques de montón analizados. |
Número de estadísticas ampliadas. |
Número de estadísticas extendidas calculadas. Este contador solo avanza cuando la fase es |
Número de tablas secundarias. |
Número de tablas secundarias escaneadas. Este contador solo avanza cuando la fase es |
OID de la tabla secundaria que se está escaneando actualmente. Este campo solo es válido cuando la fase es |
Tabla 27.33. ANALIZAR fases
Fase | Descripción |
---|---|
initializing |
El comando se está preparando para comenzar a escanear el montón. Se espera que esta fase sea muy breve. |
acquiring sample rows |
El comando actualmente está escaneando la tabla dada por relid para obtener filas de muestra. |
acquiring inherited sample rows |
El comando actualmente está escaneando tablas secundarias para obtener filas de muestra. Columnas child_tables_total , child_tables_done , y current_child_table_relid contienen la información de progreso para esta fase. |
computing statistics |
El comando calcula estadísticas de las filas de muestra obtenidas durante la exploración de la tabla. |
computing extended statistics |
El comando calcula estadísticas extendidas a partir de las filas de muestra obtenidas durante la exploración de la tabla. |
finalizing analyze |
El comando se está actualizando pg_class . Cuando se complete esta fase, ANALYZE terminará. |
Nota
Tenga en cuenta que cuando
ANALYZE
se ejecuta en una tabla particionada, todas sus particiones también se analizan de forma recursiva como también se menciona en ANALYZE. En ese caso,ANALYZE
El progreso se informa primero para la tabla principal, por lo que se recopilan sus estadísticas de herencia, seguidas de las de cada partición.
27.4.2. CREAR ÍNDICE Informes de progreso
Cuando sea CREATE INDEX
o REINDEX
está corriendo, el pg_stat_progress_create_index
La vista contendrá una fila para cada backend que actualmente esté creando índices. Las tablas a continuación describen la información que se reportará y brindan información sobre cómo interpretarla.
Tabla 27.34. pg_stat_progress_create_index
Vista
Tipo de columna Descripción |
---|
ID de proceso del backend. |
OID de la base de datos a la que está conectado este backend. |
Nombre de la base de datos a la que está conectado este backend. |
OID de la tabla en la que se está creando el índice. |
OID del índice que se está creando o reindexando. Durante una no concurrente |
El comando que se está ejecutando: |
Fase de procesamiento actual de la creación del índice. Consulte la Tabla 27.35. |
Número total de casilleros a esperar, cuando corresponda. |
Número de casilleros ya esperados. |
ID de proceso del casillero que se está esperando actualmente. |
Número total de bloques a procesar en la fase actual. |
Número de bloques ya procesados en la fase actual. |
Número total de tuplas que se procesarán en la fase actual. |
Número de tuplas ya procesadas en la fase actual. |
Al crear un índice en una tabla particionada, esta columna se establece en el número total de particiones en las que se creará el índice. |
Al crear un índice en una tabla particionada, esta columna se establece en el número de particiones en las que se completó el índice. |
Tabla 27.35. CREAR Fases de ÍNDICE
Fase | Descripción |
---|---|
initializing |
CREATE INDEX o REINDEX se está preparando para crear el índice. Se espera que esta fase sea muy breve. |
waiting for writers before build |
CREATE INDEX CONCURRENTLY o REINDEX CONCURRENTLY está esperando transacciones con bloqueos de escritura que potencialmente pueden ver la tabla para finalizar. Esta fase se omite cuando no está en modo concurrente. Columnas lockers_total , lockers_done y current_locker_pid contienen la información de progreso para esta fase. |
building index |
El índice se construye mediante el código específico del método de acceso. En esta fase, los métodos de acceso que respaldan los informes de progreso completan sus propios datos de progreso, y la subfase se indica en esta columna. Típicamente, blocks_total y blocks_done contendrá datos de progreso, así como potencialmente tuples_total y tuples_done . |
waiting for writers before validation |
CREATE INDEX CONCURRENTLY o REINDEX CONCURRENTLY está esperando que finalicen las transacciones con bloqueos de escritura que potencialmente pueden escribir en la tabla. Esta fase se omite cuando no está en modo concurrente. Columnas lockers_total , lockers_done y current_locker_pid contienen la información de progreso para esta fase. |
index validation: scanning index |
CREATE INDEX CONCURRENTLY está escaneando el índice en busca de tuplas que deban validarse. Esta fase se omite cuando no está en modo concurrente. Columnas blocks_total (establecido en el tamaño total del índice) y blocks_done contienen la información de progreso para esta fase. |
index validation: sorting tuples |
CREATE INDEX CONCURRENTLY está clasificando la salida de la fase de escaneo de índices. |
index validation: scanning table |
CREATE INDEX CONCURRENTLY está escaneando la tabla para validar las tuplas de índice recopiladas en las dos fases anteriores. Esta fase se omite cuando no está en modo concurrente. Columnas blocks_total (ajustado al tamaño total de la mesa) y blocks_done contienen la información de progreso para esta fase. |
waiting for old snapshots |
CREATE INDEX CONCURRENTLY o REINDEX CONCURRENTLY está esperando transacciones que potencialmente pueden ver la tabla para publicar sus instantáneas. Esta fase se omite cuando no está en modo concurrente. Columnas lockers_total , lockers_done y current_locker_pid contienen la información de progreso para esta fase. |
waiting for readers before marking dead |
REINDEX CONCURRENTLY está esperando que finalicen las transacciones con bloqueos de lectura en la mesa, antes de marcar el índice antiguo como muerto. Esta fase se omite cuando no está en modo concurrente. Columnas lockers_total , lockers_done y current_locker_pid contienen la información de progreso para esta fase. |
waiting for readers before dropping |
REINDEX CONCURRENTLY está esperando que finalicen las transacciones con bloqueos de lectura en la mesa, antes de eliminar el índice anterior. Esta fase se omite cuando no está en modo concurrente. Columnas lockers_total , lockers_done y current_locker_pid contienen la información de progreso para esta fase. |
27.4.3. Informes de progreso de VACUUM
Cuando sea VACUUM
está corriendo, el pg_stat_progress_vacuum
La vista contendrá una fila para cada backend (incluidos los procesos de trabajo de autovacío) que actualmente está aspirando. Las tablas a continuación describen la información que se reportará y brindan información sobre cómo interpretarla. Progreso para VACUUM FULL
los comandos se informa a través de pg_stat_progress_cluster
porque ambos VACUUM FULL
y CLUSTER
reescribe la tabla, mientras que regular VACUUM
solo lo modifica en su lugar. Consulte la Sección 27.4.4.
Tabla 27.36. pg_stat_progress_vacuum
Vista
Tipo de columna Descripción |
---|
ID de proceso del backend. |
OID de la base de datos a la que está conectado este backend. |
Nombre de la base de datos a la que está conectado este backend. |
OID de la mesa que se está aspirando. |
Fase de procesamiento actual del vacío. Consulte la Tabla 27.37. |
Número total de bloques de pila en la tabla. Este número se informa al comienzo del escaneo; Los bloques agregados más tarde no serán (y no necesitan ser) visitados por este |
Número de bloques de montón analizados. Debido a que el mapa de visibilidad se utiliza para optimizar los escaneos, algunos bloques se omitirán sin inspección; Los bloques omitidos se incluyen en este total, por lo que este número eventualmente será igual a |
Número de bloques de pila aspirados. A menos que la tabla no tenga índices, este contador solo avanza cuando la fase es |
Número de ciclos de vacío de índice completados. |
Número de tuplas muertas que podemos almacenar antes de tener que realizar un ciclo de vacío de índice, basado en maintenance_work_mem. |
Número de tuplas muertas recopiladas desde el último ciclo de vacío de índice. |
Tabla 27.37. Fases VACÍO
Fase | Descripción |
---|---|
initializing |
VACUUM se está preparando para comenzar a escanear el montón. Se espera que esta fase sea muy breve. |
scanning heap |
VACUUM actualmente está escaneando el montón. Podará y desfragmentará cada página si es necesario, y posiblemente realizará una actividad de congelación. los heap_blks_scanned La columna se puede usar para monitorear el progreso del escaneo. |
vacuuming indexes |
VACUUM actualmente está aspirando los índices. Si una tabla tiene índices, esto sucederá al menos una vez por vacío, después de que el montón se haya escaneado por completo. Puede suceder varias veces por vacío si maintenance_work_mem no es suficiente para almacenar el número de tuplas muertas encontradas. |
vacuuming heap |
VACUUM actualmente está aspirando el montón. Aspirar el montón es distinto de escanear el montón y ocurre después de cada instancia de índices de aspiración. Si heap_blks_scanned es menos que heap_blks_total , el sistema volverá a escanear el montón después de que se complete esta fase; de lo contrario, comenzará a limpiar los índices después de que se complete esta fase. |
cleaning up indexes |
VACUUM actualmente está limpiando índices. Esto ocurre después de que el montón se haya escaneado por completo y se haya completado todo el vaciado de los índices y el montón. |
truncating heap |
VACUUM actualmente está truncando el montón para devolver páginas vacías al final de la relación con el sistema operativo. Esto ocurre después de limpiar índices. |
performing final cleanup |
VACUUM está realizando la limpieza final. Durante esta fase, VACUUM aspirará el mapa de espacio libre, actualizará las estadísticas en pg_class e informar estadísticas al recopilador de estadísticas. Cuando se complete esta fase, VACUUM terminará. |
27.4.4. Progreso del CLUSTER Reportando
Cuando sea CLUSTER
o VACUUM FULL
está corriendo, el pg_stat_progress_cluster
La vista contendrá una fila para cada backend que actualmente esté ejecutando cualquiera de los comandos. Las tablas a continuación describen la información que se reportará y brindan información sobre cómo interpretarla.
Tabla 27.38. pg_stat_progress_cluster
Vista
Tipo de columna Descripción |
---|
ID de proceso del backend. |
OID de la base de datos a la que está conectado este backend. |
Nombre de la base de datos a la que está conectado este backend. |
OID de la tabla que se está agrupando. |
El comando que se está ejecutando. Cualquiera |
Fase de procesamiento actual. Consulte la Tabla 27.39. |
Si la tabla se escanea usando un índice, este es el OID del índice que se está usando; de lo contrario, es cero. |
Número de tuplas de montón analizadas. Este contador solo avanza cuando la fase es |
Número de tuplas de montón escritas. Este contador solo avanza cuando la fase es |
Número total de bloques de pila en la tabla. Este número se informa a principios de |
Número de bloques de montón analizados. Este contador solo avanza cuando la fase es |
Número de índices reconstruidos. Este contador solo avanza cuando la fase es |
Tabla 27.39. Fases CLUSTER y VACUUM FULL
Fase | Descripción |
---|---|
initializing |
El comando se está preparando para comenzar a escanear el montón. Se espera que esta fase sea muy breve. |
seq scanning heap |
El comando actualmente está escaneando la tabla usando un escaneo secuencial. |
index scanning heap |
CLUSTER actualmente está escaneando la tabla usando un escaneo de índice. |
sorting tuples |
CLUSTER actualmente está ordenando tuplas. |
writing new heap |
CLUSTER actualmente está escribiendo el nuevo montón. |
swapping relation files |
Actualmente, el comando está intercambiando archivos recién construidos en su lugar. |
rebuilding index |
Actualmente, el comando está reconstruyendo un índice. |
performing final cleanup |
El comando está realizando una limpieza final. Cuando se complete esta fase, CLUSTER o VACUUM FULL terminará. |
27.4.5. Informes de progreso de la copia de seguridad base
Siempre que una aplicación como pg_basebackup esté realizando una copia de seguridad base, pg_stat_progress_basebackup
La vista contendrá una fila para cada proceso de remitente de WAL que esté ejecutando actualmente el BASE_BACKUP
comando de replicación y transmisión de la copia de seguridad. Las tablas a continuación describen la información que se reportará y brindan información sobre cómo interpretarla.
Cuadro 27.40. pg_stat_progress_basebackup
Vista
Tipo de columna Descripción |
---|
ID de proceso de un proceso de remitente WAL. |
Fase de procesamiento actual. Consulte la Tabla 27.41. |
Cantidad total de datos que se transmitirán. Esto se estima y se informa a principios de |
Cantidad de datos transmitidos. Este contador solo avanza cuando la fase es |
Número total de espacios de tabla que se transmitirán. |
Número de espacios de tabla transmitidos. Este contador solo avanza cuando la fase es |
Cuadro 27.41. Fases de respaldo base
Fase | Descripción |
---|---|
initializing |
El proceso del remitente de WAL se está preparando para comenzar la copia de seguridad. Se espera que esta fase sea muy breve. |
waiting for checkpoint to finish |
El proceso del remitente de WAL se está realizando actualmente pg_start_backup para prepararse para realizar una copia de seguridad base y esperar a que finalice el punto de control de inicio de la copia de seguridad. |
estimating backup size |
El proceso del remitente de WAL está estimando actualmente la cantidad total de archivos de base de datos que se transmitirán como copia de seguridad base. |
streaming database files |
El proceso del remitente de WAL actualmente está transmitiendo archivos de base de datos como copia de seguridad base. |
waiting for wal archiving to finish |
El proceso del remitente de WAL se está realizando actualmente pg_stop_backup para finalizar la copia de seguridad y esperar a que todos los archivos WAL necesarios para que la copia de seguridad base se archive correctamente. Si alguno --wal-method=none o --wal-method=stream se especifica en pg_basebackup, la copia de seguridad finalizará cuando se complete esta fase. |
transferring wal files |
El proceso del remitente de WAL está transfiriendo actualmente todos los registros de WAL generados durante la copia de seguridad. Esta fase ocurre después waiting for wal archiving to finish fase si --wal-method=fetch se especifica en pg_basebackup. La copia de seguridad finalizará cuando se complete esta fase. |
Anterior | Hasta | próximo |
27.3. Visualización de bloqueos | Hogar | 27,5. Seguimiento dinámico |
Aquí tienes las reseñas y calificaciones
Si te mola el proyecto, tienes la habilidad dejar un enunciado acerca de qué te ha gustado de este artículo.