User Tools

Site Tools


how_to:database_maintenance

This is an old revision of the document!


Database Maintenance

VPOP3 uses the PostgreSQL database server for most of its data storage.

Normally this will not require any special maintenance, because it will manage itself.

To do any special database maintenance you will need to close down VPOP3 first, because PostgreSQL needs exclusive access to the database to perform any operations such as decreasing the size of database files. Note that these operations may take some time! There are some PostgreSQL utility programs in the VPOP3\pgsql\bin directory. These are command-line programs so need to be accessed from a command prompt.

If you are keen to get the best performance, you may feel like doing a 'clusterdb' and 'reindexdb' operation regularly, and that is generally OK (remember to close VPOP3 first, and restart it afterwards). However, it is usually not necessary. On our own busy VPOP3 servers we have run clusterdb and reindexdb ONCE in the past 3 years, and they still perform well.

(Doing a 'vacuumdb -f' should just be a last resort, we don't recommend you do that regularly at all - note that many people want this functionality to be removed from PostgreSQL totally, that is how bad it is considered to be).

Differences between versions of VPOP3

VPOP3 versions 3 and 4 installed PostgreSQL on the default port of 5432. In version 5 this was changed so that it will now find the first free port AFTER 5432, this was to avoid conflicts with other installations of PostgreSQL on the same computer. Usually this means that for version 5 PostgreSQL will be on port 5433 (but it may be a higher number, if other software is using port 5433).

You can tell which port VPOP3 is using by going to the Settings → Database → Connection page in the VPOP3 settings, and look at the PostgreSQL Port setting. If VPOP3 isn't running, then you can view the 'psql.bat' file in the VPOP3 installation directory. This will contain something like '-p 5433' which tells you the port number.

You need to specify the port number in all PostgreSQL commands, as '-p <portnumber>', eg -p 5433

Freeing disk space

In exceptional circumstances you may want to reduce the size of the database files created by the database system. Normally this is not recommended, as it reduces performance and can increase disk fragmentation, but if you are running short of disk space and have made a setting change which will lead to a reduction in the amount of data being stored (such as decreasing the time for which historical logging records are kept) then it may be something you wish to do.

The main program you should use for decreasing the size of the database is the 'clusterdb' program, so, from a command prompt, go to the VPOP3\pgsql\bin folder, and run clusterdb -U vpop3 -p <portnumber> vpop3. The default password is vpop3pass. This operation may take some time, and VPOP3 can't run while it is doing it. Also, the 'clusterdb' program may require a lot of free disk space while it is running, although it will use less when it has finished. (It creates a new copy of the table while it is running).

If you are very short of free disk space, then you can use the 'vacuumdb' program, but this is not recommended except as a last resort. To do this, run vacuumdb -f -U vpop3 -p <portnumber> vpop3. After you have run this you will need to reindex the database as well - use reindexdb -U vpop3 -p <portnumber> vpop3. This “vacuum full” operation will generally take a lot longer than the 'clusterdb' program.

Another way of freeing disk space is to do a database backup & restore. Again, this requires VPOP3 to be stopped while it is performed.

Rebuilding Indexes

If you suspect that indexes have become damaged, then you can reindex the database. Again, this requires VPOP3 to be stopped first.

Go to the VPOP3\pgsql\bin folder in a Windows command prompt. Then run reindexdb -U vpop3 -p <portnumber> vpop3. The default password is vpop3pass. This operation may take a while, and require some free disk space.

how_to/database_maintenance.1334580512.txt.gz · Last modified: 2018/11/14 10:44 (external edit)