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).

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 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 vpop3. After you have run this you will need to reindex the database as well - use reindexdb -U vpop3. This “vacuum full” operation will generally take a lot longer than the 'clusterdb' program.

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. The default password is vpop3pass. This operation may take a while, and require some free disk space.

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