Configuring EPM Cloud Backup and Recovery
Oracle’s Built-In Daily Backup
EPM Cloud is backed up automatically every day. You don’t need to request this; it happens during your instance’s maintenance window.
What’s Included in the Daily Backup
- Application Data: All cell values, user-submitted data, forecasts.
- Metadata: Dimensions, members, member properties, hierarchies.
- Artifacts: Business rules, calculation scripts, reports, dashboards, data load rules.
- Security: User assignments, roles, access controls.
- System Files: EPM Cloud configuration, integration settings.
Essentially, a complete snapshot of your application state.
Backup Retention Period
Oracle retains the daily backup for a configurable period, typically 30 days. This means you can restore from any day in the past month.
If you need to recover from a failure that occurred more than 30 days ago, you’ll need a manual backup (more on that below).
Backup Timing and Your Maintenance Window
The daily backup runs during your instance’s maintenance window (typically a 4-hour window, e.g., 2:00 AM–6:00 AM PST). The maintenance window is configured when you provision your EPM Cloud instance.
Important: Schedule critical batch jobs, integrations, and data loads outside your maintenance window. If a load is running when the backup starts, the backup may fail or the load may be interrupted.
Accessing Daily Backup Information
To view backup status:
- Log into the Oracle Cloud Console (OCI).
- Navigate to EPM Cloud > Instances.
- Click your instance.
- View the Backup Status and Last Backup Date.
EPM Automate also provides backup status:
epmautomate getServerProperties | grep -i backup
Manual Backups: exportSnapshot
While the daily backup is automatic and transparent, you may want to manually export a snapshot for specific purposes:
- Pre-change backup: Before applying a major configuration change, export a snapshot.
- Long-term archive: Keep weekly/monthly snapshots in cloud storage for multi-year retention.
- Migration: Export from one instance, import to another.
Exporting a Snapshot via EPM Automate
epmautomate exportSnapshot -Application Planning
This command creates a snapshot file (ZIP archive) containing all Planning data and metadata.
Parameters:
-Application: Target application (Planning, FCCS, NR, ARCS).-File: Output filename (default:snapshot_<timestamp>.zip).
Example:
epmautomate exportSnapshot -Application Planning -File snapshot_pre_update_25.06.zip
Snapshot File Format and Contents
The exported snapshot is a ZIP archive. When extracted, it contains:
snapshot/
├── data/
│ ├── actuals.txt
│ └── forecast.txt
├── metadata/
│ ├── dimensions.xml
│ ├── members.xml
│ └── properties.xml
├── artifacts/
│ ├── business_rules/
│ └── reports/
└── security/
├── users.xml
└── roles.xml
Snapshot File Size
Snapshot size varies by application volume:
- Small Planning app (< 1 GB of data): 100–500 MB snapshot.
- Large Planning app (> 10 GB of data): Several GB snapshot.
Factor this into your storage and network bandwidth planning.
Downloading Snapshots to On-Premises Storage
By default, exported snapshots are stored on the EPM Cloud instance’s file system. To retain them long-term, download them to your on-premises storage.
Download via Oracle Cloud Console
- Log into Oracle Cloud Console.
- Navigate to EPM Cloud > Instances > [Your Instance] > File Storage.
- Locate your snapshot file.
- Click Download.
The snapshot downloads to your local machine.
Download via EPM Automate
EPM Automate doesn’t have a direct download command, but you can scripted retrieve snapshots:
# Export a snapshot
epmautomate exportSnapshot -Application Planning -File snapshot_20260407.zip
# Then use your OS's file copy mechanism
# On Windows:
copy C:\EPMAutomate\snapshots\snapshot_20260407.zip \\nas\backups\epm\
# On Linux:
scp C:\EPMAutomate\snapshots\snapshot_20260407.zip backup-server:/mnt/backups/epm/
Automating Backups with EPM Automate
Daily Automated Snapshot Script
Create a scheduled script that exports snapshots weekly:
Linux Shell Script (/opt/epm-scripts/weekly_backup.sh):
#!/bin/bash
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/mnt/backups/epm/"
LOG_FILE="/var/log/epm_backup_$TIMESTAMP.log"
cd /opt/epmautomate/bin
echo "Starting EPM Cloud backup at $(date)" > $LOG_FILE
# Login
./epmautomate login \
-URL https://your-instance.us1.oraclecloudapps.com \
-User admin \
-PasswordFile encrypted.txt >> $LOG_FILE 2>&1
# Export snapshots for all applications
for app in Planning FCCS Narrative; do
echo "Exporting $app..." >> $LOG_FILE
./epmautomate exportSnapshot \
-Application $app \
-File snapshot_${app}_$TIMESTAMP.zip >> $LOG_FILE 2>&1
done
# Download snapshots to NAS
cp *.zip $BACKUP_DIR >> $LOG_FILE 2>&1
# Verify backup size
BACKUP_SIZE=$(du -sh $BACKUP_DIR | awk '{print $1}')
echo "Total backup size: $BACKUP_SIZE" >> $LOG_FILE
# Cleanup old backups (keep last 12 weeks)
find $BACKUP_DIR -name "snapshot_*" -mtime +84 -exec rm {} \; >> $LOG_FILE 2>&1
./epmautomate logout >> $LOG_FILE 2>&1
echo "Backup completed at $(date)" >> $LOG_FILE
Windows Batch Script (C:\EPMAutomate\scripts\weekly_backup.bat):
@echo off
REM Weekly EPM Cloud backup script
REM Run via Windows Task Scheduler every Sunday at 2:00 AM
set TIMESTAMP=%date:~10,4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%
set BACKUP_DIR=\\nas\backups\epm
set LOG_FILE=C:\Logs\epm_backup_%TIMESTAMP%.log
cd C:\EPMAutomate\bin
echo Starting EPM Cloud backup at %date% %time% > %LOG_FILE%
epmautomate login -URL https://your-instance.us1.oraclecloudapps.com -User admin -PasswordFile encrypted.txt >> %LOG_FILE% 2>&1
REM Export snapshots
epmautomate exportSnapshot -Application Planning -File snapshot_Planning_%TIMESTAMP%.zip >> %LOG_FILE% 2>&1
epmautomate exportSnapshot -Application FCCS -File snapshot_FCCS_%TIMESTAMP%.zip >> %LOG_FILE% 2>&1
REM Copy to NAS
copy snapshot_*.zip %BACKUP_DIR% >> %LOG_FILE% 2>&1
epmautomate logout >> %LOG_FILE% 2>&1
echo Backup completed at %date% %time% >> %LOG_FILE%
Scheduling the Script
Linux (Crontab):
crontab -e
# Run weekly backup every Sunday at 2:00 AM
0 2 * * 0 /opt/epm-scripts/weekly_backup.sh
Windows (Task Scheduler):
- Open Task Scheduler.
- Create a new task.
- Trigger: Weekly, Sunday, 2:00 AM.
- Action: Start program
C:\EPMAutomate\scripts\weekly_backup.bat. - Settings: Run with highest privileges, run whether user is logged on or not.
Disaster Recovery: Restoring from Backup
Scenario 1: Restore from Daily Backup (< 30 Days Ago)
If data loss occurred within the last 30 days:
- Contact Oracle Support.
- Provide:
- Instance name.
- Target recovery date (e.g., “restore to March 25, 2026, 5:00 AM”).
- Oracle initiates a restore from the daily backup.
- The restore runs during the maintenance window (typically takes 1–4 hours depending on data volume).
Your instance is temporarily unavailable during restore.
Scenario 2: Restore from Exported Snapshot
If you have an exported snapshot (from days/weeks/months ago):
- Use EPM Automate to import the snapshot:
epmautomate importSnapshot -Application Planning -File snapshot_pre_incident.zip
- The snapshot is imported into the current application, merging with existing data or overwriting (depending on your merge strategy).
Caution: Importing a snapshot overwrites current state. Backup your current state first if you might need it.
Scenario 3: Full Environment Recreation
If your environment is corrupted and unrecoverable:
- Oracle provisions a new EPM Cloud instance with the same configuration.
- You import your latest snapshot:
epmautomate importSnapshot -Application Planning -File latest_snapshot.zip
- Validate that the import succeeded: check cube balances, verify member counts, test business rules.
Testing Recovery Procedures
Never assume backups work until you’ve tested them.
Recovery Test Procedure
- Export a snapshot from your production instance.
- Import into your test environment (or a temporary sandbox instance).
- Validate the import:
- Check cube balances: Do totals match what you expect?
- Run a test query: Can you retrieve data correctly?
- Validate member counts: Are all dimensions and members present?
- Test a business rule: Does it execute correctly on restored data?
- Document results: How long did import take? Were there any warnings?
Perform this test quarterly. If recovery takes 4 hours and you haven’t tested it, you might discover in a real incident that it takes 6 hours—unacceptable if your SLA is 4 hours.
Comprehensive Backup Strategy: Three-Tier Approach
A robust backup strategy combines daily, weekly, and pre-change snapshots:
Tier 1: Daily Automatic Backups (Oracle)
- Frequency: Daily (runs during maintenance window).
- Retention: 30 days.
- RPO (Recovery Point Objective): 1 day (worst case, you lose 1 day of data).
- RTO (Recovery Time Objective): 4 hours (time for Oracle to restore).
- Cost: Included in EPM Cloud subscription.
- Your Responsibility: None (completely automatic).
Tier 2: Weekly Manual Snapshots
- Frequency: Weekly (e.g., Sunday nights via automated script).
- Retention: 12 weeks (3 months).
- Storage Location: On-premises NAS or cloud storage (S3, Azure Blob).
- RPO: 7 days.
- RTO: 2–4 hours (you initiate the import).
- Cost: Storage only.
- Your Responsibility: Automate script, monitor execution, test quarterly.
Tier 3: Pre-Change Snapshots
- Frequency: Before major changes (configuration updates, customization rollouts, version upgrades).
- Retention: Until change is validated (usually 1–2 weeks), then delete.
- Storage Location: EPM Cloud file system + downloaded to NAS.
- RPO: Zero (snapshot taken immediately before change).
- RTO: 1–2 hours (quick rollback if needed).
- Cost: Minimal (temporary storage).
- Your Responsibility: Remember to take the snapshot before major changes.
Example Backup Timeline
Monday: Automatic daily backup (Oracle, 30-day window)
Weekly manual snapshot (exported, stored on NAS)
Tuesday: Automatic daily backup
Thursday: Major configuration change planned
Pre-change snapshot exported and verified
Configuration change applied
Friday: Change validation tests pass
Pre-change snapshot deleted (no longer needed)
Monday: Automatic daily backup
Weekly manual snapshot (includes last week's data)
Monitoring and Validation
Backup Health Checks
Regularly verify backups are working:
# Check last backup timestamp
epmautomate getServerProperties | grep -i "last backup"
# Expected output: Last backup date = 2026-04-06 02:15:00
# If backup is more than 1 day old, investigate
if [ $(date -d "2026-04-06" +%s) -lt $(date -d "1 day ago" +%s) ]; then
echo "WARNING: Last backup is older than 1 day"
# Send alert email
fi
Snapshot Integrity Checks
After exporting a snapshot, verify its integrity:
# Check file size (should be non-zero)
ls -lh snapshot_*.zip
# Extract and verify contents
unzip -t snapshot_*.zip
# Output: testing: data/actuals.txt OK...
Set Alerts
If you have monitoring tools (Splunk, DataDog, Prometheus), set alerts:
- Alert if last backup is > 1 day old.
- Alert if backup file size is unusually small (potential data loss indicator).
- Alert if backup process fails (exit code non-zero).
Folder Naming Fix (25.09+)
Important Bug Fix: As of 25.09, Oracle fixed an issue where folder names containing ”/” characters caused backup failures.
If you’re on 25.08 or earlier and your instance has ”/” in folder names:
- Rename affected folders before upgrading to 25.09.
- Use valid folder names (alphanumeric, hyphens, underscores).
Example:
Bad: My-Planning/Q1-Budget
Good: My-Planning_Q1-Budget
After upgrading to 25.09, the ”/” character is allowed in folder names without causing issues.
Key Takeaways
-
Oracle’s Daily Backup is Automatic: Don’t rely on it alone; it’s only retained 30 days.
-
Export Weekly Snapshots: Provide a second layer of backup beyond the 30-day window.
-
Test Recovery Quarterly: A backup is only useful if you know how to restore it. Test in your test environment.
-
Pre-Change Snapshots are Insurance: Before major updates or customizations, export a snapshot so you can quickly rollback if needed.
-
Automate Everything: Use scripts to export and download snapshots consistently. Manual backups are forgotten backups.
-
Document Your Strategy: Your runbook should clearly state:
- Daily backups (automatic, 30-day retention).
- Weekly snapshots (automated export, 12-week retention).
- Pre-change snapshots (manual, variable retention).
- Recovery procedures (who calls Oracle, how long it takes).
-
Monitor Backup Health: Set up alerts so you’re notified if backups fail.
With a well-implemented three-tier backup strategy, you’ll sleep soundly knowing your EPM Cloud data is protected against accidental deletion, corruption, or infrastructure failures.