mirror of https://github.com/postgres/postgres
59 lines
1.6 KiB
Plaintext
59 lines
1.6 KiB
Plaintext
$PostgreSQL: pgsql/contrib/vacuumlo/README.vacuumlo,v 1.5 2005/06/23 00:06:37 tgl Exp $
|
|
|
|
This is a simple utility that will remove any orphaned large objects out of a
|
|
PostgreSQL database. An orphaned LO is considered to be any LO whose OID
|
|
does not appear in any OID data column of the database.
|
|
|
|
If you use this, you may also be interested in the lo_manage trigger in
|
|
contrib/lo. lo_manage is useful to try to avoid creating orphaned LOs
|
|
in the first place.
|
|
|
|
|
|
Compiling
|
|
--------
|
|
|
|
Simply run make. A single executable "vacuumlo" is created.
|
|
|
|
|
|
Usage
|
|
-----
|
|
|
|
vacuumlo [options] database [database2 ... databasen]
|
|
|
|
All databases named on the command line are processed. Available options
|
|
include:
|
|
|
|
-v Write a lot of progress messages
|
|
-n Don't remove large objects, just show what would be done
|
|
-U username Username to connect as
|
|
-W Prompt for password
|
|
-h hostname Database server host
|
|
-p port Database server port
|
|
|
|
|
|
Method
|
|
------
|
|
|
|
First, it builds a temporary table which contains all of the OIDs of the
|
|
large objects in that 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.
|
|
|
|
The remaining entries in the temp table identify orphaned LOs. These are
|
|
removed.
|
|
|
|
|
|
Notes
|
|
-----
|
|
|
|
I decided to place this in contrib as it needs further testing, but hopefully,
|
|
this (or a variant of it) would make it into the backend as a "vacuum lo"
|
|
command in a later release.
|
|
|
|
Peter Mount <peter@retep.org.uk>
|
|
http://www.retep.org.uk
|
|
March 21 1999
|
|
|
|
Committed April 10 1999 Peter
|