How to Refresh Production to Non-Production Databases

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:

  1. Stop all services.
  2. Restore the previously created Non-Production backups.
  3. Start all services.
  4. Validate application functionality.