This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
how_to:database_issues [2013/03/15 08:29] – [PostgreSQL service not starting] paul | how_to:database_issues [2013/08/30 12:36] – paul | ||
---|---|---|---|
Line 3: | Line 3: | ||
VPOP3 version 3 and later use the [[http:// | VPOP3 version 3 and later use the [[http:// | ||
- | =====Disk Caching===== | + | * [[Database & Disk Caching]] |
- | + | | |
- | One key point is that, like all other high-end databases, PostgreSQL should not be run on a server with disk level [[http:// | + | * [[VPOP3DB/ |
- | + | ||
- | High-end RAID controllers often contain a battery backed write cache (BBWC) - in this case, if the power fails, the cached data is held in battery powered memory until the power is restored. After power is restored the cached data will be written to disk. In this case, using write back caching through the BBWC is perfectly safe (as long as power is not left off for so long that the batteries run down). | + | |
- | + | ||
- | It is slightly less safe, but still usually OK, to have a UPS with automated shutdown of the PC. You still have to ensure that the PC is not just turned off without shutting down properly. | + | |
- | + | ||
- | If you don't have either of these facilities, then make sure you turn off write-back caching in Windows. (Note that ' | + | |
- | + | ||
- | Exactly how you turn off write-back caching depends on your version of Windows, and the disk controller. | + | |
- | + | ||
- | The instructions below are for Windows 7 with standard SATA disks | + | |
- | + | ||
- | | + | |
- | - Under **Disk Drives** find the hard disk that VPOP3 is installed on, and right-click it and choose **Properties**\\ {{: | + | |
- | - Go to the **Policies** tab. Turn off **Enable write caching onthe device** and press **OK**\\ {{: | + | |
- | + | ||
- | =====Possible Conflicting Software===== | + | |
- | We strongly recommend that virus scanners exclude the VPOP3\pgsql\data folder and all subfolders. If a virus scanner decides to quarantine a file from within this folder structure, that can cause VPOP3 not to run, and could lead to data loss or corruption. | + | |
- | + | ||
- | We also recommend that backup software does not backup this folder structure. If a backup program opens a file for backup, and then the database server needs it, it can cause problems, and crashes. | + | |
=====Database corruption===== | =====Database corruption===== | ||
Line 38: | Line 19: | ||
If the PostgreSQL service doesn' | If the PostgreSQL service doesn' | ||
+ | * Look in the Windows // | ||
* Look in the VPOP3\pgsql\data\pg_log folder for a log file created at the time when you started VPOP3. If that is there, you can read that (using Notepad) and see if it reports any problems with files or ' | * Look in the VPOP3\pgsql\data\pg_log folder for a log file created at the time when you started VPOP3. If that is there, you can read that (using Notepad) and see if it reports any problems with files or ' | ||
- | * Look in the Windows event log for entries relating to PostgreSQL | ||
You can also try starting the PostgreSQL service manually: | You can also try starting the PostgreSQL service manually: | ||
Line 54: | Line 35: | ||
See what response you get to the pg_ctl command | See what response you get to the pg_ctl command | ||
+ | |||
+ | ====Event Viewer Entries==== | ||
+ | In the Windows Event Viewer, view the // | ||
+ | |||
+ | Depending on your installation, | ||
+ | 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: | ||
+ | | ||
+ | ===pg_ctl: this data directory appears to be running a pre-existing postmaster=== | ||
+ | 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 ' | ||
+ | |||
+ | To solve this, go to Windows TaskManager (Ctrl-Alt-Del - choose TaskManager), | ||
====PostgreSQL Log Entries==== | ====PostgreSQL Log Entries==== | ||
- | If you get **FATAL** 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. | + | 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. |
===no pg_hba.conf entry for host ":: | ===no pg_hba.conf entry for host ":: |