Example Disaster Recovery Strategies
The following are examples of backup and data redundancy approaches. They are not complete solutions.
If the database is deleted or corrupted, all payloads for the node are lost. You cannot recover a lost database without a backup.
Backup Strategy: Scheduled Backup Example
This example backup strategy creates copies of the Orion database over time. The example is based on this Medium post.
The backup strategy consists of:
- Backup bash script that saves a
.tar.gzfile containing the Orion database contents
crontabentry that runs the script repeatedly (for example, every 5 minutes)
1. Bash Script
#!/bin/bash TIME=`date +'%Y-%m-%d_%H-%M-%S'` FILENAME=orion-backup-$TIME.tar.gz SRC=db/ DEST=db_backups/ tar -cpzf $DEST/$FILENAME $SRC
The script is backing up the
db/ directory and creates backups into the
db_backup/ directory. Each backup is named with
a timestamp of the execution time.
db_backup |--- orion-backup-2018-03-13_22-45-01.tar.gz |--- orion-backup-2018-03-13_22-50-01.tar.gz |--- orion-backup-2018-03-13_22-55-01.tar.gz
2. crontab Entry
Create an entry on the server crontab (
crontab -e) to execute the backup script every 5 minutes:
*/5 * * * * /bin/bash /path/to/backup_script.sh
The backup script is run every 5 minutes to create a snapshot of the database. In a disaster, the node only loses the payloads from the minutes after the last backup.
Data Redundancy: RAID 1 (Disk Mirroring)
Using RAID 1 ensures you have data redundancy. A copy of the data is written to two or more disks. The copy can be used as a backup source.
RAID 1 provides instant failover if a disk fails. Having instant failover can avoid a node losing data because of disk failure.