Differences between revisions 2 and 30 (spanning 28 versions)
Revision 2 as of 2010-03-29 23:10:15
Size: 1176
Editor: root
Comment:
Revision 30 as of 2010-09-22 07:18:44
Size: 2107
Editor: root
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from EMEN2/Backups
Line 3: Line 4:
EMEN2 supports three types of backups: Log Archive, Cold Backup, and Hot Backup. An EMEN2 installation consists of several components:
Line 5: Line 6:
== Log Archive ==  * EMEN2 database environment ([[EMEN2/config.yml|DB_HOME]])
 * File storage area ([[EMEN2/config.yml|BINARYPATH]])
 * Image browser cache area ([[EMEN2/config.yml|TILEPATH]])
 * Web server log, log file archive and database backup ([[EMEN2/config.yml|LOGPATH]], [[EMEN2/config.yml|ARCHIVEPATH]], [[EMEN2/config.yml|BACKUPPATH]])
Line 7: Line 11:
Berkeley DB provides guarantees about atomicity and durability by first writing changes to a series of log files. A transactions is not marked as committed until it has been flushed to stable storage. This allows recovery from a crash without loss of data. <<TableOfContents>>
Line 9: Line 13:
In the event of a crash or hardware failure, the log files will be examined. All committed transactions will be written out to the BTree files (in $DB_HOME/data) and any uncommitted transactions will be aborted. = EMEN2 Database Environment =
 
There are several ways to backup your EMEN2 database environment.
Line 11: Line 17:
The log files are stored in $DB_HOME/log as log.XX, where XX is a sequential integer starting from 1. With default settings, the files are 8 MB each. As one log file is finished, the next log file in the sequence is created and used as the active log file. In the simplest case, you can perform a normal copy of the database environment. This is a "cold backup", and is the easiest and most reliable mechanism, but requires that you stop all database writes for the duration of the process to ensure the integrity of the archive (see "long answer"). If your uptime requirements are not stringent, performing cold backups once a night or once a week using normal shell tools (see simple answer below) may be all you need.
Line 13: Line 19:
Log files that are not being used by any open transaction may be archived after a "Checkpoint" is made. This frees up disk space in the DB_HOME environment, and lets the administrator move the logs to long term archival storage.

.. more to come ..
If you want to perform very frequent backups, or do not want to stop the database environment, you can perform a "hot backup," which can be performed even while the database is active.
Line 18: Line 22:
== Cold Backup == = File Storage Area, Logs, etc. =

The other directories are just normal files on disk and can handled with standard shell tools.
Line 22: Line 28:
== Hot Backup == = Backup: Simple Answer =

Shutdown the web server (see [[EMEN2/emen2control.py]]) and perform a normal cold backup of everything by rsync'ing to a remote backup server. This will be sufficient for most installations.

Example (default config, everything in /home/emen2):

{{{
[emen2@ncmidb ~/emen2]# python ./emen2control.py --shutdown
[emen2@ncmidb ~/emen2]# python ./emen2control.py --recover
[emen2@ncmidb ~]# cd /home/emen2/
[emen2@ncmidb ~]# rsync -vr db db_backup log_archive applog emen2files emen2tiles emen2 emen2@remotebackup:~/emen2backup/
 ....
}}}

= Hot backup, incremental backup, log files, etc. =

For a more detailed discussion, see [[EMEN2/BackupDiscussion|Backup Discussion]]

EMEN2 Maintenance and Backups

An EMEN2 installation consists of several components:

EMEN2 Database Environment

There are several ways to backup your EMEN2 database environment.

In the simplest case, you can perform a normal copy of the database environment. This is a "cold backup", and is the easiest and most reliable mechanism, but requires that you stop all database writes for the duration of the process to ensure the integrity of the archive (see "long answer"). If your uptime requirements are not stringent, performing cold backups once a night or once a week using normal shell tools (see simple answer below) may be all you need.

If you want to perform very frequent backups, or do not want to stop the database environment, you can perform a "hot backup," which can be performed even while the database is active.

File Storage Area, Logs, etc.

The other directories are just normal files on disk and can handled with standard shell tools.

Backup: Simple Answer

Shutdown the web server (see EMEN2/emen2control.py) and perform a normal cold backup of everything by rsync'ing to a remote backup server. This will be sufficient for most installations.

Example (default config, everything in /home/emen2):

[emen2@ncmidb ~/emen2]# python ./emen2control.py --shutdown
[emen2@ncmidb ~/emen2]# python ./emen2control.py --recover
[emen2@ncmidb ~]# cd /home/emen2/
[emen2@ncmidb ~]# rsync -vr db db_backup log_archive applog emen2files emen2tiles emen2 emen2@remotebackup:~/emen2backup/
        ....

Hot backup, incremental backup, log files, etc.

For a more detailed discussion, see Backup Discussion

EMEN2/BackupsOld (last edited 2010-09-22 07:18:44 by root)