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.
Abotts Partners with singapore based tech giant to help migrate their public sector customer from Sybase to SQL server.
Abotts partners with NYPL to integrate with their partner libraries.
Upworks Inc partners with ABOTTS to build their Oracle Cloud Infrastructure (OCI) and migrate their custom applications to OCI.
Abotts Inc Partners with Gnorth consulting to deploy exadata and ODA for a large public sector customer.