22.6. The Engine Vacuum Tool
22.6.1. The Engine Vacuum Tool
The Engine Vacuum tool maintains PostgreSQL databases by updating tables and removing dead rows, allowing disk space to be reused. See the PostgreSQL documentation for information about the VACUUM
command and its parameters.
The Engine Vacuum command is engine-vacuum
. You must log in as the root user and provide the administration credentials for the Red Hat Virtualization environment.
Alternatively, the Engine Vacuum tool can be run while using the engine-setup
command to customize an existing installation:
$ engine-setup ... [ INFO ] Stage: Environment customization ... Perform full vacuum on the engine database engine@localhost? This operation may take a while depending on this setup health and the configuration of the db vacuum process. See https://www.postgresql.org/docs/10/static/sql-vacuum.html (Yes, No) [No]:
The Yes option runs the Engine Vacuum tool in full vacuum verbose mode.
22.6.2. Engine Vacuum Modes
Engine Vacuum has two modes:
- Standard Vacuum
Frequent standard vacuuming is recommended.
Standard vacuum removes dead row versions in tables and indexes and marks the space as available for future reuse. Frequently updated tables should be vacuumed on a regular basis. However, standard vacuum does not return the space to the operating system.
Standard vacuum, with no parameters, processes every table in the current database.
- Full Vacuum
Full vacuum is not recommended for routine use, but should only be run when a significant amount of space needs to be reclaimed from within the table.
Full vacuum compacts the tables by writing a new copy of the table file with no dead space, thereby enabling the operating system to reclaim the space. Full vacuum can take a long time.
Full vacuum requires extra disk space for the new copy of the table, until the operation completes and the old copy is deleted. Because full vacuum requires an exclusive lock on the table, it cannot be run in parallel with other uses of the table.
22.6.3. Syntax for the engine-vacuum Command
The basic syntax for the engine-vacuum
command is:
# engine-vacuum
# engine-vacuum option
Running the engine-vacuum
command with no options performs a standard vacuum.
There are several parameters to further refine the engine-vacuum
command.
General Options
-h
--help
-
Displays information on how to use the
engine-vacuum
command. -a
- Runs a standard vacuum, analyzes the database, and updates the optimizer statistics.
-A
- Analyzes the database and updates the optimizer statistics, without vacuuming.
-f
- Runs a full vacuum.
-v
- Runs in verbose mode, providing more console output.
-t table_name
Vacuums a specific table or tables.
# engine-vacuum -f -v -t vm_dynamic -t vds_dynamic