---
title: "vacuumlo"
id: vacuumlo
pg_version: "20devel"
---
# vacuumlo — remove orphaned large objects from a PostgreSQL database
## Synopsis
```
vacuumlo [option...] dbname...
```
## Description
vacuumlo is a simple utility program that will remove any "orphaned" large objects from a PostgreSQL database. An orphaned large object (LO) is considered to be any LO whose OID does not appear in any `oid` or `lo` data column of the database.
If you use this, you may also be interested in the `lo_manage` trigger in the [Section F.21](lo.md) module. `lo_manage` is useful to try to avoid creating orphaned LOs in the first place.
All databases named on the command line are processed.
## Options
vacuumlo accepts the following command-line arguments: **`-l limit`**, **`--limit=limit`**
Remove no more than `limit` large objects per transaction (default 1000). Since the server acquires a lock per LO removed, removing too many LOs in one transaction risks exceeding [`max_locks_per_transaction` (`integer`)](runtime-config-locks.md#guc-max-locks-per-transaction). Set the limit to zero if you want all removals done in a single transaction. **`-n`**, **`--dry-run`**
Don't remove anything, just show what would be done.**`-v`**, **`--verbose`**
Write a lot of progress messages.**`-V`**, **`--version`**
Print the vacuumlo version and exit. **`-?`**, **`--help`**
Show help about vacuumlo command line arguments, and exit.
vacuumlo also accepts the following command-line arguments for connection parameters: **`-h host`**, **`--host=host`**
Database server's host.**`-p port`**, **`--port=port`**
Database server's port.**`-U username`**, **`--username=username`**
User name to connect as.**`-w`**, **`--no-password`**
Never issue a password prompt. If the server requires password authentication and a password is not available by other means such as a `.pgpass` file, the connection attempt will fail. This option can be useful in batch jobs and scripts where no user is present to enter a password. **`-W`**, **`--password`**
Force vacuumlo to prompt for a password before connecting to a database. This option is never essential, since vacuumlo will automatically prompt for a password if the server demands password authentication. However, vacuumlo will waste a connection attempt finding out that the server wants a password. In some cases it is worth typing `-W` to avoid the extra connection attempt.
## Environment
**PGHOST**, **PGPORT**, **PGUSER**
Default connection parameters. This utility, like most other PostgreSQL utilities, also uses the environment variables supported by libpq (see [Section 32.15](libpq-envars.md)).
The environment variable PG_COLOR specifies whether to use color in diagnostic messages. Possible values are `always`, `auto` and `never`.
## Notes
vacuumlo works by the following method: First, vacuumlo builds a temporary table which contains all of the OIDs of the large objects in the selected database. It then scans through all columns in the database that are of type `oid` or `lo`, and removes matching entries from the temporary table. (Note: Only types with these names are considered; in particular, domains over them are not considered.) The remaining entries in the temporary table identify orphaned LOs. These are removed.
## Author
Peter Mount