Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Eliminar la hinchazón con pg_repack
Puede usar la pg_repack extensión para eliminar el exceso de tablas e índices con un bloqueo mínimo de la base de datos. Puede crear esta extensión en la instancia de base de datos y ejecutar el pg_repack cliente (si la versión del cliente coincide con la versión de la extensión) desde Amazon Elastic Compute Cloud (Amazon EC2) o desde un ordenador que se pueda conectar a la base de datos. 
Por el contrarioVACUUM FULL, pg_repack no requiere tiempo de inactividad ni un período de mantenimiento y no bloquea otras sesiones.
pg_repackes útil en situaciones en las que VACUUM FULLCLUSTER, o REINDEX puede que no, funcione. Crea una tabla nueva que contiene los datos de la tabla sobrecargada, realiza un seguimiento de los cambios con respecto a la tabla original y, a continuación, reemplaza la tabla original por la nueva. No bloquea la tabla original para operaciones de lectura o escritura mientras crea la nueva tabla.
Se puede utilizar pg_repack para una tabla completa o para un índice. Para ver una lista de tareas, consulta la documentación de pg_repack
Limitaciones:
- 
            Para que se ejecute pg_repack, la tabla debe tener una clave principal o un índice único.
- 
            pg_repackno funcionará con tablas temporales.
- 
            pg_repackno funcionará en tablas que tengan índices globales.
- 
            Cuando pg_repackestá en curso, no se pueden realizar operaciones DDL en las tablas.
En la siguiente tabla se describen las diferencias entre pg_repack yVACUUM FULL.
| 
 | 
 | 
| Comando integrado | Una extensión que ejecutas desde Amazon EC2 o desde tu ordenador local | 
| Requiere un  | Requiere un  | 
| Funciona con todas las mesas | Funciona solo en tablas que tienen claves principales y únicas | 
| Requiere el doble del almacenamiento que consumen la tabla y los índices | Requiere el doble del almacenamiento que consumen la tabla y los índices | 
Para ejecutar pg_repack en una tabla, usa el comando: 
pg_repack -h <host> -d <dbname> --table <tablename> -k
Para ejecutar pg_repack en un índice, utilice el comando:
pg_repack -h <host> -d <dbname> --index <index name>
Para obtener más información, consulte la entrada del AWS blog Eliminar la hinchazón de Amazon Aurora y RDS para PostgreSQL
Advertencia
El error-on-invalid-index error pg_repack suele significar que uno o más índices de la tabla están dañados o no son válidos. pg_repackno puede funcionar de forma segura en tablas que tienen índices no válidos porque depende de los índices para mantener la coherencia de los datos durante el proceso de reempaquetado. 
Este error se produce cuando:
- El índice está marcado como no válido (por ejemplo, debido a un error en una - CREATE INDEX CONCURRENTLYsentencia).
- El índice está dañado (posiblemente debido a problemas de hardware o a cierres bruscos). 
Utilice la siguiente consulta para identificar los índices no válidos y suprimirlos primero si los encuentra.
SELECT indexrelid::regclass, indisvalid FROM pg_index WHERE indrelid = 'orders'::regclass AND NOT indisvalid; Drop the invalid index: DROP INDEX index_name;