Production to Non-Production Database Refresh
Purpose
This document describes the procedure to refresh a non-production environment (QA/UAT/DEV) using the latest database backup from the production environment. The process covers stopping services, taking production backups, transferring the backup files, backing up the non-production databases, restoring the production backups, and starting the application services.
Scope
Source Environment: Production
Target Environment: Non-Production (QA/UAT/DEV)
Databases:
- gfa
- annex
- acc
Prerequisites
- Ensure no users are connected to the target environment.
- Verify sufficient disk space is available.
- Confirm SSH access between production and non-production servers.
- Ensure the Progress environment (proenv) is available.
Step 1 – Stop Production Services
Navigate to the application scripts directory.
cd /las/prod/scripts
Stop all application and database services.
./stopall
Verify all Progress processes have stopped.
ps -ef | grep progress
The stop process shuts down the PASOE instance, followed by the Progress databases.
Step 2 – Backup Production Databases
Launch the Progress environment.
proenv
Take backups of each production database.
- probkup gfa gfa_<DATE>.bak
- probkup annex annex_<DATE>.bak
- probkup acc acc_<DATE>.bak
Confirm each backup completes successfully before proceeding.
Step 3 – Create Backup Archive
Navigate to the database directory.
cd /las/prod/db/db
Create a compressed archive containing all backup files.
- tar -czvf db_refresh.tar gfa_<DATE>.bak annex_<DATE>.bak acc_<DATE>.bak
Step 4 – Transfer Backup to Non-Production
Copy the archive to the target server.
scp db_refresh.tar <user>@<non-prod-server>:/home/<user>/
Verify the file transfer completes successfully.
Step 5 – Stop Non-Production Services
On the target server, stop all services.
/las/prod/scripts/stopall
Verify no progress processes are running.
ps -ef | grep progress
Only the grep process should remain.
Step 6 – Move Backup Archive
Move the backup archive to the database directory.
mv db_refresh.tar /las/prod/db/db/
Extract the archive.
tar -xzvf db_refresh.tar
Step 7 – Backup Existing Non-Production Databases
Before restoring production data, create backups of the current non-production databases.
proenv
- probkup gfa gfa_nonprod_<DATE>.bak
- probkup annex annex_nonprod_<DATE>.bak
- probkup acc acc_nonprod_<DATE>.bak
These backups can be used for rollback if required.
Step 8 – Set File Ownership and Permissions
Assign ownership.
- chown lasadmin:gfa gfa_<DATE>.bak
- chown lasadmin:gfa annex_<DATE>.bak
- chown lasadmin:gfa acc_<DATE>.bak \
Set permissions.
- chmod 775 gfa_<DATE>.bak \
- chmod 775 annex_<DATE>.bak \
- chmod 775 acc_<DATE>.bak \
Step 9 – Restore Production Databases
Restore each database individually.
Restore GFA
prorest gfa gfa_<DATE>.bak
When prompted:
Do you want to overwrite it? [y/n]:
Enter:
y
Restore ANNEX
prorest annex annex_<DATE>.bak
Confirm overwrite.
Restore ACC
prorest acc acc_<DATE>.bak
Confirm overwrite.
The restore process recreates the databases using the production backups.
Step 10 – Start Non-Production Services
After all databases have been restored, start the environment.
/las/prod/scripts/startall
Post-Refresh Validation
Perform the following validation checks:
- Verify all progress databases are online.
- Confirm PASOE services are running.
- Verify application login.
- Confirm scheduled jobs and background services are operational.
Rollback Plan
If the refresh fails or data validation is unsuccessful:
- Stop all services.
- Restore the previously created Non-Production backups.
- Start all services.
- Validate application functionality.