======How to Backup VPOP3====== By default VPOP3 v3 and later will automatically perform a daily backup of the database into a file called DBBACK-x.DMP, where the backup file rotates on a weekly basis (DBBACK-0.DMP is Sunday's backup, DBBACK-1.DMP is Monday's backup, etc). In VPOP3 v5 and later, this database backup is a full backup of VPOP3. In VPOP3 v3 & v4, it is a partial backup, so you need to backup other files/data as well. See our "[[Handling Database Backups]]" article for some hints/tips for the automated backup process. =====VPOP3 version 5 and later===== To backup VPOP3 version 5 and later you should: * Backup the VPOP3 directory and subdirectories, //except// the **VPOP3\pgsql** directory tree. Make sure you backup the **[[reference:database|DBBack-.DMP]]** files, these contain the mailbox contents and other settings/data. The DBBack-.DMP files contain all the settings/data, so you can just backup those files now if you wish, although we'd recommend doing a full directory (except for the VPOP3\pgsql folder) backup if possible. You do not need to backup the registry in version 5 (as you did for earlier versions) because settings are now stored in the main database. ====Manual Database Backup==== If you want to make a Database backup at a specific time (rather than just the automated daily backups of the database) you can do the following: - Go to a command prompt on the VPOP3 computer, and go to the VPOP3 directory. - Run ''pgsql\bin\pg_dump -p -F c -U vpop3 -f database.dmp vpop3'' ('' is usually 5433)\\ e.g. //pgsql\bin\pg_dump -p 5433 -F c -U vpop3 -f database.dmp vpop3// - At the password prompt, type ''vpop3pass'' (This assumes a standard installation, if your PostgreSQL installation is non-standard, then you may need to change this command appropriately) This will create a file 'database.dmp' containing a backup of the database at the current state in the VPOP3 directory. ===Task Scheduler=== If you wish, you could create a task in Windows Task Scheduler to do this according to your own schedule. If you are going to script the backup process, you need to automate the password. There is no command-line parameter to do this. You can either set the environment variable PGPASSWORD before running the pg_dump program, or create a [[http://www.postgresql.org/docs/9.1/static/libpq-pgpass.html|pgpass.conf]] file. An example .CMD file is below - you may need to edit paths in this file before using it, and test it thoroughly in your situation before relying on it for your backups REM edit the paths in the following lines if necessary SET VPOP3PATH=c:\vpop3 SET BACKUPPATH=c:\vpop3 SET PGDUMPPATH=%VPOP3PATH%\pgsql\bin\pg_dump.exe SET PGPASSWORD=vpop3pass "%PGDUMPPATH%" -F c -v -h 127.0.0.1 -p 5433 -U vpop3 -f "%BACKUPPATH%\DBBack.tmp" vpop3 if errorlevel 1 goto error move "%BACKUPPATH%\dbback.tmp" "%BACKUPPATH%\dbback.dmp" goto end :error REM Can log/report errors here :end SET PGPASSWORD= ====Alternative Backup Procedures==== ===Replication/point-in-time recovery/incremental backups=== VPOP3 version 5 uses PostgreSQL 9.1, and stores all settings/messages in the database. This means that you can use alternative PostgreSQL backup procedures. These are outside the scope of this article, but for advanced users may give big benefits, eg hot standby servers, point-in-time-recovery (PITR), incremental backups etc. There are articles on the PostgreSQL website describing how to set these up, for instance: * [[http://www.postgresql.org/docs/9.1/interactive/continuous-archiving.html]] * [[http://www.postgresql.org/docs/9.1/interactive/high-availability.html]] * [[http://raghavt.blogspot.co.uk/2011/05/postgresql-streaming-replication-on.html]] * [[http://wiki.postgresql.org/wiki/Streaming_Replication]] There will generally be a minute or less of downtime to do this, as, apart from the reconfiguration of the master PostgreSQL server, the rest of the process can be performed with the master PostgreSQL server running and operating normally. See the [[PostgreSQL replication]] article for more details (We can help set this up for you if you wish, but this will be chargeable - the current rate is £100 + VAT for a simple setup (ie replicating over a LAN with file sharing available between the two PCs). If you have a more complicated setup (eg replicating over the Internet) this can be more complex as it can involve configuring VPNs etc, so the cost may be greater) ===Backing up the PostgreSQL database directly=== If you are using backup software which supports VSS (Volume Snapshot Service), then you can backup the entire VPOP3 directory including the pgsql\data folder. If you do this, then upon a restore, the database service will react as if there was a power failure, and perform the recovery procedure to bring the database back to a live state. **Only** do this if you are certain that your backup software supports VSS. If you backup the pgsql\data folder without using VSS, then the backup will almost certainly be unusable as the various database files will have been copied at different times, and thus will be inconsistent. Note that here, we prefer backing up the DMP backup files, but some people have used the VSS backup system and no problems have been reported. ([[http://www.postgresql.org/docs/9.1/interactive/backup-file.html]]) You could backup both the DMP files and use a VSS backup as well. The VSS backup method will allow better incremental backups, and faster recovery, while the DMP files will give an alternative backup in case of issues. =====VPOP3 version 3 or 4===== To backup VPOP3 version 3 or 4 you should: * Backup the VPOP3 directory and subdirectories, //except// the **VPOP3\pgsql** directory tree. Make sure you backup the **[[reference:database|DBBack-.DMP]]** files, these contain the mailbox contents. * Backup the VPOP3 windows registry settings. These are at **HKEY_LOCAL_MACHINE\SOFTWARE\PaulSmith\VPOP3**. You can either export these manually from RegEdit, or run ''regedit /e vpop3.reg HKEY_Local_Machine\Software\PaulSmith\VPOP3'' from a command prompt ====Manual Database Backup==== If you want to make a Database backup at a specific time (rather than just the automated daily backups of the database) you can do the following: - Go to a command prompt on the VPOP3 computer, and go to the VPOP3 directory. - Run ''pgsql\bin\pg_dump -F c -U vpop3 -v -f database.dmp vpop3'' - At the password prompt, type ''vpop3pass'' (This assumes a standard installation, if your PostgreSQL installation is non-standard, then you may need to change this command appropriately) This will create a file 'database.dmp' containing a backup of the database at the current state in the VPOP3 directory. =====VPOP3 version 2.x and earlier===== To backup earlier versions of VPOP3 you should: * Backup the VPOP3 directory and all subdirectories * Backup the VPOP3 windows registry settings. These are at ''HKEY_LOCAL_MACHINE\SOFTWARE\PaulSmith\VPOP3''. You can either export these manually from RegEdit, or run ''regedit /e vpop3.reg HKEY_Local_Machine\Software\PaulSmith\VPOP3'' from a command prompt {{tag>backup registry regedit pgsql}}