This is an old revision of the document!
VPOP3DB is the current name of the VPOP3 instance of PostgreSQL. Earlier versions of VPOP3 used the name 'PostgreSQL' or 'PostgreSQL-VPOP3'.
If the PostgreSQL service doesn't start, or starts and immediately stops, there are a couple of things you can do:
You can also try starting the PostgreSQL service manually:
Then
c: cd \vpop3\pgsql\bin pg_ctl -D "C:\vpop3\pgsql\data" start
(If your VPOP3 is installed in a different directory, change the above paths as appropriate)
See what response you get to the pg_ctl command
In the Windows Event Viewer, view the Application event log, then look for Error entries for the PostgreSQL source.
Depending on your installation, the events may all be displayed as something like:
The description for Event ID xxxx from source PostgreSQL cannot be found. Either the component that raises this event is not installed on your local computer....
If that's the case, don't worry, just look lower down in the event message. It will say something like
The following information was included with the event
It is that information you need to see. Some possible event messages we have seen are:
This can happen if the PC previously crashed, or there was a power failure. When the PC restarts, it can take some time for the database server to run its recovery process. This may take longer than the time allowed by the database service controller, especially if the PC is busy doing other recovery tasks.
To solve this, go to Windows TaskManager (Ctrl-Alt-Del - choose TaskManager), then go to the Processes tab and click Show processes for all users. Sort by Image Name, and End Process on all the postgres.exe processes. Once those are all ended, then you should be able to start the VPOP3DB service manually.
If this is the case, then usually it means that a previous attempt to start PostgreSQL was made, but it timed out or something, and is now in a 'partially' running state.
To solve this, go to Windows TaskManager (Ctrl-Alt-Del - choose TaskManager), then go to the Processes tab and click Show processes for all users. Sort by Image Name, and End Process on all the postgres.exe processes. Once those are all ended, then you should be able to start the VPOP3DB service manually.
If there is an event saying FATAL: lock file “postmaster.pid” already exists, then this means that that file exists in the VPOP3\pgsql\data folder. Usually this should be deleted when PostgreSQL closes down when the computer is shut down or restarted.
First check that the database software is not running in a partial state. Go to Windows TaskManager (Ctrl-Alt-Del - choose TaskManager), then go to the Processes tab and click Show processes for all users. Sort by Image Name, and End Process on all the postgres.exe processes. Once those are all ended, then you should be able to start the VPOP3DB service manually.
If the database software is not running, you can manually delete the VPOP3\pgsql\data\postmaster.pid file before restarting the VPOP3 service.
We have seen this happen if a virus scanner decides to delete part of the PostgreSQL installation, or if the installation failed for some reason.
If you are using VPOP3 v5 or v6, the easiest thing to do is to manually reinstall the PostgreSQL part of the installation. To do this, open a command prompt and go to the VPOP3 installation directory. Then run:
bsdtar -xvf pgsql.tbz
If you are using VPOP3 v3 or v4, it is more difficult. Possibly the best thing to do is to install a temporary copy of the same version of VPOP3 on another PC, then copy the VPOP3\pgsql\bin, VPOP3\pgsql\lib and VPOP3\pgsql\share folders from that temporary installation to your VPOP3 PC.
If you get FATAL or PANIC entries in the PostgreSQL log files (in VPOP3\pgsql\data\pg_log) then they may give more information about why PostgreSQL could not start. Some log entries we have come across are below.
This usually happens if the PC where VPOP3 is installed used to only have IPv4 installed, and has now had IPv6 added. The PostgreSQL configuration needs altering to support IPv6.
Usually this only happens on Windows XP - earlier versions of Windows do not support IPv6, and later versions support IPv6 by default. Windows XP needs to have IPv6 manually installed
To fix this problem, go to the VPOP3\pgsql\data folder on the server and edit the pg_hba.conf file using a plain text editor such as Notepad.
Near the bottom of that file you should see a section saying
# TYPE DATABASE USER CIDR-ADDRESS METHOD # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: #host all all ::1/128 md5
Edit the last line to remove the # from the start, so it now says
# TYPE DATABASE USER CIDR-ADDRESS METHOD # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5
In some cases the last two lines may not exist, in which case you can simply copy those lines from the example above and paste them into your pg_hba.conf file
You will then need to restart the PostgreSQL service in Windows. Note that sometimes PostgreSQL cannot close down properly, and there will be unwanted 'postgres.exe' processes visible in Windows TaskManager on the Processes tab. If so, then end those processes manually, before restarting the service.